@ng-nest/ui 18.0.8 → 18.0.10

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 (151) hide show
  1. package/alert/alert.component.d.ts +3 -3
  2. package/auto-complete/auto-complete-portal.component.d.ts +6 -9
  3. package/auto-complete/auto-complete.component.d.ts +1 -0
  4. package/cascade/cascade-portal.component.d.ts +7 -9
  5. package/cascade/cascade.component.d.ts +1 -9
  6. package/cascade/cascade.property.d.ts +5 -2
  7. package/checkbox/checkbox.property.d.ts +10 -98
  8. package/color-picker/color-picker-portal.component.d.ts +6 -9
  9. package/core/functions/convert.d.ts +5 -0
  10. package/core/util/public-api.d.ts +1 -0
  11. package/core/util/sleep.d.ts +5 -0
  12. package/date-picker/date-picker-portal.component.d.ts +5 -6
  13. package/date-picker/date-picker.property.d.ts +1 -31
  14. package/date-picker/date-range-portal.component.d.ts +5 -6
  15. package/dialog/dialog.component.d.ts +4 -3
  16. package/dropdown/dropdown-portal.component.d.ts +5 -7
  17. package/esm2022/alert/alert.component.mjs +13 -10
  18. package/esm2022/auto-complete/auto-complete-portal.component.mjs +17 -10
  19. package/esm2022/auto-complete/auto-complete.component.mjs +7 -4
  20. package/esm2022/back-top/back-top.component.mjs +4 -2
  21. package/esm2022/cascade/cascade-portal.component.mjs +20 -11
  22. package/esm2022/cascade/cascade.component.mjs +5 -3
  23. package/esm2022/cascade/cascade.property.mjs +2 -2
  24. package/esm2022/checkbox/checkbox.property.mjs +3 -43
  25. package/esm2022/color-picker/color-picker-portal.component.mjs +17 -10
  26. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  27. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  28. package/esm2022/core/functions/convert.mjs +15 -1
  29. package/esm2022/core/util/public-api.mjs +2 -1
  30. package/esm2022/core/util/sleep.mjs +8 -0
  31. package/esm2022/date-picker/date-picker-portal.component.mjs +17 -6
  32. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  33. package/esm2022/date-picker/date-picker.property.mjs +2 -17
  34. package/esm2022/date-picker/date-range-portal.component.mjs +17 -6
  35. package/esm2022/date-picker/date-range.component.mjs +3 -3
  36. package/esm2022/dialog/dialog.component.mjs +23 -18
  37. package/esm2022/dropdown/dropdown-portal.component.mjs +17 -8
  38. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  39. package/esm2022/find/find.component.mjs +15 -8
  40. package/esm2022/find/find.property.mjs +7 -57
  41. package/esm2022/form/form.component.mjs +3 -3
  42. package/esm2022/form/form.property.mjs +1 -1
  43. package/esm2022/highlight/highlight.component.mjs +3 -3
  44. package/esm2022/icon/icon.component.mjs +2 -2
  45. package/esm2022/image/image.component.mjs +3 -3
  46. package/esm2022/input/input.component.mjs +3 -3
  47. package/esm2022/input-number/input-number.component.mjs +3 -3
  48. package/esm2022/input-number/input-number.property.mjs +3 -23
  49. package/esm2022/loading/loading.component.mjs +3 -3
  50. package/esm2022/loading/loading.property.mjs +5 -5
  51. package/esm2022/radio/radio.property.mjs +3 -53
  52. package/esm2022/rate/rate.property.mjs +3 -58
  53. package/esm2022/select/select-portal.component.mjs +17 -10
  54. package/esm2022/select/select.component.mjs +23 -5
  55. package/esm2022/select/select.property.mjs +2 -2
  56. package/esm2022/slider-select/slider-select.property.mjs +3 -58
  57. package/esm2022/switch/switch.property.mjs +3 -58
  58. package/esm2022/table/table-body.component.mjs +5 -4
  59. package/esm2022/table/table.component.mjs +3 -3
  60. package/esm2022/table/table.property.mjs +14 -4
  61. package/esm2022/textarea/textarea.property.mjs +3 -38
  62. package/esm2022/time-picker/time-picker-portal.component.mjs +17 -6
  63. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  64. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  65. package/esm2022/transfer/transfer.component.mjs +3 -3
  66. package/esm2022/tree/tree-node.component.mjs +10 -2
  67. package/esm2022/tree/tree.component.mjs +11 -9
  68. package/esm2022/tree/tree.property.mjs +1 -1
  69. package/esm2022/tree/tree.service.mjs +28 -4
  70. package/esm2022/tree-select/tree-select-portal.component.mjs +17 -6
  71. package/esm2022/tree-select/tree-select.component.mjs +20 -4
  72. package/fesm2022/ng-nest-ui-alert.mjs +12 -9
  73. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-auto-complete.mjs +21 -11
  75. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-back-top.mjs +3 -1
  77. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-cascade.mjs +24 -13
  79. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-checkbox.mjs +2 -42
  81. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-color-picker.mjs +20 -13
  83. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-core.mjs +23 -1
  85. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-date-picker.mjs +36 -29
  87. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-dialog.mjs +22 -17
  89. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-dropdown.mjs +19 -10
  91. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-find.mjs +20 -63
  93. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-form.mjs +2 -2
  95. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-highlight.mjs +2 -2
  97. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-icon.mjs +1 -1
  99. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-image.mjs +2 -2
  101. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-input-number.mjs +4 -24
  103. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-input.mjs +2 -2
  105. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-loading.mjs +6 -6
  107. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-radio.mjs +2 -52
  109. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-rate.mjs +2 -57
  111. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-select.mjs +39 -14
  113. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-slider-select.mjs +2 -57
  115. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-switch.mjs +2 -57
  117. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-table.mjs +19 -8
  119. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-textarea.mjs +2 -37
  121. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -9
  123. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-transfer.mjs +2 -2
  125. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
  127. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-tree.mjs +46 -12
  129. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  130. package/find/find.component.d.ts +2 -0
  131. package/find/find.property.d.ts +20 -97
  132. package/form/form.property.d.ts +13 -6
  133. package/input-number/input-number.property.d.ts +4 -56
  134. package/loading/loading.property.d.ts +4 -4
  135. package/package.json +124 -124
  136. package/radio/radio.property.d.ts +10 -118
  137. package/rate/rate.property.d.ts +16 -121
  138. package/select/select-portal.component.d.ts +6 -9
  139. package/select/select.component.d.ts +5 -1
  140. package/slider-select/slider-select.property.d.ts +6 -113
  141. package/switch/switch.property.d.ts +2 -117
  142. package/table/table-body.component.d.ts +1 -1
  143. package/table/table.property.d.ts +13 -3
  144. package/textarea/textarea.property.d.ts +10 -45
  145. package/time-picker/time-picker-portal.component.d.ts +5 -6
  146. package/time-picker/time-picker.property.d.ts +1 -2
  147. package/tree/tree.component.d.ts +2 -3
  148. package/tree/tree.property.d.ts +1 -1
  149. package/tree/tree.service.d.ts +1 -1
  150. package/tree-select/tree-select-portal.component.d.ts +5 -6
  151. package/tree-select/tree-select.component.d.ts +7 -4
@@ -116,7 +116,7 @@ export class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {
116
116
  */
117
117
  this.virtualScroll = input(this.config?.virtualScroll ?? false, { transform: XToBoolean });
118
118
  /**
119
- * @zh_CN body 数据高度
119
+ * @zh_CN body 数据高度,只有开启虚拟滚动的时候生效
120
120
  * @en_US body data height
121
121
  */
122
122
  this.bodyHeight = input(undefined, { transform: XToNumber });
@@ -373,6 +373,11 @@ export class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {
373
373
  * @en_US The method for confirming changes in input is based on the input page size and input jump page
374
374
  */
375
375
  this.inputIndexSizeSureType = input(this.config?.inputIndexSizeSureType ?? 'enter');
376
+ /**
377
+ * @zh_CN 行点击事件
378
+ * @en_US Row click event
379
+ */
380
+ this.rowClick = output();
376
381
  /**
377
382
  * @zh_CN 列头拖动开始事件,返回拖动的列
378
383
  * @en_US Column Header Drag End Event
@@ -405,7 +410,7 @@ export class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {
405
410
  this.columnDragWidthEnded = output();
406
411
  }
407
412
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTableProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
408
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTableProperty, selector: "x-table-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, headColumnTpl: { classPropertyName: "headColumnTpl", publicName: "headColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, headThTpl: { classPropertyName: "headThTpl", publicName: "headThTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyColumnTpl: { classPropertyName: "bodyColumnTpl", publicName: "bodyColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyTdTpl: { classPropertyName: "bodyTdTpl", publicName: "bodyTdTpl", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, headSearchTpl: { classPropertyName: "headSearchTpl", publicName: "headSearchTpl", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, allowCheckRow: { classPropertyName: "allowCheckRow", publicName: "allowCheckRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, checkedRow: { classPropertyName: "checkedRow", publicName: "checkedRow", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowSize: { classPropertyName: "rowSize", publicName: "rowSize", isSignal: true, isRequired: false, transformFunction: null }, paginationPosition: { classPropertyName: "paginationPosition", publicName: "paginationPosition", isSignal: true, isRequired: false, transformFunction: null }, hiddenWrapBorder: { classPropertyName: "hiddenWrapBorder", publicName: "hiddenWrapBorder", isSignal: true, isRequired: false, transformFunction: null }, hiddenPaginationBorder: { classPropertyName: "hiddenPaginationBorder", publicName: "hiddenPaginationBorder", isSignal: true, isRequired: false, transformFunction: null }, showPagination: { classPropertyName: "showPagination", publicName: "showPagination", isSignal: true, isRequired: false, transformFunction: null }, treeTable: { classPropertyName: "treeTable", publicName: "treeTable", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandedLevel: { classPropertyName: "expandedLevel", publicName: "expandedLevel", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null }, showEmpty: { classPropertyName: "showEmpty", publicName: "showEmpty", isSignal: true, isRequired: false, transformFunction: null }, emptyImg: { classPropertyName: "emptyImg", publicName: "emptyImg", isSignal: true, isRequired: false, transformFunction: null }, emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, pageLinkSize: { classPropertyName: "pageLinkSize", publicName: "pageLinkSize", isSignal: true, isRequired: false, transformFunction: null }, showEllipsis: { classPropertyName: "showEllipsis", publicName: "showEllipsis", isSignal: true, isRequired: false, transformFunction: null }, showTotal: { classPropertyName: "showTotal", publicName: "showTotal", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, showBackground: { classPropertyName: "showBackground", publicName: "showBackground", isSignal: true, isRequired: false, transformFunction: null }, showSize: { classPropertyName: "showSize", publicName: "showSize", isSignal: true, isRequired: false, transformFunction: null }, sizeWidth: { classPropertyName: "sizeWidth", publicName: "sizeWidth", isSignal: true, isRequired: false, transformFunction: null }, showInputSize: { classPropertyName: "showInputSize", publicName: "showInputSize", isSignal: true, isRequired: false, transformFunction: null }, inputSizeTooltipText: { classPropertyName: "inputSizeTooltipText", publicName: "inputSizeTooltipText", isSignal: true, isRequired: false, transformFunction: null }, inputSizeWidth: { classPropertyName: "inputSizeWidth", publicName: "inputSizeWidth", isSignal: true, isRequired: false, transformFunction: null }, sizeData: { classPropertyName: "sizeData", publicName: "sizeData", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showJump: { classPropertyName: "showJump", publicName: "showJump", isSignal: true, isRequired: false, transformFunction: null }, jumpTooltipText: { classPropertyName: "jumpTooltipText", publicName: "jumpTooltipText", isSignal: true, isRequired: false, transformFunction: null }, jumpWidth: { classPropertyName: "jumpWidth", publicName: "jumpWidth", isSignal: true, isRequired: false, transformFunction: null }, totalTpl: { classPropertyName: "totalTpl", publicName: "totalTpl", isSignal: true, isRequired: false, transformFunction: null }, simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null }, simpleIndexWidth: { classPropertyName: "simpleIndexWidth", publicName: "simpleIndexWidth", isSignal: true, isRequired: false, transformFunction: null }, inputIndexSizeSureType: { classPropertyName: "inputIndexSizeSureType", publicName: "inputIndexSizeSureType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange", sortChange: "sortChange", headCheckboxChange: "headCheckboxChange", bodyCheckboxChange: "bodyCheckboxChange", manual: "manualChange", index: "indexChange", size: "sizeChange", total: "totalChange", query: "queryChange", columnDragStarted: "columnDragStarted", columnDragEnded: "columnDragEnded", columnDropListDropped: "columnDropListDropped", columnDragWidthStarted: "columnDragWidthStarted", columnDragWidthMoved: "columnDragWidthMoved", columnDragWidthEnded: "columnDragWidthEnded" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
413
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTableProperty, selector: "x-table-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, headColumnTpl: { classPropertyName: "headColumnTpl", publicName: "headColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, headThTpl: { classPropertyName: "headThTpl", publicName: "headThTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyColumnTpl: { classPropertyName: "bodyColumnTpl", publicName: "bodyColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyTdTpl: { classPropertyName: "bodyTdTpl", publicName: "bodyTdTpl", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, headSearchTpl: { classPropertyName: "headSearchTpl", publicName: "headSearchTpl", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, allowCheckRow: { classPropertyName: "allowCheckRow", publicName: "allowCheckRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, checkedRow: { classPropertyName: "checkedRow", publicName: "checkedRow", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowSize: { classPropertyName: "rowSize", publicName: "rowSize", isSignal: true, isRequired: false, transformFunction: null }, paginationPosition: { classPropertyName: "paginationPosition", publicName: "paginationPosition", isSignal: true, isRequired: false, transformFunction: null }, hiddenWrapBorder: { classPropertyName: "hiddenWrapBorder", publicName: "hiddenWrapBorder", isSignal: true, isRequired: false, transformFunction: null }, hiddenPaginationBorder: { classPropertyName: "hiddenPaginationBorder", publicName: "hiddenPaginationBorder", isSignal: true, isRequired: false, transformFunction: null }, showPagination: { classPropertyName: "showPagination", publicName: "showPagination", isSignal: true, isRequired: false, transformFunction: null }, treeTable: { classPropertyName: "treeTable", publicName: "treeTable", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandedLevel: { classPropertyName: "expandedLevel", publicName: "expandedLevel", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null }, showEmpty: { classPropertyName: "showEmpty", publicName: "showEmpty", isSignal: true, isRequired: false, transformFunction: null }, emptyImg: { classPropertyName: "emptyImg", publicName: "emptyImg", isSignal: true, isRequired: false, transformFunction: null }, emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, pageLinkSize: { classPropertyName: "pageLinkSize", publicName: "pageLinkSize", isSignal: true, isRequired: false, transformFunction: null }, showEllipsis: { classPropertyName: "showEllipsis", publicName: "showEllipsis", isSignal: true, isRequired: false, transformFunction: null }, showTotal: { classPropertyName: "showTotal", publicName: "showTotal", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, showBackground: { classPropertyName: "showBackground", publicName: "showBackground", isSignal: true, isRequired: false, transformFunction: null }, showSize: { classPropertyName: "showSize", publicName: "showSize", isSignal: true, isRequired: false, transformFunction: null }, sizeWidth: { classPropertyName: "sizeWidth", publicName: "sizeWidth", isSignal: true, isRequired: false, transformFunction: null }, showInputSize: { classPropertyName: "showInputSize", publicName: "showInputSize", isSignal: true, isRequired: false, transformFunction: null }, inputSizeTooltipText: { classPropertyName: "inputSizeTooltipText", publicName: "inputSizeTooltipText", isSignal: true, isRequired: false, transformFunction: null }, inputSizeWidth: { classPropertyName: "inputSizeWidth", publicName: "inputSizeWidth", isSignal: true, isRequired: false, transformFunction: null }, sizeData: { classPropertyName: "sizeData", publicName: "sizeData", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showJump: { classPropertyName: "showJump", publicName: "showJump", isSignal: true, isRequired: false, transformFunction: null }, jumpTooltipText: { classPropertyName: "jumpTooltipText", publicName: "jumpTooltipText", isSignal: true, isRequired: false, transformFunction: null }, jumpWidth: { classPropertyName: "jumpWidth", publicName: "jumpWidth", isSignal: true, isRequired: false, transformFunction: null }, totalTpl: { classPropertyName: "totalTpl", publicName: "totalTpl", isSignal: true, isRequired: false, transformFunction: null }, simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null }, simpleIndexWidth: { classPropertyName: "simpleIndexWidth", publicName: "simpleIndexWidth", isSignal: true, isRequired: false, transformFunction: null }, inputIndexSizeSureType: { classPropertyName: "inputIndexSizeSureType", publicName: "inputIndexSizeSureType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange", sortChange: "sortChange", headCheckboxChange: "headCheckboxChange", bodyCheckboxChange: "bodyCheckboxChange", manual: "manualChange", index: "indexChange", size: "sizeChange", total: "totalChange", query: "queryChange", rowClick: "rowClick", columnDragStarted: "columnDragStarted", columnDragEnded: "columnDragEnded", columnDropListDropped: "columnDropListDropped", columnDragWidthStarted: "columnDragWidthStarted", columnDragWidthMoved: "columnDragWidthMoved", columnDragWidthEnded: "columnDragWidthEnded" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
409
414
  }
410
415
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTableProperty, decorators: [{
411
416
  type: Component,
@@ -573,9 +578,14 @@ export class XTableBodyProperty extends XProperty {
573
578
  * @en_US Customized expansion content
574
579
  */
575
580
  this.expandTpl = input();
581
+ /**
582
+ * @zh_CN 行点击事件
583
+ * @en_US Row click event
584
+ */
585
+ this.rowClick = output();
576
586
  }
577
587
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTableBodyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
578
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTableBodyProperty, selector: "x-table-body-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, columnTpl: { classPropertyName: "columnTpl", publicName: "columnTpl", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
588
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTableBodyProperty, selector: "x-table-body-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, columnTpl: { classPropertyName: "columnTpl", publicName: "columnTpl", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange", rowClick: "rowClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
579
589
  }
580
590
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTableBodyProperty, decorators: [{
581
591
  type: Component,
@@ -611,4 +621,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
611
621
  type: Component,
612
622
  args: [{ selector: `${XTableFootPrefix}-property`, template: '' }]
613
623
  }] });
614
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBcUMsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFnQmhHOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBRXBDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQztJQUQxRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFxQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM3Rjs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFpQixFQUFFLENBQUMsQ0FBQztRQUM3Qzs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFrQixJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRzs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFvQixJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN0Rzs7O1dBR0c7UUFD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TyxrQkFBbUIsU0FBUSxTQUFTO0lBRGpEOztRQUVFOzs7V0FHRztRQUNNLFdBQU0sR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUNyQzs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUF5QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztLQUNwRjtpSUFYWSxrQkFBa0I7cUhBQWxCLGtCQUFrQiwrVkFEa0MsRUFBRTs7MkZBQ3RELGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLGdCQUFnQixXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWFByb3BlcnR5LFxyXG4gIFhQcm9wZXJ0eUZ1bmN0aW9uLFxyXG4gIFhUb0Nzc1BpeGVsVmFsdWUsXHJcbiAgWFRvQm9vbGVhbixcclxuICBYVG9OdW1iZXIsXHJcbiAgWFRvRGF0YUNvbnZlcnRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFBhZ2luYXRpb25JbnB1dEluZGV4U2l6ZVN1cmVUeXBlLCBYUGFnaW5hdGlvblNpemVEYXRhIH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IFhTZWxlY3ROb2RlIH0gZnJvbSAnQG5nLW5lc3QvdWkvc2VsZWN0JztcclxuaW1wb3J0IHR5cGUge1xyXG4gIFhOdW1iZXIsXHJcbiAgWFNvcnQsXHJcbiAgWEJvb2xlYW4sXHJcbiAgWERhdGEsXHJcbiAgWFRleHRBbGlnbixcclxuICBYU2l6ZSxcclxuICBYUGFyZW50SWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYSWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWFF1ZXJ5LFxyXG4gIFhEYXRhQXJyYXlcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZVxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZVByZWZpeCA9ICd4LXRhYmxlJztcclxuY29uc3QgWF9UQUJMRV9DT05GSUdfTkFNRSA9ICd0YWJsZSc7XHJcblxyXG4vKipcclxuICogVGFibGUgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRhYmxlUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHlGdW5jdGlvbihYX1RBQkxFX0NPTkZJR19OQU1FKSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRhdGEgPSBpbnB1dDxYRGF0YTxYVGFibGVSb3c+LCBYRGF0YTxYVGFibGVSb3c+PihbXSwgeyB0cmFuc2Zvcm06IFhUb0RhdGFDb252ZXJ0IH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxYVGFibGVDb2x1bW5bXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajlpLTlkozooYzpq5jvvIzljZXkvY0gcHhcclxuICAgKiBAZW5fVVMgSGVhZGVyIGFuZCByb3cgaGVpZ2h0LCB1bml0IHB4XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8ucm93SGVpZ2h0ID8/IDQyLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblkK/nlKjliqDovb0gbG9hZGluZ1xyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGVuYWJsZSBsb2FkaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8ubG9hZGluZyA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWxleekuuWIl+i+ueahhlxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIHNob3cgY29sdW1uIGJvcmRlcnNcclxuICAgKi9cclxuICByZWFkb25seSBib3JkZXJlZCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uYm9yZGVyZWQgPz8gZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKbmmL7npLrliJflpLRcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBkaXNwbGF5IHRoZSBjb2x1bW4gaGVhZGVyc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dIZWFkZXIgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dIZWFkZXIgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOaYvuekuuS9jee9rlxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbHVtbiBoZWFkZXJzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZGVyUG9zaXRpb24gPSBpbnB1dDxYVGFibGVIZWFkZXJQb3NpdGlvbj4odGhpcy5jb25maWc/LmhlYWRlclBvc2l0aW9uID8/ICd0b3AnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFjdGl2YXRlZFJvdyA9IG1vZGVsPFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS06Ieq5a6a5LmJ5qih5p2/77yM6YCa6L+HIGtleS12YWx1ZSDnmoTmlrnlvI/mjIflrprmr4/liJfnmoTmqKHniYhcclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkQ29sdW1uVHBsID0gaW5wdXQ8WFRhYmxlVGVtcGxhdGU+KHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05Y2V5YWD5qC86Ieq5a6a5LmJ5qih5p2/77yM5LyY5YWI57qn5L2O5LqO5YiX5aS06Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIENvbHVtbiBoZWFkZXIgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZFRoVHBsID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflhoXlrrnoh6rlrprkuYnmqKHmnb/vvIzpgJrov4cga2V5LXZhbHVlIOeahOaWueW8j+aMh+Wumuavj+WIl+eahOaooeeJiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gY29udGVudCBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBib2R5Q29sdW1uVHBsID0gaW5wdXQ8WFRhYmxlVGVtcGxhdGU+KHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC855qE6Ieq5a6a5LmJ5qih5p2/77yM5LyY5YWI57qn5L2O5LqO5YiX5YaF5a656Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZSBvZiBjZWxsc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvZHlUZFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5p2h5Lu25qC35byPXHJcbiAgICogQGVuX1VTIFJvdyBjb25kaXRpb24gY2xhc3NcclxuICAgKi9cclxuICByZWFkb25seSByb3dDbGFzcyA9IGlucHV0PChyb3c6IFhUYWJsZVJvdywgaW5kZXg6IG51bWJlcikgPT4geyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOaQnOe0ouiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBMaW5lIGhlYWQgc2VhcmNoIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhlYWRTZWFyY2hUcGwgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+eCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTb3J0IGNsaWNrIGV2ZW50c1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNvcnRDaGFuZ2UgPSBvdXRwdXQ8WFNvcnRbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS0IGNoZWNrYm94IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBoZWFkIGNoZWNrYm94IGV2ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZENoZWNrYm94Q2hhbmdlID0gb3V0cHV0PFhUYWJsZUhlYWRDaGVja2JveD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04gYm9keSBjaGVja2JveCDkuovku7ZcclxuICAgKiBAZW5fVVMgaGVhZCBjaGVja2JveCBldmVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvZHlDaGVja2JveENoYW5nZSA9IG91dHB1dDxYVGFibGVSb3c+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4reW9k+WJjeihjFxyXG4gICAqIEBlbl9VUyBBbGxvdyByb3cgY2xpY2sgdG8gc2VsZWN0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWxsb3dTZWxlY3RSb3cgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmFsbG93U2VsZWN0Um93ID8/IHRydWUsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK0gY2hlY2tib3hcclxuICAgKiBAZW5fVVMgQWxsb3cgbGluZXMgdG8gY2xpY2sgY2hlY2tib3hcclxuICAgKi9cclxuICByZWFkb25seSBhbGxvd0NoZWNrUm93ID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5hbGxvd0NoZWNrUm93ID8/IHRydWUsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHZpcnR1YWxTY3JvbGwgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnZpcnR1YWxTY3JvbGwgPz8gZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IOaVsOaNrumrmOW6plxyXG4gICAqIEBlbl9VUyBib2R5IGRhdGEgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keUhlaWdodCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZCwgWE51bWJlcj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBpdGVtU2l6Ze+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBpdGVtU2l6Ze+8jGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGl0ZW1TaXplID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uaXRlbVNpemUgPz8gNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBFeGNlZWQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIHZpc2libGUgd2luZG93IGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWluQnVmZmVyUHggPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDEwMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riy5p+T5paw5pWw5o2u57yT5Yay5Yy655qE5YOP57Sg77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIFJlbmRlciB0aGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1heEJ1ZmZlclB4ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPigyMDAsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICByZWFkb25seSBhZGFwdGlvbkhlaWdodCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZCwgWE51bWJlcj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlofmoaPpq5jluqbnmb7liIbmr5TvvIzlvLnnqpfnmb7liIbmr5Tpq5jluqbnlKjliLBcclxuICAgKiBAZW5fVVMgRG9jdW1lbnQgaGVpZ2h0IHBlcmNlbnRhZ2UsIHVzZWQgYnkgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRvY1BlcmNlbnQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDEsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOWIl+WIneWni+mAieS4reeahOaVsOaNru+8jOWIl+S4rea/gOa0uyBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBjb2x1bW4gaW5pdGlhbGx5IHNlbGVjdGVkIGRhdGEsIGNoZWNrYm94IGlzIGFjdGl2YXRlZCBpbiBjb2x1bW5cclxuICAgKi9cclxuICByZWFkb25seSBjaGVja2VkUm93ID0gaW5wdXQ8eyBbcHJvcGVydHk6IHN0cmluZ106IGFueVtdIH0+KHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aaC5p6cIGRhdGEg5piv5Ye95pWw57G75Z6L77yM5Y+v5Lul6YCa6L+H5q2k5Y+C5pWw5o6n5Yi26K+35rGC77yM5bi455So5LqO5by55qGG5Lit55qE6KGo5qC877yM5by55Ye65ZCO5YaN6K+35rGCXHJcbiAgICogQGVuX1VTIElmIGRhdGEgaXMgYSBmdW5jdGlvbiB0eXBlLCB5b3UgY2FuIHVzZSB0aGlzIHBhcmFtZXRlciB0byBjb250cm9sIHRoZSByZXF1ZXN0LCB3aGljaCBpcyBvZnRlbiB1c2VkIGluIHRoZSBmb3JtIGluIHRoZSBwb3AtdXAgYm94LCBhbmQgdGhlbiByZXF1ZXN0IGl0IGFmdGVyIGl0IHBvcHMgdXBcclxuICAgKi9cclxuICByZWFkb25seSBtYW51YWwgPSBtb2RlbDxib29sZWFuPih0cnVlKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f6auY5a69XHJcbiAgICogQGVuX1VTIEhlaWdodCBhbmQgd2lkdGggb2Ygcm9sbGluZyBhcmVhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2Nyb2xsID0gaW5wdXQ8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzpobXlpLRcclxuICAgKiBAZW5fVVMgVGFibGUgaGVhZGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZGVyID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzpobXlsL5cclxuICAgKiBAZW5fVVMgVGFibGUgZm9vdGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZm9vdGVyID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBjb25maWdcclxuICAgKi9cclxuICByZWFkb25seSBjZWxsQ29uZmlnID0gaW5wdXQ8WFRhYmxlQ2VsbENvbmZpZz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICByZWFkb25seSByb3dTaXplID0gaW5wdXQ8WFNpemU+KHRoaXMuY29uZmlnPy5yb3dTaXplID8/ICdtZWRpdW0nKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG6aG15Zmo5L2N572uXHJcbiAgICogQGVuX1VTIFBhZ2luYXRpb24gcG9zaXRpb25cclxuICAgKi9cclxuICByZWFkb25seSBwYWdpbmF0aW9uUG9zaXRpb24gPSBpbnB1dDxYUGFnaW5hdGlvblBvc2l0aW9uPignYm90dG9tLWxlZnQnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZqQ6JeP6KGo5qC85aSW6L655qGGXHJcbiAgICogQGVuX1VTIEhpZGRlbiB0YWJsZSB3cmFwIGJvcmRlclxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhpZGRlbldyYXBCb3JkZXIgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmhpZGRlbldyYXBCb3JkZXIgPz8gZmFsc2UsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol4/liIbpobXlmajmjInpkq7ovrnmoYZcclxuICAgKiBAZW5fVVMgSGlkZGVuIHBhZ2luYXRpb24gYnV0dG9uIGJvcmRlclxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhpZGRlblBhZ2luYXRpb25Cb3JkZXIgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmhpZGRlblBhZ2luYXRpb25Cb3JkZXIgPz8gZmFsc2UsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIbpobXlmahcclxuICAgKiBAZW5fVVMgUGFnaW5hdGlvbiBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dQYWdpbmF0aW9uID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93UGFnaW5hdGlvbiA/PyB0cnVlLCB7XHJcbiAgICB0cmFuc2Zvcm06IFhUb0Jvb2xlYW5cclxuICB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC8XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICByZWFkb25seSB0cmVlVGFibGUgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnRyZWVUYWJsZSA/PyB0cnVlLCB7XHJcbiAgICB0cmFuc2Zvcm06IFhUb0Jvb2xlYW5cclxuICB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICByZWFkb25seSBleHBhbmRlZEFsbCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uZXhwYW5kZWRBbGwgPz8gZmFsc2UsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpu5jorqTlsZXlvIDnmoTlsYLnuqfvvIwtMSDkuI3lsZXlvIBcclxuICAgKiBAZW5fVVMgRGVmYXVsdCBleHBhbmRlZCBsZXZlbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZGVkTGV2ZWwgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5leHBhbmRlZExldmVsID8/IC0xLCB7XHJcbiAgICB0cmFuc2Zvcm06IFhUb051bWJlclxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXlvIDnmoToioLngrlcclxuICAgKiBAZW5fVVMgRXhwYW5kZWQgbm9kZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZGVkID0gaW5wdXQ8YW55W10+KFtdKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGV5byA5YaF5a65XHJcbiAgICogQGVuX1VTIEN1c3RvbWl6ZWQgZXhwYW5zaW9uIGNvbnRlbnRcclxuICAgKi9cclxuICByZWFkb25seSBleHBhbmRUcGwgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaVsOaNruS4uuepuueahOaPkOekulxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IGEgcHJvbXB0IHdpdGggZW1wdHkgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dFbXB0eSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0VtcHR5ID8/IHRydWUsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7kuLrnqbrnmoTmj5DnpLrlm77niYflnLDlnYDmiJboh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgUGljdHVyZSBhZGRyZXNzIG9yIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGVtcHR5SW1nID0gaW5wdXQ8WFRlbXBsYXRlIHwgdW5kZWZpbmVkPih0aGlzLmNvbmZpZz8uZW1wdHlJbWcgPz8gdW5kZWZpbmVkKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pWw5o2u5Li656m655qE5o+Q56S65YaF5a655oiW6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIENvbnRlbnQgb3IgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW1wdHlDb250ZW50ID0gaW5wdXQ8WFRlbXBsYXRlIHwgdW5kZWZpbmVkPih0aGlzLmNvbmZpZz8uZW1wdHlDb250ZW50ID8/IHVuZGVmaW5lZCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemhteeggVxyXG4gICAqIEBlbl9VUyBDdXJyZW50IHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaW5kZXggPSBtb2RlbDxudW1iZXI+KHRoaXMuY29uZmlnPy5pbmRleCA/PyAxKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q+P6aG15pi+56S65p2h5pWwXHJcbiAgICogQGVuX1VTIE51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2VcclxuICAgKi9cclxuICByZWFkb25seSBzaXplID0gbW9kZWw8bnVtYmVyPih0aGlzLmNvbmZpZz8uc2l6ZSA/PyAxMCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaAu+aVsFxyXG4gICAqIEBlbl9VUyBUb3RhbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHRvdGFsID0gbW9kZWw8bnVtYmVyPigwKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5p+l6K+i5p2h5Lu2XHJcbiAgICogQGVuX1VTIFF1ZXJ5IGNvbmRpdGlvbnNcclxuICAgKi9cclxuICByZWFkb25seSBxdWVyeSA9IG1vZGVsPFhRdWVyeT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmnIDlpJrmmL7npLrnmoTliIbpobXmlbDph49cclxuICAgKiBAZW5fVVMgVGhlIGxhcmdlc3QgbnVtYmVyIG9mIHBhZ2VzIGRpc3BsYXlcclxuICAgKi9cclxuICByZWFkb25seSBwYWdlTGlua1NpemUgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5wYWdlTGlua1NpemUgPz8gNSwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66aaW5bC+6aG16Lez6L2sXHJcbiAgICogQGVuX1VTIERpc3BsYXkgdGhlIGZpcnN0IGFuZCBsYXN0IHBhZ2VcclxuICAgKi9cclxuICByZWFkb25seSBzaG93RWxsaXBzaXMgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dFbGxpcHNpcyA/PyB0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65oC75p2h5pWwXHJcbiAgICogQGVuX1VTIERpc3BsYXkgdGhlIHRvdGFsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd1RvdGFsID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93VG90YWwgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaMiemSrumXtOi3nVxyXG4gICAqIEBlbl9VUyBCdXR0b24gc3BhY2luZ1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNwYWNlID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uc3BhY2UgPz8gJzAuMjVyZW0nLCB7IHRyYW5zZm9ybTogWFRvQ3NzUGl4ZWxWYWx1ZSB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5re75Yqg6IOM5pmv6ImyXHJcbiAgICogQGVuX1VTIFNob3cgYmFja2dyb3VuZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dCYWNrZ3JvdW5kID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93QmFja2dyb3VuZCA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIhumhteadoeaVsFxyXG4gICAqIEBlbl9VUyBTaG93IHNpemVcclxuICAgKi9cclxuICByZWFkb25seSBzaG93U2l6ZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd1NpemUgPz8gZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXmnaHmlbDpgInmi6nmoYbnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoIHNlbGVjdFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpemVXaWR0aCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4odGhpcy5jb25maWc/LnNpemVXaWR0aCA/PyAnNi44NzVyZW0nLCB7IHRyYW5zZm9ybTogWFRvQ3NzUGl4ZWxWYWx1ZSB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L6T5YWl5YiG6aG15p2h5pWw77yI5LiN6IO96Lef5LiL5ouJ6YCJ6aG55ZCM5pe25L2/55So77yJXHJcbiAgICogQGVuX1VTIERpc3BsYXkgdGhlIG51bWJlciBvZiBpbnB1dCBwYWdlIGJyZWFrcyAoY2Fubm90IGV4aXN0IHdpdGggdGhlIGRyb3AtZG93biBvcHRpb25zIG9mIHBhZ2UgYnJlYWtzKVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dJbnB1dFNpemUgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dJbnB1dFNpemUgPz8gZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXliIbpobXmoYbnmoQgdG9vbHRpcCDmj5DnpLrkv6Hmga/vvIzpu5jorqTmoLnmja7ovpPlhaXnoa7orqTmlLnlj5jnmoTmlrnlvI/mnaXmmL7npLpcclxuICAgKiBAZW5fVVMgRW50ZXIgdGhlIHRvb2x0aXAgcHJvbXB0IGluZm9ybWF0aW9uIGZvciB0aGUgcGFnaW5hdGlvbiBib3gsIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQgYmFzZWQgb24gdGhlIGNvbmZpcm1hdGlvbiBvZiB0aGUgaW5wdXRcclxuICAgKi9cclxuICByZWFkb25seSBpbnB1dFNpemVUb29sdGlwVGV4dCA9IGlucHV0PHN0cmluZz4odGhpcy5jb25maWc/LmlucHV0U2l6ZVRvb2x0aXBUZXh0ID8/ICcnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG6aG15p2h5pWw6L6T5YWl5qGG55qE5a695bqmXHJcbiAgICogQGVuX1VTIHNpemUgd2l0aCBpbnB1dFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGlucHV0U2l6ZVdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uc2l6ZVdpZHRoID8/ICczLjEyNXJlbScsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQ3NzUGl4ZWxWYWx1ZVxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXpgInmi6nnmoTmlbDmja7poblcclxuICAgKiBAZW5fVVMgUGFnaW5nIGNob29zZSBpdGVtcyBvZiBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2l6ZURhdGEgPSBpbnB1dDxYRGF0YUFycmF5PFhTZWxlY3ROb2RlPj4odGhpcy5jb25maWc/LnNpemVEYXRhID8/IFhQYWdpbmF0aW9uU2l6ZURhdGEpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKjmlbTkuKrliIbpobVcclxuICAgKiBAZW5fVVMgZGlzYWJsZWRcclxuICAgKi9cclxuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui3s+i9rOi+k+WFpeahhlxyXG4gICAqIEBlbl9VUyBTaG93IHNpemVcclxuICAgKi9cclxuICByZWFkb25seSBzaG93SnVtcCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi3s+i9rOi+k+WFpeahhueahCB0b29sdGlwIOaPkOekuuS/oeaBr++8jOm7mOiupOagueaNrui+k+WFpeehruiupOaUueWPmOeahOaWueW8j+adpeaYvuekulxyXG4gICAqIEBlbl9VUyBUaGUgdG9vbHRpcCBwcm9tcHQgaW5mb3JtYXRpb24gZm9yIGp1bXBpbmcgdG8gdGhlIGlucHV0IGJveCBpcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdCBiYXNlZCBvbiB0aGUgY29uZmlybWF0aW9uIG9mIGlucHV0IGNoYW5nZXNcclxuICAgKi9cclxuICByZWFkb25seSBqdW1wVG9vbHRpcFRleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuY29uZmlnPy5qdW1wVG9vbHRpcFRleHQgPz8gJycpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDot7PovazpobXnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkganVtcFdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uanVtcFdpZHRoID8/ICczLjEyNXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgLvmlbDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgVG90YWwgdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSB0b3RhbFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g566A5Y2V5YiG6aG1XHJcbiAgICogQGVuX1VTIFNpbXBsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpbXBsZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2ltcGxlID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g566A5Y2V5YiG6aG16L6T5YWl5qGG5a695bqmXHJcbiAgICogQGVuX1VTIFNpbXBsZSBpbmRleCB3aXRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2ltcGxlSW5kZXhXaWR0aCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4odGhpcy5jb25maWc/LnNpbXBsZUluZGV4V2lkdGggPz8gJzguMTI1cmVtJywge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeehruiupOaUueWPmOeahOaWueW8j++8jOmSiOWvuei+k+WFpeWIhumhteWkp+Wwj+WSjOi+k+WFpei3s+i9rOmhtVxyXG4gICAqIEBlbl9VUyBUaGUgbWV0aG9kIGZvciBjb25maXJtaW5nIGNoYW5nZXMgaW4gaW5wdXQgaXMgYmFzZWQgb24gdGhlIGlucHV0IHBhZ2Ugc2l6ZSBhbmQgaW5wdXQganVtcCBwYWdlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaW5wdXRJbmRleFNpemVTdXJlVHlwZSA9IGlucHV0PFhQYWdpbmF0aW9uSW5wdXRJbmRleFNpemVTdXJlVHlwZT4oXHJcbiAgICB0aGlzLmNvbmZpZz8uaW5wdXRJbmRleFNpemVTdXJlVHlwZSA/PyAnZW50ZXInXHJcbiAgKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05ouW5Yqo5byA5aeL5LqL5Lu277yM6L+U5Zue5ouW5Yqo55qE5YiXXHJcbiAgICogQGVuX1VTIENvbHVtbiBIZWFkZXIgRHJhZyBFbmQgRXZlbnRcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5EcmFnU3RhcnRlZCA9IG91dHB1dDxYVGFibGVDb2x1bW4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOaLluWKqOe7k+adn+S6i+S7tu+8jOi/lOWbnuaLluWKqOeahOWIl1xyXG4gICAqIEBlbl9VUyBUaGUgY29sdW1uIGhlYWRlciBpcyBkcmFnZ2luZywgYW5kIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgb3JkZXIgaXMgY2hhbmdlZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyYWdFbmRlZCA9IG91dHB1dDxYVGFibGVDb2x1bW4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+eUqOaIt+aKiuS4gOS4quadoeebruaKleaUvui/m+ivpeWuueWZqOaXtuWwseS8muinpuWPke+8jOaLluWKqOaUvuW8gOeahOS6i+S7tu+8jOi/lOWbnuaLluWKqOaOkuW6j+WQjueahOWIl+aVsOaNrlxyXG4gICAqIEBlbl9VUyBUaGUgY29sdW1uIGhlYWRlciBpcyBkcmFnZ2luZywgYW5kIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgb3JkZXIgaXMgY2hhbmdlZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyb3BMaXN0RHJvcHBlZCA9IG91dHB1dDxYVGFibGVDb2x1bW5bXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5ouW5Yqo5YiX5a6955qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIHN0YXJ0ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5EcmFnV2lkdGhTdGFydGVkID0gb3V0cHV0PFhUYWJsZURyYWdXaWR0aEV2ZW50PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJflrr3ml7bnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gbW92ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5EcmFnV2lkdGhNb3ZlZCA9IG91dHB1dDxYVGFibGVEcmFnV2lkdGhFdmVudD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g57uT5p2f5ouW5Yqo5YiX5a6955qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIGVuZGVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJhZ1dpZHRoRW5kZWQgPSBvdXRwdXQ8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVSb3cgZXh0ZW5kcyBYUGFyZW50SWRlbnRpdHlQcm9wZXJ0eTxYVGFibGVSb3c+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byAXHJcbiAgICogQGVuX1VTIFVuZm9sZFxyXG4gICAqL1xyXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGe5oCnXHJcbiAgICogQGVuX1VTIEN1c3RvbSBhdHRyaWJ1dGVzXHJcbiAgICovXHJcbiAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiX5Y+C5pWwXHJcbiAqIEBlbl9VUyBDb2x1bW4gcGFyYW1ldGVyXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNvbHVtbiBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g57G75Z6LXHJcbiAgICogQGVuX1VTIFR5cGVzIG9mXHJcbiAgICovXHJcbiAgdHlwZT86IFhDb2x1bW5UeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKi9cclxuICB3aWR0aD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04gZmxleCDluIPlsYDlrr3luqZcclxuICAgKiBAZW5fVVMgRmxleCBsYXlvdXQgd2lkdGhcclxuICAgKi9cclxuICBmbGV4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmn6Xor6LlrZfmrrVcclxuICAgKiBAZW5fVVMgUXVlcnkgZmllbGRcclxuICAgKi9cclxuICBzZWFyY2g/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjpLluo/lrZfmrrVcclxuICAgKiBAZW5fVVMgU29ydCBmaWVsZFxyXG4gICAqL1xyXG4gIHNvcnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlt6bovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIGxlZnRcclxuICAgKi9cclxuICBsZWZ0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlj7PovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIHJpZ2h0XHJcbiAgICovXHJcbiAgcmlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaTjeS9nOaMiemSrlxyXG4gICAqIEBlbl9VUyBPcGVyYXRpb24gYnV0dG9uXHJcbiAgICovXHJcbiAgYWN0aW9uPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gdHlwZSDkuLogY2hlY2tib3gg5pe257uR5a6a6KGM54K55Ye76YCJ5Lit5LqL5Lu2XHJcbiAgICogQGVuX1VTIEJpbmQgcm93IGNsaWNrIHNlbGVjdGlvbiBldmVudCB3aGVuIHR5cGUgaXMgY2hlY2tib3hcclxuICAgKi9cclxuICByb3dDaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gdHlwZSDkuLogZXhwYW5kIOaXtue7keWumuihjOeCueWHu+WxleW8gOS6i+S7tlxyXG4gICAqIEBlbl9VUyBCaW5kIHJvdyBjbGljayBzZWxlY3Rpb24gZXZlbnQgd2hlbiB0eXBlIGlzIGV4cGFuZFxyXG4gICAqL1xyXG4gIHJvd0V4cGFuZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+Wtl+Wvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBUZXh0IGFsaWdubWVudFxyXG4gICAqL1xyXG4gIHRleHRBbGlnbj86IFhUZXh0QWxpZ247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWIl+Wuve+8jOmcgOimgeiuvue9ruWIl+eahOWIneWni+WuveW6piB3aWR0aFxyXG4gICAqIEBlbl9VUyBEcmFnIHRoZSBjb2x1bW4gd2lkdGgsIHlvdSBuZWVkIHRvIHNldCB0aGUgaW5pdGlhbCB3aWR0aCBvZiB0aGUgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ1dpZHRoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5Zyo5ouW5Yqo5YiX5a69XHJcbiAgICogQGVuX1VTIERyYWdnaW5nIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ2dpbmdXaWR0aD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBzdGFydGVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ1dpZHRoU3RhcnRlZD86IChldmVudDogWFRhYmxlRHJhZ1dpZHRoRXZlbnQpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl+WuveaXtueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBtb3ZlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aE1vdmVkPzogKGV2ZW50OiBYVGFibGVEcmFnV2lkdGhFdmVudCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g57uT5p2f5ouW5Yqo5YiX5a6955qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIGVuZGVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ1dpZHRoRW5kZWQ/OiAoZXZlbnQ6IFhUYWJsZURyYWdXaWR0aEV2ZW50KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjliJdcclxuICAgKiBAZW5fVVMgRHJhZyB0aGUgY29sdW1uXHJcbiAgICovXHJcbiAgZHJhZ0NvbHVtbj86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl1xyXG4gICAqIEBlbl9VUyBEcmFnZ2luZyBjb2x1bW5cclxuICAgKi9cclxuICBkcmFnZ2luZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWktOmDqOaYvuekuiBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBIZWFkIHNob3dzIGNoZWNrYm94XHJcbiAgICovXHJcbiAgaGVhZENoZWNrZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpLTpg6jmmL7npLogZXhwYW5kXHJcbiAgICogQGVuX1VTIEhlYWQgc2hvd3MgZXhwYW5kXHJcbiAgICovXHJcbiAgaGVhZEV4cGFuZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WktOWuveW6puaLluWKqOS6i+S7tlxyXG4gKiBAZW5fVVMgQ29sdW1uIGhlYWRlciB3aWR0aCBkcmFnIGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZURyYWdXaWR0aEV2ZW50IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo55qE5YiXXHJcbiAgICogQGVuX1VTIERyYWdnZWQgY29sdW1uXHJcbiAgICovXHJcbiAgY29sdW1uOiBYVGFibGVDb2x1bW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+S9jee9ru+8jOato+WcqOaLluWKqOeahOaXtuWAmeaMh+WBj+enu+S9jee9rlxyXG4gICAqIEBlbl9VUyBUaGUgY29sdW1uIHBvc2l0aW9uIHJlZmVycyB0byB0aGUgb2Zmc2V0IHBvc2l0aW9uIHdoZW4gZHJhZ2dpbmdcclxuICAgKi9cclxuICBwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WktCBjaGVja2JveCDkuovku7bmlbDmja5cclxuICogQGVuX1VTIENvbHVtbiBoZWFkZXIgY2hlY2tib3ggZXZlbnQgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVIZWFkQ2hlY2tib3gge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICByb3dzOiBYVGFibGVSb3dbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5pWw5o2uXHJcbiAgICogQGVuX1VTIENoZWNrYm94IGRhdGFcclxuICAgKi9cclxuICBjaGVja2JveDogeyBbcHJvcGVydHk6IHN0cmluZ106IGJvb2xlYW4gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICogQGVuX1VTIENlbGwgY29uZmlnXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGxDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNlbGwgY29uZmlnXHJcbiAgICovXHJcbiAgdGhlYWQ/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIFJvdyBjb25maWdcclxuICAgKi9cclxuICB0Ym9keT86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleWFg+agvOmFjee9ruinhOWImVxyXG4gKiBAZW5fVVMgQ2VsbCBjb25maWcgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbENvbmZpZ1J1bGUge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBncmlkIOW4g+WxgOS4i+WumuS5ieWIl+WuveW6plxyXG4gICAqIEBlbl9VUyBEZWZpbmUgY29sdW1uIHdpZHRoIHVuZGVyIGdyaWQgbGF5b3V0XHJcbiAgICovXHJcbiAgZ3JpZFRlbXBsYXRlQ29sdW1ucz86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICAgKi9cclxuICBjZWxscz86IFhUYWJsZUNlbGxbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzlkIjlubbphY3nva5cclxuICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS9v+eUqCBncmlkIOW4g+WxgOadpeWQiOW5tuWNleWFg+agvFxyXG4gICAqIEBlbl9VUyBVc2UgZ3JpZCBsYXlvdXQgdG8gbWVyZ2UgY2VsbHNcclxuICAgKi9cclxuICBncmlkQXJlYT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCN56ewXHJcbiAgICogQGVuX1VTIE5hbWVcclxuICAgKi9cclxuICBsYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+W3pui+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gbGVmdFxyXG4gICAqL1xyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+WPs+i+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gcmlnaHRcclxuICAgKi9cclxuICByaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a+55bqU5YiX55qEIGlkXHJcbiAgICogQGVuX1VTIFRoZSBpZCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb2x1bW5cclxuICAgKi9cclxuICBpZD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiX5a69XHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+exu+Wei1xyXG4gKiBAZW5fVVMgQ29sdW1uIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhDb2x1bW5UeXBlID0gJ2xhYmVsJyB8ICdpbmRleCcgfCAnY2hlY2tib3gnIHwgJ2V4cGFuZCc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WktOaYvuekuuS9jee9rlxyXG4gKiBAZW5fVVMgTGluZSBoZWFkIGRpc3BsYXkgcG9zaXRpb25cclxuICovXHJcbmV4cG9ydCB0eXBlIFhUYWJsZUhlYWRlclBvc2l0aW9uID0gJ3RvcCcgfCAnYm90dG9tJyB8ICd0b3AtYm90dG9tJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiG6aG15Zmo5L2N572uXHJcbiAqIEBlbl9VUyBQYWdpbmcgcG9zaXRpb25cclxuICovXHJcbmV4cG9ydCB0eXBlIFhQYWdpbmF0aW9uUG9zaXRpb24gPVxyXG4gIHwgJ3RvcC1sZWZ0J1xyXG4gIHwgJ3RvcC1jZW50ZXInXHJcbiAgfCAndG9wLXJpZ2h0J1xyXG4gIHwgJ2JvdHRvbS1sZWZ0J1xyXG4gIHwgJ2JvdHRvbS1jZW50ZXInXHJcbiAgfCAnYm90dG9tLXJpZ2h0JztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5qih5p2/XHJcbiAqIEBlbl9VUyBUZW1wbGF0ZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRhYmxlVGVtcGxhdGUgPSB7IFtwcm9wZXJ0eTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9O1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEhlYWRcclxuICogQHNlbGVjdG9yIHgtdGFibGUtaGVhZFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUhlYWRQcmVmaXggPSAneC10YWJsZS1oZWFkJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBIZWFkIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6IGAke1hUYWJsZUhlYWRQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVIZWFkUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxYVGFibGVDb2x1bW5bXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqbvvIzljZXkvY0gcHhcclxuICAgKiBAZW5fVVMgSGVpZ2h0IGluIHB4XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPig0MiwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtblRwbCA9IGlucHV0PFhUYWJsZVRlbXBsYXRlPih7fSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOerluWQkea7muWKqOadoeWuveW6plxyXG4gICAqIEBlbl9VUyBWZXJ0aWNhbCBzY3JvbGwgYmFyIHdpZHRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2Nyb2xsWVdpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qiq5ZCR5rua5Yqo5p2h5a695bqmXHJcbiAgICogQGVuX1VTIEhvcml6b250YWwgc2Nyb2xsIGJhciB3aWR0aFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNjcm9sbFhXaWR0aCA9IGlucHV0PG51bWJlciB8IG51bGwsIFhOdW1iZXI+KG51bGwsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY2VsbENvbmZpZyA9IGlucHV0PFhUYWJsZUNlbGxDb25maWdSdWxlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTkvY3nva5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xyXG59XHJcblxyXG4vKipcclxuICogVGFibGUgQm9keVxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1ib2R5XHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlQm9keVByZWZpeCA9ICd4LXRhYmxlLWJvZHknO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEJvZHkgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRhYmxlQm9keVByZWZpeH0tcHJvcGVydHlgLCB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUJvZHlQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRhdGEgPSBpbnB1dDxYVGFibGVSb3dbXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBpbnB1dDxYVGFibGVDb2x1bW5bXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uVHBsID0gaW5wdXQ8WFRhYmxlVGVtcGxhdGU+KHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFjdGl2YXRlZFJvdyA9IG1vZGVsPFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqm77yM5Y2V5L2NIHB444CC6K6+572u5Li6IDAg6KGo56S66KGM6auY6Ieq6YCC5bqU5YaF5a656auY5bqm44CCXHJcbiAgICogQGVuX1VTIEhlaWdodCBpbiBweC4gc2V0IHRvIDAgbWVhbnMgdGhhdCB0aGUgcm93IGhlaWdodCBpcyBhZGFwdGl2ZSB0byB0aGUgY29udGVudCBoZWlnaHRcclxuICAgKi9cclxuICByZWFkb25seSByb3dIZWlnaHQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDQyLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IOaVsOaNrumrmOW6plxyXG4gICAqIEBlbl9VUyBib2R5IGRhdGEgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keUhlaWdodCA9IGlucHV0PG51bWJlciB8IG51bGwsIFhOdW1iZXI+KG51bGwsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4rVxyXG4gICAqIEBlbl9VUyBBbGxvdyByb3cgY2xpY2sgdG8gc2VsZWN0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWxsb3dTZWxlY3RSb3cgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmlydHVhbFNjcm9sbCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGl0ZW1TaXpl77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIGl0ZW1TaXpl77yMY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDQyLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1pbkJ1ZmZlclB4ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPigxMDAsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBSZW5kZXIgdGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICByZWFkb25seSBtYXhCdWZmZXJQeCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMjAwLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgQWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWRhcHRpb25IZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlofmoaPpq5jluqbnmb7liIbmr5TvvIzlvLnnqpfnmb7liIbmr5Tpq5jluqbnlKjliLBcclxuICAgKiBAZW5fVVMgRG9jdW1lbnQgaGVpZ2h0IHBlcmNlbnRhZ2UsIHVzZWQgYnkgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRvY1BlcmNlbnQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDEsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+mrmOWuvVxyXG4gICAqIEBlbl9VUyBIZWlnaHQgYW5kIHdpZHRoIG9mIHJvbGxpbmcgYXJlYVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNjcm9sbCA9IGlucHV0PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572u6KeE5YiZXHJcbiAgICogQGVuX1VTIENlbGwgY29uZmlnIHJ1bGVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY2VsbENvbmZpZyA9IGlucHV0PFhUYWJsZUNlbGxDb25maWdSdWxlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0NsYXNzID0gaW5wdXQ8KHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85LiL55qE5bGC57qnXHJcbiAgICogQGVuX1VTIFRoZSBsZXZlbCB1bmRlciB0aGUgdHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGxldmVsID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPigwLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZGVkQWxsID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGV5byA5YaF5a65XHJcbiAgICogQGVuX1VTIEN1c3RvbWl6ZWQgZXhwYW5zaW9uIGNvbnRlbnRcclxuICAgKi9cclxuICByZWFkb25seSBleHBhbmRUcGwgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBGb290XHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWZvb3RcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVGb290UHJlZml4ID0gJ3gtdGFibGUtZm9vdCc7XHJcblxyXG4vKipcclxuICogVGFibGUgRm9vdCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVGb290UHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlRm9vdFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15bC+XHJcbiAgICogQGVuX1VTIFRhYmxlIGZvb3RlclxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGZvb3RlciA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0hlaWdodCA9IGlucHV0PG51bWJlciB8IG51bGwsIFhOdW1iZXI+KG51bGwsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbn1cclxuIl19
624
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBcUMsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFnQmhHOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBRXBDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQztJQUQxRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFxQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM3Rjs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFpQixFQUFFLENBQUMsQ0FBQztRQUM3Qzs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFrQixJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRzs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFvQixJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN0Rzs7O1dBR0c7UUFD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QUU7O0FBd0dyRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBRS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFEakQ7O1FBRUU7OztXQUdHO1FBQ00sV0FBTSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQ3JDOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQXlCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0tBQ3BGO2lJQVhZLGtCQUFrQjtxSEFBbEIsa0JBQWtCLCtWQURrQyxFQUFFOzsyRkFDdEQsa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsZ0JBQWdCLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBYUHJvcGVydHksXHJcbiAgWFByb3BlcnR5RnVuY3Rpb24sXHJcbiAgWFRvQ3NzUGl4ZWxWYWx1ZSxcclxuICBYVG9Cb29sZWFuLFxyXG4gIFhUb051bWJlcixcclxuICBYVG9EYXRhQ29udmVydFxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvbklucHV0SW5kZXhTaXplU3VyZVR5cGUsIFhQYWdpbmF0aW9uU2l6ZURhdGEgfSBmcm9tICdAbmctbmVzdC91aS9wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgWFNlbGVjdE5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9zZWxlY3QnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgWE51bWJlcixcclxuICBYU29ydCxcclxuICBYQm9vbGVhbixcclxuICBYRGF0YSxcclxuICBYVGV4dEFsaWduLFxyXG4gIFhTaXplLFxyXG4gIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYUXVlcnksXHJcbiAgWERhdGFBcnJheVxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlUHJlZml4ID0gJ3gtdGFibGUnO1xyXG5jb25zdCBYX1RBQkxFX0NPTkZJR19OQU1FID0gJ3RhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eUZ1bmN0aW9uKFhfVEFCTEVfQ09ORklHX05BTUUpIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZGF0YSA9IGlucHV0PFhEYXRhPFhUYWJsZVJvdz4sIFhEYXRhPFhUYWJsZVJvdz4+KFtdLCB7IHRyYW5zZm9ybTogWFRvRGF0YUNvbnZlcnQgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0PFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICByZWFkb25seSByb3dIZWlnaHQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5yb3dIZWlnaHQgPz8gNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmdcclxuICAgKi9cclxuICByZWFkb25seSBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5sb2FkaW5nID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5bGV56S65YiX6L655qGGXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gc2hvdyBjb2x1bW4gYm9yZGVyc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvcmRlcmVkID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5ib3JkZXJlZCA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuWIl+WktFxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbHVtbiBoZWFkZXJzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0hlYWRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0hlYWRlciA/PyB0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05pi+56S65L2N572uXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgY29sdW1uIGhlYWRlcnNcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkZXJQb3NpdGlvbiA9IGlucHV0PFhUYWJsZUhlYWRlclBvc2l0aW9uPih0aGlzLmNvbmZpZz8uaGVhZGVyUG9zaXRpb24gPz8gJ3RvcCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWN0aXZhdGVkUm93ID0gbW9kZWw8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLToh6rlrprkuYnmqKHmnb/vvIzpgJrov4cga2V5LXZhbHVlIOeahOaWueW8j+aMh+Wumuavj+WIl+eahOaooeeJiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhlYWRDb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTljZXlhYPmoLzoh6rlrprkuYnmqKHmnb/vvIzkvJjlhYjnuqfkvY7kuo7liJflpLToh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkVGhUcGwgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WGheWuueiHquWumuS5ieaooeadv++8jOmAmui/hyBrZXktdmFsdWUg55qE5pa55byP5oyH5a6a5q+P5YiX55qE5qih54mIXHJcbiAgICogQGVuX1VTIENvbHVtbiBjb250ZW50IGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvZHlDb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLznmoToh6rlrprkuYnmqKHmnb/vvIzkvJjlhYjnuqfkvY7kuo7liJflhoXlrrnoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlIG9mIGNlbGxzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keVRkVHBsID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0NsYXNzID0gaW5wdXQ8KHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05pCc57Si6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIExpbmUgaGVhZCBzZWFyY2ggY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZFNlYXJjaFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP54K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNvcnQgY2xpY2sgZXZlbnRzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc29ydENoYW5nZSA9IG91dHB1dDxYU29ydFtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLQgY2hlY2tib3gg5LqL5Lu2XHJcbiAgICogQGVuX1VTIGhlYWQgY2hlY2tib3ggZXZlbnRcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkQ2hlY2tib3hDaGFuZ2UgPSBvdXRwdXQ8WFRhYmxlSGVhZENoZWNrYm94PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IGNoZWNrYm94IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBoZWFkIGNoZWNrYm94IGV2ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keUNoZWNrYm94Q2hhbmdlID0gb3V0cHV0PFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWB6K646KGM54K55Ye76YCJ5Lit5b2T5YmN6KGMXHJcbiAgICogQGVuX1VTIEFsbG93IHJvdyBjbGljayB0byBzZWxlY3RcclxuICAgKi9cclxuICByZWFkb25seSBhbGxvd1NlbGVjdFJvdyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uYWxsb3dTZWxlY3RSb3cgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4rSBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBBbGxvdyBsaW5lcyB0byBjbGljayBjaGVja2JveFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFsbG93Q2hlY2tSb3cgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmFsbG93Q2hlY2tSb3cgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmlydHVhbFNjcm9sbCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8udmlydHVhbFNjcm9sbCA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqm77yM5Y+q5pyJ5byA5ZCv6Jma5ouf5rua5Yqo55qE5pe25YCZ55Sf5pWIXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICByZWFkb25seSBib2R5SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBYTnVtYmVyPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGl0ZW1TaXpl77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIGl0ZW1TaXpl77yMY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5pdGVtU2l6ZSA/PyA0MiwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICByZWFkb25seSBtaW5CdWZmZXJQeCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMTAwLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWF4QnVmZmVyUHggPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDIwMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq6YCC5bqU6auY5bqm77yMdGFibGUg6auY5bqm562J5LqO5bGP5bmV6auY5bqm5YeP5o6J5q2k5aSE6K6+572u55qE5pWw5YC8XHJcbiAgICogQGVuX1VTIEFkYXB0aXZlIGhlaWdodCwgdGFibGUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBzY3JlZW4gaGVpZ2h0IG1pbnVzIHRoZSB2YWx1ZSBzZXQgaGVyZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFkYXB0aW9uSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBYTnVtYmVyPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZG9jUGVyY2VudCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMSwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5YiX5Yid5aeL6YCJ5Lit55qE5pWw5o2u77yM5YiX5Lit5r+A5rS7IGNoZWNrYm94XHJcbiAgICogQGVuX1VTIENoZWNrYm94IGNvbHVtbiBpbml0aWFsbHkgc2VsZWN0ZWQgZGF0YSwgY2hlY2tib3ggaXMgYWN0aXZhdGVkIGluIGNvbHVtblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNoZWNrZWRSb3cgPSBpbnB1dDx7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55W10gfT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpoLmnpwgZGF0YSDmmK/lh73mlbDnsbvlnovvvIzlj6/ku6XpgJrov4fmraTlj4LmlbDmjqfliLbor7fmsYLvvIzluLjnlKjkuo7lvLnmoYbkuK3nmoTooajmoLzvvIzlvLnlh7rlkI7lho3or7fmsYJcclxuICAgKiBAZW5fVVMgSWYgZGF0YSBpcyBhIGZ1bmN0aW9uIHR5cGUsIHlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIGNvbnRyb2wgdGhlIHJlcXVlc3QsIHdoaWNoIGlzIG9mdGVuIHVzZWQgaW4gdGhlIGZvcm0gaW4gdGhlIHBvcC11cCBib3gsIGFuZCB0aGVuIHJlcXVlc3QgaXQgYWZ0ZXIgaXQgcG9wcyB1cFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1hbnVhbCA9IG1vZGVsPGJvb2xlYW4+KHRydWUpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5rliqjljLrln5/pq5jlrr1cclxuICAgKiBAZW5fVVMgSGVpZ2h0IGFuZCB3aWR0aCBvZiByb2xsaW5nIGFyZWFcclxuICAgKi9cclxuICByZWFkb25seSBzY3JvbGwgPSBpbnB1dDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWktFxyXG4gICAqIEBlbl9VUyBUYWJsZSBoZWFkZXJcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWwvlxyXG4gICAqIEBlbl9VUyBUYWJsZSBmb290ZXJcclxuICAgKi9cclxuICByZWFkb25seSBmb290ZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNlbGxDb25maWcgPSBpbnB1dDxYVGFibGVDZWxsQ29uZmlnPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd1NpemUgPSBpbnB1dDxYU2l6ZT4odGhpcy5jb25maWc/LnJvd1NpemUgPz8gJ21lZGl1bScpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICAgKiBAZW5fVVMgUGFnaW5hdGlvbiBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Qb3NpdGlvbiA9IGlucHV0PFhQYWdpbmF0aW9uUG9zaXRpb24+KCdib3R0b20tbGVmdCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol4/ooajmoLzlpJbovrnmoYZcclxuICAgKiBAZW5fVVMgSGlkZGVuIHRhYmxlIHdyYXAgYm9yZGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGlkZGVuV3JhcEJvcmRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uaGlkZGVuV3JhcEJvcmRlciA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmakOiXj+WIhumhteWZqOaMiemSrui+ueahhlxyXG4gICAqIEBlbl9VUyBIaWRkZW4gcGFnaW5hdGlvbiBidXR0b24gYm9yZGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGlkZGVuUGFnaW5hdGlvbkJvcmRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uaGlkZGVuUGFnaW5hdGlvbkJvcmRlciA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIhumhteWZqFxyXG4gICAqIEBlbl9VUyBQYWdpbmF0aW9uIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24gPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dQYWdpbmF0aW9uID8/IHRydWUsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLxcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHRyZWVUYWJsZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8udHJlZVRhYmxlID8/IHRydWUsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZGVkQWxsID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5leHBhbmRlZEFsbCA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOm7mOiupOWxleW8gOeahOWxgue6p++8jC0xIOS4jeWxleW8gFxyXG4gICAqIEBlbl9VUyBEZWZhdWx0IGV4cGFuZGVkIGxldmVsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kZWRMZXZlbCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4odGhpcy5jb25maWc/LmV4cGFuZGVkTGV2ZWwgPz8gLTEsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvTnVtYmVyXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gOeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBFeHBhbmRlZCBub2RlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZXlvIDlhoXlrrlcclxuICAgKiBAZW5fVVMgQ3VzdG9taXplZCBleHBhbnNpb24gY29udGVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65pWw5o2u5Li656m655qE5o+Q56S6XHJcbiAgICogQGVuX1VTIERpc3BsYXkgYSBwcm9tcHQgd2l0aCBlbXB0eSBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0VtcHR5ID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93RW1wdHkgPz8gdHJ1ZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruS4uuepuueahOaPkOekuuWbvueJh+WcsOWdgOaIluiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBQaWN0dXJlIGFkZHJlc3Mgb3IgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW1wdHlJbWcgPSBpbnB1dDxYVGVtcGxhdGUgfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5lbXB0eUltZyA/PyB1bmRlZmluZWQpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7kuLrnqbrnmoTmj5DnpLrlhoXlrrnmiJboh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29udGVudCBvciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBlbXB0eUNvbnRlbnQgPSBpbnB1dDxYVGVtcGxhdGUgfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5lbXB0eUNvbnRlbnQgPz8gdW5kZWZpbmVkKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6aG156CBXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICByZWFkb25seSBpbmRleCA9IG1vZGVsPG51bWJlcj4odGhpcy5jb25maWc/LmluZGV4ID8/IDEpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpemUgPSBtb2RlbDxudW1iZXI+KHRoaXMuY29uZmlnPy5zaXplID8/IDEwKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oC75pWwXHJcbiAgICogQGVuX1VTIFRvdGFsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdG90YWwgPSBtb2RlbDxudW1iZXI+KDApO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmn6Xor6LmnaHku7ZcclxuICAgKiBAZW5fVVMgUXVlcnkgY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHF1ZXJ5ID0gbW9kZWw8WFF1ZXJ5Pih7fSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWkmuaYvuekuueahOWIhumhteaVsOmHj1xyXG4gICAqIEBlbl9VUyBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgcGFnZXMgZGlzcGxheVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHBhZ2VMaW5rU2l6ZSA9IGlucHV0PG51bWJlciwgWE51bWJlcj4odGhpcy5jb25maWc/LnBhZ2VMaW5rU2l6ZSA/PyA1LCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrpppblsL7pobXot7PovaxcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgZmlyc3QgYW5kIGxhc3QgcGFnZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dFbGxpcHNpcyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0VsbGlwc2lzID8/IHRydWUsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrmgLvmnaHmlbBcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgdG90YWxcclxuICAgKi9cclxuICByZWFkb25seSBzaG93VG90YWwgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dUb3RhbCA/PyB0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu6Ze06LedXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBzcGFjaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc3BhY2UgPSBpbnB1dDxzdHJpbmcsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5zcGFjZSA/PyAnMC4yNXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmt7vliqDog4zmma/oibJcclxuICAgKiBAZW5fVVMgU2hvdyBiYWNrZ3JvdW5kXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0JhY2tncm91bmQgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dCYWNrZ3JvdW5kID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiG6aG15p2h5pWwXHJcbiAgICogQGVuX1VTIFNob3cgc2l6ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dTaXplID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93U2l6ZSA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteadoeaVsOmAieaLqeahhueahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGggc2VsZWN0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2l6ZVdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uc2l6ZVdpZHRoID8/ICc2Ljg3NXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovpPlhaXliIbpobXmnaHmlbDvvIjkuI3og73ot5/kuIvmi4npgInpobnlkIzml7bkvb/nlKjvvIlcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgbnVtYmVyIG9mIGlucHV0IHBhZ2UgYnJlYWtzIChjYW5ub3QgZXhpc3Qgd2l0aCB0aGUgZHJvcC1kb3duIG9wdGlvbnMgb2YgcGFnZSBicmVha3MpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0lucHV0U2l6ZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0lucHV0U2l6ZSA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeWIhumhteahhueahCB0b29sdGlwIOaPkOekuuS/oeaBr++8jOm7mOiupOagueaNrui+k+WFpeehruiupOaUueWPmOeahOaWueW8j+adpeaYvuekulxyXG4gICAqIEBlbl9VUyBFbnRlciB0aGUgdG9vbHRpcCBwcm9tcHQgaW5mb3JtYXRpb24gZm9yIHRoZSBwYWdpbmF0aW9uIGJveCwgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdCBiYXNlZCBvbiB0aGUgY29uZmlybWF0aW9uIG9mIHRoZSBpbnB1dFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGlucHV0U2l6ZVRvb2x0aXBUZXh0ID0gaW5wdXQ8c3RyaW5nPih0aGlzLmNvbmZpZz8uaW5wdXRTaXplVG9vbHRpcFRleHQgPz8gJycpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXmnaHmlbDovpPlhaXmoYbnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoIGlucHV0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaW5wdXRTaXplV2lkdGggPSBpbnB1dDxzdHJpbmcsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5zaXplV2lkdGggPz8gJzMuMTI1cmVtJywge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhtemAieaLqeeahOaVsOaNrumhuVxyXG4gICAqIEBlbl9VUyBQYWdpbmcgY2hvb3NlIGl0ZW1zIG9mIGRhdGFcclxuICAgKi9cclxuICByZWFkb25seSBzaXplRGF0YSA9IGlucHV0PFhEYXRhQXJyYXk8WFNlbGVjdE5vZGU+Pih0aGlzLmNvbmZpZz8uc2l6ZURhdGEgPz8gWFBhZ2luYXRpb25TaXplRGF0YSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOaVtOS4quWIhumhtVxyXG4gICAqIEBlbl9VUyBkaXNhYmxlZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66Lez6L2s6L6T5YWl5qGGXHJcbiAgICogQGVuX1VTIFNob3cgc2l6ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dKdW1wID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Lez6L2s6L6T5YWl5qGG55qEIHRvb2x0aXAg5o+Q56S65L+h5oGv77yM6buY6K6k5qC55o2u6L6T5YWl56Gu6K6k5pS55Y+Y55qE5pa55byP5p2l5pi+56S6XHJcbiAgICogQGVuX1VTIFRoZSB0b29sdGlwIHByb21wdCBpbmZvcm1hdGlvbiBmb3IganVtcGluZyB0byB0aGUgaW5wdXQgYm94IGlzIGRpc3BsYXllZCBieSBkZWZhdWx0IGJhc2VkIG9uIHRoZSBjb25maXJtYXRpb24gb2YgaW5wdXQgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGp1bXBUb29sdGlwVGV4dCA9IGlucHV0PHN0cmluZz4odGhpcy5jb25maWc/Lmp1bXBUb29sdGlwVGV4dCA/PyAnJyk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi3s+i9rOmhteeahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGhcclxuICAgKi9cclxuICByZWFkb25seSBqdW1wV2lkdGggPSBpbnB1dDxzdHJpbmcsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5qdW1wV2lkdGggPz8gJzMuMTI1cmVtJywgeyB0cmFuc2Zvcm06IFhUb0Nzc1BpeGVsVmFsdWUgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaAu+aVsOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBUb3RhbCB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHRvdGFsVHBsID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnroDljZXliIbpobVcclxuICAgKiBAZW5fVVMgU2ltcGxlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2ltcGxlID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaW1wbGUgPz8gZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnroDljZXliIbpobXovpPlhaXmoYblrr3luqZcclxuICAgKiBAZW5fVVMgU2ltcGxlIGluZGV4IHdpdGhcclxuICAgKi9cclxuICByZWFkb25seSBzaW1wbGVJbmRleFdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uc2ltcGxlSW5kZXhXaWR0aCA/PyAnOC4xMjVyZW0nLCB7XHJcbiAgICB0cmFuc2Zvcm06IFhUb0Nzc1BpeGVsVmFsdWVcclxuICB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl56Gu6K6k5pS55Y+Y55qE5pa55byP77yM6ZKI5a+56L6T5YWl5YiG6aG15aSn5bCP5ZKM6L6T5YWl6Lez6L2s6aG1XHJcbiAgICogQGVuX1VTIFRoZSBtZXRob2QgZm9yIGNvbmZpcm1pbmcgY2hhbmdlcyBpbiBpbnB1dCBpcyBiYXNlZCBvbiB0aGUgaW5wdXQgcGFnZSBzaXplIGFuZCBpbnB1dCBqdW1wIHBhZ2VcclxuICAgKi9cclxuICByZWFkb25seSBpbnB1dEluZGV4U2l6ZVN1cmVUeXBlID0gaW5wdXQ8WFBhZ2luYXRpb25JbnB1dEluZGV4U2l6ZVN1cmVUeXBlPihcclxuICAgIHRoaXMuY29uZmlnPy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlID8/ICdlbnRlcidcclxuICApO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUm93IGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93Q2xpY2sgPSBvdXRwdXQ8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTmi5bliqjlvIDlp4vkuovku7bvvIzov5Tlm57mi5bliqjnmoTliJdcclxuICAgKiBAZW5fVVMgQ29sdW1uIEhlYWRlciBEcmFnIEVuZCBFdmVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyYWdTdGFydGVkID0gb3V0cHV0PFhUYWJsZUNvbHVtbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05ouW5Yqo57uT5p2f5LqL5Lu277yM6L+U5Zue5ouW5Yqo55qE5YiXXHJcbiAgICogQGVuX1VTIFRoZSBjb2x1bW4gaGVhZGVyIGlzIGRyYWdnaW5nLCBhbmQgdGhlIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBvcmRlciBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJhZ0VuZGVkID0gb3V0cHV0PFhUYWJsZUNvbHVtbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T55So5oi35oqK5LiA5Liq5p2h55uu5oqV5pS+6L+b6K+l5a655Zmo5pe25bCx5Lya6Kem5Y+R77yM5ouW5Yqo5pS+5byA55qE5LqL5Lu277yM6L+U5Zue5ouW5Yqo5o6S5bqP5ZCO55qE5YiX5pWw5o2uXHJcbiAgICogQGVuX1VTIFRoZSBjb2x1bW4gaGVhZGVyIGlzIGRyYWdnaW5nLCBhbmQgdGhlIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBvcmRlciBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJvcExpc3REcm9wcGVkID0gb3V0cHV0PFhUYWJsZUNvbHVtbltdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vmi5bliqjliJflrr3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gc3RhcnRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyYWdXaWR0aFN0YXJ0ZWQgPSBvdXRwdXQ8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl+WuveaXtueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBtb3ZlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyYWdXaWR0aE1vdmVkID0gb3V0cHV0PFhUYWJsZURyYWdXaWR0aEV2ZW50PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnu5PmnZ/mi5bliqjliJflrr3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gZW5kZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5EcmFnV2lkdGhFbmRlZCA9IG91dHB1dDxYVGFibGVEcmFnV2lkdGhFdmVudD4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDooYzmlbDmja5cclxuICogQGVuX1VTIFJvdyBkYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZVJvdyBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUYWJsZVJvdz4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXlvIBcclxuICAgKiBAZW5fVVMgVW5mb2xkXHJcbiAgICovXHJcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflj4LmlbBcclxuICogQGVuX1VTIENvbHVtbiBwYXJhbWV0ZXJcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ29sdW1uIGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnsbvlnotcclxuICAgKiBAZW5fVVMgVHlwZXMgb2ZcclxuICAgKi9cclxuICB0eXBlPzogWENvbHVtblR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWuveW6plxyXG4gICAqIEBlbl9VUyBXaWR0aFxyXG4gICAqL1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBmbGV4IOW4g+WxgOWuveW6plxyXG4gICAqIEBlbl9VUyBGbGV4IGxheW91dCB3aWR0aFxyXG4gICAqL1xyXG4gIGZsZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOafpeivouWtl+autVxyXG4gICAqIEBlbl9VUyBRdWVyeSBmaWVsZFxyXG4gICAqL1xyXG4gIHNlYXJjaD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+Wtl+autVxyXG4gICAqIEBlbl9VUyBTb3J0IGZpZWxkXHJcbiAgICovXHJcbiAgc29ydD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+W3pui+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gbGVmdFxyXG4gICAqL1xyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+WPs+i+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gcmlnaHRcclxuICAgKi9cclxuICByaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pON5L2c5oyJ6ZKuXHJcbiAgICogQGVuX1VTIE9wZXJhdGlvbiBidXR0b25cclxuICAgKi9cclxuICBhY3Rpb24/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBjaGVja2JveCDml7bnu5HlrprooYzngrnlh7vpgInkuK3kuovku7ZcclxuICAgKiBAZW5fVVMgQmluZCByb3cgY2xpY2sgc2VsZWN0aW9uIGV2ZW50IHdoZW4gdHlwZSBpcyBjaGVja2JveFxyXG4gICAqL1xyXG4gIHJvd0NoZWNrZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBleHBhbmQg5pe257uR5a6a6KGM54K55Ye75bGV5byA5LqL5Lu2XHJcbiAgICogQGVuX1VTIEJpbmQgcm93IGNsaWNrIHNlbGVjdGlvbiBldmVudCB3aGVuIHR5cGUgaXMgZXhwYW5kXHJcbiAgICovXHJcbiAgcm93RXhwYW5kPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5a2X5a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIFRleHQgYWxpZ25tZW50XHJcbiAgICovXHJcbiAgdGV4dEFsaWduPzogWFRleHRBbGlnbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiX5a6977yM6ZyA6KaB6K6+572u5YiX55qE5Yid5aeL5a695bqmIHdpZHRoXHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtbiB3aWR0aCwgeW91IG5lZWQgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIG9mIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJflrr1cclxuICAgKiBAZW5fVVMgRHJhZ2dpbmcgd2lkdGhcclxuICAgKi9cclxuICBkcmFnZ2luZ1dpZHRoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5ouW5Yqo5YiX5a6955qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIHN0YXJ0ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGhTdGFydGVkPzogKGV2ZW50OiBYVGFibGVEcmFnV2lkdGhFdmVudCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5Zyo5ouW5Yqo5YiX5a695pe255qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIG1vdmVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ1dpZHRoTW92ZWQ/OiAoZXZlbnQ6IFhUYWJsZURyYWdXaWR0aEV2ZW50KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnu5PmnZ/mi5bliqjliJflrr3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gZW5kZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGhFbmRlZD86IChldmVudDogWFRhYmxlRHJhZ1dpZHRoRXZlbnQpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWIl1xyXG4gICAqIEBlbl9VUyBEcmFnIHRoZSBjb2x1bW5cclxuICAgKi9cclxuICBkcmFnQ29sdW1uPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5Zyo5ouW5Yqo5YiXXHJcbiAgICogQGVuX1VTIERyYWdnaW5nIGNvbHVtblxyXG4gICAqL1xyXG4gIGRyYWdnaW5nPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aS06YOo5pi+56S6IGNoZWNrYm94XHJcbiAgICogQGVuX1VTIEhlYWQgc2hvd3MgY2hlY2tib3hcclxuICAgKi9cclxuICBoZWFkQ2hlY2tlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWktOmDqOaYvuekuiBleHBhbmRcclxuICAgKiBAZW5fVVMgSGVhZCBzaG93cyBleHBhbmRcclxuICAgKi9cclxuICBoZWFkRXhwYW5kPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGe5oCnXHJcbiAgICogQGVuX1VTIEN1c3RvbSBhdHRyaWJ1dGVzXHJcbiAgICovXHJcbiAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiX5aS05a695bqm5ouW5Yqo5LqL5Lu2XHJcbiAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIHdpZHRoIGRyYWcgZXZlbnRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlRHJhZ1dpZHRoRXZlbnQge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjnmoTliJdcclxuICAgKiBAZW5fVVMgRHJhZ2dlZCBjb2x1bW5cclxuICAgKi9cclxuICBjb2x1bW46IFhUYWJsZUNvbHVtbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5L2N572u77yM5q2j5Zyo5ouW5Yqo55qE5pe25YCZ5oyH5YGP56e75L2N572uXHJcbiAgICogQGVuX1VTIFRoZSBjb2x1bW4gcG9zaXRpb24gcmVmZXJzIHRvIHRoZSBvZmZzZXQgcG9zaXRpb24gd2hlbiBkcmFnZ2luZ1xyXG4gICAqL1xyXG4gIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiX5aS0IGNoZWNrYm94IOS6i+S7tuaVsOaNrlxyXG4gKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjaGVja2JveCBldmVudCBkYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUhlYWRDaGVja2JveCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIHJvd3M6IFhUYWJsZVJvd1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBjaGVja2JveCDmlbDmja5cclxuICAgKiBAZW5fVVMgQ2hlY2tib3ggZGF0YVxyXG4gICAqL1xyXG4gIGNoZWNrYm94OiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYm9vbGVhbiB9O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gKiBAZW5fVVMgQ2VsbCBjb25maWdcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbENvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDb2x1bW4gY2VsbCBjb25maWdcclxuICAgKi9cclxuICB0aGVhZD86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgUm93IGNvbmZpZ1xyXG4gICAqL1xyXG4gIHRib2R5PzogWFRhYmxlQ2VsbENvbmZpZ1J1bGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Y2V5YWD5qC86YWN572u6KeE5YiZXHJcbiAqIEBlbl9VUyBDZWxsIGNvbmZpZyBydWxlc1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDZWxsQ29uZmlnUnVsZSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGdyaWQg5biD5bGA5LiL5a6a5LmJ5YiX5a695bqmXHJcbiAgICogQGVuX1VTIERlZmluZSBjb2x1bW4gd2lkdGggdW5kZXIgZ3JpZCBsYXlvdXRcclxuICAgKi9cclxuICBncmlkVGVtcGxhdGVDb2x1bW5zPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBtZXJnZSBydWxlc1xyXG4gICAqL1xyXG4gIGNlbGxzPzogWFRhYmxlQ2VsbFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleWFg+agvOWQiOW5tumFjee9rlxyXG4gKiBAZW5fVVMgQ2VsbCBtZXJnZSBydWxlc1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDZWxsIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5L2/55SoIGdyaWQg5biD5bGA5p2l5ZCI5bm25Y2V5YWD5qC8XHJcbiAgICogQGVuX1VTIFVzZSBncmlkIGxheW91dCB0byBtZXJnZSBjZWxsc1xyXG4gICAqL1xyXG4gIGdyaWRBcmVhPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI3np7BcclxuICAgKiBAZW5fVVMgTmFtZVxyXG4gICAqL1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKi9cclxuICB3aWR0aD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75bem6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSBsZWZ0XHJcbiAgICovXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75Y+z6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSByaWdodFxyXG4gICAqL1xyXG4gIHJpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlr7nlupTliJfnmoQgaWRcclxuICAgKiBAZW5fVVMgVGhlIGlkIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtblxyXG4gICAqL1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjliJflrr1cclxuICAgKiBAZW5fVVMgRHJhZyB0aGUgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgZHJhZ1dpZHRoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGe5oCnXHJcbiAgICogQGVuX1VTIEN1c3RvbSBhdHRyaWJ1dGVzXHJcbiAgICovXHJcbiAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiX57G75Z6LXHJcbiAqIEBlbl9VUyBDb2x1bW4gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWENvbHVtblR5cGUgPSAnbGFiZWwnIHwgJ2luZGV4JyB8ICdjaGVja2JveCcgfCAnZXhwYW5kJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiX5aS05pi+56S65L2N572uXHJcbiAqIEBlbl9VUyBMaW5lIGhlYWQgZGlzcGxheSBwb3NpdGlvblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRhYmxlSGVhZGVyUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nIHwgJ3RvcC1ib3R0b20nO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICogQGVuX1VTIFBhZ2luZyBwb3NpdGlvblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFBhZ2luYXRpb25Qb3NpdGlvbiA9XHJcbiAgfCAndG9wLWxlZnQnXHJcbiAgfCAndG9wLWNlbnRlcidcclxuICB8ICd0b3AtcmlnaHQnXHJcbiAgfCAnYm90dG9tLWxlZnQnXHJcbiAgfCAnYm90dG9tLWNlbnRlcidcclxuICB8ICdib3R0b20tcmlnaHQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmqKHmnb9cclxuICogQGVuX1VTIFRlbXBsYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVGFibGVUZW1wbGF0ZSA9IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH07XHJcblxyXG4vKipcclxuICogVGFibGUgSGVhZFxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1oZWFkXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlSGVhZFByZWZpeCA9ICd4LXRhYmxlLWhlYWQnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEhlYWQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRhYmxlSGVhZFByZWZpeH0tcHJvcGVydHlgLCB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUhlYWRQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0PFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6pu+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWlnaHQgaW4gcHhcclxuICAgKi9cclxuICByZWFkb25seSByb3dIZWlnaHQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDQyLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uVHBsID0gaW5wdXQ8WFRhYmxlVGVtcGxhdGU+KHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56uW5ZCR5rua5Yqo5p2h5a695bqmXHJcbiAgICogQGVuX1VTIFZlcnRpY2FsIHNjcm9sbCBiYXIgd2lkdGhcclxuICAgKi9cclxuICByZWFkb25seSBzY3JvbGxZV2lkdGggPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmqKrlkJHmu5rliqjmnaHlrr3luqZcclxuICAgKiBAZW5fVVMgSG9yaXpvbnRhbCBzY3JvbGwgYmFyIHdpZHRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2Nyb2xsWFdpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICAgKi9cclxuICByZWFkb25seSBjZWxsQ29uZmlnID0gaW5wdXQ8WFRhYmxlQ2VsbENvbmZpZ1J1bGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOS9jee9rlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDxzdHJpbmc+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBCb2R5XHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWJvZHlcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVCb2R5UHJlZml4ID0gJ3gtdGFibGUtYm9keSc7XHJcblxyXG4vKipcclxuICogVGFibGUgQm9keSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVCb2R5UHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQm9keVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZGF0YSA9IGlucHV0PFhUYWJsZVJvd1tdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0PFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWN0aXZhdGVkUm93ID0gbW9kZWw8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqbvvIzljZXkvY0gcHjjgILorr7nva7kuLogMCDooajnpLrooYzpq5joh6rpgILlupTlhoXlrrnpq5jluqbjgIJcclxuICAgKiBAZW5fVVMgSGVpZ2h0IGluIHB4LiBzZXQgdG8gMCBtZWFucyB0aGF0IHRoZSByb3cgaGVpZ2h0IGlzIGFkYXB0aXZlIHRvIHRoZSBjb250ZW50IGhlaWdodFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0hlaWdodCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICByZWFkb25seSBib2R5SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWB6K646KGM54K55Ye76YCJ5LitXHJcbiAgICogQGVuX1VTIEFsbG93IHJvdyBjbGljayB0byBzZWxlY3RcclxuICAgKi9cclxuICByZWFkb25seSBhbGxvd1NlbGVjdFJvdyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFR1cm4gb24gdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICByZWFkb25seSB2aXJ0dWFsU2Nyb2xsID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04gaXRlbVNpemXvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgaXRlbVNpemXvvIxjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICByZWFkb25seSBpdGVtU2l6ZSA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBFeGNlZWQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIHZpc2libGUgd2luZG93IGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWluQnVmZmVyUHggPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDEwMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riy5p+T5paw5pWw5o2u57yT5Yay5Yy655qE5YOP57Sg77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIFJlbmRlciB0aGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1heEJ1ZmZlclB4ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPigyMDAsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICByZWFkb25seSBhZGFwdGlvbkhlaWdodCA9IGlucHV0PG51bWJlciB8IG51bGwsIFhOdW1iZXI+KG51bGwsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZG9jUGVyY2VudCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMSwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f6auY5a69XHJcbiAgICogQGVuX1VTIEhlaWdodCBhbmQgd2lkdGggb2Ygcm9sbGluZyBhcmVhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2Nyb2xsID0gaW5wdXQ8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva7op4TliJlcclxuICAgKiBAZW5fVVMgQ2VsbCBjb25maWcgcnVsZXNcclxuICAgKi9cclxuICByZWFkb25seSBjZWxsQ29uZmlnID0gaW5wdXQ8WFRhYmxlQ2VsbENvbmZpZ1J1bGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOadoeS7tuagt+W8j1xyXG4gICAqIEBlbl9VUyBSb3cgY29uZGl0aW9uIGNsYXNzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93Q2xhc3MgPSBpbnB1dDwocm93OiBYVGFibGVSb3csIGluZGV4OiBudW1iZXIpID0+IHsgW2NsYXNzTmFtZTogc3RyaW5nXTogYm9vbGVhbiB9PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzkuIvnmoTlsYLnuqdcclxuICAgKiBAZW5fVVMgVGhlIGxldmVsIHVuZGVyIHRoZSB0cmVlIHRhYmxlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbGV2ZWwgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDAsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9ouihqOagvOWxleW8gOaJgOacieiKgueCuVxyXG4gICAqIEBlbl9VUyBUcmVlIHRhYmxlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kZWRBbGwgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZXlvIDlhoXlrrlcclxuICAgKiBAZW5fVVMgQ3VzdG9taXplZCBleHBhbnNpb24gY29udGVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM54K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIFJvdyBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0NsaWNrID0gb3V0cHV0PFhUYWJsZVJvdz4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEZvb3RcclxuICogQHNlbGVjdG9yIHgtdGFibGUtZm9vdFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUZvb3RQcmVmaXggPSAneC10YWJsZS1mb290JztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBGb290IFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6IGAke1hUYWJsZUZvb3RQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVGb290UHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzpobXlsL5cclxuICAgKiBAZW5fVVMgVGFibGUgZm9vdGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZm9vdGVyID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajlpLTlkozooYzpq5jvvIzljZXkvY0gcHhcclxuICAgKiBAZW5fVVMgSGVhZGVyIGFuZCByb3cgaGVpZ2h0LCB1bml0IHB4XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { XToBoolean, XToNumber, XToCssPixelValue } from '@ng-nest/ui/core';
2
- import { Component, input, output, model } from '@angular/core';
2
+ import { Component, input, output } from '@angular/core';
3
3
  import { XFormControlFunction } from '@ng-nest/ui/base-form';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
@@ -45,11 +45,6 @@ export class XTextareaProperty extends XFormControlFunction(X_TEXTAREA_CONFIG_NA
45
45
  * @en_US height
46
46
  */
47
47
  this.height = input('6rem', { transform: XToCssPixelValue });
48
- /**
49
- * @zh_CN 输入框点击样式
50
- * @en_US Input pointer
51
- */
52
- this.pointer = input(false, { transform: XToBoolean });
53
48
  /**
54
49
  * @zh_CN 标签
55
50
  * @en_US Label
@@ -80,11 +75,6 @@ export class XTextareaProperty extends XFormControlFunction(X_TEXTAREA_CONFIG_NA
80
75
  * @en_US The direction of the sub-element arrangement under flex layout
81
76
  */
82
77
  this.direction = input('column');
83
- /**
84
- * @zh_CN 输入提示信息
85
- * @en_US Enter prompt information
86
- */
87
- this.placeholder = input('');
88
78
  /**
89
79
  * @zh_CN 禁用
90
80
  * @en_US Disabled
@@ -100,26 +90,6 @@ export class XTextareaProperty extends XFormControlFunction(X_TEXTAREA_CONFIG_NA
100
90
  * @en_US Readonly
101
91
  */
102
92
  this.readonly = input(false, { transform: XToBoolean });
103
- /**
104
- * @zh_CN 值模板
105
- * @en_US Node template
106
- */
107
- this.valueTpl = input();
108
- /**
109
- * @zh_CN 值模板参数
110
- * @en_US Node template
111
- */
112
- this.valueTplContext = input();
113
- /**
114
- * @zh_CN 前置标签
115
- * @en_US Before label
116
- */
117
- this.before = input();
118
- /**
119
- * @zh_CN 后置标签
120
- * @en_US After label
121
- */
122
- this.after = input();
123
93
  /**
124
94
  * @zh_CN 正则验证规则
125
95
  * @en_US Regular verification rules
@@ -130,11 +100,6 @@ export class XTextareaProperty extends XFormControlFunction(X_TEXTAREA_CONFIG_NA
130
100
  * @en_US Verify not pass the prompt text
131
101
  */
132
102
  this.message = input([]);
133
- /**
134
- * @zh_CN 激活状态
135
- * @en_US Activation state
136
- */
137
- this.active = model(false);
138
103
  /**
139
104
  * @zh_CN 输入验证函数
140
105
  * @en_US Enter the verification function
@@ -147,10 +112,10 @@ export class XTextareaProperty extends XFormControlFunction(X_TEXTAREA_CONFIG_NA
147
112
  this.clearEmit = output();
148
113
  }
149
114
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTextareaProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
150
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTextareaProperty, selector: "x-textarea-property", inputs: { clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconLayout: { classPropertyName: "iconLayout", publicName: "iconLayout", isSignal: true, isRequired: false, transformFunction: null }, iconSpin: { classPropertyName: "iconSpin", publicName: "iconSpin", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", clearEmit: "clearEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
115
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XTextareaProperty, selector: "x-textarea-property", inputs: { clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconLayout: { classPropertyName: "iconLayout", publicName: "iconLayout", isSignal: true, isRequired: false, transformFunction: null }, iconSpin: { classPropertyName: "iconSpin", publicName: "iconSpin", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clearEmit: "clearEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
151
116
  }
152
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XTextareaProperty, decorators: [{
153
118
  type: Component,
154
119
  args: [{ selector: `${XTextareaPrefix}-property`, template: '' }]
155
120
  }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90ZXh0YXJlYS90ZXh0YXJlYS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRzFFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBQzVDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBRTFDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDO0lBRG5GOztRQUVFOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzFHOzs7V0FHRztRQUNNLFNBQUksR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQzs7O1dBR0c7UUFDTSxlQUFVLEdBQUcsS0FBSyxDQUEwQixPQUFPLENBQUMsQ0FBQztRQUM5RDs7O1dBR0c7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFvQixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMvRTs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUF5QixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRjs7O1dBR0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFrQixNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGOzs7V0FHRztRQUNlLFlBQU8sR0FBRyxLQUFLLENBQW9CLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGOzs7V0FHRztRQUNlLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUM7OztXQUdHO1FBQ2UsZUFBVSxHQUFHLEtBQUssQ0FBa0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUMzRjs7O1dBR0c7UUFDZSxlQUFVLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO1FBQ3REOzs7V0FHRztRQUNlLFlBQU8sR0FBRyxLQUFLLENBQVcsT0FBTyxDQUFDLENBQUM7UUFDckQ7OztXQUdHO1FBQ2UsVUFBSyxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUNqRDs7O1dBR0c7UUFDZSxjQUFTLEdBQUcsS0FBSyxDQUFhLFFBQVEsQ0FBQyxDQUFDO1FBQzFEOzs7V0FHRztRQUNlLGdCQUFXLEdBQUcsS0FBSyxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUM3RDs7O1dBR0c7UUFDZSxhQUFRLEdBQUcsS0FBSyxDQUFvQixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4Rjs7O1dBR0c7UUFDZSxhQUFRLEdBQUcsS0FBSyxDQUFvQixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4Rjs7O1dBR0c7UUFDZSxhQUFRLEdBQUcsS0FBSyxDQUFvQixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4Rjs7O1dBR0c7UUFDZSxhQUFRLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBQ3ZEOzs7V0FHRztRQUNlLG9CQUFlLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDNUM7OztXQUdHO1FBQ2UsV0FBTSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzlDOzs7V0FHRztRQUNlLFVBQUssR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUM3Qzs7O1dBR0c7UUFDZSxZQUFPLEdBQUcsS0FBSyxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNqRTs7O1dBR0c7UUFDZSxZQUFPLEdBQUcsS0FBSyxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUN6RDs7O1dBR0c7UUFDZSxXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pEOzs7V0FHRztRQUNlLG1CQUFjLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBQ3BFOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxNQUFNLEVBQU8sQ0FBQztLQUNwQztpSUFuSVksaUJBQWlCO3FIQUFqQixpQkFBaUIsMHpHQURrQyxFQUFFOzsyRkFDckQsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhUb0Jvb2xlYW4sIFhUb051bWJlciwgWFRvQ3NzUGl4ZWxWYWx1ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBpbnB1dCwgb3V0cHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRm9ybUNvbnRyb2xGdW5jdGlvbiwgWEZvcm1PcHRpb24gfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgdHlwZSB7IFhOdW1iZXIsIFhCb29sZWFuLCBYUG9zaXRpb25MZWZ0UmlnaHQsIFhEaXJlY3Rpb24sIFhBbGlnbiwgWEp1c3RpZnksIFhUZW1wbGF0ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRleHRhcmVhXHJcbiAqIEBzZWxlY3RvciB4LXRleHRhcmVhXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRleHRhcmVhUHJlZml4ID0gJ3gtdGV4dGFyZWEnO1xyXG5jb25zdCBYX1RFWFRBUkVBX0NPTkZJR19OQU1FID0gJ3RleHRhcmVhJztcclxuXHJcbi8qKlxyXG4gKiBUZXh0YXJlYSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGV4dGFyZWFQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGV4dGFyZWFQcm9wZXJ0eSBleHRlbmRzIFhGb3JtQ29udHJvbEZ1bmN0aW9uKFhfVEVYVEFSRUFfQ09ORklHX05BTUUpIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNsZWFyYWJsZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uY2xlYXJhYmxlID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCHXHJcbiAgICogQGVuX1VTIEljb25cclxuICAgKi9cclxuICByZWFkb25seSBpY29uID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIfluIPlsYDmlrnlvI9cclxuICAgKiBAZW5fVVMgSWNvbiBsYXlvdXRcclxuICAgKi9cclxuICByZWFkb25seSBpY29uTGF5b3V0ID0gaW5wdXQ8WFRleHRhcmVhSWNvbkxheW91dFR5cGU+KCdyaWdodCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIfliqjnlLtcclxuICAgKiBAZW5fVVMgSWNvbiBhbmltYXRpb25cclxuICAgKi9cclxuICByZWFkb25seSBpY29uU3BpbiA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeacgOWkp+mVv+W6plxyXG4gICAqIEBlbl9VUyBFbnRlciB0aGUgbWF4aW11bSBsZW5ndGhcclxuICAgKi9cclxuICByZWFkb25seSBtYXhsZW5ndGggPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqZcclxuICAgKiBAZW5fVVMgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPignNnJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXmoYbngrnlh7vmoLflvI9cclxuICAgKiBAZW5fVVMgSW5wdXQgcG9pbnRlclxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHBvaW50ZXIgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb5cclxuICAgKiBAZW5fVVMgTGFiZWxcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb7lrr3luqZcclxuICAgKiBAZW5fVVMgTGFiZWwgd2lkdGhcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSBsYWJlbFdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPignJywgeyB0cmFuc2Zvcm06IFhUb0Nzc1BpeGVsVmFsdWUgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+etvuaWh+Wtl+Wvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBMYWJlbCB0ZXh0IGFsaWdubWVudCBtZXRob2RcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSBsYWJlbEFsaWduID0gaW5wdXQ8WEFsaWduPignc3RhcnQnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04gZmxleCDluIPlsYDkuIvnmoTlrZDlhYPntKDmsLTlubPmjpLliJfmlrnlvI9cclxuICAgKiBAZW5fVVMgVGhlIGxldmVsIG9mIHN1Yi1lbGVtZW50IGxldmVsIGFycmFuZ2VtZW50IHVuZGVyIGZsZXggbGF5b3V0XHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkganVzdGlmeSA9IGlucHV0PFhKdXN0aWZ5Pignc3RhcnQnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04gZmxleCDluIPlsYDkuIvnmoTlrZDlhYPntKDlnoLnm7TmjpLliJfmlrnlvI9cclxuICAgKiBAZW5fVVMgc3ViLWVsZW1lbnQgdmVydGljYWwgYXJyYW5nZW1lbnQgbWV0aG9kIHVuZGVyIGZsZXggbGF5b3V0XHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgYWxpZ24gPSBpbnB1dDxYQWxpZ24+KCdzdGFydCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBmbGV4IOW4g+WxgOS4i+eahOWtkOWFg+e0oOaOkuWIl+aWueWQkVxyXG4gICAqIEBlbl9VUyBUaGUgZGlyZWN0aW9uIG9mIHRoZSBzdWItZWxlbWVudCBhcnJhbmdlbWVudCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGRpcmVjdGlvbiA9IGlucHV0PFhEaXJlY3Rpb24+KCdjb2x1bW4nKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl5o+Q56S65L+h5oGvXHJcbiAgICogQGVuX1VTIEVudGVyIHByb21wdCBpbmZvcm1hdGlvblxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55SoXHJcbiAgICogQGVuX1VTIERpc2FibGVkXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv4XloatcclxuICAgKiBAZW5fVVMgUmVxdWlyZWRcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPquivu1xyXG4gICAqIEBlbl9VUyBSZWFkb25seVxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC85qih5p2/XHJcbiAgICogQGVuX1VTIE5vZGUgdGVtcGxhdGVcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRwbCA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWAvOaooeadv+WPguaVsFxyXG4gICAqIEBlbl9VUyBOb2RlIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcGxDb250ZXh0ID0gaW5wdXQoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YmN572u5qCH562+XHJcbiAgICogQGVuX1VTIEJlZm9yZSBsYWJlbFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGJlZm9yZSA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCO572u5qCH562+XHJcbiAgICogQGVuX1VTIEFmdGVyIGxhYmVsXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgYWZ0ZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WImemqjOivgeinhOWImVxyXG4gICAqIEBlbl9VUyBSZWd1bGFyIHZlcmlmaWNhdGlvbiBydWxlc1xyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHBhdHRlcm4gPSBpbnB1dDxSZWdFeHAgfCBSZWdFeHBbXSB8IGFueT4obnVsbCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmqjOivgeS4jemAmui/h+aPkOekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBWZXJpZnkgbm90IHBhc3MgdGhlIHByb21wdCB0ZXh0XHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbWVzc2FnZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa/gOa0u+eKtuaAgVxyXG4gICAqIEBlbl9VUyBBY3RpdmF0aW9uIHN0YXRlXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgYWN0aXZlID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXpqozor4Hlh73mlbBcclxuICAgKiBAZW5fVVMgRW50ZXIgdGhlIHZlcmlmaWNhdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGlucHV0VmFsaWRhdG9yID0gaW5wdXQ8KHZhbHVlOiBhbnkpID0+IGJvb2xlYW4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICByZWFkb25seSBjbGVhckVtaXQgPSBvdXRwdXQ8YW55PigpO1xyXG59XHJcblxyXG4vKipcclxuICogVGV4dGFyZWEgT3B0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUZXh0YXJlYU9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIGNsZWFyYWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvuagh1xyXG4gICAqIEBlbl9VUyBJY29uXHJcbiAgICovXHJcbiAgaWNvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCH5biD5bGA5pa55byPXHJcbiAgICogQGVuX1VTIEljb24gbGF5b3V0XHJcbiAgICovXHJcbiAgaWNvbkxheW91dD86IFhUZXh0YXJlYUljb25MYXlvdXRUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIfliqjnlLtcclxuICAgKiBAZW5fVVMgSWNvbiBhbmltYXRpb25cclxuICAgKi9cclxuICBpY29uU3Bpbj86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeacgOWkp+mVv+W6plxyXG4gICAqIEBlbl9VUyBFbnRlciB0aGUgbWF4aW11bSBsZW5ndGhcclxuICAgKi9cclxuICBtYXhsZW5ndGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6plxyXG4gICAqIEBlbl9VUyBoZWlnaHRcclxuICAgKi9cclxuICBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBjbGVhckVtaXQ/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl5qGG54K55Ye75qC35byPXHJcbiAgICogQGVuX1VTIElucHV0IHBvaW50ZXJcclxuICAgKi9cclxuICBwb2ludGVyPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+XHJcbiAgICogQGVuX1VTIExhYmVsXHJcbiAgICovXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+etvuWuveW6plxyXG4gICAqIEBlbl9VUyBMYWJlbCB3aWR0aFxyXG4gICAqL1xyXG4gIGxhYmVsV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+etvuaWh+Wtl+Wvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBMYWJlbCB0ZXh0IGFsaWdubWVudCBtZXRob2RcclxuICAgKi9cclxuICBsYWJlbEFsaWduPzogWEFsaWduO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBmbGV4IOW4g+WxgOS4i+eahOWtkOWFg+e0oOawtOW5s+aOkuWIl+aWueW8j1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgb2Ygc3ViLWVsZW1lbnQgbGV2ZWwgYXJyYW5nZW1lbnQgdW5kZXIgZmxleCBsYXlvdXRcclxuICAgKi9cclxuICBqdXN0aWZ5PzogWEp1c3RpZnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5LiL55qE5a2Q5YWD57Sg5Z6C55u05o6S5YiX5pa55byPXHJcbiAgICogQGVuX1VTIHN1Yi1lbGVtZW50IHZlcnRpY2FsIGFycmFuZ2VtZW50IG1ldGhvZCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIGFsaWduPzogWEFsaWduO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBmbGV4IOW4g+WxgOS4i+eahOWtkOWFg+e0oOaOkuWIl+aWueWQkVxyXG4gICAqIEBlbl9VUyBUaGUgZGlyZWN0aW9uIG9mIHRoZSBzdWItZWxlbWVudCBhcnJhbmdlbWVudCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIGRpcmVjdGlvbj86IFhEaXJlY3Rpb247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeaPkOekuuS/oeaBr1xyXG4gICAqIEBlbl9VUyBFbnRlciBwcm9tcHQgaW5mb3JtYXRpb25cclxuICAgKi9cclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55SoXHJcbiAgICogQGVuX1VTIERpc2FibGVkXHJcbiAgICovXHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv4XloatcclxuICAgKiBAZW5fVVMgUmVxdWlyZWRcclxuICAgKi9cclxuICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPquivu1xyXG4gICAqIEBlbl9VUyBSZWFkb25seVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC85qih5p2/XHJcbiAgICogQGVuX1VTIE5vZGUgdGVtcGxhdGVcclxuICAgKi9cclxuICB2YWx1ZVRwbD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWAvOaooeadv+WPguaVsFxyXG4gICAqIEBlbl9VUyBOb2RlIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgdmFsdWVUcGxDb250ZXh0PzogYW55O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliY3nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQmVmb3JlIGxhYmVsXHJcbiAgICovXHJcbiAgYmVmb3JlPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI7nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQWZ0ZXIgbGFiZWxcclxuICAgKi9cclxuICBhZnRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5YiZ6aqM6K+B6KeE5YiZXHJcbiAgICogQGVuX1VTIFJlZ3VsYXIgdmVyaWZpY2F0aW9uIHJ1bGVzXHJcbiAgICovXHJcbiAgcGF0dGVybj86IFJlZ0V4cCB8IFJlZ0V4cFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpqozor4HkuI3pgJrov4fmj5DnpLrmloflrZdcclxuICAgKiBAZW5fVVMgVmVyaWZ5IG5vdCBwYXNzIHRoZSBwcm9tcHQgdGV4dFxyXG4gICAqL1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5r+A5rS754q25oCBXHJcbiAgICogQGVuX1VTIEFjdGl2YXRpb24gc3RhdGVcclxuICAgKi9cclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXpqozor4Hlh73mlbBcclxuICAgKiBAZW5fVVMgRW50ZXIgdGhlIHZlcmlmaWNhdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGlucHV0VmFsaWRhdG9yPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Zu+5qCH5biD5bGA5pa55byP77yM5oyH5Zyo6L6T5YWl5qGG5Lit55qE5L2N572uXHJcbiAqIEBlbl9VUyBJY29uIGxheW91dCwgcmVmZXJzIHRvIHRoZSBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgYm94XHJcbiAqIEB2YWx1ZSBcImxlZnRcIiDpnaDlt6ZcclxuICogQHZhbHVlIFwicmlnaHRcIiDpnaDlj7NcclxuICovXHJcbmV4cG9ydCB0eXBlIFhUZXh0YXJlYUljb25MYXlvdXRUeXBlID0gWFBvc2l0aW9uTGVmdFJpZ2h0O1xyXG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90ZXh0YXJlYS90ZXh0YXJlYS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHMUU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUM7QUFDNUMsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUM7QUFFMUM7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CLENBQUMsc0JBQXNCLENBQUM7SUFEbkY7O1FBRUU7OztXQUdHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBb0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLElBQUksS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDMUc7OztXQUdHO1FBQ00sU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDOzs7V0FHRztRQUNNLGVBQVUsR0FBRyxLQUFLLENBQTBCLE9BQU8sQ0FBQyxDQUFDO1FBQzlEOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQW9CLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQy9FOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQXlCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25GOzs7V0FHRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQWtCLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDbEY7OztXQUdHO1FBQ2UsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1Qzs7O1dBR0c7UUFDZSxlQUFVLEdBQUcsS0FBSyxDQUFrQixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzNGOzs7V0FHRztRQUNlLGVBQVUsR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDdEQ7OztXQUdHO1FBQ2UsWUFBTyxHQUFHLEtBQUssQ0FBVyxPQUFPLENBQUMsQ0FBQztRQUNyRDs7O1dBR0c7UUFDZSxVQUFLLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO1FBQ2pEOzs7V0FHRztRQUNlLGNBQVMsR0FBRyxLQUFLLENBQWEsUUFBUSxDQUFDLENBQUM7UUFDMUQ7OztXQUdHO1FBQ2UsYUFBUSxHQUFHLEtBQUssQ0FBb0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEY7OztXQUdHO1FBQ2UsYUFBUSxHQUFHLEtBQUssQ0FBb0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEY7OztXQUdHO1FBQ2UsYUFBUSxHQUFHLEtBQUssQ0FBb0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEY7OztXQUdHO1FBQ2UsWUFBTyxHQUFHLEtBQUssQ0FBMEIsSUFBSSxDQUFDLENBQUM7UUFDakU7OztXQUdHO1FBQ2UsWUFBTyxHQUFHLEtBQUssQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDekQ7OztXQUdHO1FBQ2UsbUJBQWMsR0FBRyxLQUFLLEVBQTJCLENBQUM7UUFDcEU7OztXQUdHO1FBQ00sY0FBUyxHQUFHLE1BQU0sRUFBTyxDQUFDO0tBQ3BDO2lJQWhHWSxpQkFBaUI7cUhBQWpCLGlCQUFpQixxNUVBRGtDLEVBQUU7OzJGQUNyRCxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWFRvQm9vbGVhbiwgWFRvTnVtYmVyLCBYVG9Dc3NQaXhlbFZhbHVlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEZvcm1Db250cm9sRnVuY3Rpb24sIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHR5cGUgeyBYTnVtYmVyLCBYQm9vbGVhbiwgWFBvc2l0aW9uTGVmdFJpZ2h0LCBYRGlyZWN0aW9uLCBYQWxpZ24sIFhKdXN0aWZ5LCBYVGVtcGxhdGUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBUZXh0YXJlYVxyXG4gKiBAc2VsZWN0b3IgeC10ZXh0YXJlYVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUZXh0YXJlYVByZWZpeCA9ICd4LXRleHRhcmVhJztcclxuY29uc3QgWF9URVhUQVJFQV9DT05GSUdfTkFNRSA9ICd0ZXh0YXJlYSc7XHJcblxyXG4vKipcclxuICogVGV4dGFyZWEgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRleHRhcmVhUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRleHRhcmVhUHJvcGVydHkgZXh0ZW5kcyBYRm9ybUNvbnRyb2xGdW5jdGlvbihYX1RFWFRBUkVBX0NPTkZJR19OQU1FKSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICByZWFkb25seSBjbGVhcmFibGUgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmNsZWFyYWJsZSA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvuagh1xyXG4gICAqIEBlbl9VUyBJY29uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaWNvbiA9IGlucHV0PHN0cmluZz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCH5biD5bGA5pa55byPXHJcbiAgICogQGVuX1VTIEljb24gbGF5b3V0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaWNvbkxheW91dCA9IGlucHV0PFhUZXh0YXJlYUljb25MYXlvdXRUeXBlPigncmlnaHQnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCH5Yqo55S7XHJcbiAgICogQGVuX1VTIEljb24gYW5pbWF0aW9uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaWNvblNwaW4gPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXmnIDlpKfplb/luqZcclxuICAgKiBAZW5fVVMgRW50ZXIgdGhlIG1heGltdW0gbGVuZ3RoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWF4bGVuZ3RoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqmXHJcbiAgICogQGVuX1VTIGhlaWdodFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhlaWdodCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4oJzZyZW0nLCB7IHRyYW5zZm9ybTogWFRvQ3NzUGl4ZWxWYWx1ZSB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+XHJcbiAgICogQGVuX1VTIExhYmVsXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+5a695bqmXHJcbiAgICogQGVuX1VTIExhYmVsIHdpZHRoXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbGFiZWxXaWR0aCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4oJycsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb7mloflrZflr7npvZDmlrnlvI9cclxuICAgKiBAZW5fVVMgTGFiZWwgdGV4dCBhbGlnbm1lbnQgbWV0aG9kXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbGFiZWxBbGlnbiA9IGlucHV0PFhBbGlnbj4oJ3N0YXJ0Jyk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5LiL55qE5a2Q5YWD57Sg5rC05bmz5o6S5YiX5pa55byPXHJcbiAgICogQGVuX1VTIFRoZSBsZXZlbCBvZiBzdWItZWxlbWVudCBsZXZlbCBhcnJhbmdlbWVudCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGp1c3RpZnkgPSBpbnB1dDxYSnVzdGlmeT4oJ3N0YXJ0Jyk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5LiL55qE5a2Q5YWD57Sg5Z6C55u05o6S5YiX5pa55byPXHJcbiAgICogQGVuX1VTIHN1Yi1lbGVtZW50IHZlcnRpY2FsIGFycmFuZ2VtZW50IG1ldGhvZCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8WEFsaWduPignc3RhcnQnKTtcclxuICAvKipcclxuICAgKiBAemhfQ04gZmxleCDluIPlsYDkuIvnmoTlrZDlhYPntKDmjpLliJfmlrnlkJFcclxuICAgKiBAZW5fVVMgVGhlIGRpcmVjdGlvbiBvZiB0aGUgc3ViLWVsZW1lbnQgYXJyYW5nZW1lbnQgdW5kZXIgZmxleCBsYXlvdXRcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSBkaXJlY3Rpb24gPSBpbnB1dDxYRGlyZWN0aW9uPignY29sdW1uJyk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+F5aGrXHJcbiAgICogQGVuX1VTIFJlcXVpcmVkXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcmVxdWlyZWQgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj6ror7tcclxuICAgKiBAZW5fVVMgUmVhZG9ubHlcclxuICAgKi9cclxuICBvdmVycmlkZSByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WImemqjOivgeinhOWImVxyXG4gICAqIEBlbl9VUyBSZWd1bGFyIHZlcmlmaWNhdGlvbiBydWxlc1xyXG4gICAqL1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHBhdHRlcm4gPSBpbnB1dDxSZWdFeHAgfCBSZWdFeHBbXSB8IGFueT4obnVsbCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmqjOivgeS4jemAmui/h+aPkOekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBWZXJpZnkgbm90IHBhc3MgdGhlIHByb21wdCB0ZXh0XHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbWVzc2FnZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpemqjOivgeWHveaVsFxyXG4gICAqIEBlbl9VUyBFbnRlciB0aGUgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgaW5wdXRWYWxpZGF0b3IgPSBpbnB1dDwodmFsdWU6IGFueSkgPT4gYm9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvbiBldmVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNsZWFyRW1pdCA9IG91dHB1dDxhbnk+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXh0YXJlYSBPcHRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRleHRhcmVhT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgY2xlYXJhYmxlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCHXHJcbiAgICogQGVuX1VTIEljb25cclxuICAgKi9cclxuICBpY29uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIfluIPlsYDmlrnlvI9cclxuICAgKiBAZW5fVVMgSWNvbiBsYXlvdXRcclxuICAgKi9cclxuICBpY29uTGF5b3V0PzogWFRleHRhcmVhSWNvbkxheW91dFR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvuagh+WKqOeUu1xyXG4gICAqIEBlbl9VUyBJY29uIGFuaW1hdGlvblxyXG4gICAqL1xyXG4gIGljb25TcGluPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl5pyA5aSn6ZW/5bqmXHJcbiAgICogQGVuX1VTIEVudGVyIHRoZSBtYXhpbXVtIGxlbmd0aFxyXG4gICAqL1xyXG4gIG1heGxlbmd0aD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqmXHJcbiAgICogQGVuX1VTIGhlaWdodFxyXG4gICAqL1xyXG4gIGhlaWdodD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvbiBldmVudFxyXG4gICAqL1xyXG4gIGNsZWFyRW1pdD86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXmoYbngrnlh7vmoLflvI9cclxuICAgKiBAZW5fVVMgSW5wdXQgcG9pbnRlclxyXG4gICAqL1xyXG4gIHBvaW50ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb5cclxuICAgKiBAZW5fVVMgTGFiZWxcclxuICAgKi9cclxuICBsYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+5a695bqmXHJcbiAgICogQGVuX1VTIExhYmVsIHdpZHRoXHJcbiAgICovXHJcbiAgbGFiZWxXaWR0aD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+5paH5a2X5a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIExhYmVsIHRleHQgYWxpZ25tZW50IG1ldGhvZFxyXG4gICAqL1xyXG4gIGxhYmVsQWxpZ24/OiBYQWxpZ247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5LiL55qE5a2Q5YWD57Sg5rC05bmz5o6S5YiX5pa55byPXHJcbiAgICogQGVuX1VTIFRoZSBsZXZlbCBvZiBzdWItZWxlbWVudCBsZXZlbCBhcnJhbmdlbWVudCB1bmRlciBmbGV4IGxheW91dFxyXG4gICAqL1xyXG4gIGp1c3RpZnk/OiBYSnVzdGlmeTtcclxuICAvKipcclxuICAgKiBAemhfQ04gZmxleCDluIPlsYDkuIvnmoTlrZDlhYPntKDlnoLnm7TmjpLliJfmlrnlvI9cclxuICAgKiBAZW5fVVMgc3ViLWVsZW1lbnQgdmVydGljYWwgYXJyYW5nZW1lbnQgbWV0aG9kIHVuZGVyIGZsZXggbGF5b3V0XHJcbiAgICovXHJcbiAgYWxpZ24/OiBYQWxpZ247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5LiL55qE5a2Q5YWD57Sg5o6S5YiX5pa55ZCRXHJcbiAgICogQGVuX1VTIFRoZSBkaXJlY3Rpb24gb2YgdGhlIHN1Yi1lbGVtZW50IGFycmFuZ2VtZW50IHVuZGVyIGZsZXggbGF5b3V0XHJcbiAgICovXHJcbiAgZGlyZWN0aW9uPzogWERpcmVjdGlvbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl5o+Q56S65L+h5oGvXHJcbiAgICogQGVuX1VTIEVudGVyIHByb21wdCBpbmZvcm1hdGlvblxyXG4gICAqL1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKhcclxuICAgKiBAZW5fVVMgRGlzYWJsZWRcclxuICAgKi9cclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW/heWhq1xyXG4gICAqIEBlbl9VUyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+q6K+7XHJcbiAgICogQGVuX1VTIFJlYWRvbmx5XHJcbiAgICovXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlgLzmqKHmnb9cclxuICAgKiBAZW5fVVMgTm9kZSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHZhbHVlVHBsPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC85qih5p2/5Y+C5pWwXHJcbiAgICogQGVuX1VTIE5vZGUgdGVtcGxhdGVcclxuICAgKi9cclxuICB2YWx1ZVRwbENvbnRleHQ/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWJjee9ruagh+etvlxyXG4gICAqIEBlbl9VUyBCZWZvcmUgbGFiZWxcclxuICAgKi9cclxuICBiZWZvcmU/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWQjue9ruagh+etvlxyXG4gICAqIEBlbl9VUyBBZnRlciBsYWJlbFxyXG4gICAqL1xyXG4gIGFmdGVyPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPliJnpqozor4Hop4TliJlcclxuICAgKiBAZW5fVVMgUmVndWxhciB2ZXJpZmljYXRpb24gcnVsZXNcclxuICAgKi9cclxuICBwYXR0ZXJuPzogUmVnRXhwIHwgUmVnRXhwW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmqjOivgeS4jemAmui/h+aPkOekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBWZXJpZnkgbm90IHBhc3MgdGhlIHByb21wdCB0ZXh0XHJcbiAgICovXHJcbiAgbWVzc2FnZT86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmv4DmtLvnirbmgIFcclxuICAgKiBAZW5fVVMgQWN0aXZhdGlvbiBzdGF0ZVxyXG4gICAqL1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpemqjOivgeWHveaVsFxyXG4gICAqIEBlbl9VUyBFbnRlciB0aGUgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgaW5wdXRWYWxpZGF0b3I/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlm77moIfluIPlsYDmlrnlvI/vvIzmjIflnKjovpPlhaXmoYbkuK3nmoTkvY3nva5cclxuICogQGVuX1VTIEljb24gbGF5b3V0LCByZWZlcnMgdG8gdGhlIHBvc2l0aW9uIGluIHRoZSBpbnB1dCBib3hcclxuICogQHZhbHVlIFwibGVmdFwiIOmdoOW3plxyXG4gKiBAdmFsdWUgXCJyaWdodFwiIOmdoOWPs1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRleHRhcmVhSWNvbkxheW91dFR5cGUgPSBYUG9zaXRpb25MZWZ0UmlnaHQ7XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, inject, input, model, output } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, inject, input, model, output, signal, DestroyRef } from '@angular/core';
2
2
  import { XTimePickerPortalPrefix } from './time-picker.property';
3
3
  import { XConnectBaseAnimation } from '@ng-nest/ui/core';
4
4
  import { map } from 'rxjs/operators';
@@ -25,15 +25,26 @@ export class XTimePickerPortalComponent {
25
25
  this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.timePicker)), {
26
26
  initialValue: zh_CN.timePicker
27
27
  });
28
+ this.destroy = signal(false);
29
+ this.destroyRef = inject(DestroyRef);
28
30
  }
29
31
  get getPlacement() {
30
32
  return this.placement();
31
33
  }
32
- done(event) {
33
- event.toState !== 'void' && this.animating.emit(false);
34
+ done() {
35
+ if (this.destroy())
36
+ return;
37
+ this.animating.emit(false);
34
38
  }
35
- start(event) {
36
- event.toState !== 'void' && this.animating.emit(true);
39
+ start() {
40
+ if (this.destroy())
41
+ return;
42
+ this.animating.emit(true);
43
+ }
44
+ ngOnInit() {
45
+ this.destroyRef.onDestroy(() => {
46
+ this.destroy.set(true);
47
+ });
37
48
  }
38
49
  stopPropagation(event) {
39
50
  event.stopPropagation();
@@ -64,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
64
75
  type: HostListener,
65
76
  args: ['@x-connect-base-animation.start', ['$event']]
66
77
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCx1QkFBdUIsRUFHeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQW1CLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFZdEQsTUFBTSxPQUFPLDBCQUEwQjtJQVZ2QztRQVdVLFNBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFVcEMsVUFBSyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxLQUFLLENBQWtCLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDeEMsYUFBUSxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDOUIsYUFBUSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzNCLGVBQVUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDN0IsV0FBTSxHQUFHLEtBQUssQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBRyxLQUFLLEVBQTJCLENBQUM7UUFDaEQsY0FBUyxHQUFHLE1BQU0sRUFBVyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUMzQixXQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUE2QixDQUFDLENBQUMsRUFBRTtZQUMxRixZQUFZLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO0tBaUJKO0lBeENDLElBQXFELFlBQVk7UUFDL0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUMyRCxJQUFJLENBQUMsS0FBMEI7UUFDekYsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUM0RCxLQUFLLENBQUMsS0FBMEI7UUFDM0YsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQWlCRCxlQUFlLENBQUMsS0FBWTtRQUMxQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF1QjtRQUNsQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7aUlBekNVLDBCQUEwQjtxSEFBMUIsMEJBQTBCLGdvRENuQ3ZDLG00QkF1QkEsZ2ZES1kseUJBQXlCLDJOQUFFLGdCQUFnQix1Q0FLekMsQ0FBQyxxQkFBcUIsQ0FBQzs7MkZBRXhCLDBCQUEwQjtrQkFWdEMsU0FBUzsrQkFDRSxHQUFHLHVCQUF1QixFQUFFLGNBQzFCLElBQUksV0FDUCxDQUFDLHlCQUF5QixFQUFFLGdCQUFnQixDQUFDLGlCQUd2QyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OEJBSWtCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUdHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG1vZGVsLFxyXG4gIG91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFhUaW1lUGlja2VyRGlzYWJsZWRUaW1lLFxyXG4gIFhUaW1lUGlja2VyUG9ydGFsUHJlZml4LFxyXG4gIFhUaW1lUGlja2VyUHJlc2V0LFxyXG4gIFhUaW1lUGlja2VyVHlwZVxyXG59IGZyb20gJy4vdGltZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRpbWVQaWNrZXIsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLWZyYW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGltZVBpY2tlclBvcnRhbFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1hUaW1lUGlja2VyRnJhbWVDb21wb25lbnQsIFhCdXR0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUaW1lUGlja2VyUG9ydGFsQ29tcG9uZW50IHtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgZ2V0IGdldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBsYWNlbWVudCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICBldmVudC50b1N0YXRlICE9PSAndm9pZCcgJiYgdGhpcy5hbmltYXRpbmcuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydChldmVudDogeyB0b1N0YXRlOiBzdHJpbmcgfSkge1xyXG4gICAgZXZlbnQudG9TdGF0ZSAhPT0gJ3ZvaWQnICYmIHRoaXMuYW5pbWF0aW5nLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG4gIHZhbHVlID0gbW9kZWw8YW55PigpO1xyXG4gIHR5cGUgPSBpbnB1dDxYVGltZVBpY2tlclR5cGU+KCd0aW1lJyk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBvc2l0aW9uVG9wQm90dG9tPigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIHVzZTEySG91cnMgPSBpbnB1dDxib29sZWFuPigpO1xyXG4gIGhvdXJTdGVwID0gaW5wdXQ8bnVtYmVyPigpO1xyXG4gIG1pbnV0ZVN0ZXAgPSBpbnB1dDxudW1iZXI+KCk7XHJcbiAgc2Vjb25kU3RlcCA9IGlucHV0PG51bWJlcj4oKTtcclxuICBwcmVzZXQgPSBpbnB1dDxYVGltZVBpY2tlclByZXNldFtdPihbXSk7XHJcbiAgZGlzYWJsZWRUaW1lID0gaW5wdXQ8WFRpbWVQaWNrZXJEaXNhYmxlZFRpbWU+KCk7XHJcbiAgYW5pbWF0aW5nID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgbm9kZUNsaWNrID0gb3V0cHV0PERhdGU+KCk7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC50aW1lUGlja2VyIGFzIFhJMThuVGltZVBpY2tlcikpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLnRpbWVQaWNrZXJcclxuICB9KTtcclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvblByZXNldEZ1bmMoaXRlbTogWFRpbWVQaWNrZXJQcmVzZXQpIHtcclxuICAgIGxldCBkYXRlID0gaXRlbS5mdW5jKCk7XHJcbiAgICB0aGlzLnZhbHVlLnNldChkYXRlKTtcclxuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBvbk5vdygpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMudmFsdWUuc2V0KGRhdGUpO1xyXG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdChkYXRlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItcG9ydGFsXCIgKGNsaWNrKT1cImlucHV0Q29tKCk/LmlucHV0Rm9jdXMoJ2ZvY3VzJyk7IHN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgIFt0eXBlXT1cInR5cGUoKVwiXHJcbiAgICBbdmFsdWVdPVwidmFsdWUoKVwiXHJcbiAgICBbdXNlMTJIb3Vyc109XCJ1c2UxMkhvdXJzKCkhXCJcclxuICAgIFtob3VyU3RlcF09XCJob3VyU3RlcCgpIVwiXHJcbiAgICBbbWludXRlU3RlcF09XCJtaW51dGVTdGVwKCkhXCJcclxuICAgIFtzZWNvbmRTdGVwXT1cInNlY29uZFN0ZXAoKSFcIlxyXG4gICAgW2Rpc2FibGVkVGltZV09XCJkaXNhYmxlZFRpbWUoKVwiXHJcbiAgICAobm9kZUVtaXQpPVwibm9kZUNsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgPjwveC10aW1lLXBpY2tlci1mcmFtZT5cclxuICBAaWYgKHByZXNldCgpKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwieC10aW1lLXBpY2tlci1wb3J0YWwtcHJlc2V0XCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgcHJlc2V0KCk7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICBAaWYgKCEhaXRlbS5mdW5jKSB7XHJcbiAgICAgICAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiAoY2xpY2spPVwib25QcmVzZXRGdW5jKGl0ZW0pXCI+e3sgaXRlbS5sYWJlbCB9fTwveC1idXR0b24+XHJcbiAgICAgICAgfSBAZWxzZSBpZiAoIWl0ZW0uZnVuYyAmJiBpdGVtLmlkID09PSAnbm93Jykge1xyXG4gICAgICAgICAgPHgtYnV0dG9uIHR5cGU9XCJ0ZXh0XCIgKGNsaWNrKT1cIm9uTm93KClcIj57eyBsb2NhbGUoKS5ub3cgfX08L3gtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLHVCQUF1QixFQUd4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBbUIsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVl0RCxNQUFNLE9BQU8sMEJBQTBCO0lBVnZDO1FBV1UsU0FBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQVlwQyxVQUFLLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDckIsU0FBSSxHQUFHLEtBQUssQ0FBa0IsTUFBTSxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLEtBQUssRUFBc0IsQ0FB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QVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbiAgb3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBEZXN0cm95UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWFRpbWVQaWNrZXJEaXNhYmxlZFRpbWUsXHJcbiAgWFRpbWVQaWNrZXJQb3J0YWxQcmVmaXgsXHJcbiAgWFRpbWVQaWNrZXJQcmVzZXQsXHJcbiAgWFRpbWVQaWNrZXJUeXBlXHJcbn0gZnJvbSAnLi90aW1lLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuVGltZVBpY2tlciwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUaW1lUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCwgWEJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRpbWVQaWNrZXJQb3J0YWxDb21wb25lbnQge1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBnZXQgZ2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhY2VtZW50KCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoKSB7XHJcbiAgICBpZiAodGhpcy5kZXN0cm95KCkpIHJldHVybjtcclxuICAgIHRoaXMuYW5pbWF0aW5nLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICBpZiAodGhpcy5kZXN0cm95KCkpIHJldHVybjtcclxuICAgIHRoaXMuYW5pbWF0aW5nLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG4gIHZhbHVlID0gbW9kZWw8YW55PigpO1xyXG4gIHR5cGUgPSBpbnB1dDxYVGltZVBpY2tlclR5cGU+KCd0aW1lJyk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBvc2l0aW9uVG9wQm90dG9tPigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIHVzZTEySG91cnMgPSBpbnB1dDxib29sZWFuPigpO1xyXG4gIGhvdXJTdGVwID0gaW5wdXQ8bnVtYmVyPigpO1xyXG4gIG1pbnV0ZVN0ZXAgPSBpbnB1dDxudW1iZXI+KCk7XHJcbiAgc2Vjb25kU3RlcCA9IGlucHV0PG51bWJlcj4oKTtcclxuICBwcmVzZXQgPSBpbnB1dDxYVGltZVBpY2tlclByZXNldFtdPihbXSk7XHJcbiAgZGlzYWJsZWRUaW1lID0gaW5wdXQ8WFRpbWVQaWNrZXJEaXNhYmxlZFRpbWU+KCk7XHJcbiAgYW5pbWF0aW5nID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgbm9kZUNsaWNrID0gb3V0cHV0PERhdGU+KCk7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC50aW1lUGlja2VyIGFzIFhJMThuVGltZVBpY2tlcikpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLnRpbWVQaWNrZXJcclxuICB9KTtcclxuICBkZXN0cm95ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVzdHJveS5zZXQodHJ1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25QcmVzZXRGdW5jKGl0ZW06IFhUaW1lUGlja2VyUHJlc2V0KSB7XHJcbiAgICBsZXQgZGF0ZSA9IGl0ZW0uZnVuYygpO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQoZGF0ZSk7XHJcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgb25Ob3coKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLnZhbHVlLnNldChkYXRlKTtcclxuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoZGF0ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLXBvcnRhbFwiIChjbGljayk9XCJpbnB1dENvbSgpPy5pbnB1dEZvY3VzKCdmb2N1cycpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gIDx4LXRpbWUtcGlja2VyLWZyYW1lXHJcbiAgICBbdHlwZV09XCJ0eXBlKClcIlxyXG4gICAgW3ZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgW3VzZTEySG91cnNdPVwidXNlMTJIb3VycygpIVwiXHJcbiAgICBbaG91clN0ZXBdPVwiaG91clN0ZXAoKSFcIlxyXG4gICAgW21pbnV0ZVN0ZXBdPVwibWludXRlU3RlcCgpIVwiXHJcbiAgICBbc2Vjb25kU3RlcF09XCJzZWNvbmRTdGVwKCkhXCJcclxuICAgIFtkaXNhYmxlZFRpbWVdPVwiZGlzYWJsZWRUaW1lKClcIlxyXG4gICAgKG5vZGVFbWl0KT1cIm5vZGVDbGljay5lbWl0KCRldmVudClcIlxyXG4gID48L3gtdGltZS1waWNrZXItZnJhbWU+XHJcbiAgQGlmIChwcmVzZXQoKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItcG9ydGFsLXByZXNldFwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIHByZXNldCgpOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgQGlmICghIWl0ZW0uZnVuYykge1xyXG4gICAgICAgICAgPHgtYnV0dG9uIHR5cGU9XCJ0ZXh0XCIgKGNsaWNrKT1cIm9uUHJlc2V0RnVuYyhpdGVtKVwiPnt7IGl0ZW0ubGFiZWwgfX08L3gtYnV0dG9uPlxyXG4gICAgICAgIH0gQGVsc2UgaWYgKCFpdGVtLmZ1bmMgJiYgaXRlbS5pZCA9PT0gJ25vdycpIHtcclxuICAgICAgICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiIChjbGljayk9XCJvbk5vdygpXCI+e3sgbG9jYWxlKCkubm93IH19PC94LWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==