footprintjs 4.16.0 → 4.17.2

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 (188) hide show
  1. package/AGENTS.md +567 -82
  2. package/CLAUDE.md +57 -0
  3. package/README.md +2 -0
  4. package/dist/advanced.js +4 -2
  5. package/dist/detach.js +78 -0
  6. package/dist/esm/advanced.js +2 -1
  7. package/dist/esm/detach.js +57 -0
  8. package/dist/esm/lib/builder/FlowChartBuilder.js +171 -61
  9. package/dist/esm/lib/contract/openapi.js +4 -5
  10. package/dist/esm/lib/contract/schema.js +115 -4
  11. package/dist/esm/lib/decide/decide.js +4 -5
  12. package/dist/esm/lib/decide/evidence.js +3 -2
  13. package/dist/esm/lib/detach/drivers/immediate.js +66 -0
  14. package/dist/esm/lib/detach/drivers/microtaskBatch.js +113 -0
  15. package/dist/esm/lib/detach/drivers/sendBeacon.js +78 -0
  16. package/dist/esm/lib/detach/drivers/setImmediate.js +81 -0
  17. package/dist/esm/lib/detach/drivers/setTimeout.js +69 -0
  18. package/dist/esm/lib/detach/drivers/workerThread.js +117 -0
  19. package/dist/esm/lib/detach/flush.js +91 -0
  20. package/dist/esm/lib/detach/handle.js +134 -0
  21. package/dist/esm/lib/detach/registry.js +97 -0
  22. package/dist/esm/lib/detach/runChild.js +40 -0
  23. package/dist/esm/lib/detach/spawn.js +86 -0
  24. package/dist/esm/lib/detach/types.js +37 -0
  25. package/dist/esm/lib/engine/errors/errorInfo.js +4 -4
  26. package/dist/esm/lib/engine/graph/StageNode.js +2 -2
  27. package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +9 -8
  28. package/dist/esm/lib/engine/handlers/ContinuationResolver.js +12 -9
  29. package/dist/esm/lib/engine/handlers/DeciderHandler.js +7 -8
  30. package/dist/esm/lib/engine/handlers/ExtractorRunner.js +14 -8
  31. package/dist/esm/lib/engine/handlers/NodeResolver.js +5 -3
  32. package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +11 -14
  33. package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -9
  34. package/dist/esm/lib/engine/handlers/StageRunner.js +9 -11
  35. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +13 -12
  36. package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +4 -4
  37. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
  38. package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
  39. package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
  40. package/dist/esm/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
  41. package/dist/esm/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
  42. package/dist/esm/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
  43. package/dist/esm/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
  44. package/dist/esm/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
  45. package/dist/esm/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
  46. package/dist/esm/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
  47. package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
  48. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +97 -71
  49. package/dist/esm/lib/memory/DiagnosticCollector.js +6 -8
  50. package/dist/esm/lib/memory/EventLog.js +5 -3
  51. package/dist/esm/lib/memory/SharedMemory.js +3 -2
  52. package/dist/esm/lib/memory/StageContext.js +44 -14
  53. package/dist/esm/lib/memory/TransactionBuffer.js +9 -8
  54. package/dist/esm/lib/memory/backtrack.js +3 -4
  55. package/dist/esm/lib/memory/commitLogUtils.js +2 -2
  56. package/dist/esm/lib/memory/utils.js +2 -3
  57. package/dist/esm/lib/pause/types.js +33 -14
  58. package/dist/esm/lib/reactive/createTypedScope.js +10 -8
  59. package/dist/esm/lib/reactive/types.js +3 -1
  60. package/dist/esm/lib/recorder/BoundaryStateTracker.js +263 -0
  61. package/dist/esm/lib/recorder/CompositeRecorder.js +3 -1
  62. package/dist/esm/lib/recorder/InOutRecorder.js +5 -6
  63. package/dist/esm/lib/recorder/KeyedRecorder.js +2 -4
  64. package/dist/esm/lib/recorder/QualityRecorder.js +15 -14
  65. package/dist/esm/lib/recorder/SequenceRecorder.js +11 -12
  66. package/dist/esm/lib/recorder/TopologyRecorder.js +36 -40
  67. package/dist/esm/lib/recorder/index.js +2 -1
  68. package/dist/esm/lib/recorder/qualityTrace.js +4 -5
  69. package/dist/esm/lib/runner/ExecutionRuntime.js +20 -4
  70. package/dist/esm/lib/runner/FlowChartExecutor.js +99 -55
  71. package/dist/esm/lib/runner/RunContext.js +5 -3
  72. package/dist/esm/lib/runner/RunnableChart.js +7 -9
  73. package/dist/esm/lib/runner/getSubtreeSnapshot.js +4 -5
  74. package/dist/esm/lib/schema/errors.js +4 -3
  75. package/dist/esm/lib/schema/validate.js +4 -5
  76. package/dist/esm/lib/scope/ScopeFacade.js +52 -35
  77. package/dist/esm/lib/scope/providers/baseStateCompatible.js +9 -9
  78. package/dist/esm/lib/scope/providers/guards.js +2 -2
  79. package/dist/esm/lib/scope/recorders/DebugRecorder.js +9 -7
  80. package/dist/esm/lib/scope/recorders/MetricRecorder.js +10 -8
  81. package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +2 -3
  82. package/dist/esm/lib/scope/state/zod/resolver.js +2 -3
  83. package/dist/esm/lib/scope/state/zod/scopeFactory.js +16 -20
  84. package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +57 -14
  85. package/dist/esm/trace.js +4 -1
  86. package/dist/lib/builder/FlowChartBuilder.js +171 -61
  87. package/dist/lib/contract/openapi.js +4 -5
  88. package/dist/lib/contract/schema.js +115 -4
  89. package/dist/lib/decide/decide.js +4 -5
  90. package/dist/lib/decide/evidence.js +3 -2
  91. package/dist/lib/detach/drivers/immediate.js +70 -0
  92. package/dist/lib/detach/drivers/microtaskBatch.js +117 -0
  93. package/dist/lib/detach/drivers/sendBeacon.js +82 -0
  94. package/dist/lib/detach/drivers/setImmediate.js +85 -0
  95. package/dist/lib/detach/drivers/setTimeout.js +73 -0
  96. package/dist/lib/detach/drivers/workerThread.js +121 -0
  97. package/dist/lib/detach/flush.js +95 -0
  98. package/dist/lib/detach/handle.js +140 -0
  99. package/dist/lib/detach/registry.js +106 -0
  100. package/dist/lib/detach/runChild.js +67 -0
  101. package/dist/lib/detach/spawn.js +92 -0
  102. package/dist/lib/detach/types.js +38 -0
  103. package/dist/lib/engine/errors/errorInfo.js +4 -4
  104. package/dist/lib/engine/graph/StageNode.js +2 -2
  105. package/dist/lib/engine/handlers/ChildrenExecutor.js +9 -8
  106. package/dist/lib/engine/handlers/ContinuationResolver.js +12 -9
  107. package/dist/lib/engine/handlers/DeciderHandler.js +7 -8
  108. package/dist/lib/engine/handlers/ExtractorRunner.js +14 -8
  109. package/dist/lib/engine/handlers/NodeResolver.js +5 -3
  110. package/dist/lib/engine/handlers/RuntimeStructureManager.js +11 -14
  111. package/dist/lib/engine/handlers/SelectorHandler.js +9 -9
  112. package/dist/lib/engine/handlers/StageRunner.js +9 -11
  113. package/dist/lib/engine/handlers/SubflowExecutor.js +13 -12
  114. package/dist/lib/engine/handlers/SubflowInputMapper.js +4 -4
  115. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
  116. package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
  117. package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
  118. package/dist/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
  119. package/dist/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
  120. package/dist/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
  121. package/dist/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
  122. package/dist/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
  123. package/dist/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
  124. package/dist/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
  125. package/dist/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
  126. package/dist/lib/engine/traversal/FlowchartTraverser.js +97 -71
  127. package/dist/lib/memory/DiagnosticCollector.js +6 -8
  128. package/dist/lib/memory/EventLog.js +5 -3
  129. package/dist/lib/memory/SharedMemory.js +3 -2
  130. package/dist/lib/memory/StageContext.js +44 -14
  131. package/dist/lib/memory/TransactionBuffer.js +9 -8
  132. package/dist/lib/memory/backtrack.js +3 -4
  133. package/dist/lib/memory/commitLogUtils.js +2 -2
  134. package/dist/lib/memory/utils.js +2 -3
  135. package/dist/lib/pause/types.js +33 -14
  136. package/dist/lib/reactive/createTypedScope.js +10 -8
  137. package/dist/lib/reactive/types.js +3 -1
  138. package/dist/lib/recorder/BoundaryStateTracker.js +267 -0
  139. package/dist/lib/recorder/CompositeRecorder.js +3 -1
  140. package/dist/lib/recorder/InOutRecorder.js +5 -6
  141. package/dist/lib/recorder/KeyedRecorder.js +2 -4
  142. package/dist/lib/recorder/QualityRecorder.js +15 -14
  143. package/dist/lib/recorder/SequenceRecorder.js +11 -12
  144. package/dist/lib/recorder/TopologyRecorder.js +36 -40
  145. package/dist/lib/recorder/index.js +4 -2
  146. package/dist/lib/recorder/qualityTrace.js +4 -5
  147. package/dist/lib/runner/ExecutionRuntime.js +20 -4
  148. package/dist/lib/runner/FlowChartExecutor.js +99 -55
  149. package/dist/lib/runner/RunContext.js +5 -3
  150. package/dist/lib/runner/RunnableChart.js +7 -9
  151. package/dist/lib/runner/getSubtreeSnapshot.js +4 -5
  152. package/dist/lib/schema/errors.js +4 -3
  153. package/dist/lib/schema/validate.js +4 -5
  154. package/dist/lib/scope/ScopeFacade.js +52 -35
  155. package/dist/lib/scope/providers/baseStateCompatible.js +9 -9
  156. package/dist/lib/scope/providers/guards.js +2 -2
  157. package/dist/lib/scope/recorders/DebugRecorder.js +9 -7
  158. package/dist/lib/scope/recorders/MetricRecorder.js +10 -8
  159. package/dist/lib/scope/state/zod/defineScopeFromZod.js +2 -3
  160. package/dist/lib/scope/state/zod/resolver.js +2 -3
  161. package/dist/lib/scope/state/zod/scopeFactory.js +16 -20
  162. package/dist/lib/scope/state/zod/utils/validateHelper.js +57 -14
  163. package/dist/trace.js +6 -2
  164. package/dist/types/advanced.d.ts +1 -0
  165. package/dist/types/detach.d.ts +59 -0
  166. package/dist/types/lib/builder/FlowChartBuilder.d.ts +81 -0
  167. package/dist/types/lib/detach/drivers/immediate.d.ts +39 -0
  168. package/dist/types/lib/detach/drivers/microtaskBatch.d.ts +57 -0
  169. package/dist/types/lib/detach/drivers/sendBeacon.d.ts +38 -0
  170. package/dist/types/lib/detach/drivers/setImmediate.d.ts +32 -0
  171. package/dist/types/lib/detach/drivers/setTimeout.d.ts +34 -0
  172. package/dist/types/lib/detach/drivers/workerThread.d.ts +50 -0
  173. package/dist/types/lib/detach/flush.d.ts +62 -0
  174. package/dist/types/lib/detach/handle.d.ts +83 -0
  175. package/dist/types/lib/detach/registry.d.ts +82 -0
  176. package/dist/types/lib/detach/runChild.d.ts +41 -0
  177. package/dist/types/lib/detach/spawn.d.ts +64 -0
  178. package/dist/types/lib/detach/types.d.ts +200 -0
  179. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +0 -1
  180. package/dist/types/lib/engine/types.d.ts +0 -1
  181. package/dist/types/lib/reactive/types.d.ts +4 -0
  182. package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +215 -0
  183. package/dist/types/lib/recorder/index.d.ts +1 -0
  184. package/dist/types/lib/runner/FlowChartExecutor.d.ts +28 -0
  185. package/dist/types/lib/scope/ScopeFacade.d.ts +4 -0
  186. package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +13 -1
  187. package/dist/types/trace.d.ts +1 -0
  188. package/package.json +6 -1
@@ -12,9 +12,7 @@
12
12
  import { isDevMode } from '../../scope/detectCircular.js';
13
13
  import { extractErrorInfo } from '../errors/errorInfo.js';
14
14
  export class FlowRecorderDispatcher {
15
- constructor() {
16
- this.recorders = [];
17
- }
15
+ recorders = [];
18
16
  /** Attach a FlowRecorder. Duplicate IDs are allowed (same as scope Recorder). */
19
17
  attach(recorder) {
20
18
  this.recorders.push(recorder);
@@ -33,13 +31,12 @@ export class FlowRecorderDispatcher {
33
31
  }
34
32
  // ── IControlFlowNarrative implementation ──────────────────────────────────
35
33
  onStageExecuted(stageName, description, traversalContext) {
36
- var _a;
37
34
  if (this.recorders.length === 0)
38
35
  return;
39
36
  const event = { stageName, description, traversalContext };
40
37
  for (const r of this.recorders) {
41
38
  try {
42
- (_a = r.onStageExecuted) === null || _a === void 0 ? void 0 : _a.call(r, event);
39
+ r.onStageExecuted?.(event);
43
40
  }
44
41
  catch (err) {
45
42
  if (isDevMode())
@@ -48,13 +45,12 @@ export class FlowRecorderDispatcher {
48
45
  }
49
46
  }
50
47
  onNext(fromStage, toStage, description, traversalContext) {
51
- var _a;
52
48
  if (this.recorders.length === 0)
53
49
  return;
54
50
  const event = { from: fromStage, to: toStage, description, traversalContext };
55
51
  for (const r of this.recorders) {
56
52
  try {
57
- (_a = r.onNext) === null || _a === void 0 ? void 0 : _a.call(r, event);
53
+ r.onNext?.(event);
58
54
  }
59
55
  catch (err) {
60
56
  if (isDevMode())
@@ -63,7 +59,6 @@ export class FlowRecorderDispatcher {
63
59
  }
64
60
  }
65
61
  onDecision(deciderName, chosenBranch, rationale, deciderDescription, traversalContext, evidence) {
66
- var _a;
67
62
  if (this.recorders.length === 0)
68
63
  return;
69
64
  const event = {
@@ -76,7 +71,7 @@ export class FlowRecorderDispatcher {
76
71
  };
77
72
  for (const r of this.recorders) {
78
73
  try {
79
- (_a = r.onDecision) === null || _a === void 0 ? void 0 : _a.call(r, event);
74
+ r.onDecision?.(event);
80
75
  }
81
76
  catch (err) {
82
77
  if (isDevMode())
@@ -85,13 +80,12 @@ export class FlowRecorderDispatcher {
85
80
  }
86
81
  }
87
82
  onFork(parentStage, childNames, traversalContext) {
88
- var _a;
89
83
  if (this.recorders.length === 0)
90
84
  return;
91
85
  const event = { parent: parentStage, children: childNames, traversalContext };
92
86
  for (const r of this.recorders) {
93
87
  try {
94
- (_a = r.onFork) === null || _a === void 0 ? void 0 : _a.call(r, event);
88
+ r.onFork?.(event);
95
89
  }
96
90
  catch (err) {
97
91
  if (isDevMode())
@@ -100,13 +94,12 @@ export class FlowRecorderDispatcher {
100
94
  }
101
95
  }
102
96
  onSelected(parentStage, selectedNames, totalCount, traversalContext, evidence) {
103
- var _a;
104
97
  if (this.recorders.length === 0)
105
98
  return;
106
99
  const event = { parent: parentStage, selected: selectedNames, total: totalCount, traversalContext, evidence };
107
100
  for (const r of this.recorders) {
108
101
  try {
109
- (_a = r.onSelected) === null || _a === void 0 ? void 0 : _a.call(r, event);
102
+ r.onSelected?.(event);
110
103
  }
111
104
  catch (err) {
112
105
  if (isDevMode())
@@ -115,13 +108,12 @@ export class FlowRecorderDispatcher {
115
108
  }
116
109
  }
117
110
  onSubflowEntry(subflowName, subflowId, description, traversalContext, mappedInput) {
118
- var _a;
119
111
  if (this.recorders.length === 0)
120
112
  return;
121
113
  const event = { name: subflowName, subflowId, description, traversalContext, mappedInput };
122
114
  for (const r of this.recorders) {
123
115
  try {
124
- (_a = r.onSubflowEntry) === null || _a === void 0 ? void 0 : _a.call(r, event);
116
+ r.onSubflowEntry?.(event);
125
117
  }
126
118
  catch (err) {
127
119
  if (isDevMode())
@@ -130,13 +122,12 @@ export class FlowRecorderDispatcher {
130
122
  }
131
123
  }
132
124
  onSubflowExit(subflowName, subflowId, traversalContext, outputState) {
133
- var _a;
134
125
  if (this.recorders.length === 0)
135
126
  return;
136
127
  const event = { name: subflowName, subflowId, traversalContext, outputState };
137
128
  for (const r of this.recorders) {
138
129
  try {
139
- (_a = r.onSubflowExit) === null || _a === void 0 ? void 0 : _a.call(r, event);
130
+ r.onSubflowExit?.(event);
140
131
  }
141
132
  catch (err) {
142
133
  if (isDevMode())
@@ -145,13 +136,12 @@ export class FlowRecorderDispatcher {
145
136
  }
146
137
  }
147
138
  onSubflowRegistered(subflowId, name, description, specStructure) {
148
- var _a;
149
139
  if (this.recorders.length === 0)
150
140
  return;
151
141
  const event = { subflowId, name, description, specStructure };
152
142
  for (const r of this.recorders) {
153
143
  try {
154
- (_a = r.onSubflowRegistered) === null || _a === void 0 ? void 0 : _a.call(r, event);
144
+ r.onSubflowRegistered?.(event);
155
145
  }
156
146
  catch (err) {
157
147
  if (isDevMode())
@@ -160,13 +150,12 @@ export class FlowRecorderDispatcher {
160
150
  }
161
151
  }
162
152
  onLoop(targetStage, iteration, description, traversalContext) {
163
- var _a;
164
153
  if (this.recorders.length === 0)
165
154
  return;
166
155
  const event = { target: targetStage, iteration, description, traversalContext };
167
156
  for (const r of this.recorders) {
168
157
  try {
169
- (_a = r.onLoop) === null || _a === void 0 ? void 0 : _a.call(r, event);
158
+ r.onLoop?.(event);
170
159
  }
171
160
  catch (err) {
172
161
  if (isDevMode())
@@ -175,7 +164,6 @@ export class FlowRecorderDispatcher {
175
164
  }
176
165
  }
177
166
  onBreak(stageName, traversalContext, reason, propagatedFromSubflow) {
178
- var _a;
179
167
  if (this.recorders.length === 0)
180
168
  return;
181
169
  const event = {
@@ -186,7 +174,7 @@ export class FlowRecorderDispatcher {
186
174
  };
187
175
  for (const r of this.recorders) {
188
176
  try {
189
- (_a = r.onBreak) === null || _a === void 0 ? void 0 : _a.call(r, event);
177
+ r.onBreak?.(event);
190
178
  }
191
179
  catch (err) {
192
180
  if (isDevMode())
@@ -195,14 +183,13 @@ export class FlowRecorderDispatcher {
195
183
  }
196
184
  }
197
185
  onError(stageName, errorMessage, error, traversalContext) {
198
- var _a;
199
186
  if (this.recorders.length === 0)
200
187
  return;
201
188
  const structuredError = extractErrorInfo(error);
202
189
  const event = { stageName, message: errorMessage, structuredError, traversalContext };
203
190
  for (const r of this.recorders) {
204
191
  try {
205
- (_a = r.onError) === null || _a === void 0 ? void 0 : _a.call(r, event);
192
+ r.onError?.(event);
206
193
  }
207
194
  catch (err) {
208
195
  if (isDevMode())
@@ -211,13 +198,12 @@ export class FlowRecorderDispatcher {
211
198
  }
212
199
  }
213
200
  onPause(stageName, stageId, pauseData, subflowPath, traversalContext) {
214
- var _a;
215
201
  if (this.recorders.length === 0)
216
202
  return;
217
203
  const event = { stageName, stageId, pauseData, subflowPath, traversalContext };
218
204
  for (const r of this.recorders) {
219
205
  try {
220
- (_a = r.onPause) === null || _a === void 0 ? void 0 : _a.call(r, event);
206
+ r.onPause?.(event);
221
207
  }
222
208
  catch (err) {
223
209
  if (isDevMode())
@@ -226,13 +212,12 @@ export class FlowRecorderDispatcher {
226
212
  }
227
213
  }
228
214
  onResume(stageName, stageId, hasInput, traversalContext) {
229
- var _a;
230
215
  if (this.recorders.length === 0)
231
216
  return;
232
217
  const event = { stageName, stageId, hasInput, traversalContext };
233
218
  for (const r of this.recorders) {
234
219
  try {
235
- (_a = r.onResume) === null || _a === void 0 ? void 0 : _a.call(r, event);
220
+ r.onResume?.(event);
236
221
  }
237
222
  catch (err) {
238
223
  if (isDevMode())
@@ -241,13 +226,12 @@ export class FlowRecorderDispatcher {
241
226
  }
242
227
  }
243
228
  onRunStart(input, traversalContext) {
244
- var _a;
245
229
  if (this.recorders.length === 0)
246
230
  return;
247
231
  const event = { payload: input, traversalContext };
248
232
  for (const r of this.recorders) {
249
233
  try {
250
- (_a = r.onRunStart) === null || _a === void 0 ? void 0 : _a.call(r, event);
234
+ r.onRunStart?.(event);
251
235
  }
252
236
  catch (err) {
253
237
  if (isDevMode())
@@ -256,13 +240,12 @@ export class FlowRecorderDispatcher {
256
240
  }
257
241
  }
258
242
  onRunEnd(output, traversalContext) {
259
- var _a;
260
243
  if (this.recorders.length === 0)
261
244
  return;
262
245
  const event = { payload: output, traversalContext };
263
246
  for (const r of this.recorders) {
264
247
  try {
265
- (_a = r.onRunEnd) === null || _a === void 0 ? void 0 : _a.call(r, event);
248
+ r.onRunEnd?.(event);
266
249
  }
267
250
  catch (err) {
268
251
  if (isDevMode())
@@ -276,9 +259,8 @@ export class FlowRecorderDispatcher {
276
259
  * and retrieve it directly via getRecorderById() if they need typed access.
277
260
  */
278
261
  getSentences() {
279
- var _a;
280
262
  const narrative = this.getRecorderById('narrative');
281
- return (_a = narrative === null || narrative === void 0 ? void 0 : narrative.getSentences()) !== null && _a !== void 0 ? _a : [];
263
+ return narrative?.getSentences() ?? [];
282
264
  }
283
265
  }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd1JlY29yZGVyRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9GbG93UmVjb3JkZXJEaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJMUQsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNVLGNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBaVJ6QyxDQUFDO0lBL1FDLGlGQUFpRjtJQUNqRixNQUFNLENBQUMsUUFBc0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxZQUFZO1FBQ1YsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrR0FBa0c7SUFDbEcsZUFBZSxDQUF3QyxFQUFVO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFrQixDQUFDO0lBQ2xFLENBQUM7SUFFRCw2RUFBNkU7SUFFN0UsZUFBZSxDQUFDLFNBQWlCLEVBQUUsV0FBb0IsRUFBRSxnQkFBbUM7O1FBQzFGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDeEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLGVBQWUsa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsK0JBQStCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFFLFdBQW9CLEVBQUUsZ0JBQW1DOztRQUNsRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlFLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxNQUFNLGtEQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksU0FBUyxFQUFFO29CQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQyxFQUFFLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2xILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FDUixXQUFtQixFQUNuQixZQUFvQixFQUNwQixTQUFrQixFQUNsQixrQkFBMkIsRUFDM0IsZ0JBQW1DLEVBQ25DLFFBQTJCOztRQUUzQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHO1lBQ1osT0FBTyxFQUFFLFdBQVc7WUFDcEIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsU0FBUztZQUNULFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsZ0JBQWdCO1lBQ2hCLFFBQVE7U0FDVCxDQUFDO1FBQ0YsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLFVBQVUsa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQW1CLEVBQUUsVUFBb0IsRUFBRSxnQkFBbUM7O1FBQ25GLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDeEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUM7Z0JBQ0gsTUFBQSxDQUFDLENBQUMsTUFBTSxrREFBRyxLQUFLLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLFNBQVMsRUFBRTtvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsRUFBRSxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNsSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQ1IsV0FBbUIsRUFDbkIsYUFBdUIsRUFDdkIsVUFBa0IsRUFDbEIsZ0JBQW1DLEVBQ25DLFFBQTRCOztRQUU1QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDOUcsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLFVBQVUsa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUNaLFdBQW1CLEVBQ25CLFNBQWtCLEVBQ2xCLFdBQW9CLEVBQ3BCLGdCQUFtQyxFQUNuQyxXQUFxQzs7UUFFckMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN4QyxNQUFNLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUMzRixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUM7Z0JBQ0gsTUFBQSxDQUFDLENBQUMsY0FBYyxrREFBRyxLQUFLLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLFNBQVMsRUFBRTtvQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsRUFBRSw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMzRyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQ1gsV0FBbUIsRUFDbkIsU0FBa0IsRUFDbEIsZ0JBQW1DLEVBQ25DLFdBQXFDOztRQUVyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUUsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLGFBQWEsa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsNkJBQTZCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxJQUFZLEVBQUUsV0FBb0IsRUFBRSxhQUF1Qjs7UUFDaEcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN4QyxNQUFNLEtBQUssR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQzlELEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxtQkFBbUIsa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsbUNBQW1DLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDaEgsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRSxXQUFvQixFQUFFLGdCQUFtQzs7UUFDdEcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN4QyxNQUFNLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hGLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxNQUFNLGtEQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksU0FBUyxFQUFFO29CQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQyxFQUFFLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2xILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FDTCxTQUFpQixFQUNqQixnQkFBbUMsRUFDbkMsTUFBZSxFQUNmLHFCQUE4Qjs7UUFFOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN4QyxNQUFNLEtBQUssR0FBbUI7WUFDNUIsU0FBUztZQUNULEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDN0MsR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMscUJBQXFCLEtBQUssU0FBUyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztTQUN0RSxDQUFDO1FBQ0YsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLE9BQU8sa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQWlCLEVBQUUsWUFBb0IsRUFBRSxLQUFjLEVBQUUsZ0JBQW1DOztRQUNsRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sS0FBSyxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDdEYsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDO2dCQUNILE1BQUEsQ0FBQyxDQUFDLE9BQU8sa0RBQUcsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUNMLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFrQixFQUNsQixXQUE4QixFQUM5QixnQkFBbUM7O1FBRW5DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDeEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUMvRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUM7Z0JBQ0gsTUFBQSxDQUFDLENBQUMsT0FBTyxrREFBRyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLFNBQVMsRUFBRTtvQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNwRyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsU0FBaUIsRUFBRSxPQUFlLEVBQUUsUUFBaUIsRUFBRSxnQkFBbUM7O1FBQ2pHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDeEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2pFLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxRQUFRLGtEQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksU0FBUyxFQUFFO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQyxFQUFFLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjLEVBQUUsZ0JBQW1DOztRQUM1RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxVQUFVLGtEQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksU0FBUyxFQUFFO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQyxFQUFFLDBCQUEwQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFlLEVBQUUsZ0JBQW1DOztRQUMzRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BELEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQztnQkFDSCxNQUFBLENBQUMsQ0FBQyxRQUFRLGtEQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksU0FBUyxFQUFFO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQyxFQUFFLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZOztRQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQXdCLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sTUFBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsWUFBWSxFQUFFLG1DQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIg4oCUIEZhbnMgb3V0IGNvbnRyb2wgZmxvdyBldmVudHMgdG8gTiBhdHRhY2hlZCBGbG93UmVjb3JkZXJzLlxuICpcbiAqIEltcGxlbWVudHMgSUNvbnRyb2xGbG93TmFycmF0aXZlIHNvIGl0IGNhbiByZXBsYWNlIHRoZSBzaW5nbGVcbiAqIENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIGluIHRoZSB0cmF2ZXJzZXIncyBIYW5kbGVyRGVwcy5cbiAqXG4gKiBEZXNpZ24gbWlycm9ycyBTY29wZUZhY2FkZS5faW52b2tlSG9vazogaXRlcmF0ZSByZWNvcmRlcnMsIGNhbGwgb3B0aW9uYWxcbiAqIGhvb2tzLCBzd2FsbG93IGVycm9ycyBzbyBhIGZhaWxpbmcgcmVjb3JkZXIgbmV2ZXIgYnJlYWtzIGV4ZWN1dGlvbi5cbiAqXG4gKiBXaGVuIG5vIHJlY29yZGVycyBhcmUgYXR0YWNoZWQsIGV2ZXJ5IG1ldGhvZCBpcyBhIGZhc3Qgbm8tb3AgKGVtcHR5IGFycmF5IGNoZWNrKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlY2lzaW9uRXZpZGVuY2UsIFNlbGVjdGlvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4uLy4uL3Njb3BlL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB7IGV4dHJhY3RFcnJvckluZm8gfSBmcm9tICcuLi9lcnJvcnMvZXJyb3JJbmZvLmpzJztcbmltcG9ydCB0eXBlIHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93QnJlYWtFdmVudCwgRmxvd1JlY29yZGVyLCBJQ29udHJvbEZsb3dOYXJyYXRpdmUsIFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIgaW1wbGVtZW50cyBJQ29udHJvbEZsb3dOYXJyYXRpdmUge1xuICBwcml2YXRlIHJlY29yZGVyczogRmxvd1JlY29yZGVyW10gPSBbXTtcblxuICAvKiogQXR0YWNoIGEgRmxvd1JlY29yZGVyLiBEdXBsaWNhdGUgSURzIGFyZSBhbGxvd2VkIChzYW1lIGFzIHNjb3BlIFJlY29yZGVyKS4gKi9cbiAgYXR0YWNoKHJlY29yZGVyOiBGbG93UmVjb3JkZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZGVycy5wdXNoKHJlY29yZGVyKTtcbiAgfVxuXG4gIC8qKiBEZXRhY2ggYWxsIEZsb3dSZWNvcmRlcnMgd2l0aCB0aGUgZ2l2ZW4gSUQuICovXG4gIGRldGFjaChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvcmRlcnMgPSB0aGlzLnJlY29yZGVycy5maWx0ZXIoKHIpID0+IHIuaWQgIT09IGlkKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgZGVmZW5zaXZlIGNvcHkgb2YgYXR0YWNoZWQgcmVjb3JkZXJzLiAqL1xuICBnZXRSZWNvcmRlcnMoKTogRmxvd1JlY29yZGVyW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5yZWNvcmRlcnNdO1xuICB9XG5cbiAgLyoqIEZpbmQgYSByZWNvcmRlciBieSBJRC4gVXNlZnVsIGZvciByZXRyaWV2aW5nIGJ1aWx0LWluIHJlY29yZGVycyBsaWtlIE5hcnJhdGl2ZUZsb3dSZWNvcmRlci4gKi9cbiAgZ2V0UmVjb3JkZXJCeUlkPFQgZXh0ZW5kcyBGbG93UmVjb3JkZXIgPSBGbG93UmVjb3JkZXI+KGlkOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRlcnMuZmluZCgocikgPT4gci5pZCA9PT0gaWQpIGFzIFQgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyDilIDilIAgSUNvbnRyb2xGbG93TmFycmF0aXZlIGltcGxlbWVudGF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIG9uU3RhZ2VFeGVjdXRlZChzdGFnZU5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdGFnZU5hbWUsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU3RhZ2VFeGVjdXRlZD8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvblN0YWdlRXhlY3V0ZWQ6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uTmV4dChmcm9tU3RhZ2U6IHN0cmluZywgdG9TdGFnZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IGZyb206IGZyb21TdGFnZSwgdG86IHRvU3RhZ2UsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uTmV4dD8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25OZXh0OiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRlY2lzaW9uKFxuICAgIGRlY2lkZXJOYW1lOiBzdHJpbmcsXG4gICAgY2hvc2VuQnJhbmNoOiBzdHJpbmcsXG4gICAgcmF0aW9uYWxlPzogc3RyaW5nLFxuICAgIGRlY2lkZXJEZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBldmlkZW5jZT86IERlY2lzaW9uRXZpZGVuY2UsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIGRlY2lkZXI6IGRlY2lkZXJOYW1lLFxuICAgICAgY2hvc2VuOiBjaG9zZW5CcmFuY2gsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBkZXNjcmlwdGlvbjogZGVjaWRlckRlc2NyaXB0aW9uLFxuICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgIGV2aWRlbmNlLFxuICAgIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uRGVjaXNpb24/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25EZWNpc2lvbjogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Gb3JrKHBhcmVudFN0YWdlOiBzdHJpbmcsIGNoaWxkTmFtZXM6IHN0cmluZ1tdLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGFyZW50OiBwYXJlbnRTdGFnZSwgY2hpbGRyZW46IGNoaWxkTmFtZXMsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25Gb3JrPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkZvcms6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0ZWQoXG4gICAgcGFyZW50U3RhZ2U6IHN0cmluZyxcbiAgICBzZWxlY3RlZE5hbWVzOiBzdHJpbmdbXSxcbiAgICB0b3RhbENvdW50OiBudW1iZXIsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBTZWxlY3Rpb25FdmlkZW5jZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXJlbnQ6IHBhcmVudFN0YWdlLCBzZWxlY3RlZDogc2VsZWN0ZWROYW1lcywgdG90YWw6IHRvdGFsQ291bnQsIHRyYXZlcnNhbENvbnRleHQsIGV2aWRlbmNlIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU2VsZWN0ZWQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TZWxlY3RlZDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TdWJmbG93RW50cnkoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgbWFwcGVkSW5wdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBuYW1lOiBzdWJmbG93TmFtZSwgc3ViZmxvd0lkLCBkZXNjcmlwdGlvbiwgdHJhdmVyc2FsQ29udGV4dCwgbWFwcGVkSW5wdXQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25TdWJmbG93RW50cnk/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TdWJmbG93RW50cnk6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgb3V0cHV0U3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBuYW1lOiBzdWJmbG93TmFtZSwgc3ViZmxvd0lkLCB0cmF2ZXJzYWxDb250ZXh0LCBvdXRwdXRTdGF0ZSB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblN1YmZsb3dFeGl0Py4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uU3ViZmxvd0V4aXQ6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoc3ViZmxvd0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdWJmbG93SWQsIG5hbWUsIGRlc2NyaXB0aW9uLCBzcGVjU3RydWN0dXJlIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU3ViZmxvd1JlZ2lzdGVyZWQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TdWJmbG93UmVnaXN0ZXJlZDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Mb29wKHRhcmdldFN0YWdlOiBzdHJpbmcsIGl0ZXJhdGlvbjogbnVtYmVyLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHRhcmdldDogdGFyZ2V0U3RhZ2UsIGl0ZXJhdGlvbiwgZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25Mb29wPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkxvb3A6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQnJlYWsoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICAgIHByb3BhZ2F0ZWRGcm9tU3ViZmxvdz86IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50OiBGbG93QnJlYWtFdmVudCA9IHtcbiAgICAgIHN0YWdlTmFtZSxcbiAgICAgIC4uLih0cmF2ZXJzYWxDb250ZXh0ICYmIHsgdHJhdmVyc2FsQ29udGV4dCB9KSxcbiAgICAgIC4uLihyZWFzb24gIT09IHVuZGVmaW5lZCAmJiB7IHJlYXNvbiB9KSxcbiAgICAgIC4uLihwcm9wYWdhdGVkRnJvbVN1YmZsb3cgIT09IHVuZGVmaW5lZCAmJiB7IHByb3BhZ2F0ZWRGcm9tU3ViZmxvdyB9KSxcbiAgICB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vbkJyZWFrPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uQnJlYWs6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRXJyb3Ioc3RhZ2VOYW1lOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3Qgc3RydWN0dXJlZEVycm9yID0gZXh0cmFjdEVycm9ySW5mbyhlcnJvcik7XG4gICAgY29uc3QgZXZlbnQgPSB7IHN0YWdlTmFtZSwgbWVzc2FnZTogZXJyb3JNZXNzYWdlLCBzdHJ1Y3R1cmVkRXJyb3IsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25FcnJvcj8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkVycm9yOiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblBhdXNlKFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWdlSWQ6IHN0cmluZyxcbiAgICBwYXVzZURhdGE6IHVua25vd24sXG4gICAgc3ViZmxvd1BhdGg6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHN0YWdlTmFtZSwgc3RhZ2VJZCwgcGF1c2VEYXRhLCBzdWJmbG93UGF0aCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblBhdXNlPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uUGF1c2U6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUmVzdW1lKHN0YWdlTmFtZTogc3RyaW5nLCBzdGFnZUlkOiBzdHJpbmcsIGhhc0lucHV0OiBib29sZWFuLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RhZ2VOYW1lLCBzdGFnZUlkLCBoYXNJbnB1dCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblJlc3VtZT8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvblJlc3VtZTogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25SdW5TdGFydChpbnB1dDogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHBheWxvYWQ6IGlucHV0LCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uUnVuU3RhcnQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25SdW5TdGFydDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25SdW5FbmQob3V0cHV0OiB1bmtub3duLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGF5bG9hZDogb3V0cHV0LCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uUnVuRW5kPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uUnVuRW5kOiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBzZW50ZW5jZXMgZnJvbSBhbiBhdHRhY2hlZCBOYXJyYXRpdmVGbG93UmVjb3JkZXIgKGxvb2tlZCB1cCBieSBJRCkuXG4gICAqIENhbGxlcnMgdGhhdCBuZWVkIHNlbnRlbmNlcyBzaG91bGQgYXR0YWNoIGEgTmFycmF0aXZlRmxvd1JlY29yZGVyIHdpdGggaWQgJ25hcnJhdGl2ZSdcbiAgICogYW5kIHJldHJpZXZlIGl0IGRpcmVjdGx5IHZpYSBnZXRSZWNvcmRlckJ5SWQoKSBpZiB0aGV5IG5lZWQgdHlwZWQgYWNjZXNzLlxuICAgKi9cbiAgZ2V0U2VudGVuY2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBuYXJyYXRpdmUgPSB0aGlzLmdldFJlY29yZGVyQnlJZDxOYXJyYXRpdmVGbG93UmVjb3JkZXI+KCduYXJyYXRpdmUnKTtcbiAgICByZXR1cm4gbmFycmF0aXZlPy5nZXRTZW50ZW5jZXMoKSA/PyBbXTtcbiAgfVxufVxuIl19
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd1JlY29yZGVyRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9GbG93UmVjb3JkZXJEaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJMUQsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUV2QyxpRkFBaUY7SUFDakYsTUFBTSxDQUFDLFFBQXNCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsWUFBWTtRQUNWLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0dBQWtHO0lBQ2xHLGVBQWUsQ0FBd0MsRUFBVTtRQUMvRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBa0IsQ0FBQztJQUNsRSxDQUFDO0lBRUQsNkVBQTZFO0lBRTdFLGVBQWUsQ0FBQyxTQUFpQixFQUFFLFdBQW9CLEVBQUUsZ0JBQW1DO1FBQzFGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtB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QUFHLElBQUksQ0FBQyxlQUFlLENBQXdCLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sU0FBUyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIg4oCUIEZhbnMgb3V0IGNvbnRyb2wgZmxvdyBldmVudHMgdG8gTiBhdHRhY2hlZCBGbG93UmVjb3JkZXJzLlxuICpcbiAqIEltcGxlbWVudHMgSUNvbnRyb2xGbG93TmFycmF0aXZlIHNvIGl0IGNhbiByZXBsYWNlIHRoZSBzaW5nbGVcbiAqIENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIGluIHRoZSB0cmF2ZXJzZXIncyBIYW5kbGVyRGVwcy5cbiAqXG4gKiBEZXNpZ24gbWlycm9ycyBTY29wZUZhY2FkZS5faW52b2tlSG9vazogaXRlcmF0ZSByZWNvcmRlcnMsIGNhbGwgb3B0aW9uYWxcbiAqIGhvb2tzLCBzd2FsbG93IGVycm9ycyBzbyBhIGZhaWxpbmcgcmVjb3JkZXIgbmV2ZXIgYnJlYWtzIGV4ZWN1dGlvbi5cbiAqXG4gKiBXaGVuIG5vIHJlY29yZGVycyBhcmUgYXR0YWNoZWQsIGV2ZXJ5IG1ldGhvZCBpcyBhIGZhc3Qgbm8tb3AgKGVtcHR5IGFycmF5IGNoZWNrKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlY2lzaW9uRXZpZGVuY2UsIFNlbGVjdGlvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4uLy4uL3Njb3BlL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB7IGV4dHJhY3RFcnJvckluZm8gfSBmcm9tICcuLi9lcnJvcnMvZXJyb3JJbmZvLmpzJztcbmltcG9ydCB0eXBlIHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93QnJlYWtFdmVudCwgRmxvd1JlY29yZGVyLCBJQ29udHJvbEZsb3dOYXJyYXRpdmUsIFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIgaW1wbGVtZW50cyBJQ29udHJvbEZsb3dOYXJyYXRpdmUge1xuICBwcml2YXRlIHJlY29yZGVyczogRmxvd1JlY29yZGVyW10gPSBbXTtcblxuICAvKiogQXR0YWNoIGEgRmxvd1JlY29yZGVyLiBEdXBsaWNhdGUgSURzIGFyZSBhbGxvd2VkIChzYW1lIGFzIHNjb3BlIFJlY29yZGVyKS4gKi9cbiAgYXR0YWNoKHJlY29yZGVyOiBGbG93UmVjb3JkZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZGVycy5wdXNoKHJlY29yZGVyKTtcbiAgfVxuXG4gIC8qKiBEZXRhY2ggYWxsIEZsb3dSZWNvcmRlcnMgd2l0aCB0aGUgZ2l2ZW4gSUQuICovXG4gIGRldGFjaChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvcmRlcnMgPSB0aGlzLnJlY29yZGVycy5maWx0ZXIoKHIpID0+IHIuaWQgIT09IGlkKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgZGVmZW5zaXZlIGNvcHkgb2YgYXR0YWNoZWQgcmVjb3JkZXJzLiAqL1xuICBnZXRSZWNvcmRlcnMoKTogRmxvd1JlY29yZGVyW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5yZWNvcmRlcnNdO1xuICB9XG5cbiAgLyoqIEZpbmQgYSByZWNvcmRlciBieSBJRC4gVXNlZnVsIGZvciByZXRyaWV2aW5nIGJ1aWx0LWluIHJlY29yZGVycyBsaWtlIE5hcnJhdGl2ZUZsb3dSZWNvcmRlci4gKi9cbiAgZ2V0UmVjb3JkZXJCeUlkPFQgZXh0ZW5kcyBGbG93UmVjb3JkZXIgPSBGbG93UmVjb3JkZXI+KGlkOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRlcnMuZmluZCgocikgPT4gci5pZCA9PT0gaWQpIGFzIFQgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyDilIDilIAgSUNvbnRyb2xGbG93TmFycmF0aXZlIGltcGxlbWVudGF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIG9uU3RhZ2VFeGVjdXRlZChzdGFnZU5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdGFnZU5hbWUsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU3RhZ2VFeGVjdXRlZD8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvblN0YWdlRXhlY3V0ZWQ6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uTmV4dChmcm9tU3RhZ2U6IHN0cmluZywgdG9TdGFnZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IGZyb206IGZyb21TdGFnZSwgdG86IHRvU3RhZ2UsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uTmV4dD8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25OZXh0OiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRlY2lzaW9uKFxuICAgIGRlY2lkZXJOYW1lOiBzdHJpbmcsXG4gICAgY2hvc2VuQnJhbmNoOiBzdHJpbmcsXG4gICAgcmF0aW9uYWxlPzogc3RyaW5nLFxuICAgIGRlY2lkZXJEZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBldmlkZW5jZT86IERlY2lzaW9uRXZpZGVuY2UsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIGRlY2lkZXI6IGRlY2lkZXJOYW1lLFxuICAgICAgY2hvc2VuOiBjaG9zZW5CcmFuY2gsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBkZXNjcmlwdGlvbjogZGVjaWRlckRlc2NyaXB0aW9uLFxuICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgIGV2aWRlbmNlLFxuICAgIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uRGVjaXNpb24/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25EZWNpc2lvbjogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Gb3JrKHBhcmVudFN0YWdlOiBzdHJpbmcsIGNoaWxkTmFtZXM6IHN0cmluZ1tdLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGFyZW50OiBwYXJlbnRTdGFnZSwgY2hpbGRyZW46IGNoaWxkTmFtZXMsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25Gb3JrPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkZvcms6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0ZWQoXG4gICAgcGFyZW50U3RhZ2U6IHN0cmluZyxcbiAgICBzZWxlY3RlZE5hbWVzOiBzdHJpbmdbXSxcbiAgICB0b3RhbENvdW50OiBudW1iZXIsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBTZWxlY3Rpb25FdmlkZW5jZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXJlbnQ6IHBhcmVudFN0YWdlLCBzZWxlY3RlZDogc2VsZWN0ZWROYW1lcywgdG90YWw6IHRvdGFsQ291bnQsIHRyYXZlcnNhbENvbnRleHQsIGV2aWRlbmNlIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU2VsZWN0ZWQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TZWxlY3RlZDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TdWJmbG93RW50cnkoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgbWFwcGVkSW5wdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBuYW1lOiBzdWJmbG93TmFtZSwgc3ViZmxvd0lkLCBkZXNjcmlwdGlvbiwgdHJhdmVyc2FsQ29udGV4dCwgbWFwcGVkSW5wdXQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25TdWJmbG93RW50cnk/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TdWJmbG93RW50cnk6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgb3V0cHV0U3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBuYW1lOiBzdWJmbG93TmFtZSwgc3ViZmxvd0lkLCB0cmF2ZXJzYWxDb250ZXh0LCBvdXRwdXRTdGF0ZSB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblN1YmZsb3dFeGl0Py4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uU3ViZmxvd0V4aXQ6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoc3ViZmxvd0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdWJmbG93SWQsIG5hbWUsIGRlc2NyaXB0aW9uLCBzcGVjU3RydWN0dXJlIH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uU3ViZmxvd1JlZ2lzdGVyZWQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25TdWJmbG93UmVnaXN0ZXJlZDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Mb29wKHRhcmdldFN0YWdlOiBzdHJpbmcsIGl0ZXJhdGlvbjogbnVtYmVyLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHRhcmdldDogdGFyZ2V0U3RhZ2UsIGl0ZXJhdGlvbiwgZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25Mb29wPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkxvb3A6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQnJlYWsoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICAgIHByb3BhZ2F0ZWRGcm9tU3ViZmxvdz86IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50OiBGbG93QnJlYWtFdmVudCA9IHtcbiAgICAgIHN0YWdlTmFtZSxcbiAgICAgIC4uLih0cmF2ZXJzYWxDb250ZXh0ICYmIHsgdHJhdmVyc2FsQ29udGV4dCB9KSxcbiAgICAgIC4uLihyZWFzb24gIT09IHVuZGVmaW5lZCAmJiB7IHJlYXNvbiB9KSxcbiAgICAgIC4uLihwcm9wYWdhdGVkRnJvbVN1YmZsb3cgIT09IHVuZGVmaW5lZCAmJiB7IHByb3BhZ2F0ZWRGcm9tU3ViZmxvdyB9KSxcbiAgICB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vbkJyZWFrPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uQnJlYWs6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRXJyb3Ioc3RhZ2VOYW1lOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3Qgc3RydWN0dXJlZEVycm9yID0gZXh0cmFjdEVycm9ySW5mbyhlcnJvcik7XG4gICAgY29uc3QgZXZlbnQgPSB7IHN0YWdlTmFtZSwgbWVzc2FnZTogZXJyb3JNZXNzYWdlLCBzdHJ1Y3R1cmVkRXJyb3IsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5yZWNvcmRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHIub25FcnJvcj8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvbkVycm9yOiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblBhdXNlKFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWdlSWQ6IHN0cmluZyxcbiAgICBwYXVzZURhdGE6IHVua25vd24sXG4gICAgc3ViZmxvd1BhdGg6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHN0YWdlTmFtZSwgc3RhZ2VJZCwgcGF1c2VEYXRhLCBzdWJmbG93UGF0aCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblBhdXNlPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uUGF1c2U6ICR7ZXJyfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUmVzdW1lKHN0YWdlTmFtZTogc3RyaW5nLCBzdGFnZUlkOiBzdHJpbmcsIGhhc0lucHV0OiBib29sZWFuLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RhZ2VOYW1lLCBzdGFnZUlkLCBoYXNJbnB1dCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLnJlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgci5vblJlc3VtZT8uKGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpXG4gICAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBGbG93UmVjb3JkZXJEaXNwYXRjaGVyOiByZWNvcmRlciBcIiR7ci5pZH1cIiB0aHJldyBpbiBvblJlc3VtZTogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25SdW5TdGFydChpbnB1dDogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHBheWxvYWQ6IGlucHV0LCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uUnVuU3RhcnQ/LihldmVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gRmxvd1JlY29yZGVyRGlzcGF0Y2hlcjogcmVjb3JkZXIgXCIke3IuaWR9XCIgdGhyZXcgaW4gb25SdW5TdGFydDogJHtlcnJ9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25SdW5FbmQob3V0cHV0OiB1bmtub3duLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGF5bG9hZDogb3V0cHV0LCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZm9yIChjb25zdCByIG9mIHRoaXMucmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByLm9uUnVuRW5kPy4oZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIEZsb3dSZWNvcmRlckRpc3BhdGNoZXI6IHJlY29yZGVyIFwiJHtyLmlkfVwiIHRocmV3IGluIG9uUnVuRW5kOiAke2Vycn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBzZW50ZW5jZXMgZnJvbSBhbiBhdHRhY2hlZCBOYXJyYXRpdmVGbG93UmVjb3JkZXIgKGxvb2tlZCB1cCBieSBJRCkuXG4gICAqIENhbGxlcnMgdGhhdCBuZWVkIHNlbnRlbmNlcyBzaG91bGQgYXR0YWNoIGEgTmFycmF0aXZlRmxvd1JlY29yZGVyIHdpdGggaWQgJ25hcnJhdGl2ZSdcbiAgICogYW5kIHJldHJpZXZlIGl0IGRpcmVjdGx5IHZpYSBnZXRSZWNvcmRlckJ5SWQoKSBpZiB0aGV5IG5lZWQgdHlwZWQgYWNjZXNzLlxuICAgKi9cbiAgZ2V0U2VudGVuY2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBuYXJyYXRpdmUgPSB0aGlzLmdldFJlY29yZGVyQnlJZDxOYXJyYXRpdmVGbG93UmVjb3JkZXI+KCduYXJyYXRpdmUnKTtcbiAgICByZXR1cm4gbmFycmF0aXZlPy5nZXRTZW50ZW5jZXMoKSA/PyBbXTtcbiAgfVxufVxuIl19
@@ -9,11 +9,12 @@
9
9
  * summarization, etc.) can replace this with a different FlowRecorder.
10
10
  */
11
11
  export class NarrativeFlowRecorder {
12
+ id;
13
+ sentences = [];
14
+ /** Parallel array: the actual stage name that produced each sentence. */
15
+ stageNames = [];
12
16
  constructor(id) {
13
- this.sentences = [];
14
- /** Parallel array: the actual stage name that produced each sentence. */
15
- this.stageNames = [];
16
- this.id = id !== null && id !== void 0 ? id : 'narrative';
17
+ this.id = id ?? 'narrative';
17
18
  }
18
19
  onStageExecuted(event) {
19
20
  if (event.description) {
@@ -119,4 +120,4 @@ export class NarrativeFlowRecorder {
119
120
  this.stageNames = [];
120
121
  }
121
122
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL05hcnJhdGl2ZUZsb3dSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFpQkgsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFZLEVBQVc7UUFKZixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLHlFQUF5RTtRQUNqRSxlQUFVLEdBQTJCLEVBQUUsQ0FBQztRQUc5QyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBRixFQUFFLGNBQUYsRUFBRSxHQUFJLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXFCO1FBQ25DLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXdCO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLFNBQVMsaUJBQWlCLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDakcsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLFdBQVcsY0FBYyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLFNBQVMsMkJBQTJCLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdkcsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywrQ0FBK0MsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBb0I7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxvQkFBb0IsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXdCO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLE9BQU8sS0FBSyxDQUFDLEtBQUsseUJBQXlCLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QjtRQUNwQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNuRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFvQjtRQUN6QixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLFdBQVcsU0FBUyxDQUFDLENBQUM7UUFDakYsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxTQUFTLFlBQVksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXFCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFxQjtRQUMzQixJQUFJLFFBQVEsR0FBRyx3QkFBd0IsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUM7UUFFNUUsZ0RBQWdEO1FBQ2hELElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTTtpQkFDOUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNyRSxPQUFPLEdBQUcsSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2QsUUFBUSxJQUFJLHVCQUF1QixZQUFZLEdBQUcsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBcUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXNCO1FBQzdCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsWUFBWTtRQUNWLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciDigJQgRGVmYXVsdCBGbG93UmVjb3JkZXIgdGhhdCBnZW5lcmF0ZXMgcGxhaW4tRW5nbGlzaCBuYXJyYXRpdmUuXG4gKlxuICogVGhpcyBpcyB0aGUgRmxvd1JlY29yZGVyIGVxdWl2YWxlbnQgb2YgQ29udHJvbEZsb3dOYXJyYXRpdmVHZW5lcmF0b3IuXG4gKiBQcm9kdWNlcyB0aGUgc2FtZSBzZW50ZW5jZXMsIHNhbWUgZm9ybWF0LCBzYW1lIGJlaGF2aW9yIOKAlCBidXQgYXMgYVxuICogcGx1Z2dhYmxlIEZsb3dSZWNvcmRlciB0aGF0IGNhbiBiZSBzd2FwcGVkLCBleHRlbmRlZCwgb3IgY29tcG9zZWQuXG4gKlxuICogQ29uc3VtZXJzIHdobyB3YW50IGRpZmZlcmVudCBuYXJyYXRpdmUgYmVoYXZpb3IgKHdpbmRvd2VkIGxvb3BzLCBhZGFwdGl2ZVxuICogc3VtbWFyaXphdGlvbiwgZXRjLikgY2FuIHJlcGxhY2UgdGhpcyB3aXRoIGEgZGlmZmVyZW50IEZsb3dSZWNvcmRlci5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZsb3dCcmVha0V2ZW50LFxuICBGbG93RGVjaXNpb25FdmVudCxcbiAgRmxvd0Vycm9yRXZlbnQsXG4gIEZsb3dGb3JrRXZlbnQsXG4gIEZsb3dMb29wRXZlbnQsXG4gIEZsb3dOZXh0RXZlbnQsXG4gIEZsb3dQYXVzZUV2ZW50LFxuICBGbG93UmVjb3JkZXIsXG4gIEZsb3dSZXN1bWVFdmVudCxcbiAgRmxvd1NlbGVjdGVkRXZlbnQsXG4gIEZsb3dTdGFnZUV2ZW50LFxuICBGbG93U3ViZmxvd0V2ZW50LFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciBpbXBsZW1lbnRzIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgc2VudGVuY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAvKiogUGFyYWxsZWwgYXJyYXk6IHRoZSBhY3R1YWwgc3RhZ2UgbmFtZSB0aGF0IHByb2R1Y2VkIGVhY2ggc2VudGVuY2UuICovXG4gIHByaXZhdGUgc3RhZ2VOYW1lczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGlkPzogc3RyaW5nKSB7XG4gICAgdGhpcy5pZCA9IGlkID8/ICduYXJyYXRpdmUnO1xuICB9XG5cbiAgb25TdGFnZUV4ZWN1dGVkKGV2ZW50OiBGbG93U3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgTmV4dCBzdGVwOiAke2V2ZW50LmRlc2NyaXB0aW9ufS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgTmV4dCwgaXQgbW92ZWQgb24gdG8gJHtldmVudC5zdGFnZU5hbWV9LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgb25OZXh0KGV2ZW50OiBGbG93TmV4dEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBOZXh0IHN0ZXA6ICR7ZXZlbnQuZGVzY3JpcHRpb259LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBOZXh0LCBpdCBtb3ZlZCBvbiB0byAke2V2ZW50LnRvfS5gKTtcbiAgICB9XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQudG8pO1xuICB9XG5cbiAgb25EZWNpc2lvbihldmVudDogRmxvd0RlY2lzaW9uRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBicmFuY2hOYW1lID0gZXZlbnQuY2hvc2VuO1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbiAmJiBldmVudC5yYXRpb25hbGUpIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEl0ICR7ZXZlbnQuZGVzY3JpcHRpb259OiAke2V2ZW50LnJhdGlvbmFsZX0sIHNvIGl0IGNob3NlICR7YnJhbmNoTmFtZX0uYCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgSXQgJHtldmVudC5kZXNjcmlwdGlvbn0gYW5kIGNob3NlICR7YnJhbmNoTmFtZX0uYCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5yYXRpb25hbGUpIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEEgZGVjaXNpb24gd2FzIG1hZGU6ICR7ZXZlbnQucmF0aW9uYWxlfSwgc28gdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEEgZGVjaXNpb24gd2FzIG1hZGUsIGFuZCB0aGUgcGF0aCB0YWtlbiB3YXMgJHticmFuY2hOYW1lfS5gKTtcbiAgICB9XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuZGVjaWRlcik7XG4gIH1cblxuICBvbkZvcmsoZXZlbnQ6IEZsb3dGb3JrRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lcyA9IGV2ZW50LmNoaWxkcmVuLmpvaW4oJywgJyk7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRm9ya2luZyBpbnRvICR7ZXZlbnQuY2hpbGRyZW4ubGVuZ3RofSBwYXJhbGxlbCBwYXRoczogJHtuYW1lc30uYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2godW5kZWZpbmVkKTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWQoZXZlbnQ6IEZsb3dTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmFtZXMgPSBldmVudC5zZWxlY3RlZC5qb2luKCcsICcpO1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYCR7ZXZlbnQuc2VsZWN0ZWQubGVuZ3RofSBvZiAke2V2ZW50LnRvdGFsfSBwYXRocyB3ZXJlIHNlbGVjdGVkOiAke25hbWVzfS5gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaCh1bmRlZmluZWQpO1xuICB9XG5cbiAgb25TdWJmbG93RW50cnkoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEVudGVyaW5nIHRoZSAke2V2ZW50Lm5hbWV9IHN1YmZsb3c6ICR7ZXZlbnQuZGVzY3JpcHRpb259LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFbnRlcmluZyB0aGUgJHtldmVudC5uYW1lfSBzdWJmbG93LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5uYW1lKTtcbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFeGl0aW5nIHRoZSAke2V2ZW50Lm5hbWV9IHN1YmZsb3cuYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQubmFtZSk7XG4gIH1cblxuICBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE9uIHBhc3MgJHtldmVudC5pdGVyYXRpb259OiAke2V2ZW50LmRlc2NyaXB0aW9ufSBhZ2Fpbi5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgT24gcGFzcyAke2V2ZW50Lml0ZXJhdGlvbn0gdGhyb3VnaCAke2V2ZW50LnRhcmdldH0uYCk7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnRhcmdldCk7XG4gIH1cblxuICBvbkJyZWFrKGV2ZW50OiBGbG93QnJlYWtFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEV4ZWN1dGlvbiBzdG9wcGVkIGF0ICR7ZXZlbnQuc3RhZ2VOYW1lfS5gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgb25FcnJvcihldmVudDogRmxvd0Vycm9yRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgc2VudGVuY2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQgYXQgJHtldmVudC5zdGFnZU5hbWV9OiAke2V2ZW50Lm1lc3NhZ2V9LmA7XG5cbiAgICAvLyBFbnJpY2ggd2l0aCBmaWVsZC1sZXZlbCBpc3N1ZXMgd2hlbiBhdmFpbGFibGVcbiAgICBpZiAoZXZlbnQuc3RydWN0dXJlZEVycm9yLmlzc3VlcyAmJiBldmVudC5zdHJ1Y3R1cmVkRXJyb3IuaXNzdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlzc3VlRGV0YWlscyA9IGV2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXNcbiAgICAgICAgLm1hcCgoaXNzdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gaXNzdWUucGF0aC5sZW5ndGggPiAwID8gaXNzdWUucGF0aC5qb2luKCcuJykgOiAnKHJvb3QpJztcbiAgICAgICAgICByZXR1cm4gYCR7cGF0aH06ICR7aXNzdWUubWVzc2FnZX1gO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbignOyAnKTtcbiAgICAgIHNlbnRlbmNlICs9IGAgVmFsaWRhdGlvbiBpc3N1ZXM6ICR7aXNzdWVEZXRhaWxzfS5gO1xuICAgIH1cblxuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goc2VudGVuY2UpO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBGbG93UGF1c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEV4ZWN1dGlvbiBwYXVzZWQgYXQgJHtldmVudC5zdGFnZU5hbWV9LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblJlc3VtZShldmVudDogRmxvd1Jlc3VtZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3VmZml4ID0gZXZlbnQuaGFzSW5wdXQgPyAnIHdpdGggaW5wdXQuJyA6ICcuJztcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFeGVjdXRpb24gcmVzdW1lZCBhdCAke2V2ZW50LnN0YWdlTmFtZX0ke3N1ZmZpeH1gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYSBkZWZlbnNpdmUgY29weSBvZiBhY2N1bXVsYXRlZCBzZW50ZW5jZXMuICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNlbnRlbmNlc107XG4gIH1cblxuICAvKiogQ2xlYXJzIGFjY3VtdWxhdGVkIHNlbnRlbmNlcy4gVXNlZnVsIGZvciByZXVzZSBhY3Jvc3MgcnVucy4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMgPSBbXTtcbiAgICB0aGlzLnN0YWdlTmFtZXMgPSBbXTtcbiAgfVxufVxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL05hcnJhdGl2ZUZsb3dSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFpQkgsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixFQUFFLENBQVM7SUFDWixTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQ2pDLHlFQUF5RTtJQUNqRSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUVoRCxZQUFZLEVBQVc7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBcUI7UUFDbkMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBb0I7UUFDekIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0Qs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QztpQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZCxRQUFRLElBQUksdUJBQXVCLFlBQVksR0FBRyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFxQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBc0I7UUFDN0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxZQUFZO1FBQ1YsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBEZWZhdWx0IEZsb3dSZWNvcmRlciB0aGF0IGdlbmVyYXRlcyBwbGFpbi1FbmdsaXNoIG5hcnJhdGl2ZS5cbiAqXG4gKiBUaGlzIGlzIHRoZSBGbG93UmVjb3JkZXIgZXF1aXZhbGVudCBvZiBDb250cm9sRmxvd05hcnJhdGl2ZUdlbmVyYXRvci5cbiAqIFByb2R1Y2VzIHRoZSBzYW1lIHNlbnRlbmNlcywgc2FtZSBmb3JtYXQsIHNhbWUgYmVoYXZpb3Ig4oCUIGJ1dCBhcyBhXG4gKiBwbHVnZ2FibGUgRmxvd1JlY29yZGVyIHRoYXQgY2FuIGJlIHN3YXBwZWQsIGV4dGVuZGVkLCBvciBjb21wb3NlZC5cbiAqXG4gKiBDb25zdW1lcnMgd2hvIHdhbnQgZGlmZmVyZW50IG5hcnJhdGl2ZSBiZWhhdmlvciAod2luZG93ZWQgbG9vcHMsIGFkYXB0aXZlXG4gKiBzdW1tYXJpemF0aW9uLCBldGMuKSBjYW4gcmVwbGFjZSB0aGlzIHdpdGggYSBkaWZmZXJlbnQgRmxvd1JlY29yZGVyLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRmxvd0JyZWFrRXZlbnQsXG4gIEZsb3dEZWNpc2lvbkV2ZW50LFxuICBGbG93RXJyb3JFdmVudCxcbiAgRmxvd0ZvcmtFdmVudCxcbiAgRmxvd0xvb3BFdmVudCxcbiAgRmxvd05leHRFdmVudCxcbiAgRmxvd1BhdXNlRXZlbnQsXG4gIEZsb3dSZWNvcmRlcixcbiAgRmxvd1Jlc3VtZUV2ZW50LFxuICBGbG93U2VsZWN0ZWRFdmVudCxcbiAgRmxvd1N0YWdlRXZlbnQsXG4gIEZsb3dTdWJmbG93RXZlbnQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgTmFycmF0aXZlRmxvd1JlY29yZGVyIGltcGxlbWVudHMgRmxvd1JlY29yZGVyIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzZW50ZW5jZXM6IHN0cmluZ1tdID0gW107XG4gIC8qKiBQYXJhbGxlbCBhcnJheTogdGhlIGFjdHVhbCBzdGFnZSBuYW1lIHRoYXQgcHJvZHVjZWQgZWFjaCBzZW50ZW5jZS4gKi9cbiAgcHJpdmF0ZSBzdGFnZU5hbWVzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkID0gaWQgPz8gJ25hcnJhdGl2ZSc7XG4gIH1cblxuICBvblN0YWdlRXhlY3V0ZWQoZXZlbnQ6IEZsb3dTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBOZXh0IHN0ZXA6ICR7ZXZlbnQuZGVzY3JpcHRpb259LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBOZXh0LCBpdCBtb3ZlZCBvbiB0byAke2V2ZW50LnN0YWdlTmFtZX0uYCk7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvbk5leHQoZXZlbnQ6IEZsb3dOZXh0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE5leHQgc3RlcDogJHtldmVudC5kZXNjcmlwdGlvbn0uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE5leHQsIGl0IG1vdmVkIG9uIHRvICR7ZXZlbnQudG99LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC50byk7XG4gIH1cblxuICBvbkRlY2lzaW9uKGV2ZW50OiBGbG93RGVjaXNpb25FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGJyYW5jaE5hbWUgPSBldmVudC5jaG9zZW47XG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uICYmIGV2ZW50LnJhdGlvbmFsZSkge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgSXQgJHtldmVudC5kZXNjcmlwdGlvbn06ICR7ZXZlbnQucmF0aW9uYWxlfSwgc28gaXQgY2hvc2UgJHticmFuY2hOYW1lfS5gKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBJdCAke2V2ZW50LmRlc2NyaXB0aW9ufSBhbmQgY2hvc2UgJHticmFuY2hOYW1lfS5gKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnJhdGlvbmFsZSkge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgQSBkZWNpc2lvbiB3YXMgbWFkZTogJHtldmVudC5yYXRpb25hbGV9LCBzbyB0aGUgcGF0aCB0YWtlbiB3YXMgJHticmFuY2hOYW1lfS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgQSBkZWNpc2lvbiB3YXMgbWFkZSwgYW5kIHRoZSBwYXRoIHRha2VuIHdhcyAke2JyYW5jaE5hbWV9LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5kZWNpZGVyKTtcbiAgfVxuXG4gIG9uRm9yayhldmVudDogRmxvd0ZvcmtFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG5hbWVzID0gZXZlbnQuY2hpbGRyZW4uam9pbignLCAnKTtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBGb3JraW5nIGludG8gJHtldmVudC5jaGlsZHJlbi5sZW5ndGh9IHBhcmFsbGVsIHBhdGhzOiAke25hbWVzfS5gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaCh1bmRlZmluZWQpO1xuICB9XG5cbiAgb25TZWxlY3RlZChldmVudDogRmxvd1NlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lcyA9IGV2ZW50LnNlbGVjdGVkLmpvaW4oJywgJyk7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChgJHtldmVudC5zZWxlY3RlZC5sZW5ndGh9IG9mICR7ZXZlbnQudG90YWx9IHBhdGhzIHdlcmUgc2VsZWN0ZWQ6ICR7bmFtZXN9LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKHVuZGVmaW5lZCk7XG4gIH1cblxuICBvblN1YmZsb3dFbnRyeShldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRW50ZXJpbmcgdGhlICR7ZXZlbnQubmFtZX0gc3ViZmxvdzogJHtldmVudC5kZXNjcmlwdGlvbn0uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEVudGVyaW5nIHRoZSAke2V2ZW50Lm5hbWV9IHN1YmZsb3cuYCk7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50Lm5hbWUpO1xuICB9XG5cbiAgb25TdWJmbG93RXhpdChldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEV4aXRpbmcgdGhlICR7ZXZlbnQubmFtZX0gc3ViZmxvdy5gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5uYW1lKTtcbiAgfVxuXG4gIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgT24gcGFzcyAke2V2ZW50Lml0ZXJhdGlvbn06ICR7ZXZlbnQuZGVzY3JpcHRpb259IGFnYWluLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufSB0aHJvdWdoICR7ZXZlbnQudGFyZ2V0fS5gKTtcbiAgICB9XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQudGFyZ2V0KTtcbiAgfVxuXG4gIG9uQnJlYWsoZXZlbnQ6IEZsb3dCcmVha0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRXhlY3V0aW9uIHN0b3BwZWQgYXQgJHtldmVudC5zdGFnZU5hbWV9LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvbkVycm9yKGV2ZW50OiBGbG93RXJyb3JFdmVudCk6IHZvaWQge1xuICAgIGxldCBzZW50ZW5jZSA9IGBBbiBlcnJvciBvY2N1cnJlZCBhdCAke2V2ZW50LnN0YWdlTmFtZX06ICR7ZXZlbnQubWVzc2FnZX0uYDtcblxuICAgIC8vIEVucmljaCB3aXRoIGZpZWxkLWxldmVsIGlzc3VlcyB3aGVuIGF2YWlsYWJsZVxuICAgIGlmIChldmVudC5zdHJ1Y3R1cmVkRXJyb3IuaXNzdWVzICYmIGV2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaXNzdWVEZXRhaWxzID0gZXZlbnQuc3RydWN0dXJlZEVycm9yLmlzc3Vlc1xuICAgICAgICAubWFwKChpc3N1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGggPSBpc3N1ZS5wYXRoLmxlbmd0aCA+IDAgPyBpc3N1ZS5wYXRoLmpvaW4oJy4nKSA6ICcocm9vdCknO1xuICAgICAgICAgIHJldHVybiBgJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCc7ICcpO1xuICAgICAgc2VudGVuY2UgKz0gYCBWYWxpZGF0aW9uIGlzc3VlczogJHtpc3N1ZURldGFpbHN9LmA7XG4gICAgfVxuXG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChzZW50ZW5jZSk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIG9uUGF1c2UoZXZlbnQ6IEZsb3dQYXVzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRXhlY3V0aW9uIHBhdXNlZCBhdCAke2V2ZW50LnN0YWdlTmFtZX0uYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIG9uUmVzdW1lKGV2ZW50OiBGbG93UmVzdW1lRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdWZmaXggPSBldmVudC5oYXNJbnB1dCA/ICcgd2l0aCBpbnB1dC4nIDogJy4nO1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEV4ZWN1dGlvbiByZXN1bWVkIGF0ICR7ZXZlbnQuc3RhZ2VOYW1lfSR7c3VmZml4fWApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhIGRlZmVuc2l2ZSBjb3B5IG9mIGFjY3VtdWxhdGVkIHNlbnRlbmNlcy4gKi9cbiAgZ2V0U2VudGVuY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuc2VudGVuY2VzXTtcbiAgfVxuXG4gIC8qKiBDbGVhcnMgYWNjdW11bGF0ZWQgc2VudGVuY2VzLiBVc2VmdWwgZm9yIHJldXNlIGFjcm9zcyBydW5zLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcyA9IFtdO1xuICAgIHRoaXMuc3RhZ2VOYW1lcyA9IFtdO1xuICB9XG59XG4iXX0=
@@ -12,16 +12,17 @@
12
12
  */
13
13
  import { NarrativeFlowRecorder } from '../NarrativeFlowRecorder.js';
14
14
  export class AdaptiveNarrativeFlowRecorder extends NarrativeFlowRecorder {
15
+ threshold;
16
+ sampleRate;
17
+ totalPerTarget = new Map();
18
+ suppressedCount = 0;
15
19
  constructor(threshold = 5, sampleRate = 10, id) {
16
- super(id !== null && id !== void 0 ? id : 'narrative-adaptive');
17
- this.totalPerTarget = new Map();
18
- this.suppressedCount = 0;
20
+ super(id ?? 'narrative-adaptive');
19
21
  this.threshold = threshold;
20
22
  this.sampleRate = sampleRate;
21
23
  }
22
24
  onLoop(event) {
23
- var _a;
24
- const count = ((_a = this.totalPerTarget.get(event.target)) !== null && _a !== void 0 ? _a : 0) + 1;
25
+ const count = (this.totalPerTarget.get(event.target) ?? 0) + 1;
25
26
  this.totalPerTarget.set(event.target, count);
26
27
  if (event.iteration <= this.threshold) {
27
28
  // Full detail phase
@@ -45,4 +46,4 @@ export class AdaptiveNarrativeFlowRecorder extends NarrativeFlowRecorder {
45
46
  this.suppressedCount = 0;
46
47
  }
47
48
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRhcHRpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL0FkYXB0aXZlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHcEUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHFCQUFxQjtJQU10RSxZQUFZLFNBQVMsR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxFQUFXO1FBQ3JELEtBQUssQ0FBQyxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxvQkFBb0IsQ0FBQyxDQUFDO1FBSjVCLG1CQUFjLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFJMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFvQjs7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUNBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxvQkFBb0I7WUFDcEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEUsZ0NBQWdDO1lBQ2hDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSztRQUNaLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZGFwdGl2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciDigJQgRnVsbCBkZXRhaWwgdW50aWwgdGhyZXNob2xkLCB0aGVuIHNhbXBsZXMgZXZlcnkgTnRoLlxuICpcbiAqIEJlc3QgZm9yOiBVbmtub3duIGxvb3AgY291bnRzIHdoZXJlIHlvdSB3YW50IGZ1bGwgZGV0YWlsIGZvciBzaG9ydCBsb29wc1xuICogYnV0IGF1dG9tYXRpYyBjb21wcmVzc2lvbiBmb3IgbG9uZyBvbmVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBGdWxsIGRldGFpbCBmb3IgZmlyc3QgNSwgdGhlbiBldmVyeSAxMHRoIGl0ZXJhdGlvblxuICogZXhlY3V0b3IuYXR0YWNoRmxvd1JlY29yZGVyKG5ldyBBZGFwdGl2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlcig1LCAxMCkpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0xvb3BFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIEFkYXB0aXZlTmFycmF0aXZlRmxvd1JlY29yZGVyIGV4dGVuZHMgTmFycmF0aXZlRmxvd1JlY29yZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW1wbGVSYXRlOiBudW1iZXI7XG4gIHByaXZhdGUgdG90YWxQZXJUYXJnZXQ6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgc3VwcHJlc3NlZENvdW50ID0gMDtcblxuICBjb25zdHJ1Y3Rvcih0aHJlc2hvbGQgPSA1LCBzYW1wbGVSYXRlID0gMTAsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQgPz8gJ25hcnJhdGl2ZS1hZGFwdGl2ZScpO1xuICAgIHRoaXMudGhyZXNob2xkID0gdGhyZXNob2xkO1xuICAgIHRoaXMuc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9ICh0aGlzLnRvdGFsUGVyVGFyZ2V0LmdldChldmVudC50YXJnZXQpID8/IDApICsgMTtcbiAgICB0aGlzLnRvdGFsUGVyVGFyZ2V0LnNldChldmVudC50YXJnZXQsIGNvdW50KTtcblxuICAgIGlmIChldmVudC5pdGVyYXRpb24gPD0gdGhpcy50aHJlc2hvbGQpIHtcbiAgICAgIC8vIEZ1bGwgZGV0YWlsIHBoYXNlXG4gICAgICBzdXBlci5vbkxvb3AoZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoKGV2ZW50Lml0ZXJhdGlvbiAtIHRoaXMudGhyZXNob2xkKSAlIHRoaXMuc2FtcGxlUmF0ZSA9PT0gMCkge1xuICAgICAgLy8gU2FtcGxlIHBoYXNlIOKAlCBlbWl0IGV2ZXJ5IE50aFxuICAgICAgc3VwZXIub25Mb29wKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXBwcmVzc2VkQ291bnQrKztcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN1cHByZXNzZWQgbG9vcCBzZW50ZW5jZXMuICovXG4gIGdldFN1cHByZXNzZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1cHByZXNzZWRDb3VudDtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy50b3RhbFBlclRhcmdldC5jbGVhcigpO1xuICAgIHRoaXMuc3VwcHJlc3NlZENvdW50ID0gMDtcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRhcHRpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL0FkYXB0aXZlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHcEUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHFCQUFxQjtJQUNyRCxTQUFTLENBQVM7SUFDbEIsVUFBVSxDQUFTO0lBQzVCLGNBQWMsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRTVCLFlBQVksU0FBUyxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsRUFBRSxFQUFFLEVBQVc7UUFDckQsS0FBSyxDQUFDLEVBQUUsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFUSxNQUFNLENBQUMsS0FBb0I7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxvQkFBb0I7WUFDcEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEUsZ0NBQWdDO1lBQ2hDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSztRQUNaLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZGFwdGl2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciDigJQgRnVsbCBkZXRhaWwgdW50aWwgdGhyZXNob2xkLCB0aGVuIHNhbXBsZXMgZXZlcnkgTnRoLlxuICpcbiAqIEJlc3QgZm9yOiBVbmtub3duIGxvb3AgY291bnRzIHdoZXJlIHlvdSB3YW50IGZ1bGwgZGV0YWlsIGZvciBzaG9ydCBsb29wc1xuICogYnV0IGF1dG9tYXRpYyBjb21wcmVzc2lvbiBmb3IgbG9uZyBvbmVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBGdWxsIGRldGFpbCBmb3IgZmlyc3QgNSwgdGhlbiBldmVyeSAxMHRoIGl0ZXJhdGlvblxuICogZXhlY3V0b3IuYXR0YWNoRmxvd1JlY29yZGVyKG5ldyBBZGFwdGl2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlcig1LCAxMCkpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0xvb3BFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIEFkYXB0aXZlTmFycmF0aXZlRmxvd1JlY29yZGVyIGV4dGVuZHMgTmFycmF0aXZlRmxvd1JlY29yZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW1wbGVSYXRlOiBudW1iZXI7XG4gIHByaXZhdGUgdG90YWxQZXJUYXJnZXQ6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgc3VwcHJlc3NlZENvdW50ID0gMDtcblxuICBjb25zdHJ1Y3Rvcih0aHJlc2hvbGQgPSA1LCBzYW1wbGVSYXRlID0gMTAsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQgPz8gJ25hcnJhdGl2ZS1hZGFwdGl2ZScpO1xuICAgIHRoaXMudGhyZXNob2xkID0gdGhyZXNob2xkO1xuICAgIHRoaXMuc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9ICh0aGlzLnRvdGFsUGVyVGFyZ2V0LmdldChldmVudC50YXJnZXQpID8/IDApICsgMTtcbiAgICB0aGlzLnRvdGFsUGVyVGFyZ2V0LnNldChldmVudC50YXJnZXQsIGNvdW50KTtcblxuICAgIGlmIChldmVudC5pdGVyYXRpb24gPD0gdGhpcy50aHJlc2hvbGQpIHtcbiAgICAgIC8vIEZ1bGwgZGV0YWlsIHBoYXNlXG4gICAgICBzdXBlci5vbkxvb3AoZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoKGV2ZW50Lml0ZXJhdGlvbiAtIHRoaXMudGhyZXNob2xkKSAlIHRoaXMuc2FtcGxlUmF0ZSA9PT0gMCkge1xuICAgICAgLy8gU2FtcGxlIHBoYXNlIOKAlCBlbWl0IGV2ZXJ5IE50aFxuICAgICAgc3VwZXIub25Mb29wKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXBwcmVzc2VkQ291bnQrKztcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN1cHByZXNzZWQgbG9vcCBzZW50ZW5jZXMuICovXG4gIGdldFN1cHByZXNzZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1cHByZXNzZWRDb3VudDtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy50b3RhbFBlclRhcmdldC5jbGVhcigpO1xuICAgIHRoaXMuc3VwcHJlc3NlZENvdW50ID0gMDtcbiAgfVxufVxuIl19
@@ -23,19 +23,19 @@
23
23
  * ```
24
24
  */
25
25
  export class ManifestFlowRecorder {
26
+ id;
27
+ /** Stack tracks nesting depth — current subflow is top of stack. */
28
+ stack = [];
29
+ /** Root-level subflows (not nested inside another subflow). */
30
+ roots = [];
31
+ /** Full specs stored from dynamic registration events. */
32
+ specs = new Map();
26
33
  constructor(id) {
27
- /** Stack tracks nesting depth — current subflow is top of stack. */
28
- this.stack = [];
29
- /** Root-level subflows (not nested inside another subflow). */
30
- this.roots = [];
31
- /** Full specs stored from dynamic registration events. */
32
- this.specs = new Map();
33
- this.id = id !== null && id !== void 0 ? id : 'manifest';
34
+ this.id = id ?? 'manifest';
34
35
  }
35
36
  onSubflowEntry(event) {
36
- var _a;
37
37
  const entry = {
38
- subflowId: (_a = event.subflowId) !== null && _a !== void 0 ? _a : event.name,
38
+ subflowId: event.subflowId ?? event.name,
39
39
  name: event.name,
40
40
  description: event.description,
41
41
  children: [],
@@ -92,4 +92,4 @@ export class ManifestFlowRecorder {
92
92
  this.specs.clear();
93
93
  }
94
94
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuaWZlc3RGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL01hbmlmZXN0Rmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWdCSCxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CLFlBQVksRUFBVztRQVB2QixvRUFBb0U7UUFDNUQsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDcEMsK0RBQStEO1FBQ3ZELFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLDBEQUEwRDtRQUNsRCxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7UUFHekMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1Qjs7UUFDcEMsTUFBTSxLQUFLLEdBQWtCO1lBQzNCLFNBQVMsRUFBRSxNQUFBLEtBQUssQ0FBQyxTQUFTLG1DQUFJLEtBQUssQ0FBQyxJQUFJO1lBQ3hDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUF3QjtRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBaUM7UUFDbkQsSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsV0FBVztRQUNULE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLFNBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxVQUFVO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVTtZQUNoQixXQUFXLEVBQUUsb0VBQW9FO1lBQ2pGLGtCQUFrQixFQUFFLFdBQW9CO1lBQ3hDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQsOEJBQThCO0lBQzlCLEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFuaWZlc3RGbG93UmVjb3JkZXIg4oCUIEJ1aWxkcyBhIGxpZ2h0d2VpZ2h0IHN1YmZsb3cgbWFuaWZlc3QgZHVyaW5nIHRyYXZlcnNhbC5cbiAqXG4gKiBDb2xsZWN0cyBzdWJmbG93IG1ldGFkYXRhIChJRCwgbmFtZSwgZGVzY3JpcHRpb24pIGFzIGEgc2lkZSBlZmZlY3Qgb2ZcbiAqIG9ic2VydmluZyB0cmF2ZXJzYWwgZXZlbnRzLiBQcm9kdWNlcyBhIHRyZWUgc3RydWN0dXJlIHN1aXRhYmxlIGZvciBMTE1cbiAqIG5hdmlnYXRpb246IGxpZ2h0d2VpZ2h0IGVub3VnaCB0byBpbmNsdWRlIGluIHNuYXBzaG90cywgd2l0aCBvbi1kZW1hbmRcbiAqIGFjY2VzcyB0byBmdWxsIHNwZWNzIHZpYSBnZXRTcGVjKCkuXG4gKlxuICogVGhlIG1hbmlmZXN0IHJlZmxlY3RzIG9ubHkgc3ViZmxvd3MgdGhhdCB3ZXJlIGFjdHVhbGx5IGVudGVyZWQgZHVyaW5nXG4gKiBleGVjdXRpb24g4oCUIHVudmlzaXRlZCBicmFuY2hlcyBhcmUgbm90IGluY2x1ZGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYW5pZmVzdCA9IG5ldyBNYW5pZmVzdEZsb3dSZWNvcmRlcigpO1xuICogZXhlY3V0b3IuYXR0YWNoRmxvd1JlY29yZGVyKG1hbmlmZXN0KTtcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bih7IGlucHV0OiBkYXRhIH0pO1xuICpcbiAqIC8vIExpZ2h0d2VpZ2h0IHRyZWUgb2Ygc3ViZmxvdyBJRHMgKyBkZXNjcmlwdGlvbnNcbiAqIGNvbnN0IHRyZWUgPSBtYW5pZmVzdC5nZXRNYW5pZmVzdCgpO1xuICpcbiAqIC8vIEZ1bGwgc3BlYyBmb3IgYSBzcGVjaWZpYyBzdWJmbG93IChpZiBhdmFpbGFibGUpXG4gKiBjb25zdCBzcGVjID0gbWFuaWZlc3QuZ2V0U3BlYygnc2YtY3JlZGl0LWNoZWNrJyk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dSZWNvcmRlciwgRmxvd1N1YmZsb3dFdmVudCwgRmxvd1N1YmZsb3dSZWdpc3RlcmVkRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBBIHNpbmdsZSBlbnRyeSBpbiB0aGUgc3ViZmxvdyBtYW5pZmVzdCB0cmVlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdEVudHJ5IHtcbiAgLyoqIFN1YmZsb3cgaWRlbnRpZmllciDigJQgdXNlIGZvciBvbi1kZW1hbmQgc3BlYyBsb29rdXAuICovXG4gIHN1YmZsb3dJZDogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQnVpbGQtdGltZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgc3ViZmxvdyBkb2VzLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE5lc3RlZCBzdWJmbG93cyBlbnRlcmVkIHdpdGhpbiB0aGlzIHN1YmZsb3cuICovXG4gIGNoaWxkcmVuOiBNYW5pZmVzdEVudHJ5W107XG59XG5cbmV4cG9ydCBjbGFzcyBNYW5pZmVzdEZsb3dSZWNvcmRlciBpbXBsZW1lbnRzIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqIFN0YWNrIHRyYWNrcyBuZXN0aW5nIGRlcHRoIOKAlCBjdXJyZW50IHN1YmZsb3cgaXMgdG9wIG9mIHN0YWNrLiAqL1xuICBwcml2YXRlIHN0YWNrOiBNYW5pZmVzdEVudHJ5W10gPSBbXTtcbiAgLyoqIFJvb3QtbGV2ZWwgc3ViZmxvd3MgKG5vdCBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgc3ViZmxvdykuICovXG4gIHByaXZhdGUgcm9vdHM6IE1hbmlmZXN0RW50cnlbXSA9IFtdO1xuICAvKiogRnVsbCBzcGVjcyBzdG9yZWQgZnJvbSBkeW5hbWljIHJlZ2lzdHJhdGlvbiBldmVudHMuICovXG4gIHByaXZhdGUgc3BlY3MgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcblxuICBjb25zdHJ1Y3RvcihpZD86IHN0cmluZykge1xuICAgIHRoaXMuaWQgPSBpZCA/PyAnbWFuaWZlc3QnO1xuICB9XG5cbiAgb25TdWJmbG93RW50cnkoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbnRyeTogTWFuaWZlc3RFbnRyeSA9IHtcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQuc3ViZmxvd0lkID8/IGV2ZW50Lm5hbWUsXG4gICAgICBuYW1lOiBldmVudC5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH07XG4gICAgdGhpcy5zdGFjay5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoX2V2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcGxldGVkID0gdGhpcy5zdGFjay5wb3AoKTtcbiAgICBpZiAoIWNvbXBsZXRlZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKGNvbXBsZXRlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm9vdHMucHVzaChjb21wbGV0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoZXZlbnQ6IEZsb3dTdWJmbG93UmVnaXN0ZXJlZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnNwZWNTdHJ1Y3R1cmUgJiYgIXRoaXMuc3BlY3MuaGFzKGV2ZW50LnN1YmZsb3dJZCkpIHtcbiAgICAgIHRoaXMuc3BlY3Muc2V0KGV2ZW50LnN1YmZsb3dJZCwgZXZlbnQuc3BlY1N0cnVjdHVyZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIG1hbmlmZXN0IHRyZWUg4oCUIGxpZ2h0d2VpZ2h0LCBzdWl0YWJsZSBmb3Igc25hcHNob3QgaW5jbHVzaW9uLiAqL1xuICBnZXRNYW5pZmVzdCgpOiBNYW5pZmVzdEVudHJ5W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5yb290c107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZnVsbCBzcGVjIGZvciBhIGR5bmFtaWNhbGx5LXJlZ2lzdGVyZWQgc3ViZmxvdy5cbiAgICogT25seSBwb3B1bGF0ZWQgZm9yIHN1YmZsb3dzIGF1dG8tcmVnaXN0ZXJlZCBhdCBydW50aW1lICh2aWEgU3RhZ2VOb2RlXG4gICAqIHJldHVybiB3aXRoIHN1YmZsb3dEZWYpLiBTdGF0aWNhbGx5LWNvbmZpZ3VyZWQgc3ViZmxvd3MgYXJlIG5vdCBpbmNsdWRlZFxuICAgKiBldmVuIGlmIHRoZXkgYXBwZWFyIGluIGdldE1hbmlmZXN0KCkuIFVzZSBGbG93Q2hhcnQuYnVpbGRUaW1lU3RydWN0dXJlXG4gICAqIHRvIGFjY2VzcyBzdGF0aWNhbGx5LWRlZmluZWQgc3ViZmxvdyBzcGVjcy5cbiAgICovXG4gIGdldFNwZWMoc3ViZmxvd0lkOiBzdHJpbmcpOiB1bmtub3duIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zcGVjcy5nZXQoc3ViZmxvd0lkKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGFsbCBzdG9yZWQgc3BlYyBJRHMuICovXG4gIGdldFNwZWNJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc3BlY3Mua2V5cygpKTtcbiAgfVxuXG4gIHRvU25hcHNob3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICdNYW5pZmVzdCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RyYW5zbGF0b3IgKEZsb3dSZWNvcmRlcikg4oCUIHN1YmZsb3cgY2F0YWxvZyBidWlsdCBkdXJpbmcgdHJhdmVyc2FsJyxcbiAgICAgIHByZWZlcnJlZE9wZXJhdGlvbjogJ3RyYW5zbGF0ZScgYXMgY29uc3QsXG4gICAgICBkYXRhOiB0aGlzLmdldE1hbmlmZXN0KCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDbGVhcnMgc3RhdGUgZm9yIHJldXNlLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YWNrID0gW107XG4gICAgdGhpcy5yb290cyA9IFtdO1xuICAgIHRoaXMuc3BlY3MuY2xlYXIoKTtcbiAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuaWZlc3RGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL01hbmlmZXN0Rmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWdCSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLEVBQUUsQ0FBUztJQUVwQixvRUFBb0U7SUFDNUQsS0FBSyxHQUFvQixFQUFFLENBQUM7SUFDcEMsK0RBQStEO0lBQ3ZELEtBQUssR0FBb0IsRUFBRSxDQUFDO0lBQ3BDLDBEQUEwRDtJQUNsRCxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFM0MsWUFBWSxFQUFXO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXVCO1FBQ3BDLE1BQU0sS0FBSyxHQUFrQjtZQUMzQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSTtZQUN4QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBd0I7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWlDO1FBQ25ELElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLFdBQVc7UUFDVCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxTQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsVUFBVTtRQUNSLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVU7WUFDaEIsV0FBVyxFQUFFLG9FQUFvRTtZQUNqRixrQkFBa0IsRUFBRSxXQUFvQjtZQUN4QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELDhCQUE4QjtJQUM5QixLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hbmlmZXN0Rmxvd1JlY29yZGVyIOKAlCBCdWlsZHMgYSBsaWdodHdlaWdodCBzdWJmbG93IG1hbmlmZXN0IGR1cmluZyB0cmF2ZXJzYWwuXG4gKlxuICogQ29sbGVjdHMgc3ViZmxvdyBtZXRhZGF0YSAoSUQsIG5hbWUsIGRlc2NyaXB0aW9uKSBhcyBhIHNpZGUgZWZmZWN0IG9mXG4gKiBvYnNlcnZpbmcgdHJhdmVyc2FsIGV2ZW50cy4gUHJvZHVjZXMgYSB0cmVlIHN0cnVjdHVyZSBzdWl0YWJsZSBmb3IgTExNXG4gKiBuYXZpZ2F0aW9uOiBsaWdodHdlaWdodCBlbm91Z2ggdG8gaW5jbHVkZSBpbiBzbmFwc2hvdHMsIHdpdGggb24tZGVtYW5kXG4gKiBhY2Nlc3MgdG8gZnVsbCBzcGVjcyB2aWEgZ2V0U3BlYygpLlxuICpcbiAqIFRoZSBtYW5pZmVzdCByZWZsZWN0cyBvbmx5IHN1YmZsb3dzIHRoYXQgd2VyZSBhY3R1YWxseSBlbnRlcmVkIGR1cmluZ1xuICogZXhlY3V0aW9uIOKAlCB1bnZpc2l0ZWQgYnJhbmNoZXMgYXJlIG5vdCBpbmNsdWRlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWFuaWZlc3QgPSBuZXcgTWFuaWZlc3RGbG93UmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihtYW5pZmVzdCk7XG4gKiBhd2FpdCBleGVjdXRvci5ydW4oeyBpbnB1dDogZGF0YSB9KTtcbiAqXG4gKiAvLyBMaWdodHdlaWdodCB0cmVlIG9mIHN1YmZsb3cgSURzICsgZGVzY3JpcHRpb25zXG4gKiBjb25zdCB0cmVlID0gbWFuaWZlc3QuZ2V0TWFuaWZlc3QoKTtcbiAqXG4gKiAvLyBGdWxsIHNwZWMgZm9yIGEgc3BlY2lmaWMgc3ViZmxvdyAoaWYgYXZhaWxhYmxlKVxuICogY29uc3Qgc3BlYyA9IG1hbmlmZXN0LmdldFNwZWMoJ3NmLWNyZWRpdC1jaGVjaycpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGbG93UmVjb3JkZXIsIEZsb3dTdWJmbG93RXZlbnQsIEZsb3dTdWJmbG93UmVnaXN0ZXJlZEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogQSBzaW5nbGUgZW50cnkgaW4gdGhlIHN1YmZsb3cgbWFuaWZlc3QgdHJlZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RFbnRyeSB7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIg4oCUIHVzZSBmb3Igb24tZGVtYW5kIHNwZWMgbG9va3VwLiAqL1xuICBzdWJmbG93SWQ6IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIG5hbWUuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEJ1aWxkLXRpbWUgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIHN1YmZsb3cgZG9lcy4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBOZXN0ZWQgc3ViZmxvd3MgZW50ZXJlZCB3aXRoaW4gdGhpcyBzdWJmbG93LiAqL1xuICBjaGlsZHJlbjogTWFuaWZlc3RFbnRyeVtdO1xufVxuXG5leHBvcnQgY2xhc3MgTWFuaWZlc3RGbG93UmVjb3JkZXIgaW1wbGVtZW50cyBGbG93UmVjb3JkZXIge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKiBTdGFjayB0cmFja3MgbmVzdGluZyBkZXB0aCDigJQgY3VycmVudCBzdWJmbG93IGlzIHRvcCBvZiBzdGFjay4gKi9cbiAgcHJpdmF0ZSBzdGFjazogTWFuaWZlc3RFbnRyeVtdID0gW107XG4gIC8qKiBSb290LWxldmVsIHN1YmZsb3dzIChub3QgbmVzdGVkIGluc2lkZSBhbm90aGVyIHN1YmZsb3cpLiAqL1xuICBwcml2YXRlIHJvb3RzOiBNYW5pZmVzdEVudHJ5W10gPSBbXTtcbiAgLyoqIEZ1bGwgc3BlY3Mgc3RvcmVkIGZyb20gZHluYW1pYyByZWdpc3RyYXRpb24gZXZlbnRzLiAqL1xuICBwcml2YXRlIHNwZWNzID0gbmV3IE1hcDxzdHJpbmcsIHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkID0gaWQgPz8gJ21hbmlmZXN0JztcbiAgfVxuXG4gIG9uU3ViZmxvd0VudHJ5KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW50cnk6IE1hbmlmZXN0RW50cnkgPSB7XG4gICAgICBzdWJmbG93SWQ6IGV2ZW50LnN1YmZsb3dJZCA/PyBldmVudC5uYW1lLFxuICAgICAgbmFtZTogZXZlbnQubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kZXNjcmlwdGlvbixcbiAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICB9O1xuICAgIHRoaXMuc3RhY2sucHVzaChlbnRyeSk7XG4gIH1cblxuICBvblN1YmZsb3dFeGl0KF9ldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBsZXRlZCA9IHRoaXMuc3RhY2sucG9wKCk7XG4gICAgaWYgKCFjb21wbGV0ZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChjb21wbGV0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvb3RzLnB1c2goY29tcGxldGVkKTtcbiAgICB9XG4gIH1cblxuICBvblN1YmZsb3dSZWdpc3RlcmVkKGV2ZW50OiBGbG93U3ViZmxvd1JlZ2lzdGVyZWRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5zcGVjU3RydWN0dXJlICYmICF0aGlzLnNwZWNzLmhhcyhldmVudC5zdWJmbG93SWQpKSB7XG4gICAgICB0aGlzLnNwZWNzLnNldChldmVudC5zdWJmbG93SWQsIGV2ZW50LnNwZWNTdHJ1Y3R1cmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBtYW5pZmVzdCB0cmVlIOKAlCBsaWdodHdlaWdodCwgc3VpdGFibGUgZm9yIHNuYXBzaG90IGluY2x1c2lvbi4gKi9cbiAgZ2V0TWFuaWZlc3QoKTogTWFuaWZlc3RFbnRyeVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMucm9vdHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwgc3BlYyBmb3IgYSBkeW5hbWljYWxseS1yZWdpc3RlcmVkIHN1YmZsb3cuXG4gICAqIE9ubHkgcG9wdWxhdGVkIGZvciBzdWJmbG93cyBhdXRvLXJlZ2lzdGVyZWQgYXQgcnVudGltZSAodmlhIFN0YWdlTm9kZVxuICAgKiByZXR1cm4gd2l0aCBzdWJmbG93RGVmKS4gU3RhdGljYWxseS1jb25maWd1cmVkIHN1YmZsb3dzIGFyZSBub3QgaW5jbHVkZWRcbiAgICogZXZlbiBpZiB0aGV5IGFwcGVhciBpbiBnZXRNYW5pZmVzdCgpLiBVc2UgRmxvd0NoYXJ0LmJ1aWxkVGltZVN0cnVjdHVyZVxuICAgKiB0byBhY2Nlc3Mgc3RhdGljYWxseS1kZWZpbmVkIHN1YmZsb3cgc3BlY3MuXG4gICAqL1xuICBnZXRTcGVjKHN1YmZsb3dJZDogc3RyaW5nKTogdW5rbm93biB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3BlY3MuZ2V0KHN1YmZsb3dJZCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhbGwgc3RvcmVkIHNwZWMgSURzLiAqL1xuICBnZXRTcGVjSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNwZWNzLmtleXMoKSk7XG4gIH1cblxuICB0b1NuYXBzaG90KCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnTWFuaWZlc3QnLFxuICAgICAgZGVzY3JpcHRpb246ICdUcmFuc2xhdG9yIChGbG93UmVjb3JkZXIpIOKAlCBzdWJmbG93IGNhdGFsb2cgYnVpbHQgZHVyaW5nIHRyYXZlcnNhbCcsXG4gICAgICBwcmVmZXJyZWRPcGVyYXRpb246ICd0cmFuc2xhdGUnIGFzIGNvbnN0LFxuICAgICAgZGF0YTogdGhpcy5nZXRNYW5pZmVzdCgpLFxuICAgIH07XG4gIH1cblxuICAvKiogQ2xlYXJzIHN0YXRlIGZvciByZXVzZS4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFjayA9IFtdO1xuICAgIHRoaXMucm9vdHMgPSBbXTtcbiAgICB0aGlzLnNwZWNzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -12,9 +12,11 @@
12
12
  */
13
13
  import { NarrativeFlowRecorder } from '../NarrativeFlowRecorder.js';
14
14
  export class MilestoneNarrativeFlowRecorder extends NarrativeFlowRecorder {
15
+ interval;
16
+ alwaysEmitFirst;
17
+ suppressedCount = 0;
15
18
  constructor(interval = 10, alwaysEmitFirst = true, id) {
16
- super(id !== null && id !== void 0 ? id : 'narrative-milestone');
17
- this.suppressedCount = 0;
19
+ super(id ?? 'narrative-milestone');
18
20
  this.interval = interval;
19
21
  this.alwaysEmitFirst = alwaysEmitFirst;
20
22
  }
@@ -38,4 +40,4 @@ export class MilestoneNarrativeFlowRecorder extends NarrativeFlowRecorder {
38
40
  this.suppressedCount = 0;
39
41
  }
40
42
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlsZXN0b25lTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL3JlY29yZGVycy9NaWxlc3RvbmVOYXJyYXRpdmVGbG93UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdwRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEscUJBQXFCO0lBS3ZFLFlBQVksUUFBUSxHQUFHLEVBQUUsRUFBRSxlQUFlLEdBQUcsSUFBSSxFQUFFLEVBQVc7UUFDNUQsS0FBSyxDQUFDLEVBQUUsYUFBRixFQUFFLGNBQUYsRUFBRSxHQUFJLHFCQUFxQixDQUFDLENBQUM7UUFIN0Isb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFJMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1pbGVzdG9uZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciDigJQgRW1pdHMgZXZlcnkgTnRoIGl0ZXJhdGlvbiAobWlsZXN0b25lcyBvbmx5KS5cbiAqXG4gKiBCZXN0IGZvcjogSGlnaC1pdGVyYXRpb24gbG9vcHMgd2hlcmUgeW91IHdhbnQgcmVndWxhciBwcm9ncmVzcyBtYXJrZXJzXG4gKiB3aXRob3V0IGNhcmluZyBhYm91dCBpbmRpdmlkdWFsIGl0ZXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEVtaXQgZXZlcnkgMTB0aCBpdGVyYXRpb25cbiAqIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihuZXcgTWlsZXN0b25lTmFycmF0aXZlRmxvd1JlY29yZGVyKDEwKSk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBOYXJyYXRpdmVGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93TG9vcEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgTWlsZXN0b25lTmFycmF0aXZlRmxvd1JlY29yZGVyIGV4dGVuZHMgTmFycmF0aXZlRmxvd1JlY29yZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlcnZhbDogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGFsd2F5c0VtaXRGaXJzdDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdXBwcmVzc2VkQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGludGVydmFsID0gMTAsIGFsd2F5c0VtaXRGaXJzdCA9IHRydWUsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQgPz8gJ25hcnJhdGl2ZS1taWxlc3RvbmUnKTtcbiAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7XG4gICAgdGhpcy5hbHdheXNFbWl0Rmlyc3QgPSBhbHdheXNFbWl0Rmlyc3Q7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbHdheXNFbWl0Rmlyc3QgJiYgZXZlbnQuaXRlcmF0aW9uID09PSAxKSB7XG4gICAgICBzdXBlci5vbkxvb3AoZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuaXRlcmF0aW9uICUgdGhpcy5pbnRlcnZhbCA9PT0gMCkge1xuICAgICAgc3VwZXIub25Mb29wKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXBwcmVzc2VkQ291bnQrKztcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN1cHByZXNzZWQgbG9vcCBzZW50ZW5jZXMuICovXG4gIGdldFN1cHByZXNzZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1cHByZXNzZWRDb3VudDtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy5zdXBwcmVzc2VkQ291bnQgPSAwO1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlsZXN0b25lTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL3JlY29yZGVycy9NaWxlc3RvbmVOYXJyYXRpdmVGbG93UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdwRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEscUJBQXFCO0lBQ3RELFFBQVEsQ0FBUztJQUNqQixlQUFlLENBQVU7SUFDbEMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUU1QixZQUFZLFFBQVEsR0FBRyxFQUFFLEVBQUUsZUFBZSxHQUFHLElBQUksRUFBRSxFQUFXO1FBQzVELEtBQUssQ0FBQyxFQUFFLElBQUkscUJBQXFCLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSztRQUNaLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWlsZXN0b25lTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBFbWl0cyBldmVyeSBOdGggaXRlcmF0aW9uIChtaWxlc3RvbmVzIG9ubHkpLlxuICpcbiAqIEJlc3QgZm9yOiBIaWdoLWl0ZXJhdGlvbiBsb29wcyB3aGVyZSB5b3Ugd2FudCByZWd1bGFyIHByb2dyZXNzIG1hcmtlcnNcbiAqIHdpdGhvdXQgY2FyaW5nIGFib3V0IGluZGl2aWR1YWwgaXRlcmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRW1pdCBldmVyeSAxMHRoIGl0ZXJhdGlvblxuICogZXhlY3V0b3IuYXR0YWNoRmxvd1JlY29yZGVyKG5ldyBNaWxlc3RvbmVOYXJyYXRpdmVGbG93UmVjb3JkZXIoMTApKTtcbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB9IGZyb20gJy4uL05hcnJhdGl2ZUZsb3dSZWNvcmRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dMb29wRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNaWxlc3RvbmVOYXJyYXRpdmVGbG93UmVjb3JkZXIgZXh0ZW5kcyBOYXJyYXRpdmVGbG93UmVjb3JkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGludGVydmFsOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWx3YXlzRW1pdEZpcnN0OiBib29sZWFuO1xuICBwcml2YXRlIHN1cHByZXNzZWRDb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IoaW50ZXJ2YWwgPSAxMCwgYWx3YXlzRW1pdEZpcnN0ID0gdHJ1ZSwgaWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihpZCA/PyAnbmFycmF0aXZlLW1pbGVzdG9uZScpO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSBpbnRlcnZhbDtcbiAgICB0aGlzLmFsd2F5c0VtaXRGaXJzdCA9IGFsd2F5c0VtaXRGaXJzdDtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsd2F5c0VtaXRGaXJzdCAmJiBldmVudC5pdGVyYXRpb24gPT09IDEpIHtcbiAgICAgIHN1cGVyLm9uTG9vcChldmVudCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5pdGVyYXRpb24gJSB0aGlzLmludGVydmFsID09PSAwKSB7XG4gICAgICBzdXBlci5vbkxvb3AoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1cHByZXNzZWRDb3VudCsrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3VwcHJlc3NlZCBsb29wIHNlbnRlbmNlcy4gKi9cbiAgZ2V0U3VwcHJlc3NlZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VwcHJlc3NlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLnN1cHByZXNzZWRDb3VudCA9IDA7XG4gIH1cbn1cbiJdfQ==
@@ -15,12 +15,13 @@
15
15
  */
16
16
  import { NarrativeFlowRecorder } from '../NarrativeFlowRecorder.js';
17
17
  export class ProgressiveNarrativeFlowRecorder extends NarrativeFlowRecorder {
18
+ base;
19
+ suppressedCount = 0;
18
20
  /**
19
21
  * @param base - The exponential base. Default 2 means emit at 1, 2, 4, 8, 16...
20
22
  */
21
23
  constructor(base = 2, id) {
22
- super(id !== null && id !== void 0 ? id : 'narrative-progressive');
23
- this.suppressedCount = 0;
24
+ super(id ?? 'narrative-progressive');
24
25
  this.base = base;
25
26
  }
26
27
  onLoop(event) {
@@ -51,4 +52,4 @@ export class ProgressiveNarrativeFlowRecorder extends NarrativeFlowRecorder {
51
52
  this.suppressedCount = 0;
52
53
  }
53
54
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZ3Jlc3NpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1Byb2dyZXNzaXZlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHcEUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHFCQUFxQjtJQUl6RTs7T0FFRztJQUNILFlBQVksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFXO1FBQy9CLEtBQUssQ0FBQyxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSx1QkFBdUIsQ0FBQyxDQUFDO1FBTi9CLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBTzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFUSxNQUFNLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsU0FBaUI7UUFDbEMsMEJBQTBCO1FBQzFCLElBQUksU0FBUyxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNqQyx1Q0FBdUM7UUFDdkMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxLQUFLLEdBQUcsU0FBUyxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb2dyZXNzaXZlTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBFeHBvbmVudGlhbGx5IGRlY3JlYXNpbmcgZGV0YWlsIGFzIGl0ZXJhdGlvbnMgZ3Jvdy5cbiAqXG4gKiBFbWl0cyBhdCBleHBvbmVudGlhbGx5IGluY3JlYXNpbmcgaW50ZXJ2YWxzOiAxLCAyLCA0LCA4LCAxNiwgMzIsIC4uLlxuICogR2l2ZXMgcmljaCBkZXRhaWwgZm9yIGVhcmx5IGl0ZXJhdGlvbnMgYW5kIHByb2dyZXNzaXZlbHkgbGVzcyBhcyB0aGUgbG9vcCBjb250aW51ZXMuXG4gKlxuICogQmVzdCBmb3I6IENvbnZlcmdlbmNlLXN0eWxlIGxvb3BzIChncmFkaWVudCBkZXNjZW50LCBpdGVyYXRpdmUgcmVmaW5lbWVudClcbiAqIHdoZXJlIGVhcmx5IGl0ZXJhdGlvbnMgYXJlIG1vc3QgaW5mb3JtYXRpdmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihuZXcgUHJvZ3Jlc3NpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIoKSk7XG4gKiAvLyBFbWl0czogcGFzcyAxLCAyLCA0LCA4LCAxNiwgMzIsIDY0LCAxMjguLi5cbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB9IGZyb20gJy4uL05hcnJhdGl2ZUZsb3dSZWNvcmRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dMb29wRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2l2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciBleHRlbmRzIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZTogbnVtYmVyO1xuICBwcml2YXRlIHN1cHByZXNzZWRDb3VudCA9IDA7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBiYXNlIC0gVGhlIGV4cG9uZW50aWFsIGJhc2UuIERlZmF1bHQgMiBtZWFucyBlbWl0IGF0IDEsIDIsIDQsIDgsIDE2Li4uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihiYXNlID0gMiwgaWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihpZCA/PyAnbmFycmF0aXZlLXByb2dyZXNzaXZlJyk7XG4gICAgdGhpcy5iYXNlID0gYmFzZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3VsZEVtaXQoZXZlbnQuaXRlcmF0aW9uKSkge1xuICAgICAgc3VwZXIub25Mb29wKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXBwcmVzc2VkQ291bnQrKztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEVtaXQoaXRlcmF0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAvLyBBbHdheXMgZW1pdCBpdGVyYXRpb24gMVxuICAgIGlmIChpdGVyYXRpb24gPT09IDEpIHJldHVybiB0cnVlO1xuICAgIC8vIEVtaXQgaWYgaXRlcmF0aW9uIGlzIGEgcG93ZXIgb2YgYmFzZVxuICAgIGxldCBwb3dlciA9IDE7XG4gICAgd2hpbGUgKHBvd2VyIDwgaXRlcmF0aW9uKSB7XG4gICAgICBwb3dlciAqPSB0aGlzLmJhc2U7XG4gICAgfVxuICAgIHJldHVybiBwb3dlciA9PT0gaXRlcmF0aW9uO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBzdXBwcmVzc2VkIGxvb3Agc2VudGVuY2VzLiAqL1xuICBnZXRTdXBwcmVzc2VkQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwcmVzc2VkQ291bnQ7XG4gIH1cblxuICBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhcigpO1xuICAgIHRoaXMuc3VwcHJlc3NlZENvdW50ID0gMDtcbiAgfVxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZ3Jlc3NpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1Byb2dyZXNzaXZlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHcEUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHFCQUFxQjtJQUN4RCxJQUFJLENBQVM7SUFDdEIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUU1Qjs7T0FFRztJQUNILFlBQVksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFXO1FBQy9CLEtBQUssQ0FBQyxFQUFFLElBQUksdUJBQXVCLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQWlCO1FBQ2xDLDBCQUEwQjtRQUMxQixJQUFJLFNBQVMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakMsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFUSxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9ncmVzc2l2ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciDigJQgRXhwb25lbnRpYWxseSBkZWNyZWFzaW5nIGRldGFpbCBhcyBpdGVyYXRpb25zIGdyb3cuXG4gKlxuICogRW1pdHMgYXQgZXhwb25lbnRpYWxseSBpbmNyZWFzaW5nIGludGVydmFsczogMSwgMiwgNCwgOCwgMTYsIDMyLCAuLi5cbiAqIEdpdmVzIHJpY2ggZGV0YWlsIGZvciBlYXJseSBpdGVyYXRpb25zIGFuZCBwcm9ncmVzc2l2ZWx5IGxlc3MgYXMgdGhlIGxvb3AgY29udGludWVzLlxuICpcbiAqIEJlc3QgZm9yOiBDb252ZXJnZW5jZS1zdHlsZSBsb29wcyAoZ3JhZGllbnQgZGVzY2VudCwgaXRlcmF0aXZlIHJlZmluZW1lbnQpXG4gKiB3aGVyZSBlYXJseSBpdGVyYXRpb25zIGFyZSBtb3N0IGluZm9ybWF0aXZlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIobmV3IFByb2dyZXNzaXZlTmFycmF0aXZlRmxvd1JlY29yZGVyKCkpO1xuICogLy8gRW1pdHM6IHBhc3MgMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4Li4uXG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBOYXJyYXRpdmVGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93TG9vcEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NpdmVOYXJyYXRpdmVGbG93UmVjb3JkZXIgZXh0ZW5kcyBOYXJyYXRpdmVGbG93UmVjb3JkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2U6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdXBwcmVzc2VkQ291bnQgPSAwO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gYmFzZSAtIFRoZSBleHBvbmVudGlhbCBiYXNlLiBEZWZhdWx0IDIgbWVhbnMgZW1pdCBhdCAxLCAyLCA0LCA4LCAxNi4uLlxuICAgKi9cbiAgY29uc3RydWN0b3IoYmFzZSA9IDIsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQgPz8gJ25hcnJhdGl2ZS1wcm9ncmVzc2l2ZScpO1xuICAgIHRoaXMuYmFzZSA9IGJhc2U7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG91bGRFbWl0KGV2ZW50Lml0ZXJhdGlvbikpIHtcbiAgICAgIHN1cGVyLm9uTG9vcChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3VwcHJlc3NlZENvdW50Kys7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRFbWl0KGl0ZXJhdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgLy8gQWx3YXlzIGVtaXQgaXRlcmF0aW9uIDFcbiAgICBpZiAoaXRlcmF0aW9uID09PSAxKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBFbWl0IGlmIGl0ZXJhdGlvbiBpcyBhIHBvd2VyIG9mIGJhc2VcbiAgICBsZXQgcG93ZXIgPSAxO1xuICAgIHdoaWxlIChwb3dlciA8IGl0ZXJhdGlvbikge1xuICAgICAgcG93ZXIgKj0gdGhpcy5iYXNlO1xuICAgIH1cbiAgICByZXR1cm4gcG93ZXIgPT09IGl0ZXJhdGlvbjtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3VwcHJlc3NlZCBsb29wIHNlbnRlbmNlcy4gKi9cbiAgZ2V0U3VwcHJlc3NlZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VwcHJlc3NlZENvdW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLnN1cHByZXNzZWRDb3VudCA9IDA7XG4gIH1cbn1cbiJdfQ==