@evalops/sdk-ts 0.1.68 → 0.1.70

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.
@@ -2272,6 +2272,258 @@ export type GetEvaluationRunMetricsResponse = Message<"fermata.v1.GetEvaluationR
2272
2272
  * Use `create(GetEvaluationRunMetricsResponseSchema)` to create a new message.
2273
2273
  */
2274
2274
  export declare const GetEvaluationRunMetricsResponseSchema: GenMessage<GetEvaluationRunMetricsResponse>;
2275
+ /**
2276
+ * @generated from message fermata.v1.GetEvaluationGovernanceReportRequest
2277
+ */
2278
+ export type GetEvaluationGovernanceReportRequest = Message<"fermata.v1.GetEvaluationGovernanceReportRequest"> & {
2279
+ /**
2280
+ * @generated from field: string organization_id = 1;
2281
+ */
2282
+ organizationId: string;
2283
+ /**
2284
+ * @generated from field: string workspace_id = 2;
2285
+ */
2286
+ workspaceId: string;
2287
+ /**
2288
+ * @generated from field: string scenario_id = 3;
2289
+ */
2290
+ scenarioId: string;
2291
+ /**
2292
+ * @generated from field: int32 days = 4;
2293
+ */
2294
+ days: number;
2295
+ /**
2296
+ * @generated from field: int32 limit = 5;
2297
+ */
2298
+ limit: number;
2299
+ };
2300
+ /**
2301
+ * Describes the message fermata.v1.GetEvaluationGovernanceReportRequest.
2302
+ * Use `create(GetEvaluationGovernanceReportRequestSchema)` to create a new message.
2303
+ */
2304
+ export declare const GetEvaluationGovernanceReportRequestSchema: GenMessage<GetEvaluationGovernanceReportRequest>;
2305
+ /**
2306
+ * @generated from message fermata.v1.GovernanceAssertionAggregate
2307
+ */
2308
+ export type GovernanceAssertionAggregate = Message<"fermata.v1.GovernanceAssertionAggregate"> & {
2309
+ /**
2310
+ * @generated from field: string assertion_id = 1;
2311
+ */
2312
+ assertionId: string;
2313
+ /**
2314
+ * @generated from field: int32 total = 2;
2315
+ */
2316
+ total: number;
2317
+ /**
2318
+ * @generated from field: int32 passed = 3;
2319
+ */
2320
+ passed: number;
2321
+ /**
2322
+ * @generated from field: int32 failed = 4;
2323
+ */
2324
+ failed: number;
2325
+ /**
2326
+ * @generated from field: double pass_rate = 5;
2327
+ */
2328
+ passRate: number;
2329
+ /**
2330
+ * @generated from field: double average_score = 6;
2331
+ */
2332
+ averageScore: number;
2333
+ };
2334
+ /**
2335
+ * Describes the message fermata.v1.GovernanceAssertionAggregate.
2336
+ * Use `create(GovernanceAssertionAggregateSchema)` to create a new message.
2337
+ */
2338
+ export declare const GovernanceAssertionAggregateSchema: GenMessage<GovernanceAssertionAggregate>;
2339
+ /**
2340
+ * @generated from message fermata.v1.GovernanceReportSummary
2341
+ */
2342
+ export type GovernanceReportSummary = Message<"fermata.v1.GovernanceReportSummary"> & {
2343
+ /**
2344
+ * @generated from field: int32 total_runs = 1;
2345
+ */
2346
+ totalRuns: number;
2347
+ /**
2348
+ * @generated from field: int32 governed_runs = 2;
2349
+ */
2350
+ governedRuns: number;
2351
+ /**
2352
+ * @generated from field: int32 passed_governance_runs = 3;
2353
+ */
2354
+ passedGovernanceRuns: number;
2355
+ /**
2356
+ * @generated from field: int32 failed_governance_runs = 4;
2357
+ */
2358
+ failedGovernanceRuns: number;
2359
+ /**
2360
+ * @generated from field: double average_composite_score = 5;
2361
+ */
2362
+ averageCompositeScore: number;
2363
+ /**
2364
+ * @generated from field: double policy_compliance_rate = 6;
2365
+ */
2366
+ policyComplianceRate: number;
2367
+ /**
2368
+ * @generated from field: double escalation_precision = 7;
2369
+ */
2370
+ escalationPrecision: number;
2371
+ /**
2372
+ * @generated from field: double escalation_recall = 8;
2373
+ */
2374
+ escalationRecall: number;
2375
+ /**
2376
+ * @generated from field: double approval_efficiency = 9;
2377
+ */
2378
+ approvalEfficiency: number;
2379
+ /**
2380
+ * @generated from field: int32 total_approval_requests = 10;
2381
+ */
2382
+ totalApprovalRequests: number;
2383
+ /**
2384
+ * @generated from field: double average_approval_requests = 11;
2385
+ */
2386
+ averageApprovalRequests: number;
2387
+ /**
2388
+ * @generated from field: int32 risk_signal_count = 12;
2389
+ */
2390
+ riskSignalCount: number;
2391
+ /**
2392
+ * @generated from field: repeated fermata.v1.GovernanceAssertionAggregate assertions = 13;
2393
+ */
2394
+ assertions: GovernanceAssertionAggregate[];
2395
+ };
2396
+ /**
2397
+ * Describes the message fermata.v1.GovernanceReportSummary.
2398
+ * Use `create(GovernanceReportSummarySchema)` to create a new message.
2399
+ */
2400
+ export declare const GovernanceReportSummarySchema: GenMessage<GovernanceReportSummary>;
2401
+ /**
2402
+ * @generated from message fermata.v1.GovernanceRunSummary
2403
+ */
2404
+ export type GovernanceRunSummary = Message<"fermata.v1.GovernanceRunSummary"> & {
2405
+ /**
2406
+ * @generated from field: string scenario_run_id = 1;
2407
+ */
2408
+ scenarioRunId: string;
2409
+ /**
2410
+ * @generated from field: string scenario_id = 2;
2411
+ */
2412
+ scenarioId: string;
2413
+ /**
2414
+ * @generated from field: fermata.v1.ScenarioRunStatus status = 3;
2415
+ */
2416
+ status: ScenarioRunStatus;
2417
+ /**
2418
+ * @generated from field: double composite_score = 4;
2419
+ */
2420
+ compositeScore: number;
2421
+ /**
2422
+ * @generated from field: double policy_compliance = 5;
2423
+ */
2424
+ policyCompliance: number;
2425
+ /**
2426
+ * @generated from field: double escalation_precision = 6;
2427
+ */
2428
+ escalationPrecision: number;
2429
+ /**
2430
+ * @generated from field: double escalation_recall = 7;
2431
+ */
2432
+ escalationRecall: number;
2433
+ /**
2434
+ * @generated from field: double approval_efficiency = 8;
2435
+ */
2436
+ approvalEfficiency: number;
2437
+ /**
2438
+ * @generated from field: int32 approval_requests = 9;
2439
+ */
2440
+ approvalRequests: number;
2441
+ /**
2442
+ * @generated from field: repeated string failed_assertion_ids = 10;
2443
+ */
2444
+ failedAssertionIds: string[];
2445
+ /**
2446
+ * @generated from field: string trace_id = 11;
2447
+ */
2448
+ traceId: string;
2449
+ /**
2450
+ * @generated from field: google.protobuf.Timestamp completed_at = 12;
2451
+ */
2452
+ completedAt?: Timestamp | undefined;
2453
+ };
2454
+ /**
2455
+ * Describes the message fermata.v1.GovernanceRunSummary.
2456
+ * Use `create(GovernanceRunSummarySchema)` to create a new message.
2457
+ */
2458
+ export declare const GovernanceRunSummarySchema: GenMessage<GovernanceRunSummary>;
2459
+ /**
2460
+ * @generated from message fermata.v1.GovernanceRiskSignal
2461
+ */
2462
+ export type GovernanceRiskSignal = Message<"fermata.v1.GovernanceRiskSignal"> & {
2463
+ /**
2464
+ * @generated from field: string id = 1;
2465
+ */
2466
+ id: string;
2467
+ /**
2468
+ * @generated from field: string scenario_run_id = 2;
2469
+ */
2470
+ scenarioRunId: string;
2471
+ /**
2472
+ * @generated from field: string scenario_id = 3;
2473
+ */
2474
+ scenarioId: string;
2475
+ /**
2476
+ * @generated from field: string severity = 4;
2477
+ */
2478
+ severity: string;
2479
+ /**
2480
+ * @generated from field: string message = 5;
2481
+ */
2482
+ message: string;
2483
+ /**
2484
+ * @generated from field: repeated string degraded_metrics = 6;
2485
+ */
2486
+ degradedMetrics: string[];
2487
+ /**
2488
+ * @generated from field: repeated common.v1.EvidenceRef evidence = 7;
2489
+ */
2490
+ evidence: EvidenceRef[];
2491
+ /**
2492
+ * @generated from field: string trace_id = 8;
2493
+ */
2494
+ traceId: string;
2495
+ /**
2496
+ * @generated from field: google.protobuf.Timestamp recorded_at = 9;
2497
+ */
2498
+ recordedAt?: Timestamp | undefined;
2499
+ };
2500
+ /**
2501
+ * Describes the message fermata.v1.GovernanceRiskSignal.
2502
+ * Use `create(GovernanceRiskSignalSchema)` to create a new message.
2503
+ */
2504
+ export declare const GovernanceRiskSignalSchema: GenMessage<GovernanceRiskSignal>;
2505
+ /**
2506
+ * @generated from message fermata.v1.GetEvaluationGovernanceReportResponse
2507
+ */
2508
+ export type GetEvaluationGovernanceReportResponse = Message<"fermata.v1.GetEvaluationGovernanceReportResponse"> & {
2509
+ /**
2510
+ * @generated from field: fermata.v1.GovernanceReportSummary summary = 1;
2511
+ */
2512
+ summary?: GovernanceReportSummary | undefined;
2513
+ /**
2514
+ * @generated from field: repeated fermata.v1.GovernanceRunSummary recent_runs = 2;
2515
+ */
2516
+ recentRuns: GovernanceRunSummary[];
2517
+ /**
2518
+ * @generated from field: repeated fermata.v1.GovernanceRiskSignal risk_signals = 3;
2519
+ */
2520
+ riskSignals: GovernanceRiskSignal[];
2521
+ };
2522
+ /**
2523
+ * Describes the message fermata.v1.GetEvaluationGovernanceReportResponse.
2524
+ * Use `create(GetEvaluationGovernanceReportResponseSchema)` to create a new message.
2525
+ */
2526
+ export declare const GetEvaluationGovernanceReportResponseSchema: GenMessage<GetEvaluationGovernanceReportResponse>;
2275
2527
  /**
2276
2528
  * @generated from message fermata.v1.DiagnosticFinding
2277
2529
  */
@@ -3557,6 +3809,14 @@ export declare const FermataService: GenService<{
3557
3809
  input: typeof GetEvaluationRunMetricsRequestSchema;
3558
3810
  output: typeof GetEvaluationRunMetricsResponseSchema;
3559
3811
  };
3812
+ /**
3813
+ * @generated from rpc fermata.v1.FermataService.GetEvaluationGovernanceReport
3814
+ */
3815
+ getEvaluationGovernanceReport: {
3816
+ methodKind: "unary";
3817
+ input: typeof GetEvaluationGovernanceReportRequestSchema;
3818
+ output: typeof GetEvaluationGovernanceReportResponseSchema;
3819
+ };
3560
3820
  /**
3561
3821
  * @generated from rpc fermata.v1.FermataService.ExplainScenarioRun
3562
3822
  */
@@ -11,7 +11,7 @@ import { file_traces_v1_traces } from "../../traces/v1/traces_pb.js";
11
11
  /**
12
12
  * Describes the file fermata/v1/fermata.proto.
13
13
  */
14
- export const file_fermata_v1_fermata = /*@__PURE__*/ fileDesc("ChhmZXJtYXRhL3YxL2Zlcm1hdGEucHJvdG8SCmZlcm1hdGEudjEiqwIKCVRlc3RTdWl0ZRIKCgJpZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSHQoMd29ya3NwYWNlX2lkGAMgASgJQge6SARyAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBSABKAkSIwoFY2FzZXMYBiADKAsyFC5mZXJtYXRhLnYxLlRlc3RDYXNlEikKCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKrAQoIVGVzdENhc2USCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARINCgVpbnB1dBgDIAEoCRIXCg9leHBlY3RlZF9vdXRwdXQYBCABKAkSKQoKYXNzZXJ0aW9ucxgFIAMoCzIVLmZlcm1hdGEudjEuQXNzZXJ0aW9uEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKsAQoJQXNzZXJ0aW9uEgoKAmlkGAEgASgJEjEKBGtpbmQYAiABKA4yGS5mZXJtYXRhLnYxLkFzc2VydGlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi0AEKD0N1c3RvbUV2YWx1YXRvchIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBnNvdXJjZRgCIAEoCUIHukgEcgIQARIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9vcmdhbml6YXRpb25faWQYBSABKAkSFAoMd29ya3NwYWNlX2lkGAYgASgJIqMDCgVKdWRnZRIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgMIAEoCRIUCgx3b3Jrc3BhY2VfaWQYDSABKAkiugYKCFNjZW5hcmlvEgoKAmlkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIdCgx3b3Jrc3BhY2VfaWQYAyABKAlCB7pIBHICEAESFQoEbmFtZRgEIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgFIAEoCRIoCglvYmplY3RpdmUYBiABKAsyFS5mZXJtYXRhLnYxLk9iamVjdGl2ZRItCgxhZ2VudF9jb25maWcYByABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAggASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAkgASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAogASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYDCABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGA0gASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDiADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA8gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgQIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYESABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYEiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIu8BCglPYmplY3RpdmUSHAoLZGVzY3JpcHRpb24YASABKAlCB7pIBHICEAESNgoQc3VjY2Vzc19jcml0ZXJpYRgCIAMoCzIcLmZlcm1hdGEudjEuU3VjY2Vzc0NyaXRlcmlvbhJACg5leHBlY3RlZF9zdGF0ZRgDIAMoCzIoLmZlcm1hdGEudjEuT2JqZWN0aXZlLkV4cGVjdGVkU3RhdGVFbnRyeRIUCgxvYmplY3RpdmVfaWQYBCABKAkaNAoSRXhwZWN0ZWRTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirwEKEFN1Y2Nlc3NDcml0ZXJpb24SCgoCaWQYASABKAkSHAoLZGVzY3JpcHRpb24YAiABKAlCB7pIBHICEAESDgoGbWV0cmljGAMgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAQgASgJEh4KBndlaWdodBgFIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqUBCgtBZ2VudENvbmZpZxIQCghhZ2VudF9pZBgBIAEoCRINCgVtb2RlbBgCIAEoCRIRCgl0b29sX3JlZnMYAyADKAkSGQoRcGVybWlzc2lvbl9zY29wZXMYBCADKAkSHAoUZ292ZXJuYW5jZV9wb2xpY3lfaWQYBSABKAkSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IvcBChNTY2VuYXJpb0Vudmlyb25tZW50EjsKBGtpbmQYASABKA4yIy5mZXJtYXRhLnYxLlNjZW5hcmlvRW52aXJvbm1lbnRLaW5kQgi6SAWCAQIQARIjCgV0b29scxgCIAMoCzIULmZlcm1hdGEudjEuTW9ja1Rvb2wSKwoJZW5kcG9pbnRzGAMgAygLMhguZmVybWF0YS52MS5Nb2NrRW5kcG9pbnQSFQoNc2VlZF9kYXRhX3JlZhgEIAEoCRIPCgdzYW5kYm94GAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK7AQoITW9ja1Rvb2wSFQoEbmFtZRgBIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCHJlc3BvbnNlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqQEKDE1vY2tFbmRwb2ludBIOCgZtZXRob2QYASABKAkSFQoEcGF0aBgCIAEoCUIHukgEcgIQARIcCgtzdGF0dXNfY29kZRgDIAEoBUIHukgEGgIoABIpCghyZXNwb25zZRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IocCCg1Vc2VyU2ltdWxhdG9yEg8KB3BlcnNvbmEYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJEj0KCHN0cmF0ZWd5GAMgASgOMiEuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yU3RyYXRlZ3lCCLpIBYIBAhABEg0KBW1vZGVsGAQgASgJEhoKCW1heF90dXJucxgFIAEoBUIHukgEGgIoABIbChN2ZXJpZnlfYWdlbnRfY2xhaW1zGAYgASgIEh0KFXJlcXVlc3RfY2xhcmlmaWNhdGlvbhgHIAEoCBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QixQEKEE91dGNvbWVDcml0ZXJpb24SCgoCaWQYASABKAkSOAoEa2luZBgCIAEoDjIgLmZlcm1hdGEudjEuT3V0Y29tZUNyaXRlcmlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRIeCgZ3ZWlnaHQYBSABKAFCDrpICxIJKQAAAAAAAAAAEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLcAgoTR292ZXJuYW5jZUFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uVHlwZUIIukgFggECEAESOwoTZXhwZWN0ZWRfcmlza19sZXZlbBgDIAEoDjIULmNvbW1vbi52MS5SaXNrTGV2ZWxCCLpIBYIBAhABEhcKD3Nob3VsZF9lc2NhbGF0ZRgEIAEoCBIhChlleHBlY3RlZF9hcHByb3ZhbF9vdXRjb21lGAUgASgJEhsKE2FsbG93ZWRfZGF0YV9zY29wZXMYBiADKAkSGgoSZGVuaWVkX2RhdGFfc2NvcGVzGAcgAygJEh8KF2V4cGVjdGVkX3BpaV9jYXRlZ29yaWVzGAggAygJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLqAQoTRGVsZWdhdGlvbkFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5EZWxlZ2F0aW9uQXNzZXJ0aW9uVHlwZUIIukgFggECEAESGQoRZXhwZWN0ZWRfYWdlbnRfaWQYAyABKAkSIAoPbWF4X2NoYWluX2RlcHRoGAQgASgFQge6SAQaAigAEiIKCG1heF9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKIBAoLU2NlbmFyaW9SdW4SCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDiABKAkisQYKDlNjZW5hcmlvUmVzdWx0EhoKEm9iamVjdGl2ZV9hY2hpZXZlZBgBIAEoCBIZChFvYmplY3RpdmVfc3VtbWFyeRgCIAEoCRIcCgt0b3RhbF9zdGVwcxgDIAEoBUIHukgEGgIoABIcCgttb2RlbF9jYWxscxgEIAEoBUIHukgEGgIoABIbCgp0b29sX2NhbGxzGAUgASgFQge6SAQaAigAEiIKEWFwcHJvdmFsX3JlcXVlc3RzGAYgASgFQge6SAQaAigAEiIKEWRlbGVnYXRpb25fZXZlbnRzGAcgASgFQge6SAQaAigAEiAKD3JlY292ZXJ5X2V2ZW50cxgIIAEoBUIHukgEGgIoABI+ChFhc3NlcnRpb25fcmVzdWx0cxgJIAMoCzIjLmZlcm1hdGEudjEuU2NlbmFyaW9Bc3NlcnRpb25SZXN1bHQSLwoKZ292ZXJuYW5jZRgKIAEoCzIbLmZlcm1hdGEudjEuR292ZXJuYW5jZVNjb3JlEiwKCWVjb25vbWljcxgLIAEoCzIZLmZlcm1hdGEudjEuRWNvbm9taWNTY29yZRIhCglwYXNzX2F0X2sYDCABKAFCDrpICxIJKQAAAAAAAAAAEi8KCmRlbGVnYXRpb24YDSABKAsyGy5mZXJtYXRhLnYxLkRlbGVnYXRpb25TY29yZRIkCgp0b3RhbF9jb3N0GA4gASgLMhAuY29tbW9uLnYxLk1vbmV5EjEKDnRvdGFsX2R1cmF0aW9uGA8gASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEikKCG1ldGFkYXRhGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIjCgp0cmFqZWN0b3J5GBEgAygLMg8udHJhY2VzLnYxLlNwYW4SJQoNdHJhamVjdG9yeV9mMRgSIAEoAUIOukgLEgkpAAAAAAAAAAASNgoedHJhamVjdG9yeV9lZGl0X2Rpc3RhbmNlX3Njb3JlGBMgASgBQg66SAsSCSkAAAAAAAAAABIqCgVkcmlmdBgUIAEoCzIbLmZlcm1hdGEudjEuRHJpZnRDb21wYXJpc29uIpoBChdTY2VuYXJpb0Fzc2VydGlvblJlc3VsdBIUCgxhc3NlcnRpb25faWQYASABKAkSDgoGcGFzc2VkGAIgASgIEg0KBXNjb3JlGAMgASgBEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKPAgoPR292ZXJuYW5jZVNjb3JlEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAEgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgCIAEoAUIOukgLEgkpAAAAAAAAAAASKQoRcG9saWN5X2NvbXBsaWFuY2UYAyABKAFCDrpICxIJKQAAAAAAAAAAEisKE2FwcHJvdmFsX2VmZmljaWVuY3kYBCABKAFCDrpICxIJKQAAAAAAAAAAEiEKCWNvbXBvc2l0ZRgFIAEoAUIOukgLEgkpAAAAAAAAAAASKAoIZXZpZGVuY2UYBiADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYigAIKDUVjb25vbWljU2NvcmUSMgoYY29zdF9wZXJfc3VjY2Vzc2Z1bF90YXNrGAEgASgLMhAuY29tbW9uLnYxLk1vbmV5EiIKCGxsbV9jb3N0GAIgASgLMhAuY29tbW9uLnYxLk1vbmV5EiMKCXRvb2xfY29zdBgDIAEoCzIQLmNvbW1vbi52MS5Nb25leRIqChBzdXBlcnZpc2lvbl9jb3N0GAQgASgLMhAuY29tbW9uLnYxLk1vbmV5EhoKEm9uX3BhcmV0b19mcm9udGllchgFIAEoCBIqChJxdWFsaXR5X3Blcl9kb2xsYXIYBiABKAFCDrpICxIJKQAAAAAAAAAAIsoBCg9EZWxlZ2F0aW9uU2NvcmUSKwoTZGVsZWdhdGlvbl9hY2N1cmFjeRgBIAEoAUIOukgLEgkpAAAAAAAAAAASKAoQY29udGV4dF9maWRlbGl0eRgCIAEoAUIOukgLEgkpAAAAAAAAAAASFwoPZWZmaWNpZW5jeV9nYWluGAMgASgBEikKEWZhaWx1cmVfaXNvbGF0aW9uGAQgASgBQg66SAsSCSkAAAAAAAAAABIcCgtjaGFpbl9kZXB0aBgFIAEoBUIHukgEGgIoACLeAwoPRHJpZnRDb21wYXJpc29uEhAKCGRldGVjdGVkGAEgASgIEi4KFmJhc2VsaW5lX3F1YWxpdHlfc2NvcmUYAiABKAFCDrpICxIJKQAAAAAAAAAAEi0KFWN1cnJlbnRfcXVhbGl0eV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASFQoNcXVhbGl0eV9kZWx0YRgEIAEoARInCg1iYXNlbGluZV9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EiYKDGN1cnJlbnRfY29zdBgGIAEoCzIQLmNvbW1vbi52MS5Nb25leRIkCgpjb3N0X2RlbHRhGAcgASgLMhAuY29tbW9uLnYxLk1vbmV5EjAKGGJhc2VsaW5lX2VzY2FsYXRpb25fcmF0ZRgIIAEoAUIOukgLEgkpAAAAAAAAAAASLwoXY3VycmVudF9lc2NhbGF0aW9uX3JhdGUYCSABKAFCDrpICxIJKQAAAAAAAAAAEh0KFWVzY2FsYXRpb25fcmF0ZV9kZWx0YRgKIAEoARIgChhnZW5lcmF0ZWRfc3VpdGVfc3RyYXRlZ3kYCyABKAkSKAoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYi1QEKFkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIVCgRuYW1lGAMgASgJQge6SARyAhABEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiMKBWNhc2VzGAUgAygLMhQuZmVybWF0YS52MS5UZXN0Q2FzZRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPwoXQ3JlYXRlVGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSJfChNHZXRUZXN0U3VpdGVSZXF1ZXN0EhkKCHN1aXRlX2lkGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiPAoUR2V0VGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSKAAQoVTGlzdFRlc3RTdWl0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlEKFkxpc3RUZXN0U3VpdGVzUmVzcG9uc2USJQoGc3VpdGVzGAEgAygLMhUuZmVybWF0YS52MS5UZXN0U3VpdGUSEAoIaGFzX21vcmUYAiABKAgi4wUKFUNyZWF0ZVNjZW5hcmlvUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESHQoMd29ya3NwYWNlX2lkGAIgASgJQge6SARyAhABEhUKBG5hbWUYAyABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBCABKAkSMAoJb2JqZWN0aXZlGAUgASgLMhUuZmVybWF0YS52MS5PYmplY3RpdmVCBrpIA8gBARItCgxhZ2VudF9jb25maWcYBiABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAcgASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAggASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgKIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYCyABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGAwgASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDSADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA4gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgPIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYECABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKFkNyZWF0ZVNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvImEKEkdldFNjZW5hcmlvUmVxdWVzdBIcCgtzY2VuYXJpb19pZBgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIj0KE0dldFNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvIn8KFExpc3RTY2VuYXJpb3NSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlIKFUxpc3RTY2VuYXJpb3NSZXNwb25zZRInCglzY2VuYXJpb3MYASADKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvEhAKCGhhc19tb3JlGAIgASgIIn0KHFVwc2VydEN1c3RvbUV2YWx1YXRvclJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCgZzb3VyY2UYAiABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJPCh1VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJhChlHZXRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSJMChpHZXRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJ9ChtMaXN0Q3VzdG9tRXZhbHVhdG9yc1JlcXVlc3QSFgoFbGltaXQYASABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAIgASgFQge6SAQaAigAEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIUCgx3b3Jrc3BhY2VfaWQYBCABKAkiYQocTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZRIvCgpldmFsdWF0b3JzGAEgAygLMhsuZmVybWF0YS52MS5DdXN0b21FdmFsdWF0b3ISEAoIaGFzX21vcmUYAiABKAgiZAocRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiHwodRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVzcG9uc2Ui0AIKElVwc2VydEp1ZGdlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD29yZ2FuaXphdGlvbl9pZBgKIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCyABKAkiNwoTVXBzZXJ0SnVkZ2VSZXNwb25zZRIgCgVqdWRnZRgBIAEoCzIRLmZlcm1hdGEudjEuSnVkZ2UiVwoPR2V0SnVkZ2VSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI0ChBHZXRKdWRnZVJlc3BvbnNlEiAKBWp1ZGdlGAEgASgLMhEuZmVybWF0YS52MS5KdWRnZSJzChFMaXN0SnVkZ2VzUmVxdWVzdBIWCgVsaW1pdBgBIAEoBUIHukgEGgIoABIXCgZvZmZzZXQYAiABKAVCB7pIBBoCKAASFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJJChJMaXN0SnVkZ2VzUmVzcG9uc2USIQoGanVkZ2VzGAEgAygLMhEuZmVybWF0YS52MS5KdWRnZRIQCghoYXNfbW9yZRgCIAEoCCJaChJEZWxldGVKdWRnZVJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIhUKE0RlbGV0ZUp1ZGdlUmVzcG9uc2UivgIKFFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EhwKC3NjZW5hcmlvX2lkGAEgASgJQge6SARyAhABEhUKDXJ1bl9pZF9wcmVmaXgYAiABKAkSEAoIdHJhY2VfaWQYAyABKAkSKAoHYWN0dWFscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoNZXBvY2hfYWN0dWFscxgFIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKBmVwb2NocxgHIAEoBUIHukgEGgIoABISCgpsaW5lYWdlX2lkGAggASgJEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCiABKAkiYQoVU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiUKBHJ1bnMYASADKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuEiEKEHB1Ymxpc2hlZF9ldmVudHMYAiABKAVCB7pIBBoCKAAivQIKHUNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EjsKCHNjZW5hcmlvGAEgASgLMiEuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1JlcXVlc3RCBrpIA8gBARIVCg1ydW5faWRfcHJlZml4GAIgASgJEhAKCHRyYWNlX2lkGAMgASgJEigKB2FjdHVhbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KDWVwb2NoX2FjdHVhbHMYBSADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei8KDnN0YXJ0X21ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgZlcG9jaHMYByABKAVCB7pIBBoCKAASEgoKbGluZWFnZV9pZBgIIAEoCSKSAQoeQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiYKCHNjZW5hcmlvGAEgASgLMhQuZmVybWF0YS52MS5TY2VuYXJpbxIlCgRydW5zGAIgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIhChBwdWJsaXNoZWRfZXZlbnRzGAMgASgFQge6SAQaAigAIrUDChhSZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QSCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDCABKAkiQQoZUmVjb3JkU2NlbmFyaW9SdW5SZXNwb25zZRIkCgNydW4YASABKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuIl8KFUdldFNjZW5hcmlvUnVuUmVxdWVzdBIXCgZydW5faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI+ChZHZXRTY2VuYXJpb1J1blJlc3BvbnNlEiQKA3J1bhgBIAEoCzIXLmZlcm1hdGEudjEuU2NlbmFyaW9SdW4ilwEKF0xpc3RTY2VuYXJpb1J1bnNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLc2NlbmFyaW9faWQYAyABKAkSFgoFbGltaXQYBCABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAUgASgFQge6SAQaAigAIlMKGExpc3RTY2VuYXJpb1J1bnNSZXNwb25zZRIlCgRydW5zGAEgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIQCghoYXNfbW9yZRgCIAEoCCKZAQoqR2V0RXZhbHVhdGlvbk9ic2VydmFiaWxpdHlEYXNoYm9hcmRSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSGAoEZGF5cxgDIAEoBUIKukgHGgUY7QIoABIZCgVsaW1pdBgEIAEoBUIKukgHGgUY9AMoACKVAwoeRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EhsKCnRvdGFsX3J1bnMYASABKAVCB7pIBBoCKAASHgoNdG90YWxfcmVzdWx0cxgCIAEoBUIHukgEGgIoABIfCg5mYWlsZWRfcmVzdWx0cxgDIAEoBUIHukgEGgIoABIlCg1hdmVyYWdlX3Njb3JlGAQgASgBQg66SAsSCSkAAAAAAAAAABIhCglwYXNzX3JhdGUYBSABKAFCDrpICxIJKQAAAAAAAAAAEiQKCnRvdGFsX2Nvc3QYBiABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAcgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAASJwoWcmVncmVzc2lvbl9hbGVydF9jb3VudBgJIAEoBUIHukgEGgIoABIxChd0b3RhbF9jb3N0c19ieV9jdXJyZW5jeRgKIAMoCzIQLmNvbW1vbi52MS5Nb25leSKIBAoaRXZhbHVhdGlvblJlY2VudFJ1blN1bW1hcnkSIAoPc2NlbmFyaW9fcnVuX2lkGAEgASgJQge6SARyAhABEhMKC3NjZW5hcmlvX2lkGAIgASgJEh4KDXRvdGFsX3Jlc3VsdHMYAyABKAVCB7pIBBoCKAASIgoRY29tcGxldGVkX3Jlc3VsdHMYBCABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYBSABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgGIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgHIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYCCABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAkgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCiABKANCB7pIBCICKAASLgoKc3RhcnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCgh0cmFjZV9pZBgNIAEoCRIaChJvYmplY3RpdmVfYWNoaWV2ZWQYDiABKAgi0QMKGUV2YWx1YXRpb25SZWdyZXNzaW9uQWxlcnQSEwoCaWQYASABKAlCB7pIBHICEAESEwoLc2NlbmFyaW9faWQYAiABKAkSIAoPc2NlbmFyaW9fcnVuX2lkGAMgASgJQge6SARyAhABEhAKCHNldmVyaXR5GAQgASgJEg8KB21lc3NhZ2UYBSABKAkSLQoVcmVncmVzc2lvbl9wZXJjZW50YWdlGAYgASgBQg66SAsSCSkAAAAAAAAAABIgChhiYXNlbGluZV9zY2VuYXJpb19ydW5faWQYByABKAkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAggASgBQg66SAsSCSkAAAAAAAAAABIkCgp0b3RhbF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5EhMKC2Vudmlyb25tZW50GAogASgJEiEKGXN0YXRpc3RpY2FsbHlfc2lnbmlmaWNhbnQYCyABKAgSHwoHcF92YWx1ZRgMIAEoAUIOukgLEgkpAAAAAAAAAAASGAoQZGVncmFkZWRfbWV0cmljcxgNIAMoCRIvCgtyZWNvcmRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QEKK0dldEV2YWx1YXRpb25PYnNlcnZhYmlsaXR5RGFzaGJvYXJkUmVzcG9uc2USOwoHc3VtbWFyeRgBIAEoCzIqLmZlcm1hdGEudjEuRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EjsKC3JlY2VudF9ydW5zGAIgAygLMiYuZmVybWF0YS52MS5FdmFsdWF0aW9uUmVjZW50UnVuU3VtbWFyeRJAChFyZWdyZXNzaW9uX2FsZXJ0cxgDIAMoCzIlLmZlcm1hdGEudjEuRXZhbHVhdGlvblJlZ3Jlc3Npb25BbGVydCJxCh5HZXRFdmFsdWF0aW9uUnVuTWV0cmljc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCgZydW5faWQYAyABKAlCB7pIBHICEAEivgIKG0V2YWx1YXRpb25SdW5NZXRyaWNzU3VtbWFyeRIdCgxyZXN1bHRfY291bnQYASABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYAiABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgEIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYBSABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAYgASgBQg66SAsSCSkAAAAAAAAAABIfCg5wOTVfbGF0ZW5jeV9tcxgHIAEoA0IHukgEIgIoABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAAi3QEKGkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzEhQKDGFzc2VydGlvbl9pZBgBIAEoCRIOCgZwYXNzZWQYAiABKAgSHQoFc2NvcmUYAyABKAFCDrpICxIJKQAAAAAAAAAAEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCK2AQofR2V0RXZhbHVhdGlvblJ1bk1ldHJpY3NSZXNwb25zZRIgCg9zY2VuYXJpb19ydW5faWQYASABKAlCB7pIBHICEAESOAoHc3VtbWFyeRgCIAEoCzInLmZlcm1hdGEudjEuRXZhbHVhdGlvblJ1bk1ldHJpY3NTdW1tYXJ5EjcKB3Jlc3VsdHMYAyADKAsyJi5mZXJtYXRhLnYxLkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzIt8BChFEaWFnbm9zdGljRmluZGluZxIKCgJpZBgBIAEoCRJBCghzZXZlcml0eRgCIAEoDjIlLmZlcm1hdGEudjEuRGlhZ25vc3RpY0ZpbmRpbmdTZXZlcml0eUIIukgFggECEAESFgoFdGl0bGUYAyABKAlCB7pIBHICEAESDgoGZGV0YWlsGAQgASgJEigKCGV2aWRlbmNlGAUgAygLMhYuY29tbW9uLnYxLkV2aWRlbmNlUmVmEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLvBAocRXZhbHVhdGlvbkRpYWdub3N0aWNBcnRpZmFjdBITCgJpZBgBIAEoCUIHukgEcgIQARI6CgRraW5kGAIgASgOMiIuZmVybWF0YS52MS5EaWFnbm9zdGljQXJ0aWZhY3RLaW5kQgi6SAWCAQIQARIgCg9vcmdhbml6YXRpb25faWQYAyABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAQgASgJEhMKC3NjZW5hcmlvX2lkGAUgASgJEiAKD3NjZW5hcmlvX3J1bl9pZBgGIAEoCUIHukgEcgIQARIQCgh0cmFjZV9pZBgHIAEoCRIWCgV0aXRsZRgIIAEoCUIHukgEcgIQARIPCgdzdW1tYXJ5GAkgASgJEi8KCGZpbmRpbmdzGAogAygLMh0uZmVybWF0YS52MS5EaWFnbm9zdGljRmluZGluZxIoCghldmlkZW5jZRgLIAMoCzIWLmNvbW1vbi52MS5FdmlkZW5jZVJlZhIuCg1pbnB1dF9jb250ZXh0GAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdwYXlsb2FkGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxhcnRpZmFjdF91cmkYDiABKAkSFgoOY29udGVudF9zaGEyNTYYDyABKAkSEQoJcGVyc2lzdGVkGBAgASgIEi4KCmNyZWF0ZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIscBChlFeHBsYWluU2NlbmFyaW9SdW5SZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoGcnVuX2lkGAMgASgJQge6SARyAhABEhUKDWluY2x1ZGVfdHJhY2UYBCABKAgSGAoQcGVyc2lzdF9hcnRpZmFjdBgFIAEoCBIoCgdjb250ZXh0GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJYChpFeHBsYWluU2NlbmFyaW9SdW5SZXNwb25zZRI6CghhcnRpZmFjdBgBIAEoCzIoLmZlcm1hdGEudjEuRXZhbHVhdGlvbkRpYWdub3N0aWNBcnRpZmFjdCLxAQoiQW5hbHl6ZVNjZW5hcmlvUnVuUm9vdENhdXNlUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKBnJ1bl9pZBgDIAEoCUIHukgEcgIQARIfChdzdXNwZWN0ZWRfZmFpbHVyZV9tb2RlcxgEIAMoCRIVCg1pbmNsdWRlX3RyYWNlGAUgASgIEhgKEHBlcnNpc3RfYXJ0aWZhY3QYBiABKAgSKAoHY29udGV4dBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiYQojQW5hbHl6ZVNjZW5hcmlvUnVuUm9vdENhdXNlUmVzcG9uc2USOgoIYXJ0aWZhY3QYASABKAsyKC5mZXJtYXRhLnYxLkV2YWx1YXRpb25EaWFnbm9zdGljQXJ0aWZhY3QikQIKHkp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5TWV0cmljcxIRCglwcmVjaXNpb24YASABKAESDgoGcmVjYWxsGAIgASgBEhAKCGYxX3Njb3JlGAMgASgBEhAKCGFjY3VyYWN5GAQgASgBEiIKEXRvdGFsX3ZhbGlkYXRpb25zGAUgASgFQge6SAQaAigAEh8KDnRydWVfcG9zaXRpdmVzGAYgASgFQge6SAQaAigAEiAKD2ZhbHNlX3Bvc2l0aXZlcxgHIAEoBUIHukgEGgIoABIfCg50cnVlX25lZ2F0aXZlcxgIIAEoBUIHukgEGgIoABIgCg9mYWxzZV9uZWdhdGl2ZXMYCSABKAVCB7pIBBoCKAAiwAEKHkp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeBImChVqdWRnZV9wYXNzX2h1bWFuX3Bhc3MYASABKAVCB7pIBBoCKAASJgoVanVkZ2VfcGFzc19odW1hbl9mYWlsGAIgASgFQge6SAQaAigAEiYKFWp1ZGdlX2ZhaWxfaHVtYW5fcGFzcxgDIAEoBUIHukgEGgIoABImChVqdWRnZV9mYWlsX2h1bWFuX2ZhaWwYBCABKAVCB7pIBBoCKAAi0QEKGkp1ZGdlVmFsaWRhdGlvbkJpYXNNZXRyaWNzEhQKDG92ZXJfc2NvcmluZxgBIAEoCBIVCg11bmRlcl9zY29yaW5nGAIgASgIEhMKC3Njb3JlX2RyaWZ0GAMgASgBEhsKE2F2ZXJhZ2VfanVkZ2Vfc2NvcmUYBCABKAESGwoTYXZlcmFnZV9odW1hbl9zY29yZRgFIAEoARIZChFzY29yZV9jb3JyZWxhdGlvbhgGIAEoARIcCgtzYW1wbGVfc2l6ZRgHIAEoBUIHukgEGgIoACKcAQoaSnVkZ2VWYWxpZGF0aW9uQ2FsaWJyYXRpb24SGQoIanVkZ2VfaWQYASABKAlCB7pIBHICEAESGwoTdmFsaWRhdGlvbl9hY2N1cmFjeRgCIAEoARIRCgl2YWxpZGF0ZWQYAyABKAgSMwoPbGFzdF92YWxpZGF0aW9uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKZBAoZSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbhIeCg1ldmFsdWF0aW9uX2lkGAEgASgJQge6SARyAhABEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAyABKAkSGQoIanVkZ2VfaWQYBCABKAlCB7pIBHICEAESFwoPc2NlbmFyaW9fcnVuX2lkGAUgASgJEhQKDGFzc2VydGlvbl9pZBgGIAEoCRIsCgtqdWRnZV9zY29yZRgHIAEoAUIXukgUEhIZAAAAAAAA8D8pAAAAAAAAAAASFAoManVkZ2VfcGFzc2VkGAggASgIEhcKD2h1bWFuX3ZhbGlkYXRlZBgJIAEoCBIxCgtodW1hbl9zY29yZRgKIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAsgASgJEg4KBnNvdXJjZRgMIAEoCRIwCgxldmFsdWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9odW1hbl9zY29yZSJIChlKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlEhkKCGp1ZGdlX2lkGAEgASgJQge6SARyAhABEhAKCGFjY3VyYWN5GAIgASgBImAKIUdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiYQoiR2V0SnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lSZXNwb25zZRI7CgdtZXRyaWNzGAEgASgLMiouZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25BY2N1cmFjeU1ldHJpY3MiZwooR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiZwopR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVzcG9uc2USOgoGbWF0cml4GAEgASgLMiouZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXgiXAodR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABIlkKHkdldEp1ZGdlVmFsaWRhdGlvbkJpYXNSZXNwb25zZRI3CgdtZXRyaWNzGAEgASgLMiYuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25CaWFzTWV0cmljcyJgCiFSZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABImEKIlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVzcG9uc2USOwoLY2FsaWJyYXRpb24YASABKAsyJi5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkNhbGlicmF0aW9uIr0DCiZSZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBIVCg1ldmFsdWF0aW9uX2lkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAyABKAkSGQoIanVkZ2VfaWQYBCABKAlCB7pIBHICEAESFwoPc2NlbmFyaW9fcnVuX2lkGAUgASgJEhQKDGFzc2VydGlvbl9pZBgGIAEoCRIsCgtqdWRnZV9zY29yZRgHIAEoAUIXukgUEhIZAAAAAAAA8D8pAAAAAAAAAAASFAoManVkZ2VfcGFzc2VkGAggASgIEhcKD2h1bWFuX3ZhbGlkYXRlZBgJIAEoCBIxCgtodW1hbl9zY29yZRgKIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAsgASgJEg4KBnNvdXJjZRgMIAEoCRIwCgxldmFsdWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9odW1hbl9zY29yZSJkCidSZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2USOQoKZXZhbHVhdGlvbhgBIAEoCzIlLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbiLJAQooVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBIeCg1ldmFsdWF0aW9uX2lkGAEgASgJQge6SARyAhABEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIxCgtodW1hbl9zY29yZRgDIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAQgASgJQg4KDF9odW1hbl9zY29yZSJmCilWYWxpZGF0ZUp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXNwb25zZRI5CgpldmFsdWF0aW9uGAEgASgLMiUuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uIqABCiVMaXN0SnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIgCg9taW5fdmFsaWRhdGlvbnMYAiABKAVCB7pIBBoCKAASMwoSYWNjdXJhY3lfdGhyZXNob2xkGAMgASgBQhe6SBQSEhkAAAAAAADwPykAAAAAAAAAACK/AQomTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVzcG9uc2USOQoKY2FuZGlkYXRlcxgBIAMoCzIlLmZlcm1hdGEudjEuSnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZRIcCgt0b3RhbF9jb3VudBgCIAEoBUIHukgEGgIoABIgCg9taW5fdmFsaWRhdGlvbnMYAyABKAVCB7pIBBoCKAASGgoSYWNjdXJhY3lfdGhyZXNob2xkGAQgASgBIhsKGUdldE1pZ3JhdGlvblN0YXR1c1JlcXVlc3QiXAoUUm91dGVNaWdyYXRpb25TdGF0dXMSEwoLcGF0aF9wcmVmaXgYASABKAkSEAoIbWlncmF0ZWQYAiABKAgSHQoVcHJveGllZF9yZXF1ZXN0X2NvdW50GAMgASgDIk4KGkdldE1pZ3JhdGlvblN0YXR1c1Jlc3BvbnNlEjAKBnJvdXRlcxgBIAMoCzIgLmZlcm1hdGEudjEuUm91dGVNaWdyYXRpb25TdGF0dXMq5wEKDUFzc2VydGlvbktpbmQSHgoaQVNTRVJUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIbChdBU1NFUlRJT05fS0lORF9DT05UQUlOUxABEh8KG0FTU0VSVElPTl9LSU5EX05PVF9DT05UQUlOUxACEhgKFEFTU0VSVElPTl9LSU5EX1JFR0VYEAMSHQoZQVNTRVJUSU9OX0tJTkRfU0lNSUxBUklUWRAEEh8KG0FTU0VSVElPTl9LSU5EX0NVU1RPTV9KVURHRRAFEh4KGkFTU0VSVElPTl9LSU5EX0pTT05fU0NIRU1BEAYqiAEKCUp1ZGdlS2luZBIaChZKVURHRV9LSU5EX1VOU1BFQ0lGSUVEEAASEgoOSlVER0VfS0lORF9MTE0QARIZChVKVURHRV9LSU5EX1JVTEVfQkFTRUQQAhIZChVKVURHRV9LSU5EX1NJTUlMQVJJVFkQAxIVChFKVURHRV9LSU5EX0NVU1RPTRAEKpMCChdTY2VuYXJpb0Vudmlyb25tZW50S2luZBIpCiVTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1VOU1BFQ0lGSUVEEAASJAogU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9SRVBMQVkQARImCiJTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1NUQVJMQVJLEAISJwojU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9NT0NLX0hUVFAQAxIlCiFTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1NBTkRCT1gQBBIvCitTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1BST0RVQ1RJT05fU0hBRE9XEAUqpwIKFVVzZXJTaW11bGF0b3JTdHJhdGVneRInCiNVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEicKI1VTRVJfU0lNVUxBVE9SX1NUUkFURUdZX0NPT1BFUkFUSVZFEAESIQodVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfUkVBQ1QQAhIiCh5VU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9WRVJJRlkQAxImCiJVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9SRUZMRUNUSU9OEAQSJwojVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfQURWRVJTQVJJQUwQBRIkCiBVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9DT05GVVNFRBAGKrYCChRPdXRjb21lQ3JpdGVyaW9uS2luZBImCiJPVVRDT01FX0NSSVRFUklPTl9LSU5EX1VOU1BFQ0lGSUVEEAASJgoiT1VUQ09NRV9DUklURVJJT05fS0lORF9GSU5BTF9TVEFURRABEioKJk9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfVEFTS19DT01QTEVUSU9OEAISJQohT1VUQ09NRV9DUklURVJJT05fS0lORF9UUkFKRUNUT1JZEAMSJgoiT1VUQ09NRV9DUklURVJJT05fS0lORF9DT1NUX0JVREdFVBAEEikKJU9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfTEFURU5DWV9CVURHRVQQBRIoCiRPVVRDT01FX0NSSVRFUklPTl9LSU5EX1FVQUxJVFlfU0NPUkUQBiq6AwoXR292ZXJuYW5jZUFzc2VydGlvblR5cGUSKQolR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9VTlNQRUNJRklFRBAAEjEKLUdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfRVNDQUxBVElPTl9SRVFVSVJFRBABEjMKL0dPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfQVVUT19QUk9DRUVEX0VYUEVDVEVEEAISMQotR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9SSVNLX0NMQVNTSUZJQ0FUSU9OEAMSMgouR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9EQVRBX0FDQ0VTU19CT1VOREFSWRAEEjgKNEdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfR09WRVJOQU5DRV9CTE9DS19SRVNQRUNURUQQBRIzCi9HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX1NFTEZfQVBQUk9WQUxfQkxPQ0tFRBAGEjYKMkdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfUElJX0RFVEVDVEVEX0FORF9IQU5ETEVEEAcqgAMKF0RlbGVnYXRpb25Bc3NlcnRpb25UeXBlEikKJURFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABI3CjNERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0RFTEVHQVRJT05fVEFSR0VUX0NPUlJFQ1QQARIyCi5ERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0NPTlRFWFRfUFJFU0VSVkFUSU9OEAISMgouREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9ERUxFR0FUSU9OX1ZBTFVFX0FERBADEjUKMURFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfREVMRUdBVElPTl9DT1NUX0JPVU5ERUQQBBIxCi1ERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0NIQUlOX0RFUFRIX0JPVU5ERUQQBRIvCitERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0ZBSUxVUkVfSVNPTEFUSU9OEAYq/AEKEVNjZW5hcmlvUnVuU3RhdHVzEiMKH1NDRU5BUklPX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtTQ0VOQVJJT19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtTQ0VOQVJJT19SVU5fU1RBVFVTX1JVTk5JTkcQAhIeChpTQ0VOQVJJT19SVU5fU1RBVFVTX1BBU1NFRBADEh4KGlNDRU5BUklPX1JVTl9TVEFUVVNfRkFJTEVEEAQSHQoZU0NFTkFSSU9fUlVOX1NUQVRVU19FUlJPUhAFEiEKHVNDRU5BUklPX1JVTl9TVEFUVVNfQ0FOQ0VMTEVEEAYqlQEKFkRpYWdub3N0aWNBcnRpZmFjdEtpbmQSKAokRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX1VOU1BFQ0lGSUVEEAASKAokRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX0VYUExBTkFUSU9OEAESJwojRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX1JPT1RfQ0FVU0UQAiq+AQoZRGlhZ25vc3RpY0ZpbmRpbmdTZXZlcml0eRIrCidESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfVU5TUEVDSUZJRUQQABIkCiBESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfSU5GTxABEicKI0RJQUdOT1NUSUNfRklORElOR19TRVZFUklUWV9XQVJOSU5HEAISJQohRElBR05PU1RJQ19GSU5ESU5HX1NFVkVSSVRZX0VSUk9SEAMy1SMKDkZlcm1hdGFTZXJ2aWNlEoQBCg9DcmVhdGVUZXN0U3VpdGUSIi5mZXJtYXRhLnYxLkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QaIy5mZXJtYXRhLnYxLkNyZWF0ZVRlc3RTdWl0ZVJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEnoKDEdldFRlc3RTdWl0ZRIfLmZlcm1hdGEudjEuR2V0VGVzdFN1aXRlUmVxdWVzdBogLmZlcm1hdGEudjEuR2V0VGVzdFN1aXRlUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKAAQoOTGlzdFRlc3RTdWl0ZXMSIS5mZXJtYXRhLnYxLkxpc3RUZXN0U3VpdGVzUmVxdWVzdBoiLmZlcm1hdGEudjEuTGlzdFRlc3RTdWl0ZXNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEoEBCg5DcmVhdGVTY2VuYXJpbxIhLmZlcm1hdGEudjEuQ3JlYXRlU2NlbmFyaW9SZXF1ZXN0GiIuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1Jlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEncKC0dldFNjZW5hcmlvEh4uZmVybWF0YS52MS5HZXRTY2VuYXJpb1JlcXVlc3QaHy5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJ9Cg1MaXN0U2NlbmFyaW9zEiAuZmVybWF0YS52MS5MaXN0U2NlbmFyaW9zUmVxdWVzdBohLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSlgEKFVVwc2VydEN1c3RvbUV2YWx1YXRvchIoLmZlcm1hdGEudjEuVXBzZXJ0Q3VzdG9tRXZhbHVhdG9yUmVxdWVzdBopLmZlcm1hdGEudjEuVXBzZXJ0Q3VzdG9tRXZhbHVhdG9yUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSjAEKEkdldEN1c3RvbUV2YWx1YXRvchIlLmZlcm1hdGEudjEuR2V0Q3VzdG9tRXZhbHVhdG9yUmVxdWVzdBomLmZlcm1hdGEudjEuR2V0Q3VzdG9tRXZhbHVhdG9yUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKSAQoUTGlzdEN1c3RvbUV2YWx1YXRvcnMSJy5mZXJtYXRhLnYxLkxpc3RDdXN0b21FdmFsdWF0b3JzUmVxdWVzdBooLmZlcm1hdGEudjEuTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpYBChVEZWxldGVDdXN0b21FdmFsdWF0b3ISKC5mZXJtYXRhLnYxLkRlbGV0ZUN1c3RvbUV2YWx1YXRvclJlcXVlc3QaKS5mZXJtYXRhLnYxLkRlbGV0ZUN1c3RvbUV2YWx1YXRvclJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEngKC1Vwc2VydEp1ZGdlEh4uZmVybWF0YS52MS5VcHNlcnRKdWRnZVJlcXVlc3QaHy5mZXJtYXRhLnYxLlVwc2VydEp1ZGdlUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSbgoIR2V0SnVkZ2USGy5mZXJtYXRhLnYxLkdldEp1ZGdlUmVxdWVzdBocLmZlcm1hdGEudjEuR2V0SnVkZ2VSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEnQKCkxpc3RKdWRnZXMSHS5mZXJtYXRhLnYxLkxpc3RKdWRnZXNSZXF1ZXN0Gh4uZmVybWF0YS52MS5MaXN0SnVkZ2VzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJ4CgtEZWxldGVKdWRnZRIeLmZlcm1hdGEudjEuRGVsZXRlSnVkZ2VSZXF1ZXN0Gh8uZmVybWF0YS52MS5EZWxldGVKdWRnZVJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEn4KDVN0YXJ0U2NlbmFyaW8SIC5mZXJtYXRhLnYxLlN0YXJ0U2NlbmFyaW9SZXF1ZXN0GiEuZmVybWF0YS52MS5TdGFydFNjZW5hcmlvUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYA+rzGA9vcmdhbml6YXRpb25faWQSogEKFkNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW8SKS5mZXJtYXRhLnYxLkNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0GiouZmVybWF0YS52MS5DcmVhdGVBbmRTdGFydFNjZW5hcmlvUmVzcG9uc2UiMcrzGA1mZXJtYXRhOndyaXRl2PMYA+rzGBhzY2VuYXJpby5vcmdhbml6YXRpb25faWQSigEKEVJlY29yZFNjZW5hcmlvUnVuEiQuZmVybWF0YS52MS5SZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QaJS5mZXJtYXRhLnYxLlJlY29yZFNjZW5hcmlvUnVuUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSgAEKDkdldFNjZW5hcmlvUnVuEiEuZmVybWF0YS52MS5HZXRTY2VuYXJpb1J1blJlcXVlc3QaIi5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUnVuUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKGAQoQTGlzdFNjZW5hcmlvUnVucxIjLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvUnVuc1JlcXVlc3QaJC5mZXJtYXRhLnYxLkxpc3RTY2VuYXJpb1J1bnNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEr8BCiNHZXRFdmFsdWF0aW9uT2JzZXJ2YWJpbGl0eURhc2hib2FyZBI2LmZlcm1hdGEudjEuR2V0RXZhbHVhdGlvbk9ic2VydmFiaWxpdHlEYXNoYm9hcmRSZXF1ZXN0GjcuZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uT2JzZXJ2YWJpbGl0eURhc2hib2FyZFJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSmwEKF0dldEV2YWx1YXRpb25SdW5NZXRyaWNzEiouZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uUnVuTWV0cmljc1JlcXVlc3QaKy5mZXJtYXRhLnYxLkdldEV2YWx1YXRpb25SdW5NZXRyaWNzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKMAQoSRXhwbGFpblNjZW5hcmlvUnVuEiUuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXF1ZXN0GiYuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGALq8xgPb3JnYW5pemF0aW9uX2lkEqcBChtBbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2USLi5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlcXVlc3QaLy5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAurzGA9vcmdhbml6YXRpb25faWQSpAEKGkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5Ei0uZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlcXVlc3QaLi5mZXJtYXRhLnYxLkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBK5AQohR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4EjQuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXF1ZXN0GjUuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpgBChZHZXRKdWRnZVZhbGlkYXRpb25CaWFzEikuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25CaWFzUmVxdWVzdBoqLmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSpQEKGlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uEi0uZmVybWF0YS52MS5SZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlcXVlc3QaLi5mZXJtYXRhLnYxLlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQStAEKH1JlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24SMi5mZXJtYXRhLnYxLlJlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXF1ZXN0GjMuZmVybWF0YS52MS5SZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSugEKIVZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbhI0LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBo1LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSsAEKHkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlcxIxLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVxdWVzdBoyLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJtChJHZXRNaWdyYXRpb25TdGF0dXMSJS5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1JlcXVlc3QaJi5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1Jlc3BvbnNlIgjY8xgB4PMYAUI5WjdnaXRodWIuY29tL2V2YWxvcHMvcGxhdGZvcm0vZ2VuL2dvL2Zlcm1hdGEvdjE7ZmVybWF0YXYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_analytics, file_common_v1_authz, file_common_v1_risk, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_traces_v1_traces]);
14
+ export const file_fermata_v1_fermata = /*@__PURE__*/ fileDesc("ChhmZXJtYXRhL3YxL2Zlcm1hdGEucHJvdG8SCmZlcm1hdGEudjEiqwIKCVRlc3RTdWl0ZRIKCgJpZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSHQoMd29ya3NwYWNlX2lkGAMgASgJQge6SARyAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBSABKAkSIwoFY2FzZXMYBiADKAsyFC5mZXJtYXRhLnYxLlRlc3RDYXNlEikKCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKrAQoIVGVzdENhc2USCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARINCgVpbnB1dBgDIAEoCRIXCg9leHBlY3RlZF9vdXRwdXQYBCABKAkSKQoKYXNzZXJ0aW9ucxgFIAMoCzIVLmZlcm1hdGEudjEuQXNzZXJ0aW9uEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKsAQoJQXNzZXJ0aW9uEgoKAmlkGAEgASgJEjEKBGtpbmQYAiABKA4yGS5mZXJtYXRhLnYxLkFzc2VydGlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi0AEKD0N1c3RvbUV2YWx1YXRvchIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBnNvdXJjZRgCIAEoCUIHukgEcgIQARIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9vcmdhbml6YXRpb25faWQYBSABKAkSFAoMd29ya3NwYWNlX2lkGAYgASgJIqMDCgVKdWRnZRIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgMIAEoCRIUCgx3b3Jrc3BhY2VfaWQYDSABKAkiugYKCFNjZW5hcmlvEgoKAmlkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIdCgx3b3Jrc3BhY2VfaWQYAyABKAlCB7pIBHICEAESFQoEbmFtZRgEIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgFIAEoCRIoCglvYmplY3RpdmUYBiABKAsyFS5mZXJtYXRhLnYxLk9iamVjdGl2ZRItCgxhZ2VudF9jb25maWcYByABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAggASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAkgASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAogASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYDCABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGA0gASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDiADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA8gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgQIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYESABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYEiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIu8BCglPYmplY3RpdmUSHAoLZGVzY3JpcHRpb24YASABKAlCB7pIBHICEAESNgoQc3VjY2Vzc19jcml0ZXJpYRgCIAMoCzIcLmZlcm1hdGEudjEuU3VjY2Vzc0NyaXRlcmlvbhJACg5leHBlY3RlZF9zdGF0ZRgDIAMoCzIoLmZlcm1hdGEudjEuT2JqZWN0aXZlLkV4cGVjdGVkU3RhdGVFbnRyeRIUCgxvYmplY3RpdmVfaWQYBCABKAkaNAoSRXhwZWN0ZWRTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirwEKEFN1Y2Nlc3NDcml0ZXJpb24SCgoCaWQYASABKAkSHAoLZGVzY3JpcHRpb24YAiABKAlCB7pIBHICEAESDgoGbWV0cmljGAMgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAQgASgJEh4KBndlaWdodBgFIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqUBCgtBZ2VudENvbmZpZxIQCghhZ2VudF9pZBgBIAEoCRINCgVtb2RlbBgCIAEoCRIRCgl0b29sX3JlZnMYAyADKAkSGQoRcGVybWlzc2lvbl9zY29wZXMYBCADKAkSHAoUZ292ZXJuYW5jZV9wb2xpY3lfaWQYBSABKAkSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IvcBChNTY2VuYXJpb0Vudmlyb25tZW50EjsKBGtpbmQYASABKA4yIy5mZXJtYXRhLnYxLlNjZW5hcmlvRW52aXJvbm1lbnRLaW5kQgi6SAWCAQIQARIjCgV0b29scxgCIAMoCzIULmZlcm1hdGEudjEuTW9ja1Rvb2wSKwoJZW5kcG9pbnRzGAMgAygLMhguZmVybWF0YS52MS5Nb2NrRW5kcG9pbnQSFQoNc2VlZF9kYXRhX3JlZhgEIAEoCRIPCgdzYW5kYm94GAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK7AQoITW9ja1Rvb2wSFQoEbmFtZRgBIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCHJlc3BvbnNlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqQEKDE1vY2tFbmRwb2ludBIOCgZtZXRob2QYASABKAkSFQoEcGF0aBgCIAEoCUIHukgEcgIQARIcCgtzdGF0dXNfY29kZRgDIAEoBUIHukgEGgIoABIpCghyZXNwb25zZRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IocCCg1Vc2VyU2ltdWxhdG9yEg8KB3BlcnNvbmEYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJEj0KCHN0cmF0ZWd5GAMgASgOMiEuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yU3RyYXRlZ3lCCLpIBYIBAhABEg0KBW1vZGVsGAQgASgJEhoKCW1heF90dXJucxgFIAEoBUIHukgEGgIoABIbChN2ZXJpZnlfYWdlbnRfY2xhaW1zGAYgASgIEh0KFXJlcXVlc3RfY2xhcmlmaWNhdGlvbhgHIAEoCBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QixQEKEE91dGNvbWVDcml0ZXJpb24SCgoCaWQYASABKAkSOAoEa2luZBgCIAEoDjIgLmZlcm1hdGEudjEuT3V0Y29tZUNyaXRlcmlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRIeCgZ3ZWlnaHQYBSABKAFCDrpICxIJKQAAAAAAAAAAEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLcAgoTR292ZXJuYW5jZUFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uVHlwZUIIukgFggECEAESOwoTZXhwZWN0ZWRfcmlza19sZXZlbBgDIAEoDjIULmNvbW1vbi52MS5SaXNrTGV2ZWxCCLpIBYIBAhABEhcKD3Nob3VsZF9lc2NhbGF0ZRgEIAEoCBIhChlleHBlY3RlZF9hcHByb3ZhbF9vdXRjb21lGAUgASgJEhsKE2FsbG93ZWRfZGF0YV9zY29wZXMYBiADKAkSGgoSZGVuaWVkX2RhdGFfc2NvcGVzGAcgAygJEh8KF2V4cGVjdGVkX3BpaV9jYXRlZ29yaWVzGAggAygJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLqAQoTRGVsZWdhdGlvbkFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5EZWxlZ2F0aW9uQXNzZXJ0aW9uVHlwZUIIukgFggECEAESGQoRZXhwZWN0ZWRfYWdlbnRfaWQYAyABKAkSIAoPbWF4X2NoYWluX2RlcHRoGAQgASgFQge6SAQaAigAEiIKCG1heF9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKIBAoLU2NlbmFyaW9SdW4SCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDiABKAkisQYKDlNjZW5hcmlvUmVzdWx0EhoKEm9iamVjdGl2ZV9hY2hpZXZlZBgBIAEoCBIZChFvYmplY3RpdmVfc3VtbWFyeRgCIAEoCRIcCgt0b3RhbF9zdGVwcxgDIAEoBUIHukgEGgIoABIcCgttb2RlbF9jYWxscxgEIAEoBUIHukgEGgIoABIbCgp0b29sX2NhbGxzGAUgASgFQge6SAQaAigAEiIKEWFwcHJvdmFsX3JlcXVlc3RzGAYgASgFQge6SAQaAigAEiIKEWRlbGVnYXRpb25fZXZlbnRzGAcgASgFQge6SAQaAigAEiAKD3JlY292ZXJ5X2V2ZW50cxgIIAEoBUIHukgEGgIoABI+ChFhc3NlcnRpb25fcmVzdWx0cxgJIAMoCzIjLmZlcm1hdGEudjEuU2NlbmFyaW9Bc3NlcnRpb25SZXN1bHQSLwoKZ292ZXJuYW5jZRgKIAEoCzIbLmZlcm1hdGEudjEuR292ZXJuYW5jZVNjb3JlEiwKCWVjb25vbWljcxgLIAEoCzIZLmZlcm1hdGEudjEuRWNvbm9taWNTY29yZRIhCglwYXNzX2F0X2sYDCABKAFCDrpICxIJKQAAAAAAAAAAEi8KCmRlbGVnYXRpb24YDSABKAsyGy5mZXJtYXRhLnYxLkRlbGVnYXRpb25TY29yZRIkCgp0b3RhbF9jb3N0GA4gASgLMhAuY29tbW9uLnYxLk1vbmV5EjEKDnRvdGFsX2R1cmF0aW9uGA8gASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEikKCG1ldGFkYXRhGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIjCgp0cmFqZWN0b3J5GBEgAygLMg8udHJhY2VzLnYxLlNwYW4SJQoNdHJhamVjdG9yeV9mMRgSIAEoAUIOukgLEgkpAAAAAAAAAAASNgoedHJhamVjdG9yeV9lZGl0X2Rpc3RhbmNlX3Njb3JlGBMgASgBQg66SAsSCSkAAAAAAAAAABIqCgVkcmlmdBgUIAEoCzIbLmZlcm1hdGEudjEuRHJpZnRDb21wYXJpc29uIpoBChdTY2VuYXJpb0Fzc2VydGlvblJlc3VsdBIUCgxhc3NlcnRpb25faWQYASABKAkSDgoGcGFzc2VkGAIgASgIEg0KBXNjb3JlGAMgASgBEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKPAgoPR292ZXJuYW5jZVNjb3JlEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAEgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgCIAEoAUIOukgLEgkpAAAAAAAAAAASKQoRcG9saWN5X2NvbXBsaWFuY2UYAyABKAFCDrpICxIJKQAAAAAAAAAAEisKE2FwcHJvdmFsX2VmZmljaWVuY3kYBCABKAFCDrpICxIJKQAAAAAAAAAAEiEKCWNvbXBvc2l0ZRgFIAEoAUIOukgLEgkpAAAAAAAAAAASKAoIZXZpZGVuY2UYBiADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYigAIKDUVjb25vbWljU2NvcmUSMgoYY29zdF9wZXJfc3VjY2Vzc2Z1bF90YXNrGAEgASgLMhAuY29tbW9uLnYxLk1vbmV5EiIKCGxsbV9jb3N0GAIgASgLMhAuY29tbW9uLnYxLk1vbmV5EiMKCXRvb2xfY29zdBgDIAEoCzIQLmNvbW1vbi52MS5Nb25leRIqChBzdXBlcnZpc2lvbl9jb3N0GAQgASgLMhAuY29tbW9uLnYxLk1vbmV5EhoKEm9uX3BhcmV0b19mcm9udGllchgFIAEoCBIqChJxdWFsaXR5X3Blcl9kb2xsYXIYBiABKAFCDrpICxIJKQAAAAAAAAAAIsoBCg9EZWxlZ2F0aW9uU2NvcmUSKwoTZGVsZWdhdGlvbl9hY2N1cmFjeRgBIAEoAUIOukgLEgkpAAAAAAAAAAASKAoQY29udGV4dF9maWRlbGl0eRgCIAEoAUIOukgLEgkpAAAAAAAAAAASFwoPZWZmaWNpZW5jeV9nYWluGAMgASgBEikKEWZhaWx1cmVfaXNvbGF0aW9uGAQgASgBQg66SAsSCSkAAAAAAAAAABIcCgtjaGFpbl9kZXB0aBgFIAEoBUIHukgEGgIoACLeAwoPRHJpZnRDb21wYXJpc29uEhAKCGRldGVjdGVkGAEgASgIEi4KFmJhc2VsaW5lX3F1YWxpdHlfc2NvcmUYAiABKAFCDrpICxIJKQAAAAAAAAAAEi0KFWN1cnJlbnRfcXVhbGl0eV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASFQoNcXVhbGl0eV9kZWx0YRgEIAEoARInCg1iYXNlbGluZV9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EiYKDGN1cnJlbnRfY29zdBgGIAEoCzIQLmNvbW1vbi52MS5Nb25leRIkCgpjb3N0X2RlbHRhGAcgASgLMhAuY29tbW9uLnYxLk1vbmV5EjAKGGJhc2VsaW5lX2VzY2FsYXRpb25fcmF0ZRgIIAEoAUIOukgLEgkpAAAAAAAAAAASLwoXY3VycmVudF9lc2NhbGF0aW9uX3JhdGUYCSABKAFCDrpICxIJKQAAAAAAAAAAEh0KFWVzY2FsYXRpb25fcmF0ZV9kZWx0YRgKIAEoARIgChhnZW5lcmF0ZWRfc3VpdGVfc3RyYXRlZ3kYCyABKAkSKAoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYi1QEKFkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIVCgRuYW1lGAMgASgJQge6SARyAhABEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiMKBWNhc2VzGAUgAygLMhQuZmVybWF0YS52MS5UZXN0Q2FzZRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPwoXQ3JlYXRlVGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSJfChNHZXRUZXN0U3VpdGVSZXF1ZXN0EhkKCHN1aXRlX2lkGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiPAoUR2V0VGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSKAAQoVTGlzdFRlc3RTdWl0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlEKFkxpc3RUZXN0U3VpdGVzUmVzcG9uc2USJQoGc3VpdGVzGAEgAygLMhUuZmVybWF0YS52MS5UZXN0U3VpdGUSEAoIaGFzX21vcmUYAiABKAgi4wUKFUNyZWF0ZVNjZW5hcmlvUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESHQoMd29ya3NwYWNlX2lkGAIgASgJQge6SARyAhABEhUKBG5hbWUYAyABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBCABKAkSMAoJb2JqZWN0aXZlGAUgASgLMhUuZmVybWF0YS52MS5PYmplY3RpdmVCBrpIA8gBARItCgxhZ2VudF9jb25maWcYBiABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAcgASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAggASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgKIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYCyABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGAwgASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDSADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA4gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgPIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYECABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKFkNyZWF0ZVNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvImEKEkdldFNjZW5hcmlvUmVxdWVzdBIcCgtzY2VuYXJpb19pZBgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIj0KE0dldFNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvIn8KFExpc3RTY2VuYXJpb3NSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlIKFUxpc3RTY2VuYXJpb3NSZXNwb25zZRInCglzY2VuYXJpb3MYASADKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvEhAKCGhhc19tb3JlGAIgASgIIn0KHFVwc2VydEN1c3RvbUV2YWx1YXRvclJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCgZzb3VyY2UYAiABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJPCh1VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJhChlHZXRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSJMChpHZXRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJ9ChtMaXN0Q3VzdG9tRXZhbHVhdG9yc1JlcXVlc3QSFgoFbGltaXQYASABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAIgASgFQge6SAQaAigAEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIUCgx3b3Jrc3BhY2VfaWQYBCABKAkiYQocTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZRIvCgpldmFsdWF0b3JzGAEgAygLMhsuZmVybWF0YS52MS5DdXN0b21FdmFsdWF0b3ISEAoIaGFzX21vcmUYAiABKAgiZAocRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiHwodRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVzcG9uc2Ui0AIKElVwc2VydEp1ZGdlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD29yZ2FuaXphdGlvbl9pZBgKIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCyABKAkiNwoTVXBzZXJ0SnVkZ2VSZXNwb25zZRIgCgVqdWRnZRgBIAEoCzIRLmZlcm1hdGEudjEuSnVkZ2UiVwoPR2V0SnVkZ2VSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI0ChBHZXRKdWRnZVJlc3BvbnNlEiAKBWp1ZGdlGAEgASgLMhEuZmVybWF0YS52MS5KdWRnZSJzChFMaXN0SnVkZ2VzUmVxdWVzdBIWCgVsaW1pdBgBIAEoBUIHukgEGgIoABIXCgZvZmZzZXQYAiABKAVCB7pIBBoCKAASFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJJChJMaXN0SnVkZ2VzUmVzcG9uc2USIQoGanVkZ2VzGAEgAygLMhEuZmVybWF0YS52MS5KdWRnZRIQCghoYXNfbW9yZRgCIAEoCCJaChJEZWxldGVKdWRnZVJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIhUKE0RlbGV0ZUp1ZGdlUmVzcG9uc2UivgIKFFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EhwKC3NjZW5hcmlvX2lkGAEgASgJQge6SARyAhABEhUKDXJ1bl9pZF9wcmVmaXgYAiABKAkSEAoIdHJhY2VfaWQYAyABKAkSKAoHYWN0dWFscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoNZXBvY2hfYWN0dWFscxgFIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKBmVwb2NocxgHIAEoBUIHukgEGgIoABISCgpsaW5lYWdlX2lkGAggASgJEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCiABKAkiYQoVU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiUKBHJ1bnMYASADKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuEiEKEHB1Ymxpc2hlZF9ldmVudHMYAiABKAVCB7pIBBoCKAAivQIKHUNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EjsKCHNjZW5hcmlvGAEgASgLMiEuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1JlcXVlc3RCBrpIA8gBARIVCg1ydW5faWRfcHJlZml4GAIgASgJEhAKCHRyYWNlX2lkGAMgASgJEigKB2FjdHVhbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KDWVwb2NoX2FjdHVhbHMYBSADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei8KDnN0YXJ0X21ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgZlcG9jaHMYByABKAVCB7pIBBoCKAASEgoKbGluZWFnZV9pZBgIIAEoCSKSAQoeQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiYKCHNjZW5hcmlvGAEgASgLMhQuZmVybWF0YS52MS5TY2VuYXJpbxIlCgRydW5zGAIgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIhChBwdWJsaXNoZWRfZXZlbnRzGAMgASgFQge6SAQaAigAIrUDChhSZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QSCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDCABKAkiQQoZUmVjb3JkU2NlbmFyaW9SdW5SZXNwb25zZRIkCgNydW4YASABKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuIl8KFUdldFNjZW5hcmlvUnVuUmVxdWVzdBIXCgZydW5faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI+ChZHZXRTY2VuYXJpb1J1blJlc3BvbnNlEiQKA3J1bhgBIAEoCzIXLmZlcm1hdGEudjEuU2NlbmFyaW9SdW4ilwEKF0xpc3RTY2VuYXJpb1J1bnNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLc2NlbmFyaW9faWQYAyABKAkSFgoFbGltaXQYBCABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAUgASgFQge6SAQaAigAIlMKGExpc3RTY2VuYXJpb1J1bnNSZXNwb25zZRIlCgRydW5zGAEgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIQCghoYXNfbW9yZRgCIAEoCCKZAQoqR2V0RXZhbHVhdGlvbk9ic2VydmFiaWxpdHlEYXNoYm9hcmRSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSGAoEZGF5cxgDIAEoBUIKukgHGgUY7QIoABIZCgVsaW1pdBgEIAEoBUIKukgHGgUY9AMoACKVAwoeRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EhsKCnRvdGFsX3J1bnMYASABKAVCB7pIBBoCKAASHgoNdG90YWxfcmVzdWx0cxgCIAEoBUIHukgEGgIoABIfCg5mYWlsZWRfcmVzdWx0cxgDIAEoBUIHukgEGgIoABIlCg1hdmVyYWdlX3Njb3JlGAQgASgBQg66SAsSCSkAAAAAAAAAABIhCglwYXNzX3JhdGUYBSABKAFCDrpICxIJKQAAAAAAAAAAEiQKCnRvdGFsX2Nvc3QYBiABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAcgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAASJwoWcmVncmVzc2lvbl9hbGVydF9jb3VudBgJIAEoBUIHukgEGgIoABIxChd0b3RhbF9jb3N0c19ieV9jdXJyZW5jeRgKIAMoCzIQLmNvbW1vbi52MS5Nb25leSKIBAoaRXZhbHVhdGlvblJlY2VudFJ1blN1bW1hcnkSIAoPc2NlbmFyaW9fcnVuX2lkGAEgASgJQge6SARyAhABEhMKC3NjZW5hcmlvX2lkGAIgASgJEh4KDXRvdGFsX3Jlc3VsdHMYAyABKAVCB7pIBBoCKAASIgoRY29tcGxldGVkX3Jlc3VsdHMYBCABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYBSABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgGIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgHIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYCCABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAkgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCiABKANCB7pIBCICKAASLgoKc3RhcnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCgh0cmFjZV9pZBgNIAEoCRIaChJvYmplY3RpdmVfYWNoaWV2ZWQYDiABKAgi0QMKGUV2YWx1YXRpb25SZWdyZXNzaW9uQWxlcnQSEwoCaWQYASABKAlCB7pIBHICEAESEwoLc2NlbmFyaW9faWQYAiABKAkSIAoPc2NlbmFyaW9fcnVuX2lkGAMgASgJQge6SARyAhABEhAKCHNldmVyaXR5GAQgASgJEg8KB21lc3NhZ2UYBSABKAkSLQoVcmVncmVzc2lvbl9wZXJjZW50YWdlGAYgASgBQg66SAsSCSkAAAAAAAAAABIgChhiYXNlbGluZV9zY2VuYXJpb19ydW5faWQYByABKAkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAggASgBQg66SAsSCSkAAAAAAAAAABIkCgp0b3RhbF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5EhMKC2Vudmlyb25tZW50GAogASgJEiEKGXN0YXRpc3RpY2FsbHlfc2lnbmlmaWNhbnQYCyABKAgSHwoHcF92YWx1ZRgMIAEoAUIOukgLEgkpAAAAAAAAAAASGAoQZGVncmFkZWRfbWV0cmljcxgNIAMoCRIvCgtyZWNvcmRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QEKK0dldEV2YWx1YXRpb25PYnNlcnZhYmlsaXR5RGFzaGJvYXJkUmVzcG9uc2USOwoHc3VtbWFyeRgBIAEoCzIqLmZlcm1hdGEudjEuRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EjsKC3JlY2VudF9ydW5zGAIgAygLMiYuZmVybWF0YS52MS5FdmFsdWF0aW9uUmVjZW50UnVuU3VtbWFyeRJAChFyZWdyZXNzaW9uX2FsZXJ0cxgDIAMoCzIlLmZlcm1hdGEudjEuRXZhbHVhdGlvblJlZ3Jlc3Npb25BbGVydCJxCh5HZXRFdmFsdWF0aW9uUnVuTWV0cmljc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCgZydW5faWQYAyABKAlCB7pIBHICEAEivgIKG0V2YWx1YXRpb25SdW5NZXRyaWNzU3VtbWFyeRIdCgxyZXN1bHRfY291bnQYASABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYAiABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgEIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYBSABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAYgASgBQg66SAsSCSkAAAAAAAAAABIfCg5wOTVfbGF0ZW5jeV9tcxgHIAEoA0IHukgEIgIoABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAAi3QEKGkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzEhQKDGFzc2VydGlvbl9pZBgBIAEoCRIOCgZwYXNzZWQYAiABKAgSHQoFc2NvcmUYAyABKAFCDrpICxIJKQAAAAAAAAAAEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCK2AQofR2V0RXZhbHVhdGlvblJ1bk1ldHJpY3NSZXNwb25zZRIgCg9zY2VuYXJpb19ydW5faWQYASABKAlCB7pIBHICEAESOAoHc3VtbWFyeRgCIAEoCzInLmZlcm1hdGEudjEuRXZhbHVhdGlvblJ1bk1ldHJpY3NTdW1tYXJ5EjcKB3Jlc3VsdHMYAyADKAsyJi5mZXJtYXRhLnYxLkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzIqgBCiRHZXRFdmFsdWF0aW9uR292ZXJuYW5jZVJlcG9ydFJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRITCgtzY2VuYXJpb19pZBgDIAEoCRIYCgRkYXlzGAQgASgFQgq6SAcaBRjtAigAEhkKBWxpbWl0GAUgASgFQgq6SAcaBRj0AygAItEBChxHb3Zlcm5hbmNlQXNzZXJ0aW9uQWdncmVnYXRlEh0KDGFzc2VydGlvbl9pZBgBIAEoCUIHukgEcgIQARIWCgV0b3RhbBgCIAEoBUIHukgEGgIoABIXCgZwYXNzZWQYAyABKAVCB7pIBBoCKAASFwoGZmFpbGVkGAQgASgFQge6SAQaAigAEiEKCXBhc3NfcmF0ZRgFIAEoAUIOukgLEgkpAAAAAAAAAAASJQoNYXZlcmFnZV9zY29yZRgGIAEoAUIOukgLEgkpAAAAAAAAAAAizgQKF0dvdmVybmFuY2VSZXBvcnRTdW1tYXJ5EhsKCnRvdGFsX3J1bnMYASABKAVCB7pIBBoCKAASHgoNZ292ZXJuZWRfcnVucxgCIAEoBUIHukgEGgIoABInChZwYXNzZWRfZ292ZXJuYW5jZV9ydW5zGAMgASgFQge6SAQaAigAEicKFmZhaWxlZF9nb3Zlcm5hbmNlX3J1bnMYBCABKAVCB7pIBBoCKAASLwoXYXZlcmFnZV9jb21wb3NpdGVfc2NvcmUYBSABKAFCDrpICxIJKQAAAAAAAAAAEi4KFnBvbGljeV9jb21wbGlhbmNlX3JhdGUYBiABKAFCDrpICxIJKQAAAAAAAAAAEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAcgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKwoTYXBwcm92YWxfZWZmaWNpZW5jeRgJIAEoAUIOukgLEgkpAAAAAAAAAAASKAoXdG90YWxfYXBwcm92YWxfcmVxdWVzdHMYCiABKAVCB7pIBBoCKAASMQoZYXZlcmFnZV9hcHByb3ZhbF9yZXF1ZXN0cxgLIAEoAUIOukgLEgkpAAAAAAAAAAASIgoRcmlza19zaWduYWxfY291bnQYDCABKAVCB7pIBBoCKAASPAoKYXNzZXJ0aW9ucxgNIAMoCzIoLmZlcm1hdGEudjEuR292ZXJuYW5jZUFzc2VydGlvbkFnZ3JlZ2F0ZSLmAwoUR292ZXJuYW5jZVJ1blN1bW1hcnkSIAoPc2NlbmFyaW9fcnVuX2lkGAEgASgJQge6SARyAhABEhMKC3NjZW5hcmlvX2lkGAIgASgJEjcKBnN0YXR1cxgDIAEoDjIdLmZlcm1hdGEudjEuU2NlbmFyaW9SdW5TdGF0dXNCCLpIBYIBAhABEicKD2NvbXBvc2l0ZV9zY29yZRgEIAEoAUIOukgLEgkpAAAAAAAAAAASKQoRcG9saWN5X2NvbXBsaWFuY2UYBSABKAFCDrpICxIJKQAAAAAAAAAAEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAYgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgHIAEoAUIOukgLEgkpAAAAAAAAAAASKwoTYXBwcm92YWxfZWZmaWNpZW5jeRgIIAEoAUIOukgLEgkpAAAAAAAAAAASIgoRYXBwcm92YWxfcmVxdWVzdHMYCSABKAVCB7pIBBoCKAASHAoUZmFpbGVkX2Fzc2VydGlvbl9pZHMYCiADKAkSEAoIdHJhY2VfaWQYCyABKAkSMAoMY29tcGxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKMAgoUR292ZXJuYW5jZVJpc2tTaWduYWwSEwoCaWQYASABKAlCB7pIBHICEAESIAoPc2NlbmFyaW9fcnVuX2lkGAIgASgJQge6SARyAhABEhMKC3NjZW5hcmlvX2lkGAMgASgJEhAKCHNldmVyaXR5GAQgASgJEg8KB21lc3NhZ2UYBSABKAkSGAoQZGVncmFkZWRfbWV0cmljcxgGIAMoCRIoCghldmlkZW5jZRgHIAMoCzIWLmNvbW1vbi52MS5FdmlkZW5jZVJlZhIQCgh0cmFjZV9pZBgIIAEoCRIvCgtyZWNvcmRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAizAEKJUdldEV2YWx1YXRpb25Hb3Zlcm5hbmNlUmVwb3J0UmVzcG9uc2USNAoHc3VtbWFyeRgBIAEoCzIjLmZlcm1hdGEudjEuR292ZXJuYW5jZVJlcG9ydFN1bW1hcnkSNQoLcmVjZW50X3J1bnMYAiADKAsyIC5mZXJtYXRhLnYxLkdvdmVybmFuY2VSdW5TdW1tYXJ5EjYKDHJpc2tfc2lnbmFscxgDIAMoCzIgLmZlcm1hdGEudjEuR292ZXJuYW5jZVJpc2tTaWduYWwi3wEKEURpYWdub3N0aWNGaW5kaW5nEgoKAmlkGAEgASgJEkEKCHNldmVyaXR5GAIgASgOMiUuZmVybWF0YS52MS5EaWFnbm9zdGljRmluZGluZ1NldmVyaXR5Qgi6SAWCAQIQARIWCgV0aXRsZRgDIAEoCUIHukgEcgIQARIOCgZkZXRhaWwYBCABKAkSKAoIZXZpZGVuY2UYBSADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Iu8EChxFdmFsdWF0aW9uRGlhZ25vc3RpY0FydGlmYWN0EhMKAmlkGAEgASgJQge6SARyAhABEjoKBGtpbmQYAiABKA4yIi5mZXJtYXRhLnYxLkRpYWdub3N0aWNBcnRpZmFjdEtpbmRCCLpIBYIBAhABEiAKD29yZ2FuaXphdGlvbl9pZBgDIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYBCABKAkSEwoLc2NlbmFyaW9faWQYBSABKAkSIAoPc2NlbmFyaW9fcnVuX2lkGAYgASgJQge6SARyAhABEhAKCHRyYWNlX2lkGAcgASgJEhYKBXRpdGxlGAggASgJQge6SARyAhABEg8KB3N1bW1hcnkYCSABKAkSLwoIZmluZGluZ3MYCiADKAsyHS5mZXJtYXRhLnYxLkRpYWdub3N0aWNGaW5kaW5nEigKCGV2aWRlbmNlGAsgAygLMhYuY29tbW9uLnYxLkV2aWRlbmNlUmVmEi4KDWlucHV0X2NvbnRleHQYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EigKB3BheWxvYWQYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGFydGlmYWN0X3VyaRgOIAEoCRIWCg5jb250ZW50X3NoYTI1NhgPIAEoCRIRCglwZXJzaXN0ZWQYECABKAgSLgoKY3JlYXRlZF9hdBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgSIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAixwEKGUV4cGxhaW5TY2VuYXJpb1J1blJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCgZydW5faWQYAyABKAlCB7pIBHICEAESFQoNaW5jbHVkZV90cmFjZRgEIAEoCBIYChBwZXJzaXN0X2FydGlmYWN0GAUgASgIEigKB2NvbnRleHQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlgKGkV4cGxhaW5TY2VuYXJpb1J1blJlc3BvbnNlEjoKCGFydGlmYWN0GAEgASgLMiguZmVybWF0YS52MS5FdmFsdWF0aW9uRGlhZ25vc3RpY0FydGlmYWN0IvEBCiJBbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2VSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoGcnVuX2lkGAMgASgJQge6SARyAhABEh8KF3N1c3BlY3RlZF9mYWlsdXJlX21vZGVzGAQgAygJEhUKDWluY2x1ZGVfdHJhY2UYBSABKAgSGAoQcGVyc2lzdF9hcnRpZmFjdBgGIAEoCBIoCgdjb250ZXh0GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJhCiNBbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2VSZXNwb25zZRI6CghhcnRpZmFjdBgBIAEoCzIoLmZlcm1hdGEudjEuRXZhbHVhdGlvbkRpYWdub3N0aWNBcnRpZmFjdCKRAgoeSnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lNZXRyaWNzEhEKCXByZWNpc2lvbhgBIAEoARIOCgZyZWNhbGwYAiABKAESEAoIZjFfc2NvcmUYAyABKAESEAoIYWNjdXJhY3kYBCABKAESIgoRdG90YWxfdmFsaWRhdGlvbnMYBSABKAVCB7pIBBoCKAASHwoOdHJ1ZV9wb3NpdGl2ZXMYBiABKAVCB7pIBBoCKAASIAoPZmFsc2VfcG9zaXRpdmVzGAcgASgFQge6SAQaAigAEh8KDnRydWVfbmVnYXRpdmVzGAggASgFQge6SAQaAigAEiAKD2ZhbHNlX25lZ2F0aXZlcxgJIAEoBUIHukgEGgIoACLAAQoeSnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4EiYKFWp1ZGdlX3Bhc3NfaHVtYW5fcGFzcxgBIAEoBUIHukgEGgIoABImChVqdWRnZV9wYXNzX2h1bWFuX2ZhaWwYAiABKAVCB7pIBBoCKAASJgoVanVkZ2VfZmFpbF9odW1hbl9wYXNzGAMgASgFQge6SAQaAigAEiYKFWp1ZGdlX2ZhaWxfaHVtYW5fZmFpbBgEIAEoBUIHukgEGgIoACLRAQoaSnVkZ2VWYWxpZGF0aW9uQmlhc01ldHJpY3MSFAoMb3Zlcl9zY29yaW5nGAEgASgIEhUKDXVuZGVyX3Njb3JpbmcYAiABKAgSEwoLc2NvcmVfZHJpZnQYAyABKAESGwoTYXZlcmFnZV9qdWRnZV9zY29yZRgEIAEoARIbChNhdmVyYWdlX2h1bWFuX3Njb3JlGAUgASgBEhkKEXNjb3JlX2NvcnJlbGF0aW9uGAYgASgBEhwKC3NhbXBsZV9zaXplGAcgASgFQge6SAQaAigAIpwBChpKdWRnZVZhbGlkYXRpb25DYWxpYnJhdGlvbhIZCghqdWRnZV9pZBgBIAEoCUIHukgEcgIQARIbChN2YWxpZGF0aW9uX2FjY3VyYWN5GAIgASgBEhEKCXZhbGlkYXRlZBgDIAEoCBIzCg9sYXN0X3ZhbGlkYXRpb24YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpkEChlKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uEh4KDWV2YWx1YXRpb25faWQYASABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAIgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgDIAEoCRIZCghqdWRnZV9pZBgEIAEoCUIHukgEcgIQARIXCg9zY2VuYXJpb19ydW5faWQYBSABKAkSFAoMYXNzZXJ0aW9uX2lkGAYgASgJEiwKC2p1ZGdlX3Njb3JlGAcgASgBQhe6SBQSEhkAAAAAAADwPykAAAAAAAAAABIUCgxqdWRnZV9wYXNzZWQYCCABKAgSFwoPaHVtYW5fdmFsaWRhdGVkGAkgASgIEjEKC2h1bWFuX3Njb3JlGAogASgBQhe6SBQSEhkAAAAAAABZQCkAAAAAAAAAAEgAiAEBEhgKEHZhbGlkYXRpb25fbm90ZXMYCyABKAkSDgoGc291cmNlGAwgASgJEjAKDGV2YWx1YXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2h1bWFuX3Njb3JlIkgKGUp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGUSGQoIanVkZ2VfaWQYASABKAlCB7pIBHICEAESEAoIYWNjdXJhY3kYAiABKAEiYAohR2V0SnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIZCghqdWRnZV9pZBgCIAEoCUIHukgEcgIQASJhCiJHZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlc3BvbnNlEjsKB21ldHJpY3MYASABKAsyKi5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5TWV0cmljcyJnCihHZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIZCghqdWRnZV9pZBgCIAEoCUIHukgEcgIQASJnCilHZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXNwb25zZRI6CgZtYXRyaXgYASABKAsyKi5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeCJcCh1HZXRKdWRnZVZhbGlkYXRpb25CaWFzUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiWQoeR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1Jlc3BvbnNlEjcKB21ldHJpY3MYASABKAsyJi5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkJpYXNNZXRyaWNzImAKIVJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiYQoiUmVjYWxpYnJhdGVKdWRnZVZhbGlkYXRpb25SZXNwb25zZRI7CgtjYWxpYnJhdGlvbhgBIAEoCzImLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uQ2FsaWJyYXRpb24ivQMKJlJlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXF1ZXN0EhUKDWV2YWx1YXRpb25faWQYASABKAkSIAoPb3JnYW5pemF0aW9uX2lkGAIgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgDIAEoCRIZCghqdWRnZV9pZBgEIAEoCUIHukgEcgIQARIXCg9zY2VuYXJpb19ydW5faWQYBSABKAkSFAoMYXNzZXJ0aW9uX2lkGAYgASgJEiwKC2p1ZGdlX3Njb3JlGAcgASgBQhe6SBQSEhkAAAAAAADwPykAAAAAAAAAABIUCgxqdWRnZV9wYXNzZWQYCCABKAgSFwoPaHVtYW5fdmFsaWRhdGVkGAkgASgIEjEKC2h1bWFuX3Njb3JlGAogASgBQhe6SBQSEhkAAAAAAABZQCkAAAAAAAAAAEgAiAEBEhgKEHZhbGlkYXRpb25fbm90ZXMYCyABKAkSDgoGc291cmNlGAwgASgJEjAKDGV2YWx1YXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2h1bWFuX3Njb3JlImQKJ1JlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXNwb25zZRI5CgpldmFsdWF0aW9uGAEgASgLMiUuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uIskBCihWYWxpZGF0ZUp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXF1ZXN0Eh4KDWV2YWx1YXRpb25faWQYASABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAIgASgJQge6SARyAhABEjEKC2h1bWFuX3Njb3JlGAMgASgBQhe6SBQSEhkAAAAAAABZQCkAAAAAAAAAAEgAiAEBEhgKEHZhbGlkYXRpb25fbm90ZXMYBCABKAlCDgoMX2h1bWFuX3Njb3JlImYKKVZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlc3BvbnNlEjkKCmV2YWx1YXRpb24YASABKAsyJS5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24ioAEKJUxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEiAKD21pbl92YWxpZGF0aW9ucxgCIAEoBUIHukgEGgIoABIzChJhY2N1cmFjeV90aHJlc2hvbGQYAyABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAIr8BCiZMaXN0SnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZXNSZXNwb25zZRI5CgpjYW5kaWRhdGVzGAEgAygLMiUuZmVybWF0YS52MS5KdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlEhwKC3RvdGFsX2NvdW50GAIgASgFQge6SAQaAigAEiAKD21pbl92YWxpZGF0aW9ucxgDIAEoBUIHukgEGgIoABIaChJhY2N1cmFjeV90aHJlc2hvbGQYBCABKAEiGwoZR2V0TWlncmF0aW9uU3RhdHVzUmVxdWVzdCJcChRSb3V0ZU1pZ3JhdGlvblN0YXR1cxITCgtwYXRoX3ByZWZpeBgBIAEoCRIQCghtaWdyYXRlZBgCIAEoCBIdChVwcm94aWVkX3JlcXVlc3RfY291bnQYAyABKAMiTgoaR2V0TWlncmF0aW9uU3RhdHVzUmVzcG9uc2USMAoGcm91dGVzGAEgAygLMiAuZmVybWF0YS52MS5Sb3V0ZU1pZ3JhdGlvblN0YXR1cyrnAQoNQXNzZXJ0aW9uS2luZBIeChpBU1NFUlRJT05fS0lORF9VTlNQRUNJRklFRBAAEhsKF0FTU0VSVElPTl9LSU5EX0NPTlRBSU5TEAESHwobQVNTRVJUSU9OX0tJTkRfTk9UX0NPTlRBSU5TEAISGAoUQVNTRVJUSU9OX0tJTkRfUkVHRVgQAxIdChlBU1NFUlRJT05fS0lORF9TSU1JTEFSSVRZEAQSHwobQVNTRVJUSU9OX0tJTkRfQ1VTVE9NX0pVREdFEAUSHgoaQVNTRVJUSU9OX0tJTkRfSlNPTl9TQ0hFTUEQBiqIAQoJSnVkZ2VLaW5kEhoKFkpVREdFX0tJTkRfVU5TUEVDSUZJRUQQABISCg5KVURHRV9LSU5EX0xMTRABEhkKFUpVREdFX0tJTkRfUlVMRV9CQVNFRBACEhkKFUpVREdFX0tJTkRfU0lNSUxBUklUWRADEhUKEUpVREdFX0tJTkRfQ1VTVE9NEAQqkwIKF1NjZW5hcmlvRW52aXJvbm1lbnRLaW5kEikKJVNDRU5BUklPX0VOVklST05NRU5UX0tJTkRfVU5TUEVDSUZJRUQQABIkCiBTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1JFUExBWRABEiYKIlNDRU5BUklPX0VOVklST05NRU5UX0tJTkRfU1RBUkxBUksQAhInCiNTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX01PQ0tfSFRUUBADEiUKIVNDRU5BUklPX0VOVklST05NRU5UX0tJTkRfU0FOREJPWBAEEi8KK1NDRU5BUklPX0VOVklST05NRU5UX0tJTkRfUFJPRFVDVElPTl9TSEFET1cQBSqnAgoVVXNlclNpbXVsYXRvclN0cmF0ZWd5EicKI1VTRVJfU0lNVUxBVE9SX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASJwojVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfQ09PUEVSQVRJVkUQARIhCh1VU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9SRUFDVBACEiIKHlVTRVJfU0lNVUxBVE9SX1NUUkFURUdZX1ZFUklGWRADEiYKIlVTRVJfU0lNVUxBVE9SX1NUUkFURUdZX1JFRkxFQ1RJT04QBBInCiNVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9BRFZFUlNBUklBTBAFEiQKIFVTRVJfU0lNVUxBVE9SX1NUUkFURUdZX0NPTkZVU0VEEAYqtgIKFE91dGNvbWVDcml0ZXJpb25LaW5kEiYKIk9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfVU5TUEVDSUZJRUQQABImCiJPVVRDT01FX0NSSVRFUklPTl9LSU5EX0ZJTkFMX1NUQVRFEAESKgomT1VUQ09NRV9DUklURVJJT05fS0lORF9UQVNLX0NPTVBMRVRJT04QAhIlCiFPVVRDT01FX0NSSVRFUklPTl9LSU5EX1RSQUpFQ1RPUlkQAxImCiJPVVRDT01FX0NSSVRFUklPTl9LSU5EX0NPU1RfQlVER0VUEAQSKQolT1VUQ09NRV9DUklURVJJT05fS0lORF9MQVRFTkNZX0JVREdFVBAFEigKJE9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfUVVBTElUWV9TQ09SRRAGKroDChdHb3Zlcm5hbmNlQXNzZXJ0aW9uVHlwZRIpCiVHT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASMQotR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9FU0NBTEFUSU9OX1JFUVVJUkVEEAESMwovR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9BVVRPX1BST0NFRURfRVhQRUNURUQQAhIxCi1HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX1JJU0tfQ0xBU1NJRklDQVRJT04QAxIyCi5HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX0RBVEFfQUNDRVNTX0JPVU5EQVJZEAQSOAo0R09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9HT1ZFUk5BTkNFX0JMT0NLX1JFU1BFQ1RFRBAFEjMKL0dPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfU0VMRl9BUFBST1ZBTF9CTE9DS0VEEAYSNgoyR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9QSUlfREVURUNURURfQU5EX0hBTkRMRUQQByqAAwoXRGVsZWdhdGlvbkFzc2VydGlvblR5cGUSKQolREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9VTlNQRUNJRklFRBAAEjcKM0RFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfREVMRUdBVElPTl9UQVJHRVRfQ09SUkVDVBABEjIKLkRFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfQ09OVEVYVF9QUkVTRVJWQVRJT04QAhIyCi5ERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0RFTEVHQVRJT05fVkFMVUVfQUREEAMSNQoxREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9ERUxFR0FUSU9OX0NPU1RfQk9VTkRFRBAEEjEKLURFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfQ0hBSU5fREVQVEhfQk9VTkRFRBAFEi8KK0RFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfRkFJTFVSRV9JU09MQVRJT04QBir8AQoRU2NlbmFyaW9SdW5TdGF0dXMSIwofU0NFTkFSSU9fUlVOX1NUQVRVU19VTlNQRUNJRklFRBAAEh8KG1NDRU5BUklPX1JVTl9TVEFUVVNfUEVORElORxABEh8KG1NDRU5BUklPX1JVTl9TVEFUVVNfUlVOTklORxACEh4KGlNDRU5BUklPX1JVTl9TVEFUVVNfUEFTU0VEEAMSHgoaU0NFTkFSSU9fUlVOX1NUQVRVU19GQUlMRUQQBBIdChlTQ0VOQVJJT19SVU5fU1RBVFVTX0VSUk9SEAUSIQodU0NFTkFSSU9fUlVOX1NUQVRVU19DQU5DRUxMRUQQBiqVAQoWRGlhZ25vc3RpY0FydGlmYWN0S2luZBIoCiRESUFHTk9TVElDX0FSVElGQUNUX0tJTkRfVU5TUEVDSUZJRUQQABIoCiRESUFHTk9TVElDX0FSVElGQUNUX0tJTkRfRVhQTEFOQVRJT04QARInCiNESUFHTk9TVElDX0FSVElGQUNUX0tJTkRfUk9PVF9DQVVTRRACKr4BChlEaWFnbm9zdGljRmluZGluZ1NldmVyaXR5EisKJ0RJQUdOT1NUSUNfRklORElOR19TRVZFUklUWV9VTlNQRUNJRklFRBAAEiQKIERJQUdOT1NUSUNfRklORElOR19TRVZFUklUWV9JTkZPEAESJwojRElBR05PU1RJQ19GSU5ESU5HX1NFVkVSSVRZX1dBUk5JTkcQAhIlCiFESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfRVJST1IQAzKFJQoORmVybWF0YVNlcnZpY2UShAEKD0NyZWF0ZVRlc3RTdWl0ZRIiLmZlcm1hdGEudjEuQ3JlYXRlVGVzdFN1aXRlUmVxdWVzdBojLmZlcm1hdGEudjEuQ3JlYXRlVGVzdFN1aXRlUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSegoMR2V0VGVzdFN1aXRlEh8uZmVybWF0YS52MS5HZXRUZXN0U3VpdGVSZXF1ZXN0GiAuZmVybWF0YS52MS5HZXRUZXN0U3VpdGVSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEoABCg5MaXN0VGVzdFN1aXRlcxIhLmZlcm1hdGEudjEuTGlzdFRlc3RTdWl0ZXNSZXF1ZXN0GiIuZmVybWF0YS52MS5MaXN0VGVzdFN1aXRlc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSgQEKDkNyZWF0ZVNjZW5hcmlvEiEuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1JlcXVlc3QaIi5mZXJtYXRhLnYxLkNyZWF0ZVNjZW5hcmlvUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSdwoLR2V0U2NlbmFyaW8SHi5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUmVxdWVzdBofLmZlcm1hdGEudjEuR2V0U2NlbmFyaW9SZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEn0KDUxpc3RTY2VuYXJpb3MSIC5mZXJtYXRhLnYxLkxpc3RTY2VuYXJpb3NSZXF1ZXN0GiEuZmVybWF0YS52MS5MaXN0U2NlbmFyaW9zUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKWAQoVVXBzZXJ0Q3VzdG9tRXZhbHVhdG9yEiguZmVybWF0YS52MS5VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0GikuZmVybWF0YS52MS5VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBKMAQoSR2V0Q3VzdG9tRXZhbHVhdG9yEiUuZmVybWF0YS52MS5HZXRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0GiYuZmVybWF0YS52MS5HZXRDdXN0b21FdmFsdWF0b3JSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpIBChRMaXN0Q3VzdG9tRXZhbHVhdG9ycxInLmZlcm1hdGEudjEuTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXF1ZXN0GiguZmVybWF0YS52MS5MaXN0Q3VzdG9tRXZhbHVhdG9yc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSlgEKFURlbGV0ZUN1c3RvbUV2YWx1YXRvchIoLmZlcm1hdGEudjEuRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVxdWVzdBopLmZlcm1hdGEudjEuRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSeAoLVXBzZXJ0SnVkZ2USHi5mZXJtYXRhLnYxLlVwc2VydEp1ZGdlUmVxdWVzdBofLmZlcm1hdGEudjEuVXBzZXJ0SnVkZ2VSZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBJuCghHZXRKdWRnZRIbLmZlcm1hdGEudjEuR2V0SnVkZ2VSZXF1ZXN0GhwuZmVybWF0YS52MS5HZXRKdWRnZVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSdAoKTGlzdEp1ZGdlcxIdLmZlcm1hdGEudjEuTGlzdEp1ZGdlc1JlcXVlc3QaHi5mZXJtYXRhLnYxLkxpc3RKdWRnZXNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEngKC0RlbGV0ZUp1ZGdlEh4uZmVybWF0YS52MS5EZWxldGVKdWRnZVJlcXVlc3QaHy5mZXJtYXRhLnYxLkRlbGV0ZUp1ZGdlUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSfgoNU3RhcnRTY2VuYXJpbxIgLmZlcm1hdGEudjEuU3RhcnRTY2VuYXJpb1JlcXVlc3QaIS5mZXJtYXRhLnYxLlN0YXJ0U2NlbmFyaW9SZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgD6vMYD29yZ2FuaXphdGlvbl9pZBKiAQoWQ3JlYXRlQW5kU3RhcnRTY2VuYXJpbxIpLmZlcm1hdGEudjEuQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1JlcXVlc3QaKi5mZXJtYXRhLnYxLkNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXNwb25zZSIxyvMYDWZlcm1hdGE6d3JpdGXY8xgD6vMYGHNjZW5hcmlvLm9yZ2FuaXphdGlvbl9pZBKKAQoRUmVjb3JkU2NlbmFyaW9SdW4SJC5mZXJtYXRhLnYxLlJlY29yZFNjZW5hcmlvUnVuUmVxdWVzdBolLmZlcm1hdGEudjEuUmVjb3JkU2NlbmFyaW9SdW5SZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBKAAQoOR2V0U2NlbmFyaW9SdW4SIS5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUnVuUmVxdWVzdBoiLmZlcm1hdGEudjEuR2V0U2NlbmFyaW9SdW5SZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEoYBChBMaXN0U2NlbmFyaW9SdW5zEiMuZmVybWF0YS52MS5MaXN0U2NlbmFyaW9SdW5zUmVxdWVzdBokLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvUnVuc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSvwEKI0dldEV2YWx1YXRpb25PYnNlcnZhYmlsaXR5RGFzaGJvYXJkEjYuZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uT2JzZXJ2YWJpbGl0eURhc2hib2FyZFJlcXVlc3QaNy5mZXJtYXRhLnYxLkdldEV2YWx1YXRpb25PYnNlcnZhYmlsaXR5RGFzaGJvYXJkUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKbAQoXR2V0RXZhbHVhdGlvblJ1bk1ldHJpY3MSKi5mZXJtYXRhLnYxLkdldEV2YWx1YXRpb25SdW5NZXRyaWNzUmVxdWVzdBorLmZlcm1hdGEudjEuR2V0RXZhbHVhdGlvblJ1bk1ldHJpY3NSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEq0BCh1HZXRFdmFsdWF0aW9uR292ZXJuYW5jZVJlcG9ydBIwLmZlcm1hdGEudjEuR2V0RXZhbHVhdGlvbkdvdmVybmFuY2VSZXBvcnRSZXF1ZXN0GjEuZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uR292ZXJuYW5jZVJlcG9ydFJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSjAEKEkV4cGxhaW5TY2VuYXJpb1J1bhIlLmZlcm1hdGEudjEuRXhwbGFpblNjZW5hcmlvUnVuUmVxdWVzdBomLmZlcm1hdGEudjEuRXhwbGFpblNjZW5hcmlvUnVuUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBKnAQobQW5hbHl6ZVNjZW5hcmlvUnVuUm9vdENhdXNlEi4uZmVybWF0YS52MS5BbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2VSZXF1ZXN0Gi8uZmVybWF0YS52MS5BbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2VSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGALq8xgPb3JnYW5pemF0aW9uX2lkEqQBChpHZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeRItLmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lSZXF1ZXN0Gi4uZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSuQEKIUdldEp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeBI0LmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVxdWVzdBo1LmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKYAQoWR2V0SnVkZ2VWYWxpZGF0aW9uQmlhcxIpLmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1JlcXVlc3QaKi5mZXJtYXRhLnYxLkdldEp1ZGdlVmFsaWRhdGlvbkJpYXNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEqUBChpSZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvbhItLmZlcm1hdGEudjEuUmVjYWxpYnJhdGVKdWRnZVZhbGlkYXRpb25SZXF1ZXN0Gi4uZmVybWF0YS52MS5SZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkErQBCh9SZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uEjIuZmVybWF0YS52MS5SZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBozLmZlcm1hdGEudjEuUmVjb3JkSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEroBCiFWYWxpZGF0ZUp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24SNC5mZXJtYXRhLnYxLlZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlcXVlc3QaNS5mZXJtYXRhLnYxLlZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkErABCh5MaXN0SnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZXMSMS5mZXJtYXRhLnYxLkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlc1JlcXVlc3QaMi5mZXJtYXRhLnYxLkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSbQoSR2V0TWlncmF0aW9uU3RhdHVzEiUuZmVybWF0YS52MS5HZXRNaWdyYXRpb25TdGF0dXNSZXF1ZXN0GiYuZmVybWF0YS52MS5HZXRNaWdyYXRpb25TdGF0dXNSZXNwb25zZSII2PMYAeDzGAFCOVo3Z2l0aHViLmNvbS9ldmFsb3BzL3BsYXRmb3JtL2dlbi9nby9mZXJtYXRhL3YxO2Zlcm1hdGF2MWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_analytics, file_common_v1_authz, file_common_v1_risk, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_traces_v1_traces]);
15
15
  /**
16
16
  * Describes the message fermata.v1.TestSuite.
17
17
  * Use `create(TestSuiteSchema)` to create a new message.
@@ -362,151 +362,181 @@ export const EvaluationRunResultMetricsSchema = /*@__PURE__*/ messageDesc(file_f
362
362
  * Use `create(GetEvaluationRunMetricsResponseSchema)` to create a new message.
363
363
  */
364
364
  export const GetEvaluationRunMetricsResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 69);
365
+ /**
366
+ * Describes the message fermata.v1.GetEvaluationGovernanceReportRequest.
367
+ * Use `create(GetEvaluationGovernanceReportRequestSchema)` to create a new message.
368
+ */
369
+ export const GetEvaluationGovernanceReportRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 70);
370
+ /**
371
+ * Describes the message fermata.v1.GovernanceAssertionAggregate.
372
+ * Use `create(GovernanceAssertionAggregateSchema)` to create a new message.
373
+ */
374
+ export const GovernanceAssertionAggregateSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 71);
375
+ /**
376
+ * Describes the message fermata.v1.GovernanceReportSummary.
377
+ * Use `create(GovernanceReportSummarySchema)` to create a new message.
378
+ */
379
+ export const GovernanceReportSummarySchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 72);
380
+ /**
381
+ * Describes the message fermata.v1.GovernanceRunSummary.
382
+ * Use `create(GovernanceRunSummarySchema)` to create a new message.
383
+ */
384
+ export const GovernanceRunSummarySchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 73);
385
+ /**
386
+ * Describes the message fermata.v1.GovernanceRiskSignal.
387
+ * Use `create(GovernanceRiskSignalSchema)` to create a new message.
388
+ */
389
+ export const GovernanceRiskSignalSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 74);
390
+ /**
391
+ * Describes the message fermata.v1.GetEvaluationGovernanceReportResponse.
392
+ * Use `create(GetEvaluationGovernanceReportResponseSchema)` to create a new message.
393
+ */
394
+ export const GetEvaluationGovernanceReportResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 75);
365
395
  /**
366
396
  * Describes the message fermata.v1.DiagnosticFinding.
367
397
  * Use `create(DiagnosticFindingSchema)` to create a new message.
368
398
  */
369
- export const DiagnosticFindingSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 70);
399
+ export const DiagnosticFindingSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 76);
370
400
  /**
371
401
  * Describes the message fermata.v1.EvaluationDiagnosticArtifact.
372
402
  * Use `create(EvaluationDiagnosticArtifactSchema)` to create a new message.
373
403
  */
374
- export const EvaluationDiagnosticArtifactSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 71);
404
+ export const EvaluationDiagnosticArtifactSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 77);
375
405
  /**
376
406
  * Describes the message fermata.v1.ExplainScenarioRunRequest.
377
407
  * Use `create(ExplainScenarioRunRequestSchema)` to create a new message.
378
408
  */
379
- export const ExplainScenarioRunRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 72);
409
+ export const ExplainScenarioRunRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 78);
380
410
  /**
381
411
  * Describes the message fermata.v1.ExplainScenarioRunResponse.
382
412
  * Use `create(ExplainScenarioRunResponseSchema)` to create a new message.
383
413
  */
384
- export const ExplainScenarioRunResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 73);
414
+ export const ExplainScenarioRunResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 79);
385
415
  /**
386
416
  * Describes the message fermata.v1.AnalyzeScenarioRunRootCauseRequest.
387
417
  * Use `create(AnalyzeScenarioRunRootCauseRequestSchema)` to create a new message.
388
418
  */
389
- export const AnalyzeScenarioRunRootCauseRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 74);
419
+ export const AnalyzeScenarioRunRootCauseRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 80);
390
420
  /**
391
421
  * Describes the message fermata.v1.AnalyzeScenarioRunRootCauseResponse.
392
422
  * Use `create(AnalyzeScenarioRunRootCauseResponseSchema)` to create a new message.
393
423
  */
394
- export const AnalyzeScenarioRunRootCauseResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 75);
424
+ export const AnalyzeScenarioRunRootCauseResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 81);
395
425
  /**
396
426
  * Describes the message fermata.v1.JudgeValidationAccuracyMetrics.
397
427
  * Use `create(JudgeValidationAccuracyMetricsSchema)` to create a new message.
398
428
  */
399
- export const JudgeValidationAccuracyMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 76);
429
+ export const JudgeValidationAccuracyMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 82);
400
430
  /**
401
431
  * Describes the message fermata.v1.JudgeValidationConfusionMatrix.
402
432
  * Use `create(JudgeValidationConfusionMatrixSchema)` to create a new message.
403
433
  */
404
- export const JudgeValidationConfusionMatrixSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 77);
434
+ export const JudgeValidationConfusionMatrixSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 83);
405
435
  /**
406
436
  * Describes the message fermata.v1.JudgeValidationBiasMetrics.
407
437
  * Use `create(JudgeValidationBiasMetricsSchema)` to create a new message.
408
438
  */
409
- export const JudgeValidationBiasMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 78);
439
+ export const JudgeValidationBiasMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 84);
410
440
  /**
411
441
  * Describes the message fermata.v1.JudgeValidationCalibration.
412
442
  * Use `create(JudgeValidationCalibrationSchema)` to create a new message.
413
443
  */
414
- export const JudgeValidationCalibrationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 79);
444
+ export const JudgeValidationCalibrationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 85);
415
445
  /**
416
446
  * Describes the message fermata.v1.JudgeValidationEvaluation.
417
447
  * Use `create(JudgeValidationEvaluationSchema)` to create a new message.
418
448
  */
419
- export const JudgeValidationEvaluationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 80);
449
+ export const JudgeValidationEvaluationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 86);
420
450
  /**
421
451
  * Describes the message fermata.v1.JudgeCalibrationCandidate.
422
452
  * Use `create(JudgeCalibrationCandidateSchema)` to create a new message.
423
453
  */
424
- export const JudgeCalibrationCandidateSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 81);
454
+ export const JudgeCalibrationCandidateSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 87);
425
455
  /**
426
456
  * Describes the message fermata.v1.GetJudgeValidationAccuracyRequest.
427
457
  * Use `create(GetJudgeValidationAccuracyRequestSchema)` to create a new message.
428
458
  */
429
- export const GetJudgeValidationAccuracyRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 82);
459
+ export const GetJudgeValidationAccuracyRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 88);
430
460
  /**
431
461
  * Describes the message fermata.v1.GetJudgeValidationAccuracyResponse.
432
462
  * Use `create(GetJudgeValidationAccuracyResponseSchema)` to create a new message.
433
463
  */
434
- export const GetJudgeValidationAccuracyResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 83);
464
+ export const GetJudgeValidationAccuracyResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 89);
435
465
  /**
436
466
  * Describes the message fermata.v1.GetJudgeValidationConfusionMatrixRequest.
437
467
  * Use `create(GetJudgeValidationConfusionMatrixRequestSchema)` to create a new message.
438
468
  */
439
- export const GetJudgeValidationConfusionMatrixRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 84);
469
+ export const GetJudgeValidationConfusionMatrixRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 90);
440
470
  /**
441
471
  * Describes the message fermata.v1.GetJudgeValidationConfusionMatrixResponse.
442
472
  * Use `create(GetJudgeValidationConfusionMatrixResponseSchema)` to create a new message.
443
473
  */
444
- export const GetJudgeValidationConfusionMatrixResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 85);
474
+ export const GetJudgeValidationConfusionMatrixResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 91);
445
475
  /**
446
476
  * Describes the message fermata.v1.GetJudgeValidationBiasRequest.
447
477
  * Use `create(GetJudgeValidationBiasRequestSchema)` to create a new message.
448
478
  */
449
- export const GetJudgeValidationBiasRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 86);
479
+ export const GetJudgeValidationBiasRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 92);
450
480
  /**
451
481
  * Describes the message fermata.v1.GetJudgeValidationBiasResponse.
452
482
  * Use `create(GetJudgeValidationBiasResponseSchema)` to create a new message.
453
483
  */
454
- export const GetJudgeValidationBiasResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 87);
484
+ export const GetJudgeValidationBiasResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 93);
455
485
  /**
456
486
  * Describes the message fermata.v1.RecalibrateJudgeValidationRequest.
457
487
  * Use `create(RecalibrateJudgeValidationRequestSchema)` to create a new message.
458
488
  */
459
- export const RecalibrateJudgeValidationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 88);
489
+ export const RecalibrateJudgeValidationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 94);
460
490
  /**
461
491
  * Describes the message fermata.v1.RecalibrateJudgeValidationResponse.
462
492
  * Use `create(RecalibrateJudgeValidationResponseSchema)` to create a new message.
463
493
  */
464
- export const RecalibrateJudgeValidationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 89);
494
+ export const RecalibrateJudgeValidationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 95);
465
495
  /**
466
496
  * Describes the message fermata.v1.RecordJudgeValidationEvaluationRequest.
467
497
  * Use `create(RecordJudgeValidationEvaluationRequestSchema)` to create a new message.
468
498
  */
469
- export const RecordJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 90);
499
+ export const RecordJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 96);
470
500
  /**
471
501
  * Describes the message fermata.v1.RecordJudgeValidationEvaluationResponse.
472
502
  * Use `create(RecordJudgeValidationEvaluationResponseSchema)` to create a new message.
473
503
  */
474
- export const RecordJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 91);
504
+ export const RecordJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 97);
475
505
  /**
476
506
  * Describes the message fermata.v1.ValidateJudgeValidationEvaluationRequest.
477
507
  * Use `create(ValidateJudgeValidationEvaluationRequestSchema)` to create a new message.
478
508
  */
479
- export const ValidateJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 92);
509
+ export const ValidateJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 98);
480
510
  /**
481
511
  * Describes the message fermata.v1.ValidateJudgeValidationEvaluationResponse.
482
512
  * Use `create(ValidateJudgeValidationEvaluationResponseSchema)` to create a new message.
483
513
  */
484
- export const ValidateJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 93);
514
+ export const ValidateJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 99);
485
515
  /**
486
516
  * Describes the message fermata.v1.ListJudgeCalibrationCandidatesRequest.
487
517
  * Use `create(ListJudgeCalibrationCandidatesRequestSchema)` to create a new message.
488
518
  */
489
- export const ListJudgeCalibrationCandidatesRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 94);
519
+ export const ListJudgeCalibrationCandidatesRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 100);
490
520
  /**
491
521
  * Describes the message fermata.v1.ListJudgeCalibrationCandidatesResponse.
492
522
  * Use `create(ListJudgeCalibrationCandidatesResponseSchema)` to create a new message.
493
523
  */
494
- export const ListJudgeCalibrationCandidatesResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 95);
524
+ export const ListJudgeCalibrationCandidatesResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 101);
495
525
  /**
496
526
  * Describes the message fermata.v1.GetMigrationStatusRequest.
497
527
  * Use `create(GetMigrationStatusRequestSchema)` to create a new message.
498
528
  */
499
- export const GetMigrationStatusRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 96);
529
+ export const GetMigrationStatusRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 102);
500
530
  /**
501
531
  * Describes the message fermata.v1.RouteMigrationStatus.
502
532
  * Use `create(RouteMigrationStatusSchema)` to create a new message.
503
533
  */
504
- export const RouteMigrationStatusSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 97);
534
+ export const RouteMigrationStatusSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 103);
505
535
  /**
506
536
  * Describes the message fermata.v1.GetMigrationStatusResponse.
507
537
  * Use `create(GetMigrationStatusResponseSchema)` to create a new message.
508
538
  */
509
- export const GetMigrationStatusResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 98);
539
+ export const GetMigrationStatusResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 104);
510
540
  /**
511
541
  * @generated from enum fermata.v1.AssertionKind
512
542
  */
@@ -1,6 +1,6 @@
1
1
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
2
  import type { EvidenceRef } from "../../common/v1/analytics_pb.js";
3
- import type { Duration, Value } from "@bufbuild/protobuf/wkt";
3
+ import type { Duration, Timestamp, Value } from "@bufbuild/protobuf/wkt";
4
4
  import type { JsonObject, Message } from "@bufbuild/protobuf";
5
5
  /**
6
6
  * Describes the file llmgateway/v1/gateway.proto.
@@ -265,6 +265,152 @@ export type ReviewRoutingRecommendationResponse = Message<"llmgateway.v1.ReviewR
265
265
  * Use `create(ReviewRoutingRecommendationResponseSchema)` to create a new message.
266
266
  */
267
267
  export declare const ReviewRoutingRecommendationResponseSchema: GenMessage<ReviewRoutingRecommendationResponse>;
268
+ /**
269
+ * @generated from message llmgateway.v1.PlanRoutingRecommendationCanaryRequest
270
+ */
271
+ export type PlanRoutingRecommendationCanaryRequest = Message<"llmgateway.v1.PlanRoutingRecommendationCanaryRequest"> & {
272
+ /**
273
+ * @generated from field: llmgateway.v1.RoutingRecommendation recommendation = 1;
274
+ */
275
+ recommendation?: RoutingRecommendation | undefined;
276
+ /**
277
+ * @generated from field: string approved_by = 2;
278
+ */
279
+ approvedBy: string;
280
+ /**
281
+ * @generated from field: string approval_id = 3;
282
+ */
283
+ approvalId: string;
284
+ /**
285
+ * @generated from field: string routing_target = 4;
286
+ */
287
+ routingTarget: string;
288
+ };
289
+ /**
290
+ * Describes the message llmgateway.v1.PlanRoutingRecommendationCanaryRequest.
291
+ * Use `create(PlanRoutingRecommendationCanaryRequestSchema)` to create a new message.
292
+ */
293
+ export declare const PlanRoutingRecommendationCanaryRequestSchema: GenMessage<PlanRoutingRecommendationCanaryRequest>;
294
+ /**
295
+ * @generated from message llmgateway.v1.RoutingRecommendationCanaryPlan
296
+ */
297
+ export type RoutingRecommendationCanaryPlan = Message<"llmgateway.v1.RoutingRecommendationCanaryPlan"> & {
298
+ /**
299
+ * @generated from field: string plan_id = 1;
300
+ */
301
+ planId: string;
302
+ /**
303
+ * @generated from field: string recommendation_id = 2;
304
+ */
305
+ recommendationId: string;
306
+ /**
307
+ * @generated from field: string organization_id = 3;
308
+ */
309
+ organizationId: string;
310
+ /**
311
+ * @generated from field: string workspace_id = 4;
312
+ */
313
+ workspaceId: string;
314
+ /**
315
+ * @generated from field: string task = 5;
316
+ */
317
+ task: string;
318
+ /**
319
+ * @generated from field: llmgateway.v1.RoutingRecommendationLifecycleStage current_stage = 6;
320
+ */
321
+ currentStage: RoutingRecommendationLifecycleStage;
322
+ /**
323
+ * @generated from field: repeated llmgateway.v1.RoutingWeight previous_weights = 7;
324
+ */
325
+ previousWeights: RoutingWeight[];
326
+ /**
327
+ * @generated from field: repeated llmgateway.v1.RoutingWeight proposed_weights = 8;
328
+ */
329
+ proposedWeights: RoutingWeight[];
330
+ /**
331
+ * @generated from field: google.protobuf.Timestamp accepted_at = 9;
332
+ */
333
+ acceptedAt?: Timestamp | undefined;
334
+ /**
335
+ * @generated from field: google.protobuf.Timestamp expires_at = 10;
336
+ */
337
+ expiresAt?: Timestamp | undefined;
338
+ /**
339
+ * @generated from field: string validation_query = 11;
340
+ */
341
+ validationQuery: string;
342
+ /**
343
+ * @generated from field: string revert_target = 12;
344
+ */
345
+ revertTarget: string;
346
+ /**
347
+ * @generated from field: repeated common.v1.EvidenceRef evidence = 13;
348
+ */
349
+ evidence: EvidenceRef[];
350
+ /**
351
+ * @generated from field: repeated string validation_gates = 14;
352
+ */
353
+ validationGates: string[];
354
+ /**
355
+ * @generated from field: repeated string audit_event_types = 15;
356
+ */
357
+ auditEventTypes: string[];
358
+ /**
359
+ * @generated from field: string routing_target = 16;
360
+ */
361
+ routingTarget: string;
362
+ /**
363
+ * @generated from field: string approval_id = 17;
364
+ */
365
+ approvalId: string;
366
+ /**
367
+ * @generated from field: string approved_by = 18;
368
+ */
369
+ approvedBy: string;
370
+ /**
371
+ * @generated from field: bool routing_change_applied = 19;
372
+ */
373
+ routingChangeApplied: boolean;
374
+ /**
375
+ * @generated from field: bool ready_for_manual_apply = 20;
376
+ */
377
+ readyForManualApply: boolean;
378
+ /**
379
+ * @generated from field: repeated string warnings = 21;
380
+ */
381
+ warnings: string[];
382
+ /**
383
+ * @generated from field: double max_weight_delta = 22;
384
+ */
385
+ maxWeightDelta: number;
386
+ };
387
+ /**
388
+ * Describes the message llmgateway.v1.RoutingRecommendationCanaryPlan.
389
+ * Use `create(RoutingRecommendationCanaryPlanSchema)` to create a new message.
390
+ */
391
+ export declare const RoutingRecommendationCanaryPlanSchema: GenMessage<RoutingRecommendationCanaryPlan>;
392
+ /**
393
+ * @generated from message llmgateway.v1.PlanRoutingRecommendationCanaryResponse
394
+ */
395
+ export type PlanRoutingRecommendationCanaryResponse = Message<"llmgateway.v1.PlanRoutingRecommendationCanaryResponse"> & {
396
+ /**
397
+ * @generated from field: string recommendation_id = 1;
398
+ */
399
+ recommendationId: string;
400
+ /**
401
+ * @generated from field: llmgateway.v1.RoutingRecommendationCanaryPlan plan = 2;
402
+ */
403
+ plan?: RoutingRecommendationCanaryPlan | undefined;
404
+ /**
405
+ * @generated from field: repeated string rejection_reasons = 3;
406
+ */
407
+ rejectionReasons: string[];
408
+ };
409
+ /**
410
+ * Describes the message llmgateway.v1.PlanRoutingRecommendationCanaryResponse.
411
+ * Use `create(PlanRoutingRecommendationCanaryResponseSchema)` to create a new message.
412
+ */
413
+ export declare const PlanRoutingRecommendationCanaryResponseSchema: GenMessage<PlanRoutingRecommendationCanaryResponse>;
268
414
  /**
269
415
  * @generated from message llmgateway.v1.ChatMessage
270
416
  */
@@ -552,6 +698,14 @@ export declare const GatewayService: GenService<{
552
698
  input: typeof ReviewRoutingRecommendationRequestSchema;
553
699
  output: typeof ReviewRoutingRecommendationResponseSchema;
554
700
  };
701
+ /**
702
+ * @generated from rpc llmgateway.v1.GatewayService.PlanRoutingRecommendationCanary
703
+ */
704
+ planRoutingRecommendationCanary: {
705
+ methodKind: "unary";
706
+ input: typeof PlanRoutingRecommendationCanaryRequestSchema;
707
+ output: typeof PlanRoutingRecommendationCanaryResponseSchema;
708
+ };
555
709
  /**
556
710
  * @generated from rpc llmgateway.v1.GatewayService.CreateMessage
557
711
  */
@@ -4,11 +4,11 @@
4
4
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
5
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js";
6
6
  import { file_common_v1_analytics } from "../../common/v1/analytics_pb.js";
7
- import { file_google_protobuf_duration, file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
7
+ import { file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
8
8
  /**
9
9
  * Describes the file llmgateway/v1/gateway.proto.
10
10
  */
11
- export const file_llmgateway_v1_gateway = /*@__PURE__*/ fileDesc("ChtsbG1nYXRld2F5L3YxL2dhdGV3YXkucHJvdG8SDWxsbWdhdGV3YXkudjEiEAoOR2V0SW5mb1JlcXVlc3Qi4gEKD0dldEluZm9SZXNwb25zZRIPCgdzZXJ2aWNlGAEgASgJEg8KB3ZlcnNpb24YAiABKAkSEgoKYXV0aF9tb2RlcxgDIAMoCRIYChByZXF1aXJlZF9oZWFkZXJzGAQgAygJEhcKD3JlcXVpcmVkX3Njb3BlcxgFIAMoCRIVCg1yZXNlcnZlZF9hcGlzGAYgAygJEhYKDmlkZW50aXR5X3BsYW5lGAcgASgJEhgKEGNyZWRlbnRpYWxzX21vZGUYCCABKAkSHQoVcHJvdmlkZXJfcmVmX2NvbnRyYWN0GAkgASgJInAKC1Byb3ZpZGVyUmVmEhkKCHByb3ZpZGVyGAEgASgJQge6SARyAhABEhwKC2Vudmlyb25tZW50GAIgASgJQge6SARyAhABEhcKD2NyZWRlbnRpYWxfbmFtZRgDIAEoCRIPCgd0ZWFtX2lkGAQgASgJIkAKCVByb21wdFJlZhIVCgRuYW1lGAEgASgJQge6SARyAhABEg8KB3N1cmZhY2UYAiABKAkSCwoDZW52GAMgASgJIpkBCg1Sb3V0aW5nV2VpZ2h0EhkKCHByb3ZpZGVyGAEgASgJQge6SARyAhABEhMKC2Vudmlyb25tZW50GAIgASgJEhcKD2NyZWRlbnRpYWxfbmFtZRgDIAEoCRIWCgVtb2RlbBgEIAEoCUIHukgEcgIQARInCgZ3ZWlnaHQYBSABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAItMEChVSb3V0aW5nUmVjb21tZW5kYXRpb24SIgoRcmVjb21tZW5kYXRpb25faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEh0KDHdvcmtzcGFjZV9pZBgDIAEoCUIHukgEcgIQARIkChNyZWNvbW1lbmRhdGlvbl90eXBlGAQgASgJQge6SARyAhABEhUKBHRhc2sYBSABKAlCB7pIBHICEAESSwoPcmVxdWVzdGVkX3N0YWdlGAYgASgOMjIubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25MaWZlY3ljbGVTdGFnZRJAChBwcmV2aW91c193ZWlnaHRzGAcgAygLMhwubGxtZ2F0ZXdheS52MS5Sb3V0aW5nV2VpZ2h0Qgi6SAWSAQIIARJAChBwcm9wb3NlZF93ZWlnaHRzGAggAygLMhwubGxtZ2F0ZXdheS52MS5Sb3V0aW5nV2VpZ2h0Qgi6SAWSAQIIARIuCgN0dGwYCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CBrpIA8gBARIhChB2YWxpZGF0aW9uX3F1ZXJ5GAogASgJQge6SARyAhABEh4KDXJldmVydF90YXJnZXQYCyABKAlCB7pIBHICEAESMgoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWZCCLpIBZIBAggBEikKCG1ldGFkYXRhGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJqCiJSZXZpZXdSb3V0aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0EkQKDnJlY29tbWVuZGF0aW9uGAEgASgLMiQubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25CBrpIA8gBASLpAgojUmV2aWV3Um91dGluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USGQoRcmVjb21tZW5kYXRpb25faWQYASABKAkSGwoTYWNjZXB0ZWRfZm9yX3JldmlldxgCIAEoCBJJCg1jdXJyZW50X3N0YWdlGAMgASgOMjIubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25MaWZlY3ljbGVTdGFnZRIeChZtYW51YWxfcmV2aWV3X3JlcXVpcmVkGAQgASgIEhwKFGNhbmFyeV9hcHBseV9hbGxvd2VkGAUgASgIEhoKEmF1dG9fYXBwbHlfYWxsb3dlZBgGIAEoCBIeChZyb3V0aW5nX2NoYW5nZV9hcHBsaWVkGAcgASgIEhkKEXJlamVjdGlvbl9yZWFzb25zGAggAygJEhAKCHdhcm5pbmdzGAkgAygJEhgKEG1heF93ZWlnaHRfZGVsdGEYCiABKAEiiQEKC0NoYXRNZXNzYWdlEhUKBHJvbGUYASABKAlCB7pIBHICEAESLwoHY29udGVudBgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIGukgDyAEBEjIKEWFkZGl0aW9uYWxfZmllbGRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLRAgoUQ3JlYXRlTWVzc2FnZVJlcXVlc3QSFgoFbW9kZWwYASABKAlCB7pIBHICEAESNgoIbWVzc2FnZXMYAiADKAsyGi5sbG1nYXRld2F5LnYxLkNoYXRNZXNzYWdlQgi6SAWSAQIIARI4Cgxwcm92aWRlcl9yZWYYAyABKAsyGi5sbG1nYXRld2F5LnYxLlByb3ZpZGVyUmVmQga6SAPIAQESDgoGc3RyZWFtGAQgASgIEikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIyChFhZGRpdGlvbmFsX2ZpZWxkcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLAoKcHJvbXB0X3JlZhgHIAEoCzIYLmxsbWdhdGV3YXkudjEuUHJvbXB0UmVmEhIKCmxpbmVhZ2VfaWQYCCABKAkiyQIKFUNyZWF0ZVJlc3BvbnNlUmVxdWVzdBIWCgVtb2RlbBgBIAEoCUIHukgEcgIQARItCgVpbnB1dBgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIGukgDyAEBEjgKDHByb3ZpZGVyX3JlZhgDIAEoCzIaLmxsbWdhdGV3YXkudjEuUHJvdmlkZXJSZWZCBrpIA8gBARIOCgZzdHJlYW0YBCABKAgSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjIKEWFkZGl0aW9uYWxfZmllbGRzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIsCgpwcm9tcHRfcmVmGAcgASgLMhgubGxtZ2F0ZXdheS52MS5Qcm9tcHRSZWYSEgoKbGluZWFnZV9pZBgIIAEoCSLYAgobQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXF1ZXN0EhYKBW1vZGVsGAEgASgJQge6SARyAhABEjYKCG1lc3NhZ2VzGAIgAygLMhoubGxtZ2F0ZXdheS52MS5DaGF0TWVzc2FnZUIIukgFkgECCAESOAoMcHJvdmlkZXJfcmVmGAMgASgLMhoubGxtZ2F0ZXdheS52MS5Qcm92aWRlclJlZkIGukgDyAEBEg4KBnN0cmVhbRgEIAEoCBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMgoRYWRkaXRpb25hbF9maWVsZHMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiwKCnByb21wdF9yZWYYByABKAsyGC5sbG1nYXRld2F5LnYxLlByb21wdFJlZhISCgpsaW5lYWdlX2lkGAggASgJIowCChZDcmVhdGVFbWJlZGRpbmdSZXF1ZXN0EhYKBW1vZGVsGAEgASgJQge6SARyAhABEi0KBWlucHV0GAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQga6SAPIAQESOAoMcHJvdmlkZXJfcmVmGAMgASgLMhoubGxtZ2F0ZXdheS52MS5Qcm92aWRlclJlZkIGukgDyAEBEikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIyChFhZGRpdGlvbmFsX2ZpZWxkcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKbGluZWFnZV9pZBgGIAEoCSJAChVDcmVhdGVNZXNzYWdlUmVzcG9uc2USJwoHcGF5bG9hZBgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSJBChZDcmVhdGVSZXNwb25zZVJlc3BvbnNlEicKB3BheWxvYWQYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUiRwocQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXNwb25zZRInCgdwYXlsb2FkGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlIkIKF0NyZWF0ZUVtYmVkZGluZ1Jlc3BvbnNlEicKB3BheWxvYWQYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUqrgIKI1JvdXRpbmdSZWNvbW1lbmRhdGlvbkxpZmVjeWNsZVN0YWdlEjYKMlJPVVRJTkdfUkVDT01NRU5EQVRJT05fTElGRUNZQ0xFX1NUQUdFX1VOU1BFQ0lGSUVEEAASMQotUk9VVElOR19SRUNPTU1FTkRBVElPTl9MSUZFQ1lDTEVfU1RBR0VfTk9USUZZEAESMgouUk9VVElOR19SRUNPTU1FTkRBVElPTl9MSUZFQ1lDTEVfU1RBR0VfU1VHR0VTVBACEjEKLVJPVVRJTkdfUkVDT01NRU5EQVRJT05fTElGRUNZQ0xFX1NUQUdFX0NBTkFSWRADEjUKMVJPVVRJTkdfUkVDT01NRU5EQVRJT05fTElGRUNZQ0xFX1NUQUdFX0FVVE9fQVBQTFkQBDLvBAoOR2F0ZXdheVNlcnZpY2USSAoHR2V0SW5mbxIdLmxsbWdhdGV3YXkudjEuR2V0SW5mb1JlcXVlc3QaHi5sbG1nYXRld2F5LnYxLkdldEluZm9SZXNwb25zZRKEAQobUmV2aWV3Um91dGluZ1JlY29tbWVuZGF0aW9uEjEubGxtZ2F0ZXdheS52MS5SZXZpZXdSb3V0aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0GjIubGxtZ2F0ZXdheS52MS5SZXZpZXdSb3V0aW5nUmVjb21tZW5kYXRpb25SZXNwb25zZRJaCg1DcmVhdGVNZXNzYWdlEiMubGxtZ2F0ZXdheS52MS5DcmVhdGVNZXNzYWdlUmVxdWVzdBokLmxsbWdhdGV3YXkudjEuQ3JlYXRlTWVzc2FnZVJlc3BvbnNlEl0KDkNyZWF0ZVJlc3BvbnNlEiQubGxtZ2F0ZXdheS52MS5DcmVhdGVSZXNwb25zZVJlcXVlc3QaJS5sbG1nYXRld2F5LnYxLkNyZWF0ZVJlc3BvbnNlUmVzcG9uc2USbwoUQ3JlYXRlQ2hhdENvbXBsZXRpb24SKi5sbG1nYXRld2F5LnYxLkNyZWF0ZUNoYXRDb21wbGV0aW9uUmVxdWVzdBorLmxsbWdhdGV3YXkudjEuQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXNwb25zZRJgCg9DcmVhdGVFbWJlZGRpbmcSJS5sbG1nYXRld2F5LnYxLkNyZWF0ZUVtYmVkZGluZ1JlcXVlc3QaJi5sbG1nYXRld2F5LnYxLkNyZWF0ZUVtYmVkZGluZ1Jlc3BvbnNlQj9aPWdpdGh1Yi5jb20vZXZhbG9wcy9wbGF0Zm9ybS9nZW4vZ28vbGxtZ2F0ZXdheS92MTtsbG1nYXRld2F5djFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_analytics, file_google_protobuf_duration, file_google_protobuf_struct]);
11
+ export const file_llmgateway_v1_gateway = /*@__PURE__*/ fileDesc("ChtsbG1nYXRld2F5L3YxL2dhdGV3YXkucHJvdG8SDWxsbWdhdGV3YXkudjEiEAoOR2V0SW5mb1JlcXVlc3Qi4gEKD0dldEluZm9SZXNwb25zZRIPCgdzZXJ2aWNlGAEgASgJEg8KB3ZlcnNpb24YAiABKAkSEgoKYXV0aF9tb2RlcxgDIAMoCRIYChByZXF1aXJlZF9oZWFkZXJzGAQgAygJEhcKD3JlcXVpcmVkX3Njb3BlcxgFIAMoCRIVCg1yZXNlcnZlZF9hcGlzGAYgAygJEhYKDmlkZW50aXR5X3BsYW5lGAcgASgJEhgKEGNyZWRlbnRpYWxzX21vZGUYCCABKAkSHQoVcHJvdmlkZXJfcmVmX2NvbnRyYWN0GAkgASgJInAKC1Byb3ZpZGVyUmVmEhkKCHByb3ZpZGVyGAEgASgJQge6SARyAhABEhwKC2Vudmlyb25tZW50GAIgASgJQge6SARyAhABEhcKD2NyZWRlbnRpYWxfbmFtZRgDIAEoCRIPCgd0ZWFtX2lkGAQgASgJIkAKCVByb21wdFJlZhIVCgRuYW1lGAEgASgJQge6SARyAhABEg8KB3N1cmZhY2UYAiABKAkSCwoDZW52GAMgASgJIpkBCg1Sb3V0aW5nV2VpZ2h0EhkKCHByb3ZpZGVyGAEgASgJQge6SARyAhABEhMKC2Vudmlyb25tZW50GAIgASgJEhcKD2NyZWRlbnRpYWxfbmFtZRgDIAEoCRIWCgVtb2RlbBgEIAEoCUIHukgEcgIQARInCgZ3ZWlnaHQYBSABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAItMEChVSb3V0aW5nUmVjb21tZW5kYXRpb24SIgoRcmVjb21tZW5kYXRpb25faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEh0KDHdvcmtzcGFjZV9pZBgDIAEoCUIHukgEcgIQARIkChNyZWNvbW1lbmRhdGlvbl90eXBlGAQgASgJQge6SARyAhABEhUKBHRhc2sYBSABKAlCB7pIBHICEAESSwoPcmVxdWVzdGVkX3N0YWdlGAYgASgOMjIubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25MaWZlY3ljbGVTdGFnZRJAChBwcmV2aW91c193ZWlnaHRzGAcgAygLMhwubGxtZ2F0ZXdheS52MS5Sb3V0aW5nV2VpZ2h0Qgi6SAWSAQIIARJAChBwcm9wb3NlZF93ZWlnaHRzGAggAygLMhwubGxtZ2F0ZXdheS52MS5Sb3V0aW5nV2VpZ2h0Qgi6SAWSAQIIARIuCgN0dGwYCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CBrpIA8gBARIhChB2YWxpZGF0aW9uX3F1ZXJ5GAogASgJQge6SARyAhABEh4KDXJldmVydF90YXJnZXQYCyABKAlCB7pIBHICEAESMgoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWZCCLpIBZIBAggBEikKCG1ldGFkYXRhGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJqCiJSZXZpZXdSb3V0aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0EkQKDnJlY29tbWVuZGF0aW9uGAEgASgLMiQubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25CBrpIA8gBASLpAgojUmV2aWV3Um91dGluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USGQoRcmVjb21tZW5kYXRpb25faWQYASABKAkSGwoTYWNjZXB0ZWRfZm9yX3JldmlldxgCIAEoCBJJCg1jdXJyZW50X3N0YWdlGAMgASgOMjIubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25MaWZlY3ljbGVTdGFnZRIeChZtYW51YWxfcmV2aWV3X3JlcXVpcmVkGAQgASgIEhwKFGNhbmFyeV9hcHBseV9hbGxvd2VkGAUgASgIEhoKEmF1dG9fYXBwbHlfYWxsb3dlZBgGIAEoCBIeChZyb3V0aW5nX2NoYW5nZV9hcHBsaWVkGAcgASgIEhkKEXJlamVjdGlvbl9yZWFzb25zGAggAygJEhAKCHdhcm5pbmdzGAkgAygJEhgKEG1heF93ZWlnaHRfZGVsdGEYCiABKAEiywEKJlBsYW5Sb3V0aW5nUmVjb21tZW5kYXRpb25DYW5hcnlSZXF1ZXN0EkQKDnJlY29tbWVuZGF0aW9uGAEgASgLMiQubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25CBrpIA8gBARIcCgthcHByb3ZlZF9ieRgCIAEoCUIHukgEcgIQARIcCgthcHByb3ZhbF9pZBgDIAEoCUIHukgEcgIQARIfCg5yb3V0aW5nX3RhcmdldBgEIAEoCUIHukgEcgIQASLkBQofUm91dGluZ1JlY29tbWVuZGF0aW9uQ2FuYXJ5UGxhbhIPCgdwbGFuX2lkGAEgASgJEhkKEXJlY29tbWVuZGF0aW9uX2lkGAIgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIUCgx3b3Jrc3BhY2VfaWQYBCABKAkSDAoEdGFzaxgFIAEoCRJJCg1jdXJyZW50X3N0YWdlGAYgASgOMjIubGxtZ2F0ZXdheS52MS5Sb3V0aW5nUmVjb21tZW5kYXRpb25MaWZlY3ljbGVTdGFnZRI2ChBwcmV2aW91c193ZWlnaHRzGAcgAygLMhwubGxtZ2F0ZXdheS52MS5Sb3V0aW5nV2VpZ2h0EjYKEHByb3Bvc2VkX3dlaWdodHMYCCADKAsyHC5sbG1nYXRld2F5LnYxLlJvdXRpbmdXZWlnaHQSLwoLYWNjZXB0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHZhbGlkYXRpb25fcXVlcnkYCyABKAkSFQoNcmV2ZXJ0X3RhcmdldBgMIAEoCRIoCghldmlkZW5jZRgNIAMoCzIWLmNvbW1vbi52MS5FdmlkZW5jZVJlZhIYChB2YWxpZGF0aW9uX2dhdGVzGA4gAygJEhkKEWF1ZGl0X2V2ZW50X3R5cGVzGA8gAygJEhYKDnJvdXRpbmdfdGFyZ2V0GBAgASgJEhMKC2FwcHJvdmFsX2lkGBEgASgJEhMKC2FwcHJvdmVkX2J5GBIgASgJEh4KFnJvdXRpbmdfY2hhbmdlX2FwcGxpZWQYEyABKAgSHgoWcmVhZHlfZm9yX21hbnVhbF9hcHBseRgUIAEoCBIQCgh3YXJuaW5ncxgVIAMoCRIYChBtYXhfd2VpZ2h0X2RlbHRhGBYgASgBIp0BCidQbGFuUm91dGluZ1JlY29tbWVuZGF0aW9uQ2FuYXJ5UmVzcG9uc2USGQoRcmVjb21tZW5kYXRpb25faWQYASABKAkSPAoEcGxhbhgCIAEoCzIuLmxsbWdhdGV3YXkudjEuUm91dGluZ1JlY29tbWVuZGF0aW9uQ2FuYXJ5UGxhbhIZChFyZWplY3Rpb25fcmVhc29ucxgDIAMoCSKJAQoLQ2hhdE1lc3NhZ2USFQoEcm9sZRgBIAEoCUIHukgEcgIQARIvCgdjb250ZW50GAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQga6SAPIAQESMgoRYWRkaXRpb25hbF9maWVsZHMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ItECChRDcmVhdGVNZXNzYWdlUmVxdWVzdBIWCgVtb2RlbBgBIAEoCUIHukgEcgIQARI2CghtZXNzYWdlcxgCIAMoCzIaLmxsbWdhdGV3YXkudjEuQ2hhdE1lc3NhZ2VCCLpIBZIBAggBEjgKDHByb3ZpZGVyX3JlZhgDIAEoCzIaLmxsbWdhdGV3YXkudjEuUHJvdmlkZXJSZWZCBrpIA8gBARIOCgZzdHJlYW0YBCABKAgSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjIKEWFkZGl0aW9uYWxfZmllbGRzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIsCgpwcm9tcHRfcmVmGAcgASgLMhgubGxtZ2F0ZXdheS52MS5Qcm9tcHRSZWYSEgoKbGluZWFnZV9pZBgIIAEoCSLJAgoVQ3JlYXRlUmVzcG9uc2VSZXF1ZXN0EhYKBW1vZGVsGAEgASgJQge6SARyAhABEi0KBWlucHV0GAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQga6SAPIAQESOAoMcHJvdmlkZXJfcmVmGAMgASgLMhoubGxtZ2F0ZXdheS52MS5Qcm92aWRlclJlZkIGukgDyAEBEg4KBnN0cmVhbRgEIAEoCBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMgoRYWRkaXRpb25hbF9maWVsZHMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiwKCnByb21wdF9yZWYYByABKAsyGC5sbG1nYXRld2F5LnYxLlByb21wdFJlZhISCgpsaW5lYWdlX2lkGAggASgJItgCChtDcmVhdGVDaGF0Q29tcGxldGlvblJlcXVlc3QSFgoFbW9kZWwYASABKAlCB7pIBHICEAESNgoIbWVzc2FnZXMYAiADKAsyGi5sbG1nYXRld2F5LnYxLkNoYXRNZXNzYWdlQgi6SAWSAQIIARI4Cgxwcm92aWRlcl9yZWYYAyABKAsyGi5sbG1nYXRld2F5LnYxLlByb3ZpZGVyUmVmQga6SAPIAQESDgoGc3RyZWFtGAQgASgIEikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIyChFhZGRpdGlvbmFsX2ZpZWxkcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLAoKcHJvbXB0X3JlZhgHIAEoCzIYLmxsbWdhdGV3YXkudjEuUHJvbXB0UmVmEhIKCmxpbmVhZ2VfaWQYCCABKAkijAIKFkNyZWF0ZUVtYmVkZGluZ1JlcXVlc3QSFgoFbW9kZWwYASABKAlCB7pIBHICEAESLQoFaW5wdXQYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVCBrpIA8gBARI4Cgxwcm92aWRlcl9yZWYYAyABKAsyGi5sbG1nYXRld2F5LnYxLlByb3ZpZGVyUmVmQga6SAPIAQESKQoIbWV0YWRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjIKEWFkZGl0aW9uYWxfZmllbGRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgpsaW5lYWdlX2lkGAYgASgJIkAKFUNyZWF0ZU1lc3NhZ2VSZXNwb25zZRInCgdwYXlsb2FkGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlIkEKFkNyZWF0ZVJlc3BvbnNlUmVzcG9uc2USJwoHcGF5bG9hZBgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSJHChxDcmVhdGVDaGF0Q29tcGxldGlvblJlc3BvbnNlEicKB3BheWxvYWQYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUiQgoXQ3JlYXRlRW1iZWRkaW5nUmVzcG9uc2USJwoHcGF5bG9hZBgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSquAgojUm91dGluZ1JlY29tbWVuZGF0aW9uTGlmZWN5Y2xlU3RhZ2USNgoyUk9VVElOR19SRUNPTU1FTkRBVElPTl9MSUZFQ1lDTEVfU1RBR0VfVU5TUEVDSUZJRUQQABIxCi1ST1VUSU5HX1JFQ09NTUVOREFUSU9OX0xJRkVDWUNMRV9TVEFHRV9OT1RJRlkQARIyCi5ST1VUSU5HX1JFQ09NTUVOREFUSU9OX0xJRkVDWUNMRV9TVEFHRV9TVUdHRVNUEAISMQotUk9VVElOR19SRUNPTU1FTkRBVElPTl9MSUZFQ1lDTEVfU1RBR0VfQ0FOQVJZEAMSNQoxUk9VVElOR19SRUNPTU1FTkRBVElPTl9MSUZFQ1lDTEVfU1RBR0VfQVVUT19BUFBMWRAEMoIGCg5HYXRld2F5U2VydmljZRJICgdHZXRJbmZvEh0ubGxtZ2F0ZXdheS52MS5HZXRJbmZvUmVxdWVzdBoeLmxsbWdhdGV3YXkudjEuR2V0SW5mb1Jlc3BvbnNlEoQBChtSZXZpZXdSb3V0aW5nUmVjb21tZW5kYXRpb24SMS5sbG1nYXRld2F5LnYxLlJldmlld1JvdXRpbmdSZWNvbW1lbmRhdGlvblJlcXVlc3QaMi5sbG1nYXRld2F5LnYxLlJldmlld1JvdXRpbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlEpABCh9QbGFuUm91dGluZ1JlY29tbWVuZGF0aW9uQ2FuYXJ5EjUubGxtZ2F0ZXdheS52MS5QbGFuUm91dGluZ1JlY29tbWVuZGF0aW9uQ2FuYXJ5UmVxdWVzdBo2LmxsbWdhdGV3YXkudjEuUGxhblJvdXRpbmdSZWNvbW1lbmRhdGlvbkNhbmFyeVJlc3BvbnNlEloKDUNyZWF0ZU1lc3NhZ2USIy5sbG1nYXRld2F5LnYxLkNyZWF0ZU1lc3NhZ2VSZXF1ZXN0GiQubGxtZ2F0ZXdheS52MS5DcmVhdGVNZXNzYWdlUmVzcG9uc2USXQoOQ3JlYXRlUmVzcG9uc2USJC5sbG1nYXRld2F5LnYxLkNyZWF0ZVJlc3BvbnNlUmVxdWVzdBolLmxsbWdhdGV3YXkudjEuQ3JlYXRlUmVzcG9uc2VSZXNwb25zZRJvChRDcmVhdGVDaGF0Q29tcGxldGlvbhIqLmxsbWdhdGV3YXkudjEuQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXF1ZXN0GisubGxtZ2F0ZXdheS52MS5DcmVhdGVDaGF0Q29tcGxldGlvblJlc3BvbnNlEmAKD0NyZWF0ZUVtYmVkZGluZxIlLmxsbWdhdGV3YXkudjEuQ3JlYXRlRW1iZWRkaW5nUmVxdWVzdBomLmxsbWdhdGV3YXkudjEuQ3JlYXRlRW1iZWRkaW5nUmVzcG9uc2VCP1o9Z2l0aHViLmNvbS9ldmFsb3BzL3BsYXRmb3JtL2dlbi9nby9sbG1nYXRld2F5L3YxO2xsbWdhdGV3YXl2MWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_analytics, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp]);
12
12
  /**
13
13
  * Describes the message llmgateway.v1.GetInfoRequest.
14
14
  * Use `create(GetInfoRequestSchema)` to create a new message.
@@ -49,51 +49,66 @@ export const ReviewRoutingRecommendationRequestSchema = /*@__PURE__*/ messageDes
49
49
  * Use `create(ReviewRoutingRecommendationResponseSchema)` to create a new message.
50
50
  */
51
51
  export const ReviewRoutingRecommendationResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 7);
52
+ /**
53
+ * Describes the message llmgateway.v1.PlanRoutingRecommendationCanaryRequest.
54
+ * Use `create(PlanRoutingRecommendationCanaryRequestSchema)` to create a new message.
55
+ */
56
+ export const PlanRoutingRecommendationCanaryRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 8);
57
+ /**
58
+ * Describes the message llmgateway.v1.RoutingRecommendationCanaryPlan.
59
+ * Use `create(RoutingRecommendationCanaryPlanSchema)` to create a new message.
60
+ */
61
+ export const RoutingRecommendationCanaryPlanSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 9);
62
+ /**
63
+ * Describes the message llmgateway.v1.PlanRoutingRecommendationCanaryResponse.
64
+ * Use `create(PlanRoutingRecommendationCanaryResponseSchema)` to create a new message.
65
+ */
66
+ export const PlanRoutingRecommendationCanaryResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 10);
52
67
  /**
53
68
  * Describes the message llmgateway.v1.ChatMessage.
54
69
  * Use `create(ChatMessageSchema)` to create a new message.
55
70
  */
56
- export const ChatMessageSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 8);
71
+ export const ChatMessageSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 11);
57
72
  /**
58
73
  * Describes the message llmgateway.v1.CreateMessageRequest.
59
74
  * Use `create(CreateMessageRequestSchema)` to create a new message.
60
75
  */
61
- export const CreateMessageRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 9);
76
+ export const CreateMessageRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 12);
62
77
  /**
63
78
  * Describes the message llmgateway.v1.CreateResponseRequest.
64
79
  * Use `create(CreateResponseRequestSchema)` to create a new message.
65
80
  */
66
- export const CreateResponseRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 10);
81
+ export const CreateResponseRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 13);
67
82
  /**
68
83
  * Describes the message llmgateway.v1.CreateChatCompletionRequest.
69
84
  * Use `create(CreateChatCompletionRequestSchema)` to create a new message.
70
85
  */
71
- export const CreateChatCompletionRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 11);
86
+ export const CreateChatCompletionRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 14);
72
87
  /**
73
88
  * Describes the message llmgateway.v1.CreateEmbeddingRequest.
74
89
  * Use `create(CreateEmbeddingRequestSchema)` to create a new message.
75
90
  */
76
- export const CreateEmbeddingRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 12);
91
+ export const CreateEmbeddingRequestSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 15);
77
92
  /**
78
93
  * Describes the message llmgateway.v1.CreateMessageResponse.
79
94
  * Use `create(CreateMessageResponseSchema)` to create a new message.
80
95
  */
81
- export const CreateMessageResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 13);
96
+ export const CreateMessageResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 16);
82
97
  /**
83
98
  * Describes the message llmgateway.v1.CreateResponseResponse.
84
99
  * Use `create(CreateResponseResponseSchema)` to create a new message.
85
100
  */
86
- export const CreateResponseResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 14);
101
+ export const CreateResponseResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 17);
87
102
  /**
88
103
  * Describes the message llmgateway.v1.CreateChatCompletionResponse.
89
104
  * Use `create(CreateChatCompletionResponseSchema)` to create a new message.
90
105
  */
91
- export const CreateChatCompletionResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 15);
106
+ export const CreateChatCompletionResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 18);
92
107
  /**
93
108
  * Describes the message llmgateway.v1.CreateEmbeddingResponse.
94
109
  * Use `create(CreateEmbeddingResponseSchema)` to create a new message.
95
110
  */
96
- export const CreateEmbeddingResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 16);
111
+ export const CreateEmbeddingResponseSchema = /*@__PURE__*/ messageDesc(file_llmgateway_v1_gateway, 19);
97
112
  /**
98
113
  * @generated from enum llmgateway.v1.RoutingRecommendationLifecycleStage
99
114
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evalops/sdk-ts",
3
- "version": "0.1.68",
3
+ "version": "0.1.70",
4
4
  "description": "Generated TypeScript SDK protobuf types for EvalOps public APIs",
5
5
  "type": "module",
6
6
  "sideEffects": false,