@mochabug/adapt-web 0.0.65 → 0.0.68

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.
@@ -0,0 +1,501 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PubsubClient = exports.ConnectionState = void 0;
7
+ const protobuf_1 = require("@bufbuild/protobuf");
8
+ const wkt_1 = require("@bufbuild/protobuf/wkt");
9
+ const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
10
+ const uuid_1 = require("uuid");
11
+ const automations_pb_js_1 = require("./genproto/mochabugapis/adapt/automations/v1/automations_pb.js");
12
+ const index_js_1 = require("./index.js");
13
+ // Connection states
14
+ var ConnectionState;
15
+ (function (ConnectionState) {
16
+ ConnectionState["DISCONNECTED"] = "disconnected";
17
+ ConnectionState["CONNECTING"] = "connecting";
18
+ ConnectionState["CONNECTED"] = "connected";
19
+ ConnectionState["CLOSING"] = "closing";
20
+ })(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
21
+ // Logger class for consistent logging
22
+ class Logger {
23
+ constructor(debug) {
24
+ this.debug = debug;
25
+ }
26
+ log(level, message, data) {
27
+ if (!this.debug && level === "debug")
28
+ return;
29
+ const timestamp = new Date().toISOString();
30
+ const prefix = `[PubSub ${timestamp}]`;
31
+ const fullMessage = `${prefix} ${message}`;
32
+ if (data !== undefined) {
33
+ console[level](fullMessage, data);
34
+ }
35
+ else {
36
+ console[level](fullMessage);
37
+ }
38
+ }
39
+ }
40
+ // ACK tracker to prevent duplicate message processing
41
+ class AckTracker {
42
+ constructor(logger) {
43
+ this.logger = logger;
44
+ this.ackedMessages = new Map();
45
+ this.MESSAGE_TTL = 60000; // 60 seconds
46
+ this.cleanupTimer = null;
47
+ }
48
+ start() {
49
+ // Cleanup old messages every 30 seconds
50
+ this.cleanupTimer = setInterval(() => this.cleanup(), 30000);
51
+ }
52
+ stop() {
53
+ if (this.cleanupTimer) {
54
+ clearInterval(this.cleanupTimer);
55
+ this.cleanupTimer = null;
56
+ }
57
+ this.ackedMessages.clear();
58
+ }
59
+ isProcessed(messageId) {
60
+ return this.ackedMessages.has(messageId);
61
+ }
62
+ markProcessed(messageId) {
63
+ this.ackedMessages.set(messageId, Date.now());
64
+ }
65
+ cleanup() {
66
+ const now = Date.now();
67
+ const deadline = now - this.MESSAGE_TTL;
68
+ let removed = 0;
69
+ for (const [messageId, timestamp] of this.ackedMessages.entries()) {
70
+ if (timestamp < deadline) {
71
+ this.ackedMessages.delete(messageId);
72
+ removed++;
73
+ }
74
+ }
75
+ if (removed > 0) {
76
+ this.logger.log("debug", `Cleaned up ${removed} old ACKed messages`);
77
+ }
78
+ }
79
+ }
80
+ // Reconnection manager with exponential backoff
81
+ class ReconnectionManager {
82
+ constructor(logger) {
83
+ this.logger = logger;
84
+ this.attempts = 0;
85
+ this.timer = null;
86
+ this.INITIAL_DELAY = 1000; // 1 second
87
+ this.MAX_DELAY = 30000; // 30 seconds
88
+ this.MAX_ATTEMPTS = -1; // -1 = infinite
89
+ }
90
+ reset() {
91
+ this.attempts = 0;
92
+ this.cancel();
93
+ }
94
+ cancel() {
95
+ if (this.timer) {
96
+ clearTimeout(this.timer);
97
+ this.timer = null;
98
+ }
99
+ }
100
+ scheduleReconnect(callback) {
101
+ if (this.MAX_ATTEMPTS !== -1 && this.attempts >= this.MAX_ATTEMPTS) {
102
+ this.logger.log("error", "Max reconnection attempts reached");
103
+ return false;
104
+ }
105
+ this.attempts++;
106
+ const delay = Math.min(this.INITIAL_DELAY * Math.pow(2, this.attempts - 1), this.MAX_DELAY);
107
+ this.logger.log("info", `Scheduling reconnect attempt ${this.attempts} in ${delay}ms`);
108
+ this.timer = setTimeout(() => {
109
+ this.timer = null;
110
+ callback();
111
+ }, delay);
112
+ return true;
113
+ }
114
+ }
115
+ // WebSocket connection manager
116
+ class WebSocketManager {
117
+ constructor(logger) {
118
+ this.logger = logger;
119
+ this.ws = null;
120
+ this.pingTimer = null;
121
+ this.PING_INTERVAL = 10000; // 10 seconds
122
+ }
123
+ connect(url, onOpen, onMessage, onClose, onError) {
124
+ if (this.ws) {
125
+ throw new Error("WebSocket already exists");
126
+ }
127
+ this.logger.log("info", `Connecting to: ${url}`);
128
+ this.ws = new isomorphic_ws_1.default(url);
129
+ this.ws.binaryType = "arraybuffer";
130
+ this.ws.onopen = () => {
131
+ this.logger.log("info", "✓ WebSocket connected");
132
+ this.startPing();
133
+ onOpen();
134
+ };
135
+ this.ws.onmessage = (event) => {
136
+ if (event.data instanceof ArrayBuffer) {
137
+ onMessage(event.data);
138
+ }
139
+ else {
140
+ this.logger.log("warn", "Received non-binary message, ignoring");
141
+ }
142
+ };
143
+ this.ws.onerror = (error) => {
144
+ this.logger.log("error", "WebSocket error:", error);
145
+ onError(error);
146
+ };
147
+ this.ws.onclose = (event) => {
148
+ this.logger.log("info", `WebSocket closed: ${event.code} - ${event.reason}`);
149
+ this.stopPing();
150
+ onClose(event.code, event.reason);
151
+ this.ws = null;
152
+ };
153
+ }
154
+ sendAck(messageId) {
155
+ if (!this.isConnected()) {
156
+ this.logger.log("warn", `Cannot send ACK (not connected): ${messageId}`);
157
+ return false;
158
+ }
159
+ try {
160
+ // Parse UUID string to bytes (16 bytes)
161
+ const uuid = new Uint8Array((0, uuid_1.parse)(messageId));
162
+ this.ws.send(uuid);
163
+ this.logger.log("debug", `Sent ACK: ${messageId}`);
164
+ return true;
165
+ }
166
+ catch (error) {
167
+ this.logger.log("error", `Failed to send ACK for ${messageId}:`, error);
168
+ return false;
169
+ }
170
+ }
171
+ close(code = 1000 /* CloseCode.NORMAL */, reason = "Client disconnecting") {
172
+ this.stopPing();
173
+ if (this.ws) {
174
+ try {
175
+ if (this.ws.readyState === isomorphic_ws_1.default.OPEN) {
176
+ this.ws.close(code, reason);
177
+ }
178
+ }
179
+ catch (error) {
180
+ this.logger.log("error", "Error closing WebSocket:", error);
181
+ }
182
+ this.ws = null;
183
+ }
184
+ }
185
+ isConnected() {
186
+ return this.ws !== null && this.ws.readyState === isomorphic_ws_1.default.OPEN;
187
+ }
188
+ startPing() {
189
+ this.stopPing();
190
+ // Send ping every 30 seconds to keep connection alive
191
+ this.pingTimer = setInterval(() => {
192
+ if (this.isConnected()) {
193
+ try {
194
+ this.ws.ping();
195
+ this.logger.log("debug", "Sent ping");
196
+ }
197
+ catch (error) {
198
+ this.logger.log("error", "Failed to send ping:", error);
199
+ }
200
+ }
201
+ }, this.PING_INTERVAL);
202
+ }
203
+ stopPing() {
204
+ if (this.pingTimer) {
205
+ clearInterval(this.pingTimer);
206
+ this.pingTimer = null;
207
+ }
208
+ }
209
+ }
210
+ // Message processor for handling incoming WebSocket messages
211
+ class MessageProcessor {
212
+ constructor(logger, handlers) {
213
+ this.logger = logger;
214
+ this.handlers = handlers;
215
+ }
216
+ process(data) {
217
+ try {
218
+ const message = (0, protobuf_1.fromBinary)(automations_pb_js_1.WebsocketMessageSchema, new Uint8Array(data));
219
+ this.logger.log("debug", `Processing message: ${message.id}`);
220
+ // Process based on message type
221
+ switch (message.message.case) {
222
+ case "output":
223
+ this.processOutput(message.message.value);
224
+ break;
225
+ case "session":
226
+ this.processSession(message.message.value);
227
+ break;
228
+ case "url":
229
+ this.processUrl(message.message.value);
230
+ break;
231
+ default:
232
+ this.logger.log("warn", `Unknown message type: ${message.message.case}`);
233
+ }
234
+ return message.id;
235
+ }
236
+ catch (error) {
237
+ this.logger.log("error", "Failed to process message:", error);
238
+ return null;
239
+ }
240
+ }
241
+ processOutput(output) {
242
+ if (!this.handlers.onOutput)
243
+ return;
244
+ try {
245
+ this.handlers.onOutput({
246
+ vertex: output.vertex,
247
+ fork: output.fork,
248
+ data: this.parseOutputData(output.data),
249
+ created: output.created ? (0, wkt_1.timestampDate)(output.created) : undefined,
250
+ });
251
+ }
252
+ catch (error) {
253
+ this.logger.log("error", "Error in output handler:", error);
254
+ }
255
+ }
256
+ processSession(session) {
257
+ if (!this.handlers.onSession)
258
+ return;
259
+ try {
260
+ this.handlers.onSession((0, protobuf_1.toJson)(automations_pb_js_1.SessionSchema, session));
261
+ }
262
+ catch (error) {
263
+ this.logger.log("error", "Error in session handler:", error);
264
+ }
265
+ }
266
+ processUrl(url) {
267
+ if (!this.handlers.onUrl)
268
+ return;
269
+ try {
270
+ this.handlers.onUrl((0, protobuf_1.toJson)(automations_pb_js_1.UrlSchema, url));
271
+ }
272
+ catch (error) {
273
+ this.logger.log("error", "Error in URL handler:", error);
274
+ }
275
+ }
276
+ parseOutputData(data) {
277
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => {
278
+ try {
279
+ return [key, JSON.parse(new TextDecoder().decode(value))];
280
+ }
281
+ catch (error) {
282
+ this.logger.log("error", `Failed to parse data for key ${key}:`, error);
283
+ return [key, null];
284
+ }
285
+ }));
286
+ }
287
+ }
288
+ // Main PubsubClient class
289
+ class PubsubClient {
290
+ constructor(debug = false) {
291
+ this.state = ConnectionState.DISCONNECTED;
292
+ this.sessionConfig = null;
293
+ this.messageProcessor = null;
294
+ this.shouldReconnect = true;
295
+ this.sessionComplete = false;
296
+ this.logger = new Logger(debug);
297
+ this.ackTracker = new AckTracker(this.logger);
298
+ this.reconnectManager = new ReconnectionManager(this.logger);
299
+ this.wsManager = new WebSocketManager(this.logger);
300
+ }
301
+ async subscribe(opts) {
302
+ this.logger.log("debug", "Subscribe called", {
303
+ automation: opts.automation,
304
+ hasToken: !!opts.sessionToken,
305
+ });
306
+ // Validate input
307
+ if (!opts.sessionToken || !opts.automation) {
308
+ throw new Error("Session token and automation are required");
309
+ }
310
+ // Check if already connected to same session
311
+ if (this.isSameSession(opts)) {
312
+ this.logger.log("debug", "Already connected to same session, updating handlers");
313
+ this.updateHandlers(opts);
314
+ return;
315
+ }
316
+ // Check state
317
+ if (this.state === ConnectionState.CONNECTING) {
318
+ throw new Error("Already connecting, please wait");
319
+ }
320
+ // Disconnect if connected to different session
321
+ if (this.state === ConnectionState.CONNECTED) {
322
+ await this.unsubscribe();
323
+ }
324
+ // Store configuration
325
+ this.sessionConfig = {
326
+ token: opts.sessionToken,
327
+ automation: opts.automation,
328
+ };
329
+ // Create message processor with handlers
330
+ this.messageProcessor = new MessageProcessor(this.logger, {
331
+ onOutput: opts.onOutput,
332
+ onSession: opts.onSession,
333
+ onUrl: opts.onUrl,
334
+ });
335
+ // Reset state
336
+ this.shouldReconnect = true;
337
+ this.sessionComplete = false;
338
+ this.reconnectManager.reset();
339
+ // Start ACK tracker
340
+ this.ackTracker.start();
341
+ // Connect
342
+ await this.connect();
343
+ }
344
+ async unsubscribe() {
345
+ if (this.state === ConnectionState.DISCONNECTED ||
346
+ this.state === ConnectionState.CLOSING) {
347
+ return;
348
+ }
349
+ this.logger.log("info", "Unsubscribing...");
350
+ // Update state
351
+ this.state = ConnectionState.CLOSING;
352
+ this.shouldReconnect = false;
353
+ // Cancel any pending reconnects
354
+ this.reconnectManager.cancel();
355
+ // Close WebSocket
356
+ this.wsManager.close();
357
+ // Stop ACK tracker
358
+ this.ackTracker.stop();
359
+ // Clear state
360
+ this.sessionConfig = null;
361
+ this.messageProcessor = null;
362
+ this.state = ConnectionState.DISCONNECTED;
363
+ this.logger.log("info", "Unsubscribed successfully");
364
+ }
365
+ isConnected() {
366
+ return this.state === ConnectionState.CONNECTED;
367
+ }
368
+ getConnectionState() {
369
+ return this.state;
370
+ }
371
+ async connect() {
372
+ if (!this.sessionConfig) {
373
+ throw new Error("No session configuration");
374
+ }
375
+ this.state = ConnectionState.CONNECTING;
376
+ const config = (0, index_js_1.getConfig)();
377
+ const { token, automation } = this.sessionConfig;
378
+ const wsUrl = `${config.wsBaseUrl}/${automation.organization}/${automation.group}/${automation.automation}/ws?token=${encodeURIComponent(token)}`;
379
+ try {
380
+ this.wsManager.connect(wsUrl, () => this.handleOpen(), (data) => this.handleMessage(data), (code, reason) => this.handleClose(code, reason), (error) => this.handleError(error));
381
+ }
382
+ catch (error) {
383
+ this.state = ConnectionState.DISCONNECTED;
384
+ throw error;
385
+ }
386
+ }
387
+ handleOpen() {
388
+ this.state = ConnectionState.CONNECTED;
389
+ this.reconnectManager.reset();
390
+ }
391
+ handleMessage(data) {
392
+ if (!this.messageProcessor) {
393
+ this.logger.log("error", "No message processor configured");
394
+ return;
395
+ }
396
+ // Process the message
397
+ const messageId = this.messageProcessor.process(data);
398
+ if (!messageId) {
399
+ return; // Failed to parse
400
+ }
401
+ // Check for duplicate
402
+ if (this.ackTracker.isProcessed(messageId)) {
403
+ this.logger.log("debug", `Duplicate message: ${messageId}`);
404
+ }
405
+ else {
406
+ this.ackTracker.markProcessed(messageId);
407
+ }
408
+ // Always ACK (even for duplicates)
409
+ this.wsManager.sendAck(messageId);
410
+ }
411
+ handleClose(code, reason) {
412
+ this.state = ConnectionState.DISCONNECTED;
413
+ // Analyze close code
414
+ const shouldReconnect = this.analyzeCloseCode(code, reason);
415
+ // Schedule reconnect if appropriate
416
+ if (shouldReconnect && this.shouldReconnect && !this.sessionComplete) {
417
+ this.scheduleReconnect();
418
+ }
419
+ else {
420
+ // Clean shutdown
421
+ this.cleanup();
422
+ }
423
+ }
424
+ handleError(error) {
425
+ this.logger.log("error", "WebSocket error:", error);
426
+ }
427
+ analyzeCloseCode(code, reason) {
428
+ switch (code) {
429
+ case 1000 /* CloseCode.NORMAL */:
430
+ // Normal closure - session complete or client requested
431
+ this.logger.log("info", "Normal closure");
432
+ this.sessionComplete = true;
433
+ return false;
434
+ case 1001 /* CloseCode.GOING_AWAY */:
435
+ // Server shutting down
436
+ this.logger.log("warn", "Server going away");
437
+ return true;
438
+ case 1002 /* CloseCode.PROTOCOL_ERROR */:
439
+ case 1003 /* CloseCode.UNSUPPORTED_DATA */:
440
+ case 1008 /* CloseCode.POLICY_VIOLATION */:
441
+ // Critical errors - don't reconnect
442
+ this.logger.log("error", `Critical error (${code}): ${reason}`);
443
+ return false;
444
+ case 1006 /* CloseCode.ABNORMAL */:
445
+ // Connection lost - try to reconnect
446
+ this.logger.log("warn", "Connection lost (abnormal closure)");
447
+ return true;
448
+ default:
449
+ // Unknown code - try to reconnect
450
+ this.logger.log("warn", `Unknown close code ${code}: ${reason}`);
451
+ return true;
452
+ }
453
+ }
454
+ scheduleReconnect() {
455
+ const scheduled = this.reconnectManager.scheduleReconnect(() => {
456
+ if (this.shouldReconnect && this.state === ConnectionState.DISCONNECTED) {
457
+ this.connect().catch((error) => {
458
+ this.logger.log("error", "Reconnection failed:", error);
459
+ // Try again
460
+ this.scheduleReconnect();
461
+ });
462
+ }
463
+ });
464
+ if (!scheduled) {
465
+ // Max attempts reached
466
+ this.cleanup();
467
+ }
468
+ }
469
+ cleanup() {
470
+ this.shouldReconnect = false;
471
+ this.reconnectManager.cancel();
472
+ this.ackTracker.stop();
473
+ this.wsManager.close();
474
+ this.sessionConfig = null;
475
+ this.messageProcessor = null;
476
+ this.state = ConnectionState.DISCONNECTED;
477
+ }
478
+ isSameSession(opts) {
479
+ if (!this.sessionConfig || this.state !== ConnectionState.CONNECTED) {
480
+ return false;
481
+ }
482
+ return (this.sessionConfig.token === opts.sessionToken &&
483
+ this.sessionConfig.automation.organization ===
484
+ opts.automation.organization &&
485
+ this.sessionConfig.automation.group === opts.automation.group &&
486
+ this.sessionConfig.automation.automation === opts.automation.automation);
487
+ }
488
+ updateHandlers(opts) {
489
+ if (!this.messageProcessor) {
490
+ return;
491
+ }
492
+ // Update handlers in message processor
493
+ this.messageProcessor = new MessageProcessor(this.logger, {
494
+ onOutput: opts.onOutput,
495
+ onSession: opts.onSession,
496
+ onUrl: opts.onUrl,
497
+ });
498
+ }
499
+ }
500
+ exports.PubsubClient = PubsubClient;
501
+ //# sourceMappingURL=pubsub-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub-client.js","sourceRoot":"","sources":["../../src/pubsub-client.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
19
19
  /**
20
20
  * Describes the file mochabugapis/adapt/automations/v1/automations.proto.
21
21
  */
22
- export const file_mochabugapis_adapt_automations_v1_automations = /*@__PURE__*/ fileDesc("CjNtb2NoYWJ1Z2FwaXMvYWRhcHQvYXV0b21hdGlvbnMvdjEvYXV0b21hdGlvbnMucHJvdG8SIW1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MSJcChVJbmhlcml0U2Vzc2lvblJlcXVlc3QSQwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWQirQEKFkluaGVyaXRTZXNzaW9uUmVzcG9uc2USDQoFdG9rZW4YASABKAkSGgoSYnJva2VyX2NyZWRlbnRpYWxzGAIgASgMEhUKDWNvbnN1bWVyX25hbWUYAyABKAkSEwoLc3RyZWFtX25hbWUYBCABKAkSMAoHZXhwaXJlcxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyLqAQoRUmVhZE91dHB1dFJlcXVlc3QSSwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWRCBrpIA8gBARIaCglwYWdlX3NpemUYAiABKA1CB7pIBCoCGGQSLAoGdmVydGV4GAMgASgJQhe6SBTYAQFyDzINXlswLTlhLXpdezR9JEgAiAEBEiQKCm5ld2VyX3RoYW4YBCABKAlCC7pICNgBAXIDsAEBSAGIAQFCCQoHX3ZlcnRleEINCgtfbmV3ZXJfdGhhbiLOAQoSUmVhZE91dHB1dFJlc3BvbnNlEjsKB3Nlc3Npb24YASABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbhI6CgdvdXRwdXRzGAIgAygLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dBIqChBuZXh0X3BhZ2VfY3Vyc29yGAMgASgJQgu6SAjYAQFyA7ABAUgAiAEBQhMKEV9uZXh0X3BhZ2VfY3Vyc29yIq8BCg9SZWFkVXJsc1JlcXVlc3QSSwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWRCBrpIA8gBARIaCglwYWdlX3NpemUYAiABKA1CB7pIBCoCGGQSJAoKbmV3ZXJfdGhhbhgDIAEoCUILukgI2AEBcgOwAQFIAIgBAUINCgtfbmV3ZXJfdGhhbiLGAQoQUmVhZFVybHNSZXNwb25zZRI7CgdzZXNzaW9uGAEgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb24SNAoEdXJscxgCIAMoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmwSKgoQbmV4dF9wYWdlX2N1cnNvchgDIAEoCUILukgI2AEBcgOwAQFIAIgBAUITChFfbmV4dF9wYWdlX2N1cnNvciLqAgoTU3RhcnRTZXNzaW9uUmVxdWVzdBJLCgphdXRvbWF0aW9uGAEgASgLMi8ubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkF1dG9tYXRpb25JZEIGukgDyAEBEj4KC3RyYW5zbWl0dGVyGAIgASgJQiS6SCHYAQFyHBABGGQyFl5bYS16QS1aMC05Xy1dezEsMTAwfSRIAIgBARKFAQoHc2lnbmFscxgDIAMoCzJDLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGFydFNlc3Npb25SZXF1ZXN0LlNpZ25hbHNFbnRyeUIvukgsmgEpIiJyIBABGGQyGl5bXyRhLXpBLVpdW18kYS16QS1aMC05XSokKgPIAQEaLgoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAFCDgoMX3RyYW5zbWl0dGVyIqsBChRTdGFydFNlc3Npb25SZXNwb25zZRINCgV0b2tlbhgBIAEoCRIaChJicm9rZXJfY3JlZGVudGlhbHMYAiABKAwSFQoNY29uc3VtZXJfbmFtZRgDIAEoCRITCgtzdHJlYW1fbmFtZRgEIAEoCRIwCgdleHBpcmVzGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQgoKCF9leHBpcmVzImEKElN0b3BTZXNzaW9uUmVxdWVzdBJLCgphdXRvbWF0aW9uGAEgASgLMi8ubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkF1dG9tYXRpb25JZEIGukgDyAEBIhUKE1N0b3BTZXNzaW9uUmVzcG9uc2UiYAoRR2V0U2Vzc2lvblJlcXVlc3QSSwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWRCBrpIA8gBASJZChJHZXRTZXNzaW9uUmVzcG9uc2USQwoHc2Vzc2lvbhgBIAEoCzIqLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TZXNzaW9uQga6SAPIAQEiggEKDEF1dG9tYXRpb25JZBIeCgxvcmdhbml6YXRpb24YASABKAlCCLpIBXIDsAEBEiUKBWdyb3VwGAIgASgJQha6SBNyERADGGQyC15bMC05YS16XSskEisKCmF1dG9tYXRpb24YAyABKAlCF7pIFHISEAQYZDIMXlswLTlhLXotXSskIsMBCgZPdXRwdXQSDgoGdmVydGV4GAEgASgJEgwKBGZvcmsYAiABKAkSQQoEZGF0YRgDIAMoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXQuRGF0YUVudHJ5EisKB2NyZWF0ZWQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGisKCURhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAw6AjgBInoKA1VybBILCgN1cmwYASABKAkSDAoEZm9yaxgCIAEoCRIOCgZ2ZXJ0ZXgYAyABKAkSDAoEZG9uZRgEIAEoCBIrCgdjcmVhdGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgV0b2tlbhgGIAEoCSKbAQoHU2Vzc2lvbhJLCgphdXRvbWF0aW9uGAEgASgLMi8ubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkF1dG9tYXRpb25JZEIGukgDyAEBEkMKBnN0YXR1cxgCIAEoDjIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGF0dXNCCLpIBYIBAiAAIuYBChBXZWJzb2NrZXRNZXNzYWdlEjsKBm91dHB1dBgBIAEoCzIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXRIABI1CgN1cmwYAiABKAsyJi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuVXJsSAASPQoHc2Vzc2lvbhgDIAEoCzIqLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TZXNzaW9uSAASFAoCaWQYBSABKAlCCLpIBXIDsAEBQgkKB21lc3NhZ2UqmwEKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfUlVOTklORxABEhIKDlNUQVRVU19TVE9QUEVEEAISEwoPU1RBVFVTX1NUT1BQSU5HEAMSFAoQU1RBVFVTX0NPTVBMRVRFRBAEEhIKDlNUQVRVU19FWFBJUkVEEAUSEgoOU1RBVFVTX0VSUk9SRUQQBjKeDAoRQXV0b21hdGlvblNlcnZpY2US5gEKDFN0YXJ0U2Vzc2lvbhI2Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGFydFNlc3Npb25SZXF1ZXN0GjcubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlc3BvbnNlImWC0+STAl86ASoiWi92MS9hdXRvbWF0aW9ucy97YXV0b21hdGlvbi5vcmdhbml6YXRpb259L3thdXRvbWF0aW9uLmdyb3VwfS97YXV0b21hdGlvbi5hdXRvbWF0aW9ufS9zdGFydBLnAQoLU3RvcFNlc3Npb24SNS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RvcFNlc3Npb25SZXF1ZXN0GjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0b3BTZXNzaW9uUmVzcG9uc2UiaYLT5JMCYyphL3YxL2F1dG9tYXRpb25zL3thdXRvbWF0aW9uLm9yZ2FuaXphdGlvbn0ve2F1dG9tYXRpb24uZ3JvdXB9L3thdXRvbWF0aW9uLmF1dG9tYXRpb259L3Nlc3Npb24vc3RvcBL2AQoOSW5oZXJpdFNlc3Npb24SOC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuSW5oZXJpdFNlc3Npb25SZXF1ZXN0GjkubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkluaGVyaXRTZXNzaW9uUmVzcG9uc2Uib4LT5JMCaToBKiJkL3YxL2F1dG9tYXRpb25zL3thdXRvbWF0aW9uLm9yZ2FuaXphdGlvbn0ve2F1dG9tYXRpb24uZ3JvdXB9L3thdXRvbWF0aW9uLmF1dG9tYXRpb259L3Nlc3Npb24vaW5oZXJpdBLmAQoKR2V0U2Vzc2lvbhI0Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5HZXRTZXNzaW9uUmVxdWVzdBo1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5HZXRTZXNzaW9uUmVzcG9uc2Uia4LT5JMCZRJjL3YxL2F1dG9tYXRpb25zL3thdXRvbWF0aW9uLm9yZ2FuaXphdGlvbn0ve2F1dG9tYXRpb24uZ3JvdXB9L3thdXRvbWF0aW9uLmF1dG9tYXRpb259L3Nlc3Npb24vc3RhdHVzEuYBCgpSZWFkT3V0cHV0EjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXNwb25zZSJrgtPkkwJlEmMvdjEvYXV0b21hdGlvbnMve2F1dG9tYXRpb24ub3JnYW5pemF0aW9ufS97YXV0b21hdGlvbi5ncm91cH0ve2F1dG9tYXRpb24uYXV0b21hdGlvbn0vc2Vzc2lvbi9vdXRwdXQS3gEKCFJlYWRVcmxzEjIubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRVcmxzUmVxdWVzdBozLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SZWFkVXJsc1Jlc3BvbnNlImmC0+STAmMSYS92MS9hdXRvbWF0aW9ucy97YXV0b21hdGlvbi5vcmdhbml6YXRpb259L3thdXRvbWF0aW9uLmdyb3VwfS97YXV0b21hdGlvbi5hdXRvbWF0aW9ufS9zZXNzaW9uL3VybHMaiQHKQRZhZGFwdC5tb2NoYWJ1Z2FwaXMuY29t0kFtaHR0cHM6Ly93d3cubW9jaGFidWdhcGlzLmNvbS9hdXRoL2FkYXB0LmF1dG9tYXRpb25zLGh0dHBzOi8vd3d3Lm1vY2hhYnVnYXBpcy5jb20vYXV0aC9hZGFwdC5hdXRvbWF0aW9ucy5zdGFydGIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_client, file_google_protobuf_timestamp]);
22
+ export const file_mochabugapis_adapt_automations_v1_automations = /*@__PURE__*/ fileDesc("CjNtb2NoYWJ1Z2FwaXMvYWRhcHQvYXV0b21hdGlvbnMvdjEvYXV0b21hdGlvbnMucHJvdG8SIW1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MSJcChVJbmhlcml0U2Vzc2lvblJlcXVlc3QSQwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWQirQEKFkluaGVyaXRTZXNzaW9uUmVzcG9uc2USDQoFdG9rZW4YASABKAkSGgoSYnJva2VyX2NyZWRlbnRpYWxzGAIgASgMEhUKDWNvbnN1bWVyX25hbWUYAyABKAkSEwoLc3RyZWFtX25hbWUYBCABKAkSMAoHZXhwaXJlcxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyLqAQoRUmVhZE91dHB1dFJlcXVlc3QSSwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWRCBrpIA8gBARIaCglwYWdlX3NpemUYAiABKA1CB7pIBCoCGGQSLAoGdmVydGV4GAMgASgJQhe6SBTYAQFyDzINXlswLTlhLXpdezR9JEgAiAEBEiQKCm5ld2VyX3RoYW4YBCABKAlCC7pICNgBAXIDsAEBSAGIAQFCCQoHX3ZlcnRleEINCgtfbmV3ZXJfdGhhbiLOAQoSUmVhZE91dHB1dFJlc3BvbnNlEjsKB3Nlc3Npb24YASABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbhI6CgdvdXRwdXRzGAIgAygLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dBIqChBuZXh0X3BhZ2VfY3Vyc29yGAMgASgJQgu6SAjYAQFyA7ABAUgAiAEBQhMKEV9uZXh0X3BhZ2VfY3Vyc29yIq8BCg9SZWFkVXJsc1JlcXVlc3QSSwoKYXV0b21hdGlvbhgBIAEoCzIvLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5BdXRvbWF0aW9uSWRCBrpIA8gBARIaCglwYWdlX3NpemUYAiABKA1CB7pIBCoCGGQSJAoKbmV3ZXJfdGhhbhgDIAEoCUILukgI2AEBcgOwAQFIAIgBAUINCgtfbmV3ZXJfdGhhbiLGAQoQUmVhZFVybHNSZXNwb25zZRI7CgdzZXNzaW9uGAEgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb24SNAoEdXJscxgCIAMoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmwSKgoQbmV4dF9wYWdlX2N1cnNvchgDIAEoCUILukgI2AEBcgOwAQFIAIgBAUITChFfbmV4dF9wYWdlX2N1cnNvciLqAgoTU3RhcnRTZXNzaW9uUmVxdWVzdBJLCgphdXRvbWF0aW9uGAEgASgLMi8ubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkF1dG9tYXRpb25JZEIGukgDyAEBEj4KC3RyYW5zbWl0dGVyGAIgASgJQiS6SCHYAQFyHBABGGQyFl5bYS16QS1aMC05Xy1dezEsMTAwfSRIAIgBARKFAQoHc2lnbmFscxgDIAMoCzJDLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGFydFNlc3Npb25SZXF1ZXN0LlNpZ25hbHNFbnRyeUIvukgsmgEpIiJyIBABGGQyGl5bXyRhLXpBLVpdW18kYS16QS1aMC05XSokKgPIAQEaLgoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAFCDgoMX3RyYW5zbWl0dGVyImMKFFN0YXJ0U2Vzc2lvblJlc3BvbnNlEg0KBXRva2VuGAEgASgJEjAKB2V4cGlyZXMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCCgoIX2V4cGlyZXMiYQoSU3RvcFNlc3Npb25SZXF1ZXN0EksKCmF1dG9tYXRpb24YASABKAsyLy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuQXV0b21hdGlvbklkQga6SAPIAQEiFQoTU3RvcFNlc3Npb25SZXNwb25zZSJgChFHZXRTZXNzaW9uUmVxdWVzdBJLCgphdXRvbWF0aW9uGAEgASgLMi8ubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkF1dG9tYXRpb25JZEIGukgDyAEBIlkKEkdldFNlc3Npb25SZXNwb25zZRJDCgdzZXNzaW9uGAEgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25CBrpIA8gBASKCAQoMQXV0b21hdGlvbklkEh4KDG9yZ2FuaXphdGlvbhgBIAEoCUIIukgFcgOwAQESJQoFZ3JvdXAYAiABKAlCFrpIE3IREAMYZDILXlswLTlhLXpdKyQSKwoKYXV0b21hdGlvbhgDIAEoCUIXukgUchIQBBhkMgxeWzAtOWEtei1dKyQiwwEKBk91dHB1dBIOCgZ2ZXJ0ZXgYASABKAkSDAoEZm9yaxgCIAEoCRJBCgRkYXRhGAMgAygLMjMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dC5EYXRhRW50cnkSKwoHY3JlYXRlZBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEiegoDVXJsEgsKA3VybBgBIAEoCRIMCgRmb3JrGAIgASgJEg4KBnZlcnRleBgDIAEoCRIMCgRkb25lGAQgASgIEisKB2NyZWF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRva2VuGAYgASgJIpsBCgdTZXNzaW9uEksKCmF1dG9tYXRpb24YASABKAsyLy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuQXV0b21hdGlvbklkQga6SAPIAQESQwoGc3RhdHVzGAIgASgOMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXR1c0IIukgFggECIAAi5gEKEFdlYnNvY2tldE1lc3NhZ2USOwoGb3V0cHV0GAEgASgLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dEgAEjUKA3VybBgCIAEoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxIABI9CgdzZXNzaW9uGAMgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25IABIUCgJpZBgFIAEoCUIIukgFcgOwAQFCCQoHbWVzc2FnZSqbAQoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhIKDlNUQVRVU19SVU5OSU5HEAESEgoOU1RBVFVTX1NUT1BQRUQQAhITCg9TVEFUVVNfU1RPUFBJTkcQAxIUChBTVEFUVVNfQ09NUExFVEVEEAQSEgoOU1RBVFVTX0VYUElSRUQQBRISCg5TVEFUVVNfRVJST1JFRBAGMp4MChFBdXRvbWF0aW9uU2VydmljZRLmAQoMU3RhcnRTZXNzaW9uEjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlcXVlc3QaNy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RhcnRTZXNzaW9uUmVzcG9uc2UiZYLT5JMCXzoBKiJaL3YxL2F1dG9tYXRpb25zL3thdXRvbWF0aW9uLm9yZ2FuaXphdGlvbn0ve2F1dG9tYXRpb24uZ3JvdXB9L3thdXRvbWF0aW9uLmF1dG9tYXRpb259L3N0YXJ0EucBCgtTdG9wU2Vzc2lvbhI1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdG9wU2Vzc2lvblJlcXVlc3QaNi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RvcFNlc3Npb25SZXNwb25zZSJpgtPkkwJjKmEvdjEvYXV0b21hdGlvbnMve2F1dG9tYXRpb24ub3JnYW5pemF0aW9ufS97YXV0b21hdGlvbi5ncm91cH0ve2F1dG9tYXRpb24uYXV0b21hdGlvbn0vc2Vzc2lvbi9zdG9wEvYBCg5Jbmhlcml0U2Vzc2lvbhI4Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5Jbmhlcml0U2Vzc2lvblJlcXVlc3QaOS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuSW5oZXJpdFNlc3Npb25SZXNwb25zZSJvgtPkkwJpOgEqImQvdjEvYXV0b21hdGlvbnMve2F1dG9tYXRpb24ub3JnYW5pemF0aW9ufS97YXV0b21hdGlvbi5ncm91cH0ve2F1dG9tYXRpb24uYXV0b21hdGlvbn0vc2Vzc2lvbi9pbmhlcml0EuYBCgpHZXRTZXNzaW9uEjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXNwb25zZSJrgtPkkwJlEmMvdjEvYXV0b21hdGlvbnMve2F1dG9tYXRpb24ub3JnYW5pemF0aW9ufS97YXV0b21hdGlvbi5ncm91cH0ve2F1dG9tYXRpb24uYXV0b21hdGlvbn0vc2Vzc2lvbi9zdGF0dXMS5gEKClJlYWRPdXRwdXQSNC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVhZE91dHB1dFJlcXVlc3QaNS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVhZE91dHB1dFJlc3BvbnNlImuC0+STAmUSYy92MS9hdXRvbWF0aW9ucy97YXV0b21hdGlvbi5vcmdhbml6YXRpb259L3thdXRvbWF0aW9uLmdyb3VwfS97YXV0b21hdGlvbi5hdXRvbWF0aW9ufS9zZXNzaW9uL291dHB1dBLeAQoIUmVhZFVybHMSMi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVhZFVybHNSZXF1ZXN0GjMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRVcmxzUmVzcG9uc2UiaYLT5JMCYxJhL3YxL2F1dG9tYXRpb25zL3thdXRvbWF0aW9uLm9yZ2FuaXphdGlvbn0ve2F1dG9tYXRpb24uZ3JvdXB9L3thdXRvbWF0aW9uLmF1dG9tYXRpb259L3Nlc3Npb24vdXJscxqJAcpBFmFkYXB0Lm1vY2hhYnVnYXBpcy5jb23SQW1odHRwczovL3d3dy5tb2NoYWJ1Z2FwaXMuY29tL2F1dGgvYWRhcHQuYXV0b21hdGlvbnMsaHR0cHM6Ly93d3cubW9jaGFidWdhcGlzLmNvbS9hdXRoL2FkYXB0LmF1dG9tYXRpb25zLnN0YXJ0YgZwcm90bzM", [file_buf_validate_validate, file_google_api_annotations, file_google_api_client, file_google_protobuf_timestamp]);
23
23
  /**
24
24
  * Describes the message mochabugapis.adapt.automations.v1.InheritSessionRequest.
25
25
  * Use `create(InheritSessionRequestSchema)` to create a new message.
@@ -1 +1 @@
1
- {"version":3,"file":"automations_pb.js","sourceRoot":"","sources":["../../../../../../../src/genproto/mochabugapis/adapt/automations/v1/automations_pb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automations_pb.js","sourceRoot":"","sources":["../../../../../../../src/genproto/mochabugapis/adapt/automations/v1/automations_pb.ts"],"names":[],"mappings":"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"}