@runtime-digital-twin/sdk 1.0.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.
- package/README.md +214 -0
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +13 -0
- package/dist/db-wrapper.d.ts +258 -0
- package/dist/db-wrapper.d.ts.map +1 -0
- package/dist/db-wrapper.js +636 -0
- package/dist/event-envelope.d.ts +35 -0
- package/dist/event-envelope.d.ts.map +1 -0
- package/dist/event-envelope.js +101 -0
- package/dist/fastify-plugin.d.ts +29 -0
- package/dist/fastify-plugin.d.ts.map +1 -0
- package/dist/fastify-plugin.js +243 -0
- package/dist/http-sentinels.d.ts +39 -0
- package/dist/http-sentinels.d.ts.map +1 -0
- package/dist/http-sentinels.js +169 -0
- package/dist/http-wrapper.d.ts +25 -0
- package/dist/http-wrapper.d.ts.map +1 -0
- package/dist/http-wrapper.js +477 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/invariants.d.ts +58 -0
- package/dist/invariants.d.ts.map +1 -0
- package/dist/invariants.js +192 -0
- package/dist/multi-service-edge-builder.d.ts +80 -0
- package/dist/multi-service-edge-builder.d.ts.map +1 -0
- package/dist/multi-service-edge-builder.js +107 -0
- package/dist/outbound-matcher.d.ts +192 -0
- package/dist/outbound-matcher.d.ts.map +1 -0
- package/dist/outbound-matcher.js +457 -0
- package/dist/peer-service-resolver.d.ts +22 -0
- package/dist/peer-service-resolver.d.ts.map +1 -0
- package/dist/peer-service-resolver.js +85 -0
- package/dist/redaction.d.ts +111 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +487 -0
- package/dist/replay-logger.d.ts +438 -0
- package/dist/replay-logger.d.ts.map +1 -0
- package/dist/replay-logger.js +434 -0
- package/dist/root-cause-analyzer.d.ts +45 -0
- package/dist/root-cause-analyzer.d.ts.map +1 -0
- package/dist/root-cause-analyzer.js +606 -0
- package/dist/shape-digest-utils.d.ts +45 -0
- package/dist/shape-digest-utils.d.ts.map +1 -0
- package/dist/shape-digest-utils.js +154 -0
- package/dist/trace-bundle-writer.d.ts +52 -0
- package/dist/trace-bundle-writer.d.ts.map +1 -0
- package/dist/trace-bundle-writer.js +267 -0
- package/dist/trace-loader.d.ts +69 -0
- package/dist/trace-loader.d.ts.map +1 -0
- package/dist/trace-loader.js +146 -0
- package/dist/trace-uploader.d.ts +25 -0
- package/dist/trace-uploader.d.ts.map +1 -0
- package/dist/trace-uploader.js +132 -0
- package/package.json +63 -0
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Replay Logger
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging for replay execution with stable keys.
|
|
5
|
+
* Supports JSON and human-readable output modes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Output format for replay logs
|
|
9
|
+
*/
|
|
10
|
+
export type ReplayLogFormat = "json" | "human";
|
|
11
|
+
/**
|
|
12
|
+
* Severity levels for replay events
|
|
13
|
+
*/
|
|
14
|
+
export type ReplayLogLevel = "debug" | "info" | "warn" | "error";
|
|
15
|
+
/**
|
|
16
|
+
* Category of replay event
|
|
17
|
+
*/
|
|
18
|
+
export type ReplayEventCategory = "http" | "db" | "trace" | "lifecycle" | "system";
|
|
19
|
+
/**
|
|
20
|
+
* Base interface for all replay events
|
|
21
|
+
*/
|
|
22
|
+
export interface ReplayEventBase {
|
|
23
|
+
/** Stable event type identifier */
|
|
24
|
+
event: string;
|
|
25
|
+
/** Unix timestamp in milliseconds */
|
|
26
|
+
timestamp: number;
|
|
27
|
+
/** Event category */
|
|
28
|
+
category: ReplayEventCategory;
|
|
29
|
+
/** Severity level */
|
|
30
|
+
level: ReplayLogLevel;
|
|
31
|
+
/** Trace context */
|
|
32
|
+
trace?: {
|
|
33
|
+
traceId: string;
|
|
34
|
+
spanId?: string;
|
|
35
|
+
parentSpanId?: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface HttpOutboundMatchEvent extends ReplayEventBase {
|
|
39
|
+
event: "http.outbound.match";
|
|
40
|
+
category: "http";
|
|
41
|
+
level: "info";
|
|
42
|
+
data: {
|
|
43
|
+
callIndex: number;
|
|
44
|
+
method: string;
|
|
45
|
+
url: string;
|
|
46
|
+
normalizedUrl: string;
|
|
47
|
+
bodyHash: string | null;
|
|
48
|
+
matchedSpanId: string;
|
|
49
|
+
durationMs?: number;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export interface HttpOutboundReturnEvent extends ReplayEventBase {
|
|
53
|
+
event: "http.outbound.return";
|
|
54
|
+
category: "http";
|
|
55
|
+
level: "debug";
|
|
56
|
+
data: {
|
|
57
|
+
callIndex: number;
|
|
58
|
+
method: string;
|
|
59
|
+
url: string;
|
|
60
|
+
statusCode: number;
|
|
61
|
+
bodyHash: string | null;
|
|
62
|
+
bodySize?: number;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface HttpOutboundMismatchEvent extends ReplayEventBase {
|
|
66
|
+
event: "http.outbound.mismatch";
|
|
67
|
+
category: "http";
|
|
68
|
+
level: "error";
|
|
69
|
+
data: {
|
|
70
|
+
callIndex: number;
|
|
71
|
+
expected: {
|
|
72
|
+
method: string;
|
|
73
|
+
url: string;
|
|
74
|
+
bodyHash: string | null;
|
|
75
|
+
};
|
|
76
|
+
actual: {
|
|
77
|
+
method: string;
|
|
78
|
+
url: string;
|
|
79
|
+
bodyHash: string | null;
|
|
80
|
+
};
|
|
81
|
+
differences: Array<{
|
|
82
|
+
field: string;
|
|
83
|
+
expected: string | null;
|
|
84
|
+
actual: string | null;
|
|
85
|
+
}>;
|
|
86
|
+
recoverable: boolean;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export interface HttpOutboundUnexpectedEvent extends ReplayEventBase {
|
|
90
|
+
event: "http.outbound.unexpected";
|
|
91
|
+
category: "http";
|
|
92
|
+
level: "error";
|
|
93
|
+
data: {
|
|
94
|
+
callIndex: number;
|
|
95
|
+
method: string;
|
|
96
|
+
url: string;
|
|
97
|
+
bodyHash: string | null;
|
|
98
|
+
expectedCallCount: number;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export interface HttpOutboundMissingEvent extends ReplayEventBase {
|
|
102
|
+
event: "http.outbound.missing";
|
|
103
|
+
category: "http";
|
|
104
|
+
level: "error";
|
|
105
|
+
data: {
|
|
106
|
+
callIndex: number;
|
|
107
|
+
method: string;
|
|
108
|
+
url: string;
|
|
109
|
+
spanId: string;
|
|
110
|
+
bodyHash: string | null;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export interface HttpOutboundBlockedEvent extends ReplayEventBase {
|
|
114
|
+
event: "http.outbound.blocked";
|
|
115
|
+
category: "http";
|
|
116
|
+
level: "error";
|
|
117
|
+
data: {
|
|
118
|
+
method: string;
|
|
119
|
+
url: string;
|
|
120
|
+
reason: string;
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export interface DbQueryMatchEvent extends ReplayEventBase {
|
|
124
|
+
event: "db.query.match";
|
|
125
|
+
category: "db";
|
|
126
|
+
level: "info";
|
|
127
|
+
data: {
|
|
128
|
+
queryIndex: number;
|
|
129
|
+
operation: string;
|
|
130
|
+
sql: string;
|
|
131
|
+
normalizedSql: string;
|
|
132
|
+
paramsHash: string;
|
|
133
|
+
matchedSpanId: string;
|
|
134
|
+
rowCount: number;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export interface DbQueryReturnEvent extends ReplayEventBase {
|
|
138
|
+
event: "db.query.return";
|
|
139
|
+
category: "db";
|
|
140
|
+
level: "debug";
|
|
141
|
+
data: {
|
|
142
|
+
queryIndex: number;
|
|
143
|
+
operation: string;
|
|
144
|
+
rowCount: number;
|
|
145
|
+
resultHash: string | null;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export interface DbQueryMismatchEvent extends ReplayEventBase {
|
|
149
|
+
event: "db.query.mismatch";
|
|
150
|
+
category: "db";
|
|
151
|
+
level: "error";
|
|
152
|
+
data: {
|
|
153
|
+
queryIndex: number;
|
|
154
|
+
expected: {
|
|
155
|
+
operation: string;
|
|
156
|
+
sql: string;
|
|
157
|
+
paramsHash: string;
|
|
158
|
+
};
|
|
159
|
+
actual: {
|
|
160
|
+
operation: string;
|
|
161
|
+
sql: string;
|
|
162
|
+
paramsHash: string;
|
|
163
|
+
};
|
|
164
|
+
differences: Array<{
|
|
165
|
+
field: string;
|
|
166
|
+
expected: string | null;
|
|
167
|
+
actual: string | null;
|
|
168
|
+
}>;
|
|
169
|
+
recoverable: boolean;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export interface DbQueryUnexpectedEvent extends ReplayEventBase {
|
|
173
|
+
event: "db.query.unexpected";
|
|
174
|
+
category: "db";
|
|
175
|
+
level: "error";
|
|
176
|
+
data: {
|
|
177
|
+
queryIndex: number;
|
|
178
|
+
operation: string;
|
|
179
|
+
sql: string;
|
|
180
|
+
paramsHash: string;
|
|
181
|
+
expectedQueryCount: number;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export interface DbQueryMissingEvent extends ReplayEventBase {
|
|
185
|
+
event: "db.query.missing";
|
|
186
|
+
category: "db";
|
|
187
|
+
level: "error";
|
|
188
|
+
data: {
|
|
189
|
+
queryIndex: number;
|
|
190
|
+
operation: string;
|
|
191
|
+
sql: string;
|
|
192
|
+
spanId: string;
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export interface DbQueryBlockedEvent extends ReplayEventBase {
|
|
196
|
+
event: "db.query.blocked";
|
|
197
|
+
category: "db";
|
|
198
|
+
level: "error";
|
|
199
|
+
data: {
|
|
200
|
+
operation: string;
|
|
201
|
+
sql: string;
|
|
202
|
+
reason: string;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export interface TraceLoadEvent extends ReplayEventBase {
|
|
206
|
+
event: "trace.load";
|
|
207
|
+
category: "trace";
|
|
208
|
+
level: "info";
|
|
209
|
+
data: {
|
|
210
|
+
traceDir: string;
|
|
211
|
+
traceId: string;
|
|
212
|
+
formatVersion: number;
|
|
213
|
+
serviceName: string;
|
|
214
|
+
environment: string;
|
|
215
|
+
startedAt: string;
|
|
216
|
+
eventCount?: number;
|
|
217
|
+
httpCallCount?: number;
|
|
218
|
+
dbQueryCount?: number;
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
export interface TraceLoadWarningEvent extends ReplayEventBase {
|
|
222
|
+
event: "trace.load.warning";
|
|
223
|
+
category: "trace";
|
|
224
|
+
level: "warn";
|
|
225
|
+
data: {
|
|
226
|
+
traceDir: string;
|
|
227
|
+
warning: string;
|
|
228
|
+
field?: string;
|
|
229
|
+
defaultValue?: unknown;
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
export interface TraceLoadErrorEvent extends ReplayEventBase {
|
|
233
|
+
event: "trace.load.error";
|
|
234
|
+
category: "trace";
|
|
235
|
+
level: "error";
|
|
236
|
+
data: {
|
|
237
|
+
traceDir: string;
|
|
238
|
+
errorType: string;
|
|
239
|
+
message: string;
|
|
240
|
+
expected?: string;
|
|
241
|
+
actual?: string;
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
export interface ReplayStartEvent extends ReplayEventBase {
|
|
245
|
+
event: "replay.start";
|
|
246
|
+
category: "lifecycle";
|
|
247
|
+
level: "info";
|
|
248
|
+
data: {
|
|
249
|
+
traceId: string;
|
|
250
|
+
traceDir: string;
|
|
251
|
+
mode: "strict" | "explain";
|
|
252
|
+
serviceName: string;
|
|
253
|
+
mockServerPort?: number;
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
export interface ReplayCompleteEvent extends ReplayEventBase {
|
|
257
|
+
event: "replay.complete";
|
|
258
|
+
category: "lifecycle";
|
|
259
|
+
level: "info";
|
|
260
|
+
data: {
|
|
261
|
+
traceId: string;
|
|
262
|
+
success: boolean;
|
|
263
|
+
durationMs: number;
|
|
264
|
+
httpCallsMatched: number;
|
|
265
|
+
httpCallsTotal: number;
|
|
266
|
+
dbQueriesMatched: number;
|
|
267
|
+
dbQueriesTotal: number;
|
|
268
|
+
divergenceCount: number;
|
|
269
|
+
errorCount: number;
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
export interface ReplayErrorEvent extends ReplayEventBase {
|
|
273
|
+
event: "replay.error";
|
|
274
|
+
category: "lifecycle";
|
|
275
|
+
level: "error";
|
|
276
|
+
data: {
|
|
277
|
+
traceId: string;
|
|
278
|
+
errorType: string;
|
|
279
|
+
message: string;
|
|
280
|
+
location?: string;
|
|
281
|
+
hint?: string;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export interface ReplayDivergenceEvent extends ReplayEventBase {
|
|
285
|
+
event: "replay.divergence";
|
|
286
|
+
category: "lifecycle";
|
|
287
|
+
level: "warn";
|
|
288
|
+
data: {
|
|
289
|
+
index: number;
|
|
290
|
+
source: "http" | "db";
|
|
291
|
+
message: string;
|
|
292
|
+
severity: "warning" | "error";
|
|
293
|
+
recoverable: boolean;
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
export type ReplayEvent = HttpOutboundMatchEvent | HttpOutboundReturnEvent | HttpOutboundMismatchEvent | HttpOutboundUnexpectedEvent | HttpOutboundMissingEvent | HttpOutboundBlockedEvent | DbQueryMatchEvent | DbQueryReturnEvent | DbQueryMismatchEvent | DbQueryUnexpectedEvent | DbQueryMissingEvent | DbQueryBlockedEvent | TraceLoadEvent | TraceLoadWarningEvent | TraceLoadErrorEvent | ReplayStartEvent | ReplayCompleteEvent | ReplayErrorEvent | ReplayDivergenceEvent;
|
|
297
|
+
export interface ReplayLoggerConfig {
|
|
298
|
+
/** Output format */
|
|
299
|
+
format: ReplayLogFormat;
|
|
300
|
+
/** Minimum log level to emit */
|
|
301
|
+
minLevel: ReplayLogLevel;
|
|
302
|
+
/** Output stream (defaults to stderr for errors/warnings, stdout otherwise) */
|
|
303
|
+
output?: {
|
|
304
|
+
write: (message: string) => void;
|
|
305
|
+
};
|
|
306
|
+
/** Include timestamps in human-readable output */
|
|
307
|
+
timestamps?: boolean;
|
|
308
|
+
/** Include trace context in human-readable output */
|
|
309
|
+
includeTrace?: boolean;
|
|
310
|
+
/** Colorize human-readable output */
|
|
311
|
+
colors?: boolean;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Replay Logger instance
|
|
315
|
+
*/
|
|
316
|
+
export declare class ReplayLogger {
|
|
317
|
+
private config;
|
|
318
|
+
private events;
|
|
319
|
+
private startTime;
|
|
320
|
+
constructor(config?: Partial<ReplayLoggerConfig>);
|
|
321
|
+
/**
|
|
322
|
+
* Get all logged events
|
|
323
|
+
*/
|
|
324
|
+
getEvents(): ReplayEvent[];
|
|
325
|
+
/**
|
|
326
|
+
* Clear all logged events
|
|
327
|
+
*/
|
|
328
|
+
clear(): void;
|
|
329
|
+
/**
|
|
330
|
+
* Check if a log level should be emitted
|
|
331
|
+
*/
|
|
332
|
+
private shouldLog;
|
|
333
|
+
/**
|
|
334
|
+
* Log an event
|
|
335
|
+
*/
|
|
336
|
+
log(event: Omit<ReplayEvent, "timestamp">): void;
|
|
337
|
+
/**
|
|
338
|
+
* Format event as JSON
|
|
339
|
+
*/
|
|
340
|
+
private formatJson;
|
|
341
|
+
/**
|
|
342
|
+
* Format event as human-readable
|
|
343
|
+
*/
|
|
344
|
+
private formatHuman;
|
|
345
|
+
/**
|
|
346
|
+
* Format event-specific message
|
|
347
|
+
*/
|
|
348
|
+
private formatEventMessage;
|
|
349
|
+
/**
|
|
350
|
+
* Log HTTP outbound match
|
|
351
|
+
*/
|
|
352
|
+
httpMatch(data: HttpOutboundMatchEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
353
|
+
/**
|
|
354
|
+
* Log HTTP outbound return
|
|
355
|
+
*/
|
|
356
|
+
httpReturn(data: HttpOutboundReturnEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
357
|
+
/**
|
|
358
|
+
* Log HTTP outbound mismatch
|
|
359
|
+
*/
|
|
360
|
+
httpMismatch(data: HttpOutboundMismatchEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
361
|
+
/**
|
|
362
|
+
* Log HTTP outbound unexpected
|
|
363
|
+
*/
|
|
364
|
+
httpUnexpected(data: HttpOutboundUnexpectedEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
365
|
+
/**
|
|
366
|
+
* Log HTTP outbound missing
|
|
367
|
+
*/
|
|
368
|
+
httpMissing(data: HttpOutboundMissingEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
369
|
+
/**
|
|
370
|
+
* Log HTTP outbound blocked
|
|
371
|
+
*/
|
|
372
|
+
httpBlocked(data: HttpOutboundBlockedEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
373
|
+
/**
|
|
374
|
+
* Log DB query match
|
|
375
|
+
*/
|
|
376
|
+
dbMatch(data: DbQueryMatchEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
377
|
+
/**
|
|
378
|
+
* Log DB query return
|
|
379
|
+
*/
|
|
380
|
+
dbReturn(data: DbQueryReturnEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
381
|
+
/**
|
|
382
|
+
* Log DB query mismatch
|
|
383
|
+
*/
|
|
384
|
+
dbMismatch(data: DbQueryMismatchEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
385
|
+
/**
|
|
386
|
+
* Log DB query unexpected
|
|
387
|
+
*/
|
|
388
|
+
dbUnexpected(data: DbQueryUnexpectedEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
389
|
+
/**
|
|
390
|
+
* Log DB query missing
|
|
391
|
+
*/
|
|
392
|
+
dbMissing(data: DbQueryMissingEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
393
|
+
/**
|
|
394
|
+
* Log DB query blocked
|
|
395
|
+
*/
|
|
396
|
+
dbBlocked(data: DbQueryBlockedEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
397
|
+
/**
|
|
398
|
+
* Log trace load
|
|
399
|
+
*/
|
|
400
|
+
traceLoad(data: TraceLoadEvent["data"]): void;
|
|
401
|
+
/**
|
|
402
|
+
* Log trace load warning
|
|
403
|
+
*/
|
|
404
|
+
traceLoadWarning(data: TraceLoadWarningEvent["data"]): void;
|
|
405
|
+
/**
|
|
406
|
+
* Log trace load error
|
|
407
|
+
*/
|
|
408
|
+
traceLoadError(data: TraceLoadErrorEvent["data"]): void;
|
|
409
|
+
/**
|
|
410
|
+
* Log replay start
|
|
411
|
+
*/
|
|
412
|
+
replayStart(data: ReplayStartEvent["data"]): void;
|
|
413
|
+
/**
|
|
414
|
+
* Log replay complete
|
|
415
|
+
*/
|
|
416
|
+
replayComplete(data: ReplayCompleteEvent["data"]): void;
|
|
417
|
+
/**
|
|
418
|
+
* Log replay error
|
|
419
|
+
*/
|
|
420
|
+
replayError(data: ReplayErrorEvent["data"]): void;
|
|
421
|
+
/**
|
|
422
|
+
* Log replay divergence
|
|
423
|
+
*/
|
|
424
|
+
replayDivergence(data: ReplayDivergenceEvent["data"], trace?: ReplayEventBase["trace"]): void;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Get or create the global replay logger
|
|
428
|
+
*/
|
|
429
|
+
export declare function getReplayLogger(config?: Partial<ReplayLoggerConfig>): ReplayLogger;
|
|
430
|
+
/**
|
|
431
|
+
* Reset the global replay logger
|
|
432
|
+
*/
|
|
433
|
+
export declare function resetReplayLogger(): void;
|
|
434
|
+
/**
|
|
435
|
+
* Create a new replay logger instance
|
|
436
|
+
*/
|
|
437
|
+
export declare function createReplayLogger(config?: Partial<ReplayLoggerConfig>): ReplayLogger;
|
|
438
|
+
//# sourceMappingURL=replay-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-logger.d.ts","sourceRoot":"","sources":["../src/replay-logger.ts"],"names":[],"mappings":"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"}
|