@ruvector/ruvllm 0.2.0

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 (75) hide show
  1. package/README.md +406 -0
  2. package/bin/cli.js +387 -0
  3. package/dist/cjs/engine.d.ts +90 -0
  4. package/dist/cjs/engine.d.ts.map +1 -0
  5. package/dist/cjs/engine.js +301 -0
  6. package/dist/cjs/export.d.ts +182 -0
  7. package/dist/cjs/export.d.ts.map +1 -0
  8. package/dist/cjs/export.js +422 -0
  9. package/dist/cjs/federated.d.ts +233 -0
  10. package/dist/cjs/federated.d.ts.map +1 -0
  11. package/dist/cjs/federated.js +525 -0
  12. package/dist/cjs/index.d.ts +64 -0
  13. package/dist/cjs/index.d.ts.map +1 -0
  14. package/dist/cjs/index.js +96 -0
  15. package/dist/cjs/lora.d.ts +240 -0
  16. package/dist/cjs/lora.d.ts.map +1 -0
  17. package/dist/cjs/lora.js +494 -0
  18. package/dist/cjs/native.d.ts +83 -0
  19. package/dist/cjs/native.d.ts.map +1 -0
  20. package/dist/cjs/native.js +70 -0
  21. package/dist/cjs/session.d.ts +80 -0
  22. package/dist/cjs/session.d.ts.map +1 -0
  23. package/dist/cjs/session.js +203 -0
  24. package/dist/cjs/simd.d.ts +90 -0
  25. package/dist/cjs/simd.d.ts.map +1 -0
  26. package/dist/cjs/simd.js +209 -0
  27. package/dist/cjs/sona.d.ts +187 -0
  28. package/dist/cjs/sona.d.ts.map +1 -0
  29. package/dist/cjs/sona.js +500 -0
  30. package/dist/cjs/streaming.d.ts +55 -0
  31. package/dist/cjs/streaming.d.ts.map +1 -0
  32. package/dist/cjs/streaming.js +131 -0
  33. package/dist/cjs/training.d.ts +254 -0
  34. package/dist/cjs/training.d.ts.map +1 -0
  35. package/dist/cjs/training.js +480 -0
  36. package/dist/cjs/types.d.ts +599 -0
  37. package/dist/cjs/types.d.ts.map +1 -0
  38. package/dist/cjs/types.js +6 -0
  39. package/dist/esm/engine.d.ts +90 -0
  40. package/dist/esm/engine.d.ts.map +1 -0
  41. package/dist/esm/engine.js +297 -0
  42. package/dist/esm/export.d.ts +182 -0
  43. package/dist/esm/export.d.ts.map +1 -0
  44. package/dist/esm/export.js +414 -0
  45. package/dist/esm/federated.d.ts +233 -0
  46. package/dist/esm/federated.d.ts.map +1 -0
  47. package/dist/esm/federated.js +520 -0
  48. package/dist/esm/index.d.ts +64 -0
  49. package/dist/esm/index.d.ts.map +1 -0
  50. package/dist/esm/index.js +76 -0
  51. package/dist/esm/lora.d.ts +240 -0
  52. package/dist/esm/lora.d.ts.map +1 -0
  53. package/dist/esm/lora.js +489 -0
  54. package/dist/esm/native.d.ts +83 -0
  55. package/dist/esm/native.d.ts.map +1 -0
  56. package/dist/esm/native.js +65 -0
  57. package/dist/esm/session.d.ts +80 -0
  58. package/dist/esm/session.d.ts.map +1 -0
  59. package/dist/esm/session.js +199 -0
  60. package/dist/esm/simd.d.ts +90 -0
  61. package/dist/esm/simd.d.ts.map +1 -0
  62. package/dist/esm/simd.js +205 -0
  63. package/dist/esm/sona.d.ts +187 -0
  64. package/dist/esm/sona.d.ts.map +1 -0
  65. package/dist/esm/sona.js +494 -0
  66. package/dist/esm/streaming.d.ts +55 -0
  67. package/dist/esm/streaming.d.ts.map +1 -0
  68. package/dist/esm/streaming.js +126 -0
  69. package/dist/esm/training.d.ts +254 -0
  70. package/dist/esm/training.d.ts.map +1 -0
  71. package/dist/esm/training.js +473 -0
  72. package/dist/esm/types.d.ts +599 -0
  73. package/dist/esm/types.d.ts.map +1 -0
  74. package/dist/esm/types.js +5 -0
  75. package/package.json +121 -0
@@ -0,0 +1,599 @@
1
+ /**
2
+ * RuvLLM Type Definitions
3
+ */
4
+ /**
5
+ * Configuration for RuvLLM engine
6
+ */
7
+ export interface RuvLLMConfig {
8
+ /** Embedding dimension (default: 768) */
9
+ embeddingDim?: number;
10
+ /** Router hidden dimension (default: 128) */
11
+ routerHiddenDim?: number;
12
+ /** HNSW M parameter (default: 16) */
13
+ hnswM?: number;
14
+ /** HNSW ef_construction (default: 100) */
15
+ hnswEfConstruction?: number;
16
+ /** HNSW ef_search (default: 64) */
17
+ hnswEfSearch?: number;
18
+ /** Enable learning (default: true) */
19
+ learningEnabled?: boolean;
20
+ /** Quality threshold for learning (default: 0.7) */
21
+ qualityThreshold?: number;
22
+ /** EWC lambda (default: 2000) */
23
+ ewcLambda?: number;
24
+ }
25
+ /**
26
+ * Generation configuration
27
+ */
28
+ export interface GenerationConfig {
29
+ /** Maximum tokens to generate */
30
+ maxTokens?: number;
31
+ /** Temperature for sampling (0.0 - 2.0) */
32
+ temperature?: number;
33
+ /** Top-p nucleus sampling (0.0 - 1.0) */
34
+ topP?: number;
35
+ /** Top-k sampling */
36
+ topK?: number;
37
+ /** Repetition penalty */
38
+ repetitionPenalty?: number;
39
+ }
40
+ /**
41
+ * Query response from the LLM
42
+ */
43
+ export interface QueryResponse {
44
+ /** Generated text */
45
+ text: string;
46
+ /** Confidence score (0.0 - 1.0) */
47
+ confidence: number;
48
+ /** Selected model */
49
+ model: string;
50
+ /** Context size used */
51
+ contextSize: number;
52
+ /** Latency in milliseconds */
53
+ latencyMs: number;
54
+ /** Request ID for feedback */
55
+ requestId: string;
56
+ }
57
+ /**
58
+ * Routing decision
59
+ */
60
+ export interface RoutingDecision {
61
+ /** Selected model size */
62
+ model: ModelSize;
63
+ /** Recommended context size */
64
+ contextSize: number;
65
+ /** Temperature */
66
+ temperature: number;
67
+ /** Top-p */
68
+ topP: number;
69
+ /** Confidence */
70
+ confidence: number;
71
+ }
72
+ /**
73
+ * Memory search result
74
+ */
75
+ export interface MemoryResult {
76
+ /** Node ID */
77
+ id: number;
78
+ /** Similarity score */
79
+ score: number;
80
+ /** Content text */
81
+ content: string;
82
+ /** Metadata */
83
+ metadata: Record<string, unknown>;
84
+ }
85
+ /**
86
+ * Engine statistics
87
+ */
88
+ export interface RuvLLMStats {
89
+ /** Total queries processed */
90
+ totalQueries: number;
91
+ /** Memory nodes stored */
92
+ memoryNodes: number;
93
+ /** Patterns learned */
94
+ patternsLearned: number;
95
+ /** Average latency in ms */
96
+ avgLatencyMs: number;
97
+ /** Cache hit rate (0.0 - 1.0) */
98
+ cacheHitRate: number;
99
+ /** Router accuracy (0.0 - 1.0) */
100
+ routerAccuracy: number;
101
+ }
102
+ /**
103
+ * Model size options
104
+ */
105
+ export type ModelSize = 'M350' | 'M700' | 'B1_2' | 'B2_6';
106
+ /**
107
+ * Feedback for learning
108
+ */
109
+ export interface Feedback {
110
+ /** Request ID from query response */
111
+ requestId: string;
112
+ /** Rating 1-5 */
113
+ rating: number;
114
+ /** Optional correction text */
115
+ correction?: string;
116
+ }
117
+ /**
118
+ * Session for multi-turn conversations
119
+ */
120
+ export interface Session {
121
+ /** Session ID */
122
+ id: string;
123
+ /** Created timestamp */
124
+ createdAt: Date;
125
+ /** Messages in session */
126
+ messageCount: number;
127
+ }
128
+ /**
129
+ * SIMD capabilities
130
+ */
131
+ export interface SimdCapabilities {
132
+ /** Has any SIMD support */
133
+ hasSimd: boolean;
134
+ /** Available SIMD instructions */
135
+ capabilities: string[];
136
+ }
137
+ /**
138
+ * Embedding result
139
+ */
140
+ export type Embedding = number[];
141
+ /**
142
+ * Batch query request
143
+ */
144
+ export interface BatchQueryRequest {
145
+ /** Queries to process */
146
+ queries: string[];
147
+ /** Optional generation config */
148
+ config?: GenerationConfig;
149
+ }
150
+ /**
151
+ * Batch query response
152
+ */
153
+ export interface BatchQueryResponse {
154
+ /** Responses for each query */
155
+ responses: QueryResponse[];
156
+ /** Total processing time in ms */
157
+ totalLatencyMs: number;
158
+ }
159
+ /**
160
+ * SONA Configuration for adaptive learning
161
+ */
162
+ export interface SonaConfig {
163
+ /** Enable instant loop (real-time learning) */
164
+ instantLoopEnabled?: boolean;
165
+ /** Enable background loop (batch learning) */
166
+ backgroundLoopEnabled?: boolean;
167
+ /** Learning rate for LoRA adapters */
168
+ loraLearningRate?: number;
169
+ /** LoRA rank (lower = faster, higher = more capacity) */
170
+ loraRank?: number;
171
+ /** EWC lambda for memory protection */
172
+ ewcLambda?: number;
173
+ /** Max trajectory buffer size */
174
+ maxTrajectorySize?: number;
175
+ /** Pattern similarity threshold */
176
+ patternThreshold?: number;
177
+ }
178
+ /**
179
+ * Learning signal from user feedback
180
+ */
181
+ export interface LearningSignal {
182
+ /** Request ID */
183
+ requestId: string;
184
+ /** Quality score (0-1) */
185
+ quality: number;
186
+ /** Signal type */
187
+ type: SignalType;
188
+ /** Optional correction */
189
+ correction?: string;
190
+ /** Timestamp */
191
+ timestamp: Date;
192
+ }
193
+ /**
194
+ * Signal types for learning
195
+ */
196
+ export type SignalType = 'positive' | 'negative' | 'correction' | 'implicit';
197
+ /**
198
+ * Query trajectory for learning
199
+ */
200
+ export interface QueryTrajectory {
201
+ /** Trajectory ID */
202
+ id: string;
203
+ /** Steps in the trajectory */
204
+ steps: TrajectoryStep[];
205
+ /** Final outcome */
206
+ outcome: TrajectoryOutcome;
207
+ /** Total duration */
208
+ durationMs: number;
209
+ }
210
+ /**
211
+ * Single step in a trajectory
212
+ */
213
+ export interface TrajectoryStep {
214
+ /** Step type */
215
+ type: 'query' | 'route' | 'generate' | 'memory' | 'feedback';
216
+ /** Input data */
217
+ input: string;
218
+ /** Output data */
219
+ output: string;
220
+ /** Duration of this step */
221
+ durationMs: number;
222
+ /** Confidence at this step */
223
+ confidence: number;
224
+ }
225
+ /**
226
+ * Trajectory outcome
227
+ */
228
+ export type TrajectoryOutcome = 'success' | 'partial' | 'failure' | 'unknown';
229
+ /**
230
+ * Learned pattern from ReasoningBank
231
+ */
232
+ export interface LearnedPattern {
233
+ /** Pattern ID */
234
+ id: string;
235
+ /** Pattern type */
236
+ type: PatternType;
237
+ /** Pattern embedding */
238
+ embedding: Embedding;
239
+ /** Success rate (0-1) */
240
+ successRate: number;
241
+ /** Times used */
242
+ useCount: number;
243
+ /** Last used timestamp */
244
+ lastUsed: Date;
245
+ }
246
+ /**
247
+ * Types of learned patterns
248
+ */
249
+ export type PatternType = 'query_response' | 'routing' | 'context_retrieval' | 'correction' | 'abstraction';
250
+ /**
251
+ * LoRA adapter configuration
252
+ */
253
+ export interface LoRAConfig {
254
+ /** Adapter rank (4, 8, 16, 32) */
255
+ rank: number;
256
+ /** Alpha scaling factor */
257
+ alpha: number;
258
+ /** Dropout rate */
259
+ dropout: number;
260
+ /** Target modules to adapt */
261
+ targetModules: string[];
262
+ }
263
+ /**
264
+ * EWC (Elastic Weight Consolidation) stats
265
+ */
266
+ export interface EwcStats {
267
+ /** Number of tasks learned */
268
+ tasksLearned: number;
269
+ /** Fisher information computed */
270
+ fisherComputed: boolean;
271
+ /** Memory protection strength */
272
+ protectionStrength: number;
273
+ /** Estimated forgetting rate */
274
+ forgettingRate: number;
275
+ }
276
+ /**
277
+ * Extended session with conversation history
278
+ */
279
+ export interface ConversationSession extends Session {
280
+ /** Conversation messages */
281
+ messages: ConversationMessage[];
282
+ /** Session context (accumulated) */
283
+ context: string[];
284
+ /** Active memory IDs */
285
+ activeMemoryIds: number[];
286
+ /** Session metadata */
287
+ metadata: Record<string, unknown>;
288
+ }
289
+ /**
290
+ * Single message in conversation
291
+ */
292
+ export interface ConversationMessage {
293
+ /** Message role */
294
+ role: 'user' | 'assistant' | 'system';
295
+ /** Message content */
296
+ content: string;
297
+ /** Timestamp */
298
+ timestamp: Date;
299
+ /** Associated request ID (if assistant) */
300
+ requestId?: string;
301
+ }
302
+ /**
303
+ * Streaming response chunk
304
+ */
305
+ export interface StreamChunk {
306
+ /** Chunk text */
307
+ text: string;
308
+ /** Is final chunk */
309
+ done: boolean;
310
+ /** Token count so far */
311
+ tokenCount: number;
312
+ /** Cumulative latency */
313
+ latencyMs: number;
314
+ }
315
+ /**
316
+ * Stream options
317
+ */
318
+ export interface StreamOptions extends GenerationConfig {
319
+ /** Callback for each chunk */
320
+ onChunk?: (chunk: StreamChunk) => void;
321
+ /** Callback on completion */
322
+ onComplete?: (response: QueryResponse) => void;
323
+ /** Callback on error */
324
+ onError?: (error: Error) => void;
325
+ }
326
+ /**
327
+ * Memory compression result
328
+ */
329
+ export interface CompressionResult {
330
+ /** Nodes compressed */
331
+ nodesCompressed: number;
332
+ /** Nodes archived */
333
+ nodesArchived: number;
334
+ /** Concepts created */
335
+ conceptsCreated: number;
336
+ /** Memory saved (bytes) */
337
+ memorySaved: number;
338
+ /** Duration */
339
+ durationMs: number;
340
+ }
341
+ /**
342
+ * Archive query result
343
+ */
344
+ export interface ArchiveResult {
345
+ /** Archived node ID */
346
+ id: number;
347
+ /** Original content (if available) */
348
+ content?: string;
349
+ /** Concept it belongs to */
350
+ conceptId?: string;
351
+ /** Archive timestamp */
352
+ archivedAt: Date;
353
+ }
354
+ /**
355
+ * Attention weights for interpretability
356
+ */
357
+ export interface AttentionWeights {
358
+ /** Query-key attention scores */
359
+ scores: number[][];
360
+ /** Head index */
361
+ headIndex: number;
362
+ /** Layer index */
363
+ layerIndex: number;
364
+ }
365
+ /**
366
+ * Attention analysis result
367
+ */
368
+ export interface AttentionAnalysis {
369
+ /** Most attended tokens */
370
+ topAttended: Array<{
371
+ token: string;
372
+ weight: number;
373
+ }>;
374
+ /** Attention entropy (uncertainty) */
375
+ entropy: number;
376
+ /** Focus score (0-1, higher = more focused) */
377
+ focusScore: number;
378
+ }
379
+ /**
380
+ * Federated learning configuration
381
+ */
382
+ export interface FederatedConfig {
383
+ /** Hidden dimension for embeddings */
384
+ hiddenDim?: number;
385
+ /** Embedding dimension */
386
+ embeddingDim?: number;
387
+ /** Micro-LoRA rank */
388
+ microLoraRank?: number;
389
+ /** Base LoRA rank */
390
+ baseLoraRank?: number;
391
+ /** Trajectory buffer capacity */
392
+ trajectoryCapacity?: number;
393
+ /** Pattern cluster count */
394
+ patternClusters?: number;
395
+ /** EWC lambda for regularization */
396
+ ewcLambda?: number;
397
+ /** Quality threshold for accepting trajectories */
398
+ qualityThreshold?: number;
399
+ }
400
+ /**
401
+ * Trajectory export for federation
402
+ */
403
+ export interface TrajectoryExport {
404
+ /** Query embedding */
405
+ embedding: Embedding;
406
+ /** Quality score */
407
+ quality: number;
408
+ /** Model route (if any) */
409
+ route?: string;
410
+ /** Context identifiers */
411
+ context: string[];
412
+ /** Timestamp */
413
+ timestamp: number;
414
+ }
415
+ /**
416
+ * Agent export statistics
417
+ */
418
+ export interface AgentExportStats {
419
+ /** Total trajectories processed */
420
+ totalTrajectories: number;
421
+ /** Average quality */
422
+ avgQuality: number;
423
+ /** Patterns learned locally */
424
+ patternsLearned: number;
425
+ }
426
+ /**
427
+ * Exported state from an ephemeral agent
428
+ */
429
+ export interface AgentExport {
430
+ /** Agent identifier */
431
+ agentId: string;
432
+ /** Exported trajectories */
433
+ trajectories: TrajectoryExport[];
434
+ /** Agent statistics */
435
+ stats: AgentExportStats;
436
+ /** Session duration in milliseconds */
437
+ sessionDurationMs: number;
438
+ /** Export timestamp */
439
+ timestamp: number;
440
+ }
441
+ /**
442
+ * Agent contribution record
443
+ */
444
+ export interface AgentContribution {
445
+ /** Number of trajectories contributed */
446
+ trajectoryCount: number;
447
+ /** Average quality of contributions */
448
+ avgQuality: number;
449
+ /** Contribution timestamp */
450
+ timestamp: number;
451
+ /** Session duration */
452
+ sessionDurationMs: number;
453
+ }
454
+ /**
455
+ * Result of aggregating an agent export
456
+ */
457
+ export interface AggregationResult {
458
+ /** Agent ID that was aggregated */
459
+ agentId: string;
460
+ /** Number of trajectories accepted */
461
+ trajectoriesAccepted: number;
462
+ /** Number of trajectories rejected (below quality threshold) */
463
+ trajectoriesRejected: number;
464
+ /** Whether consolidation was triggered */
465
+ consolidated: boolean;
466
+ /** Total number of contributing agents */
467
+ totalAgents: number;
468
+ /** Total trajectories in coordinator */
469
+ totalTrajectories: number;
470
+ }
471
+ /**
472
+ * Coordinator statistics
473
+ */
474
+ export interface CoordinatorStats {
475
+ /** Coordinator identifier */
476
+ coordinatorId: string;
477
+ /** Number of contributing agents */
478
+ totalAgents: number;
479
+ /** Total trajectories aggregated */
480
+ totalTrajectories: number;
481
+ /** Patterns learned */
482
+ patternsLearned: number;
483
+ /** Average quality across all contributions */
484
+ avgQuality: number;
485
+ /** Quality threshold */
486
+ qualityThreshold: number;
487
+ }
488
+ /**
489
+ * Federated learning topology
490
+ */
491
+ export type FederatedTopology = 'star' | 'hierarchical' | 'peer-to-peer';
492
+ /**
493
+ * Training configuration
494
+ */
495
+ export interface TrainingConfig {
496
+ /** Initial learning rate */
497
+ learningRate?: number;
498
+ /** Batch size */
499
+ batchSize?: number;
500
+ /** Number of epochs */
501
+ epochs?: number;
502
+ /** Learning rate scheduler */
503
+ scheduler?: 'constant' | 'linear' | 'cosine' | 'warmup';
504
+ /** Warmup steps (for warmup scheduler) */
505
+ warmupSteps?: number;
506
+ /** Weight decay */
507
+ weightDecay?: number;
508
+ /** Gradient clipping threshold */
509
+ gradientClip?: number;
510
+ /** Early stopping patience */
511
+ earlyStoppingPatience?: number;
512
+ /** Checkpoint interval (epochs) */
513
+ checkpointInterval?: number;
514
+ /** EWC lambda for continual learning */
515
+ ewcLambda?: number;
516
+ /** Validation split ratio */
517
+ validationSplit?: number;
518
+ }
519
+ /**
520
+ * Training metrics snapshot
521
+ */
522
+ export interface TrainingMetricsSnapshot {
523
+ /** Current epoch */
524
+ epoch: number;
525
+ /** Current step */
526
+ step: number;
527
+ /** Training loss */
528
+ trainLoss: number;
529
+ /** Validation loss */
530
+ valLoss: number;
531
+ /** Learning rate */
532
+ learningRate: number;
533
+ /** Gradient norm */
534
+ gradNorm: number;
535
+ /** Steps per second */
536
+ stepsPerSecond: number;
537
+ /** ETA in seconds */
538
+ etaSeconds: number;
539
+ }
540
+ /**
541
+ * Training result
542
+ */
543
+ export interface TrainingResult {
544
+ /** Total epochs completed */
545
+ epochs: number;
546
+ /** Total steps completed */
547
+ steps: number;
548
+ /** Final training loss */
549
+ finalLoss: number;
550
+ /** Best validation loss */
551
+ bestValLoss: number;
552
+ /** Training duration in ms */
553
+ durationMs: number;
554
+ /** Loss history */
555
+ lossHistory: number[];
556
+ /** Validation loss history */
557
+ valLossHistory: number[];
558
+ /** Early stopped */
559
+ earlyStopped: boolean;
560
+ }
561
+ /**
562
+ * Training checkpoint
563
+ */
564
+ export interface TrainingCheckpoint {
565
+ /** Epoch number */
566
+ epoch: number;
567
+ /** Step number */
568
+ step: number;
569
+ /** Training loss at checkpoint */
570
+ loss: number;
571
+ /** Model weights (serialized) */
572
+ weights: string;
573
+ /** Timestamp */
574
+ timestamp: number;
575
+ }
576
+ /**
577
+ * Export format options
578
+ */
579
+ export type ExportFormat = 'safetensors' | 'json' | 'binary' | 'onnx';
580
+ /**
581
+ * Model metadata for export
582
+ */
583
+ export interface ModelMetadata {
584
+ /** Model name */
585
+ name: string;
586
+ /** Model version */
587
+ version: string;
588
+ /** Architecture type */
589
+ architecture: string;
590
+ /** Training info */
591
+ training?: {
592
+ steps: number;
593
+ loss: number;
594
+ learningRate: number;
595
+ };
596
+ /** Custom metadata */
597
+ custom?: Record<string, unknown>;
598
+ }
599
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * RuvLLM Type Definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSdXZMTE0gVHlwZSBEZWZpbml0aW9uc1xuICovXG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgUnV2TExNIGVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1dkxMTUNvbmZpZyB7XG4gIC8qKiBFbWJlZGRpbmcgZGltZW5zaW9uIChkZWZhdWx0OiA3NjgpICovXG4gIGVtYmVkZGluZ0RpbT86IG51bWJlcjtcbiAgLyoqIFJvdXRlciBoaWRkZW4gZGltZW5zaW9uIChkZWZhdWx0OiAxMjgpICovXG4gIHJvdXRlckhpZGRlbkRpbT86IG51bWJlcjtcbiAgLyoqIEhOU1cgTSBwYXJhbWV0ZXIgKGRlZmF1bHQ6IDE2KSAqL1xuICBobnN3TT86IG51bWJlcjtcbiAgLyoqIEhOU1cgZWZfY29uc3RydWN0aW9uIChkZWZhdWx0OiAxMDApICovXG4gIGhuc3dFZkNvbnN0cnVjdGlvbj86IG51bWJlcjtcbiAgLyoqIEhOU1cgZWZfc2VhcmNoIChkZWZhdWx0OiA2NCkgKi9cbiAgaG5zd0VmU2VhcmNoPzogbnVtYmVyO1xuICAvKiogRW5hYmxlIGxlYXJuaW5nIChkZWZhdWx0OiB0cnVlKSAqL1xuICBsZWFybmluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogUXVhbGl0eSB0aHJlc2hvbGQgZm9yIGxlYXJuaW5nIChkZWZhdWx0OiAwLjcpICovXG4gIHF1YWxpdHlUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIChkZWZhdWx0OiAyMDAwKSAqL1xuICBld2NMYW1iZGE/OiBudW1iZXI7XG59XG5cbi8qKlxuICogR2VuZXJhdGlvbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGlvbkNvbmZpZyB7XG4gIC8qKiBNYXhpbXVtIHRva2VucyB0byBnZW5lcmF0ZSAqL1xuICBtYXhUb2tlbnM/OiBudW1iZXI7XG4gIC8qKiBUZW1wZXJhdHVyZSBmb3Igc2FtcGxpbmcgKDAuMCAtIDIuMCkgKi9cbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XG4gIC8qKiBUb3AtcCBudWNsZXVzIHNhbXBsaW5nICgwLjAgLSAxLjApICovXG4gIHRvcFA/OiBudW1iZXI7XG4gIC8qKiBUb3AtayBzYW1wbGluZyAqL1xuICB0b3BLPzogbnVtYmVyO1xuICAvKiogUmVwZXRpdGlvbiBwZW5hbHR5ICovXG4gIHJlcGV0aXRpb25QZW5hbHR5PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHJlc3BvbnNlIGZyb20gdGhlIExMTVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UmVzcG9uc2Uge1xuICAvKiogR2VuZXJhdGVkIHRleHQgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogQ29uZmlkZW5jZSBzY29yZSAoMC4wIC0gMS4wKSAqL1xuICBjb25maWRlbmNlOiBudW1iZXI7XG4gIC8qKiBTZWxlY3RlZCBtb2RlbCAqL1xuICBtb2RlbDogc3RyaW5nO1xuICAvKiogQ29udGV4dCBzaXplIHVzZWQgKi9cbiAgY29udGV4dFNpemU6IG51bWJlcjtcbiAgLyoqIExhdGVuY3kgaW4gbWlsbGlzZWNvbmRzICovXG4gIGxhdGVuY3lNczogbnVtYmVyO1xuICAvKiogUmVxdWVzdCBJRCBmb3IgZmVlZGJhY2sgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUm91dGluZyBkZWNpc2lvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRpbmdEZWNpc2lvbiB7XG4gIC8qKiBTZWxlY3RlZCBtb2RlbCBzaXplICovXG4gIG1vZGVsOiBNb2RlbFNpemU7XG4gIC8qKiBSZWNvbW1lbmRlZCBjb250ZXh0IHNpemUgKi9cbiAgY29udGV4dFNpemU6IG51bWJlcjtcbiAgLyoqIFRlbXBlcmF0dXJlICovXG4gIHRlbXBlcmF0dXJlOiBudW1iZXI7XG4gIC8qKiBUb3AtcCAqL1xuICB0b3BQOiBudW1iZXI7XG4gIC8qKiBDb25maWRlbmNlICovXG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBNZW1vcnkgc2VhcmNoIHJlc3VsdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeVJlc3VsdCB7XG4gIC8qKiBOb2RlIElEICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBTaW1pbGFyaXR5IHNjb3JlICovXG4gIHNjb3JlOiBudW1iZXI7XG4gIC8qKiBDb250ZW50IHRleHQgKi9cbiAgY29udGVudDogc3RyaW5nO1xuICAvKiogTWV0YWRhdGEgKi9cbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEVuZ2luZSBzdGF0aXN0aWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnV2TExNU3RhdHMge1xuICAvKiogVG90YWwgcXVlcmllcyBwcm9jZXNzZWQgKi9cbiAgdG90YWxRdWVyaWVzOiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgbm9kZXMgc3RvcmVkICovXG4gIG1lbW9yeU5vZGVzOiBudW1iZXI7XG4gIC8qKiBQYXR0ZXJucyBsZWFybmVkICovXG4gIHBhdHRlcm5zTGVhcm5lZDogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBsYXRlbmN5IGluIG1zICovXG4gIGF2Z0xhdGVuY3lNczogbnVtYmVyO1xuICAvKiogQ2FjaGUgaGl0IHJhdGUgKDAuMCAtIDEuMCkgKi9cbiAgY2FjaGVIaXRSYXRlOiBudW1iZXI7XG4gIC8qKiBSb3V0ZXIgYWNjdXJhY3kgKDAuMCAtIDEuMCkgKi9cbiAgcm91dGVyQWNjdXJhY3k6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBNb2RlbCBzaXplIG9wdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxTaXplID0gJ00zNTAnIHwgJ003MDAnIHwgJ0IxXzInIHwgJ0IyXzYnO1xuXG4vKipcbiAqIEZlZWRiYWNrIGZvciBsZWFybmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRiYWNrIHtcbiAgLyoqIFJlcXVlc3QgSUQgZnJvbSBxdWVyeSByZXNwb25zZSAqL1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgLyoqIFJhdGluZyAxLTUgKi9cbiAgcmF0aW5nOiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbCBjb3JyZWN0aW9uIHRleHQgKi9cbiAgY29ycmVjdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXNzaW9uIGZvciBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgLyoqIFNlc3Npb24gSUQgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIENyZWF0ZWQgdGltZXN0YW1wICovXG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgLyoqIE1lc3NhZ2VzIGluIHNlc3Npb24gKi9cbiAgbWVzc2FnZUNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogU0lNRCBjYXBhYmlsaXRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW1kQ2FwYWJpbGl0aWVzIHtcbiAgLyoqIEhhcyBhbnkgU0lNRCBzdXBwb3J0ICovXG4gIGhhc1NpbWQ6IGJvb2xlYW47XG4gIC8qKiBBdmFpbGFibGUgU0lNRCBpbnN0cnVjdGlvbnMgKi9cbiAgY2FwYWJpbGl0aWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBFbWJlZGRpbmcgcmVzdWx0XG4gKi9cbmV4cG9ydCB0eXBlIEVtYmVkZGluZyA9IG51bWJlcltdO1xuXG4vKipcbiAqIEJhdGNoIHF1ZXJ5IHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXRjaFF1ZXJ5UmVxdWVzdCB7XG4gIC8qKiBRdWVyaWVzIHRvIHByb2Nlc3MgKi9cbiAgcXVlcmllczogc3RyaW5nW107XG4gIC8qKiBPcHRpb25hbCBnZW5lcmF0aW9uIGNvbmZpZyAqL1xuICBjb25maWc/OiBHZW5lcmF0aW9uQ29uZmlnO1xufVxuXG4vKipcbiAqIEJhdGNoIHF1ZXJ5IHJlc3BvbnNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hRdWVyeVJlc3BvbnNlIHtcbiAgLyoqIFJlc3BvbnNlcyBmb3IgZWFjaCBxdWVyeSAqL1xuICByZXNwb25zZXM6IFF1ZXJ5UmVzcG9uc2VbXTtcbiAgLyoqIFRvdGFsIHByb2Nlc3NpbmcgdGltZSBpbiBtcyAqL1xuICB0b3RhbExhdGVuY3lNczogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU09OQSBMZWFybmluZyBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTT05BIENvbmZpZ3VyYXRpb24gZm9yIGFkYXB0aXZlIGxlYXJuaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29uYUNvbmZpZyB7XG4gIC8qKiBFbmFibGUgaW5zdGFudCBsb29wIChyZWFsLXRpbWUgbGVhcm5pbmcpICovXG4gIGluc3RhbnRMb29wRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgYmFja2dyb3VuZCBsb29wIChiYXRjaCBsZWFybmluZykgKi9cbiAgYmFja2dyb3VuZExvb3BFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIExlYXJuaW5nIHJhdGUgZm9yIExvUkEgYWRhcHRlcnMgKi9cbiAgbG9yYUxlYXJuaW5nUmF0ZT86IG51bWJlcjtcbiAgLyoqIExvUkEgcmFuayAobG93ZXIgPSBmYXN0ZXIsIGhpZ2hlciA9IG1vcmUgY2FwYWNpdHkpICovXG4gIGxvcmFSYW5rPzogbnVtYmVyO1xuICAvKiogRVdDIGxhbWJkYSBmb3IgbWVtb3J5IHByb3RlY3Rpb24gKi9cbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xuICAvKiogTWF4IHRyYWplY3RvcnkgYnVmZmVyIHNpemUgKi9cbiAgbWF4VHJhamVjdG9yeVNpemU/OiBudW1iZXI7XG4gIC8qKiBQYXR0ZXJuIHNpbWlsYXJpdHkgdGhyZXNob2xkICovXG4gIHBhdHRlcm5UaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGVhcm5pbmcgc2lnbmFsIGZyb20gdXNlciBmZWVkYmFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExlYXJuaW5nU2lnbmFsIHtcbiAgLyoqIFJlcXVlc3QgSUQgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIC8qKiBRdWFsaXR5IHNjb3JlICgwLTEpICovXG4gIHF1YWxpdHk6IG51bWJlcjtcbiAgLyoqIFNpZ25hbCB0eXBlICovXG4gIHR5cGU6IFNpZ25hbFR5cGU7XG4gIC8qKiBPcHRpb25hbCBjb3JyZWN0aW9uICovXG4gIGNvcnJlY3Rpb24/OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgKi9cbiAgdGltZXN0YW1wOiBEYXRlO1xufVxuXG4vKipcbiAqIFNpZ25hbCB0eXBlcyBmb3IgbGVhcm5pbmdcbiAqL1xuZXhwb3J0IHR5cGUgU2lnbmFsVHlwZSA9ICdwb3NpdGl2ZScgfCAnbmVnYXRpdmUnIHwgJ2NvcnJlY3Rpb24nIHwgJ2ltcGxpY2l0JztcblxuLyoqXG4gKiBRdWVyeSB0cmFqZWN0b3J5IGZvciBsZWFybmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VHJhamVjdG9yeSB7XG4gIC8qKiBUcmFqZWN0b3J5IElEICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBTdGVwcyBpbiB0aGUgdHJhamVjdG9yeSAqL1xuICBzdGVwczogVHJhamVjdG9yeVN0ZXBbXTtcbiAgLyoqIEZpbmFsIG91dGNvbWUgKi9cbiAgb3V0Y29tZTogVHJhamVjdG9yeU91dGNvbWU7XG4gIC8qKiBUb3RhbCBkdXJhdGlvbiAqL1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2luZ2xlIHN0ZXAgaW4gYSB0cmFqZWN0b3J5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhamVjdG9yeVN0ZXAge1xuICAvKiogU3RlcCB0eXBlICovXG4gIHR5cGU6ICdxdWVyeScgfCAncm91dGUnIHwgJ2dlbmVyYXRlJyB8ICdtZW1vcnknIHwgJ2ZlZWRiYWNrJztcbiAgLyoqIElucHV0IGRhdGEgKi9cbiAgaW5wdXQ6IHN0cmluZztcbiAgLyoqIE91dHB1dCBkYXRhICovXG4gIG91dHB1dDogc3RyaW5nO1xuICAvKiogRHVyYXRpb24gb2YgdGhpcyBzdGVwICovXG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgLyoqIENvbmZpZGVuY2UgYXQgdGhpcyBzdGVwICovXG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUcmFqZWN0b3J5IG91dGNvbWVcbiAqL1xuZXhwb3J0IHR5cGUgVHJhamVjdG9yeU91dGNvbWUgPSAnc3VjY2VzcycgfCAncGFydGlhbCcgfCAnZmFpbHVyZScgfCAndW5rbm93bic7XG5cbi8qKlxuICogTGVhcm5lZCBwYXR0ZXJuIGZyb20gUmVhc29uaW5nQmFua1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExlYXJuZWRQYXR0ZXJuIHtcbiAgLyoqIFBhdHRlcm4gSUQgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFBhdHRlcm4gdHlwZSAqL1xuICB0eXBlOiBQYXR0ZXJuVHlwZTtcbiAgLyoqIFBhdHRlcm4gZW1iZWRkaW5nICovXG4gIGVtYmVkZGluZzogRW1iZWRkaW5nO1xuICAvKiogU3VjY2VzcyByYXRlICgwLTEpICovXG4gIHN1Y2Nlc3NSYXRlOiBudW1iZXI7XG4gIC8qKiBUaW1lcyB1c2VkICovXG4gIHVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBMYXN0IHVzZWQgdGltZXN0YW1wICovXG4gIGxhc3RVc2VkOiBEYXRlO1xufVxuXG4vKipcbiAqIFR5cGVzIG9mIGxlYXJuZWQgcGF0dGVybnNcbiAqL1xuZXhwb3J0IHR5cGUgUGF0dGVyblR5cGUgPVxuICB8ICdxdWVyeV9yZXNwb25zZScgICAgICAvLyBRJkEgcGF0dGVyblxuICB8ICdyb3V0aW5nJyAgICAgICAgICAgICAvLyBSb3V0aW5nIGRlY2lzaW9uIHBhdHRlcm5cbiAgfCAnY29udGV4dF9yZXRyaWV2YWwnICAgLy8gTWVtb3J5IHJldHJpZXZhbCBwYXR0ZXJuXG4gIHwgJ2NvcnJlY3Rpb24nICAgICAgICAgIC8vIFVzZXIgY29ycmVjdGlvbiBwYXR0ZXJuXG4gIHwgJ2Fic3RyYWN0aW9uJzsgICAgICAgIC8vIENvbXByZXNzZWQgY29uY2VwdFxuXG4vKipcbiAqIExvUkEgYWRhcHRlciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9SQUNvbmZpZyB7XG4gIC8qKiBBZGFwdGVyIHJhbmsgKDQsIDgsIDE2LCAzMikgKi9cbiAgcmFuazogbnVtYmVyO1xuICAvKiogQWxwaGEgc2NhbGluZyBmYWN0b3IgKi9cbiAgYWxwaGE6IG51bWJlcjtcbiAgLyoqIERyb3BvdXQgcmF0ZSAqL1xuICBkcm9wb3V0OiBudW1iZXI7XG4gIC8qKiBUYXJnZXQgbW9kdWxlcyB0byBhZGFwdCAqL1xuICB0YXJnZXRNb2R1bGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBFV0MgKEVsYXN0aWMgV2VpZ2h0IENvbnNvbGlkYXRpb24pIHN0YXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXdjU3RhdHMge1xuICAvKiogTnVtYmVyIG9mIHRhc2tzIGxlYXJuZWQgKi9cbiAgdGFza3NMZWFybmVkOiBudW1iZXI7XG4gIC8qKiBGaXNoZXIgaW5mb3JtYXRpb24gY29tcHV0ZWQgKi9cbiAgZmlzaGVyQ29tcHV0ZWQ6IGJvb2xlYW47XG4gIC8qKiBNZW1vcnkgcHJvdGVjdGlvbiBzdHJlbmd0aCAqL1xuICBwcm90ZWN0aW9uU3RyZW5ndGg6IG51bWJlcjtcbiAgLyoqIEVzdGltYXRlZCBmb3JnZXR0aW5nIHJhdGUgKi9cbiAgZm9yZ2V0dGluZ1JhdGU6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlc3Npb24gJiBDb252ZXJzYXRpb24gVHlwZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXh0ZW5kZWQgc2Vzc2lvbiB3aXRoIGNvbnZlcnNhdGlvbiBoaXN0b3J5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uU2Vzc2lvbiBleHRlbmRzIFNlc3Npb24ge1xuICAvKiogQ29udmVyc2F0aW9uIG1lc3NhZ2VzICovXG4gIG1lc3NhZ2VzOiBDb252ZXJzYXRpb25NZXNzYWdlW107XG4gIC8qKiBTZXNzaW9uIGNvbnRleHQgKGFjY3VtdWxhdGVkKSAqL1xuICBjb250ZXh0OiBzdHJpbmdbXTtcbiAgLyoqIEFjdGl2ZSBtZW1vcnkgSURzICovXG4gIGFjdGl2ZU1lbW9yeUlkczogbnVtYmVyW107XG4gIC8qKiBTZXNzaW9uIG1ldGFkYXRhICovXG4gIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBTaW5nbGUgbWVzc2FnZSBpbiBjb252ZXJzYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25NZXNzYWdlIHtcbiAgLyoqIE1lc3NhZ2Ugcm9sZSAqL1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JyB8ICdzeXN0ZW0nO1xuICAvKiogTWVzc2FnZSBjb250ZW50ICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIC8qKiBBc3NvY2lhdGVkIHJlcXVlc3QgSUQgKGlmIGFzc2lzdGFudCkgKi9cbiAgcmVxdWVzdElkPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3RyZWFtaW5nIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFN0cmVhbWluZyByZXNwb25zZSBjaHVua1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbUNodW5rIHtcbiAgLyoqIENodW5rIHRleHQgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogSXMgZmluYWwgY2h1bmsgKi9cbiAgZG9uZTogYm9vbGVhbjtcbiAgLyoqIFRva2VuIGNvdW50IHNvIGZhciAqL1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG4gIC8qKiBDdW11bGF0aXZlIGxhdGVuY3kgKi9cbiAgbGF0ZW5jeU1zOiBudW1iZXI7XG59XG5cbi8qKlxuICogU3RyZWFtIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1PcHRpb25zIGV4dGVuZHMgR2VuZXJhdGlvbkNvbmZpZyB7XG4gIC8qKiBDYWxsYmFjayBmb3IgZWFjaCBjaHVuayAqL1xuICBvbkNodW5rPzogKGNodW5rOiBTdHJlYW1DaHVuaykgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIG9uIGNvbXBsZXRpb24gKi9cbiAgb25Db21wbGV0ZT86IChyZXNwb25zZTogUXVlcnlSZXNwb25zZSkgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIG9uIGVycm9yICovXG4gIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tcHJlc3Npb24gJiBBcmNoaXZhbCBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNZW1vcnkgY29tcHJlc3Npb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHJlc3Npb25SZXN1bHQge1xuICAvKiogTm9kZXMgY29tcHJlc3NlZCAqL1xuICBub2Rlc0NvbXByZXNzZWQ6IG51bWJlcjtcbiAgLyoqIE5vZGVzIGFyY2hpdmVkICovXG4gIG5vZGVzQXJjaGl2ZWQ6IG51bWJlcjtcbiAgLyoqIENvbmNlcHRzIGNyZWF0ZWQgKi9cbiAgY29uY2VwdHNDcmVhdGVkOiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgc2F2ZWQgKGJ5dGVzKSAqL1xuICBtZW1vcnlTYXZlZDogbnVtYmVyO1xuICAvKiogRHVyYXRpb24gKi9cbiAgZHVyYXRpb25NczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFyY2hpdmUgcXVlcnkgcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVJlc3VsdCB7XG4gIC8qKiBBcmNoaXZlZCBub2RlIElEICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBPcmlnaW5hbCBjb250ZW50IChpZiBhdmFpbGFibGUpICovXG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIC8qKiBDb25jZXB0IGl0IGJlbG9uZ3MgdG8gKi9cbiAgY29uY2VwdElkPzogc3RyaW5nO1xuICAvKiogQXJjaGl2ZSB0aW1lc3RhbXAgKi9cbiAgYXJjaGl2ZWRBdDogRGF0ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF0dGVudGlvbiBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBdHRlbnRpb24gd2VpZ2h0cyBmb3IgaW50ZXJwcmV0YWJpbGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dGVudGlvbldlaWdodHMge1xuICAvKiogUXVlcnkta2V5IGF0dGVudGlvbiBzY29yZXMgKi9cbiAgc2NvcmVzOiBudW1iZXJbXVtdO1xuICAvKiogSGVhZCBpbmRleCAqL1xuICBoZWFkSW5kZXg6IG51bWJlcjtcbiAgLyoqIExheWVyIGluZGV4ICovXG4gIGxheWVySW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBdHRlbnRpb24gYW5hbHlzaXMgcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0ZW50aW9uQW5hbHlzaXMge1xuICAvKiogTW9zdCBhdHRlbmRlZCB0b2tlbnMgKi9cbiAgdG9wQXR0ZW5kZWQ6IEFycmF5PHsgdG9rZW46IHN0cmluZzsgd2VpZ2h0OiBudW1iZXIgfT47XG4gIC8qKiBBdHRlbnRpb24gZW50cm9weSAodW5jZXJ0YWludHkpICovXG4gIGVudHJvcHk6IG51bWJlcjtcbiAgLyoqIEZvY3VzIHNjb3JlICgwLTEsIGhpZ2hlciA9IG1vcmUgZm9jdXNlZCkgKi9cbiAgZm9jdXNTY29yZTogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRmVkZXJhdGVkIExlYXJuaW5nIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEZlZGVyYXRlZCBsZWFybmluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVkZXJhdGVkQ29uZmlnIHtcbiAgLyoqIEhpZGRlbiBkaW1lbnNpb24gZm9yIGVtYmVkZGluZ3MgKi9cbiAgaGlkZGVuRGltPzogbnVtYmVyO1xuICAvKiogRW1iZWRkaW5nIGRpbWVuc2lvbiAqL1xuICBlbWJlZGRpbmdEaW0/OiBudW1iZXI7XG4gIC8qKiBNaWNyby1Mb1JBIHJhbmsgKi9cbiAgbWljcm9Mb3JhUmFuaz86IG51bWJlcjtcbiAgLyoqIEJhc2UgTG9SQSByYW5rICovXG4gIGJhc2VMb3JhUmFuaz86IG51bWJlcjtcbiAgLyoqIFRyYWplY3RvcnkgYnVmZmVyIGNhcGFjaXR5ICovXG4gIHRyYWplY3RvcnlDYXBhY2l0eT86IG51bWJlcjtcbiAgLyoqIFBhdHRlcm4gY2x1c3RlciBjb3VudCAqL1xuICBwYXR0ZXJuQ2x1c3RlcnM/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIGZvciByZWd1bGFyaXphdGlvbiAqL1xuICBld2NMYW1iZGE/OiBudW1iZXI7XG4gIC8qKiBRdWFsaXR5IHRocmVzaG9sZCBmb3IgYWNjZXB0aW5nIHRyYWplY3RvcmllcyAqL1xuICBxdWFsaXR5VGhyZXNob2xkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRyYWplY3RvcnkgZXhwb3J0IGZvciBmZWRlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhamVjdG9yeUV4cG9ydCB7XG4gIC8qKiBRdWVyeSBlbWJlZGRpbmcgKi9cbiAgZW1iZWRkaW5nOiBFbWJlZGRpbmc7XG4gIC8qKiBRdWFsaXR5IHNjb3JlICovXG4gIHF1YWxpdHk6IG51bWJlcjtcbiAgLyoqIE1vZGVsIHJvdXRlIChpZiBhbnkpICovXG4gIHJvdXRlPzogc3RyaW5nO1xuICAvKiogQ29udGV4dCBpZGVudGlmaWVycyAqL1xuICBjb250ZXh0OiBzdHJpbmdbXTtcbiAgLyoqIFRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBZ2VudCBleHBvcnQgc3RhdGlzdGljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0U3RhdHMge1xuICAvKiogVG90YWwgdHJhamVjdG9yaWVzIHByb2Nlc3NlZCAqL1xuICB0b3RhbFRyYWplY3RvcmllczogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBxdWFsaXR5ICovXG4gIGF2Z1F1YWxpdHk6IG51bWJlcjtcbiAgLyoqIFBhdHRlcm5zIGxlYXJuZWQgbG9jYWxseSAqL1xuICBwYXR0ZXJuc0xlYXJuZWQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFeHBvcnRlZCBzdGF0ZSBmcm9tIGFuIGVwaGVtZXJhbCBhZ2VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50RXhwb3J0IHtcbiAgLyoqIEFnZW50IGlkZW50aWZpZXIgKi9cbiAgYWdlbnRJZDogc3RyaW5nO1xuICAvKiogRXhwb3J0ZWQgdHJhamVjdG9yaWVzICovXG4gIHRyYWplY3RvcmllczogVHJhamVjdG9yeUV4cG9ydFtdO1xuICAvKiogQWdlbnQgc3RhdGlzdGljcyAqL1xuICBzdGF0czogQWdlbnRFeHBvcnRTdGF0cztcbiAgLyoqIFNlc3Npb24gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzICovXG4gIHNlc3Npb25EdXJhdGlvbk1zOiBudW1iZXI7XG4gIC8qKiBFeHBvcnQgdGltZXN0YW1wICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFnZW50IGNvbnRyaWJ1dGlvbiByZWNvcmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2VudENvbnRyaWJ1dGlvbiB7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIGNvbnRyaWJ1dGVkICovXG4gIHRyYWplY3RvcnlDb3VudDogbnVtYmVyO1xuICAvKiogQXZlcmFnZSBxdWFsaXR5IG9mIGNvbnRyaWJ1dGlvbnMgKi9cbiAgYXZnUXVhbGl0eTogbnVtYmVyO1xuICAvKiogQ29udHJpYnV0aW9uIHRpbWVzdGFtcCAqL1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgLyoqIFNlc3Npb24gZHVyYXRpb24gKi9cbiAgc2Vzc2lvbkR1cmF0aW9uTXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYWdncmVnYXRpbmcgYW4gYWdlbnQgZXhwb3J0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRpb25SZXN1bHQge1xuICAvKiogQWdlbnQgSUQgdGhhdCB3YXMgYWdncmVnYXRlZCAqL1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIGFjY2VwdGVkICovXG4gIHRyYWplY3Rvcmllc0FjY2VwdGVkOiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgdHJhamVjdG9yaWVzIHJlamVjdGVkIChiZWxvdyBxdWFsaXR5IHRocmVzaG9sZCkgKi9cbiAgdHJhamVjdG9yaWVzUmVqZWN0ZWQ6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgY29uc29saWRhdGlvbiB3YXMgdHJpZ2dlcmVkICovXG4gIGNvbnNvbGlkYXRlZDogYm9vbGVhbjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXG4gIHRvdGFsQWdlbnRzOiBudW1iZXI7XG4gIC8qKiBUb3RhbCB0cmFqZWN0b3JpZXMgaW4gY29vcmRpbmF0b3IgKi9cbiAgdG90YWxUcmFqZWN0b3JpZXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb29yZGluYXRvciBzdGF0aXN0aWNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29vcmRpbmF0b3JTdGF0cyB7XG4gIC8qKiBDb29yZGluYXRvciBpZGVudGlmaWVyICovXG4gIGNvb3JkaW5hdG9ySWQ6IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBjb250cmlidXRpbmcgYWdlbnRzICovXG4gIHRvdGFsQWdlbnRzOiBudW1iZXI7XG4gIC8qKiBUb3RhbCB0cmFqZWN0b3JpZXMgYWdncmVnYXRlZCAqL1xuICB0b3RhbFRyYWplY3RvcmllczogbnVtYmVyO1xuICAvKiogUGF0dGVybnMgbGVhcm5lZCAqL1xuICBwYXR0ZXJuc0xlYXJuZWQ6IG51bWJlcjtcbiAgLyoqIEF2ZXJhZ2UgcXVhbGl0eSBhY3Jvc3MgYWxsIGNvbnRyaWJ1dGlvbnMgKi9cbiAgYXZnUXVhbGl0eTogbnVtYmVyO1xuICAvKiogUXVhbGl0eSB0aHJlc2hvbGQgKi9cbiAgcXVhbGl0eVRocmVzaG9sZDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZlZGVyYXRlZCBsZWFybmluZyB0b3BvbG9neVxuICovXG5leHBvcnQgdHlwZSBGZWRlcmF0ZWRUb3BvbG9neSA9XG4gIHwgJ3N0YXInICAgICAgICAgICAvLyBBZ2VudHMg4oaSIENlbnRyYWwgQ29vcmRpbmF0b3JcbiAgfCAnaGllcmFyY2hpY2FsJyAgIC8vIEFnZW50cyDihpIgUmVnaW9uYWwg4oaSIEdsb2JhbFxuICB8ICdwZWVyLXRvLXBlZXInOyAgLy8gQWdlbnRzIHNoYXJlIGRpcmVjdGx5XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUcmFpbmluZyBQaXBlbGluZSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBUcmFpbmluZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdDb25maWcge1xuICAvKiogSW5pdGlhbCBsZWFybmluZyByYXRlICovXG4gIGxlYXJuaW5nUmF0ZT86IG51bWJlcjtcbiAgLyoqIEJhdGNoIHNpemUgKi9cbiAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIGVwb2NocyAqL1xuICBlcG9jaHM/OiBudW1iZXI7XG4gIC8qKiBMZWFybmluZyByYXRlIHNjaGVkdWxlciAqL1xuICBzY2hlZHVsZXI/OiAnY29uc3RhbnQnIHwgJ2xpbmVhcicgfCAnY29zaW5lJyB8ICd3YXJtdXAnO1xuICAvKiogV2FybXVwIHN0ZXBzIChmb3Igd2FybXVwIHNjaGVkdWxlcikgKi9cbiAgd2FybXVwU3RlcHM/OiBudW1iZXI7XG4gIC8qKiBXZWlnaHQgZGVjYXkgKi9cbiAgd2VpZ2h0RGVjYXk/OiBudW1iZXI7XG4gIC8qKiBHcmFkaWVudCBjbGlwcGluZyB0aHJlc2hvbGQgKi9cbiAgZ3JhZGllbnRDbGlwPzogbnVtYmVyO1xuICAvKiogRWFybHkgc3RvcHBpbmcgcGF0aWVuY2UgKi9cbiAgZWFybHlTdG9wcGluZ1BhdGllbmNlPzogbnVtYmVyO1xuICAvKiogQ2hlY2twb2ludCBpbnRlcnZhbCAoZXBvY2hzKSAqL1xuICBjaGVja3BvaW50SW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiBFV0MgbGFtYmRhIGZvciBjb250aW51YWwgbGVhcm5pbmcgKi9cbiAgZXdjTGFtYmRhPzogbnVtYmVyO1xuICAvKiogVmFsaWRhdGlvbiBzcGxpdCByYXRpbyAqL1xuICB2YWxpZGF0aW9uU3BsaXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVHJhaW5pbmcgbWV0cmljcyBzbmFwc2hvdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nTWV0cmljc1NuYXBzaG90IHtcbiAgLyoqIEN1cnJlbnQgZXBvY2ggKi9cbiAgZXBvY2g6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnQgc3RlcCAqL1xuICBzdGVwOiBudW1iZXI7XG4gIC8qKiBUcmFpbmluZyBsb3NzICovXG4gIHRyYWluTG9zczogbnVtYmVyO1xuICAvKiogVmFsaWRhdGlvbiBsb3NzICovXG4gIHZhbExvc3M6IG51bWJlcjtcbiAgLyoqIExlYXJuaW5nIHJhdGUgKi9cbiAgbGVhcm5pbmdSYXRlOiBudW1iZXI7XG4gIC8qKiBHcmFkaWVudCBub3JtICovXG4gIGdyYWROb3JtOiBudW1iZXI7XG4gIC8qKiBTdGVwcyBwZXIgc2Vjb25kICovXG4gIHN0ZXBzUGVyU2Vjb25kOiBudW1iZXI7XG4gIC8qKiBFVEEgaW4gc2Vjb25kcyAqL1xuICBldGFTZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVHJhaW5pbmcgcmVzdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhaW5pbmdSZXN1bHQge1xuICAvKiogVG90YWwgZXBvY2hzIGNvbXBsZXRlZCAqL1xuICBlcG9jaHM6IG51bWJlcjtcbiAgLyoqIFRvdGFsIHN0ZXBzIGNvbXBsZXRlZCAqL1xuICBzdGVwczogbnVtYmVyO1xuICAvKiogRmluYWwgdHJhaW5pbmcgbG9zcyAqL1xuICBmaW5hbExvc3M6IG51bWJlcjtcbiAgLyoqIEJlc3QgdmFsaWRhdGlvbiBsb3NzICovXG4gIGJlc3RWYWxMb3NzOiBudW1iZXI7XG4gIC8qKiBUcmFpbmluZyBkdXJhdGlvbiBpbiBtcyAqL1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIC8qKiBMb3NzIGhpc3RvcnkgKi9cbiAgbG9zc0hpc3Rvcnk6IG51bWJlcltdO1xuICAvKiogVmFsaWRhdGlvbiBsb3NzIGhpc3RvcnkgKi9cbiAgdmFsTG9zc0hpc3Rvcnk6IG51bWJlcltdO1xuICAvKiogRWFybHkgc3RvcHBlZCAqL1xuICBlYXJseVN0b3BwZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVHJhaW5pbmcgY2hlY2twb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWluaW5nQ2hlY2twb2ludCB7XG4gIC8qKiBFcG9jaCBudW1iZXIgKi9cbiAgZXBvY2g6IG51bWJlcjtcbiAgLyoqIFN0ZXAgbnVtYmVyICovXG4gIHN0ZXA6IG51bWJlcjtcbiAgLyoqIFRyYWluaW5nIGxvc3MgYXQgY2hlY2twb2ludCAqL1xuICBsb3NzOiBudW1iZXI7XG4gIC8qKiBNb2RlbCB3ZWlnaHRzIChzZXJpYWxpemVkKSAqL1xuICB3ZWlnaHRzOiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgKi9cbiAgdGltZXN0YW1wOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFeHBvcnQvU2VyaWFsaXphdGlvbiBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFeHBvcnQgZm9ybWF0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgRXhwb3J0Rm9ybWF0ID0gJ3NhZmV0ZW5zb3JzJyB8ICdqc29uJyB8ICdiaW5hcnknIHwgJ29ubngnO1xuXG4vKipcbiAqIE1vZGVsIG1ldGFkYXRhIGZvciBleHBvcnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RlbE1ldGFkYXRhIHtcbiAgLyoqIE1vZGVsIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogTW9kZWwgdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBBcmNoaXRlY3R1cmUgdHlwZSAqL1xuICBhcmNoaXRlY3R1cmU6IHN0cmluZztcbiAgLyoqIFRyYWluaW5nIGluZm8gKi9cbiAgdHJhaW5pbmc/OiB7XG4gICAgc3RlcHM6IG51bWJlcjtcbiAgICBsb3NzOiBudW1iZXI7XG4gICAgbGVhcm5pbmdSYXRlOiBudW1iZXI7XG4gIH07XG4gIC8qKiBDdXN0b20gbWV0YWRhdGEgKi9cbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG4iXX0=