@valon-technologies/gestalt 0.0.1-alpha.35 → 0.0.1-alpha.37

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.
@@ -6,16 +6,25 @@ import {
6
6
  type Client,
7
7
  type ServiceImpl,
8
8
  } from "@connectrpc/connect";
9
+ import { EmptySchema } from "@bufbuild/protobuf/wkt";
9
10
 
10
11
  import {
12
+ ActionSchema,
13
+ AddRelationshipRequestSchema,
11
14
  AddRelationshipResponseSchema,
15
+ AuthorizationModelSchema,
16
+ AuthorizationModelResourceTypeFilterSchema,
12
17
  AuthorizationModelRefSchema,
13
18
  AuthorizationModelResourceTypeSchema,
19
+ CheckAccessManyRequestSchema,
14
20
  CheckAccessManyResponseSchema,
21
+ CheckAccessRequestSchema,
15
22
  CheckAccessResponseSchema,
16
23
  DefaultAccessPolicy as ProtoDefaultAccessPolicy,
24
+ DeleteRelationshipRequestSchema,
17
25
  DeleteRelationshipResponseSchema,
18
26
  GetActiveModelRefResponseSchema,
27
+ ListActiveModelResourceTypesRequestSchema,
19
28
  ListRelationshipsRequestSchema,
20
29
  ListActiveModelResourceTypesResponseSchema,
21
30
  ListRelationshipsResponseSchema,
@@ -27,7 +36,9 @@ import {
27
36
  RelationshipTargetType as ProtoRelationshipTargetType,
28
37
  RelationshipTupleSchema,
29
38
  ResourceSchema,
39
+ SetActiveModelRequestSchema,
30
40
  SetActiveModelResponseSchema,
41
+ SetAuthorizationStateRequestSchema,
31
42
  SetAuthorizationStateResponseSchema,
32
43
  SourceLayer as ProtoSourceLayer,
33
44
  SubjectSchema,
@@ -35,12 +46,18 @@ import {
35
46
  SubjectSetTypeSchema,
36
47
  AuthorizationProvider as AuthorizationProviderService,
37
48
  type AddRelationshipRequest as ProtoAddRelationshipRequest,
49
+ type AddRelationshipResponse as ProtoAddRelationshipResponse,
38
50
  type AuthorizationModel as ProtoAuthorizationModel,
39
51
  type AuthorizationModelResourceType as ProtoAuthorizationModelResourceType,
40
52
  type CheckAccessManyRequest as ProtoCheckAccessManyRequest,
53
+ type CheckAccessManyResponse as ProtoCheckAccessManyResponse,
41
54
  type CheckAccessRequest as ProtoCheckAccessRequest,
55
+ type CheckAccessResponse as ProtoCheckAccessResponse,
42
56
  type DeleteRelationshipRequest as ProtoDeleteRelationshipRequest,
57
+ type DeleteRelationshipResponse as ProtoDeleteRelationshipResponse,
58
+ type GetActiveModelRefResponse as ProtoGetActiveModelRefResponse,
43
59
  type ListActiveModelResourceTypesRequest as ProtoListActiveModelResourceTypesRequest,
60
+ type ListActiveModelResourceTypesResponse as ProtoListActiveModelResourceTypesResponse,
44
61
  type ListRelationshipsRequest as ProtoListRelationshipsRequest,
45
62
  type ListRelationshipsResponse as ProtoListRelationshipsResponse,
46
63
  type ModelAllowedTarget as ProtoModelAllowedTarget,
@@ -48,13 +65,16 @@ import {
48
65
  type RelationshipFilter as ProtoRelationshipFilter,
49
66
  type RelationshipTarget as ProtoRelationshipTarget,
50
67
  type RelationshipTuple as ProtoRelationshipTuple,
68
+ type SetActiveModelResponse as ProtoSetActiveModelResponse,
51
69
  type SetActiveModelRequest as ProtoSetActiveModelRequest,
70
+ type SetAuthorizationStateResponse as ProtoSetAuthorizationStateResponse,
52
71
  type SetAuthorizationStateRequest as ProtoSetAuthorizationStateRequest,
53
72
  type SubjectSet as ProtoSubjectSet,
54
73
  } from "./internal/gen/v1/authorization_pb.ts";
55
74
  import { errorMessage, type MaybePromise } from "./api.ts";
56
75
  import { ProviderBase, type ProviderBaseOptions } from "./provider.ts";
57
76
  import {
77
+ dateFromTimestamp,
58
78
  jsonObjectFromStruct,
59
79
  structFromObject,
60
80
  timestampFromDate,
@@ -264,9 +284,29 @@ export interface ListActiveModelResourceTypesResponse {
264
284
  }
265
285
 
266
286
  export interface Authorization {
287
+ checkAccess(request: CheckAccessRequest): Promise<CheckAccessResponse>;
288
+ checkAccessMany(
289
+ request: CheckAccessManyRequest,
290
+ ): Promise<CheckAccessManyResponse>;
267
291
  listRelationships(
268
292
  request: ListRelationshipsRequest,
269
293
  ): Promise<ListRelationshipsResponse>;
294
+ addRelationship(
295
+ request: AddRelationshipRequest,
296
+ ): Promise<AddRelationshipResponse>;
297
+ deleteRelationship(
298
+ request: DeleteRelationshipRequest,
299
+ ): Promise<DeleteRelationshipResponse>;
300
+ setAuthorizationState(
301
+ request: SetAuthorizationStateRequest,
302
+ ): Promise<SetAuthorizationStateResponse>;
303
+ getActiveModelRef(): Promise<GetActiveModelRefResponse>;
304
+ setActiveModel(
305
+ request: SetActiveModelRequest,
306
+ ): Promise<SetActiveModelResponse>;
307
+ listActiveModelResourceTypes(
308
+ request: ListActiveModelResourceTypesRequest,
309
+ ): Promise<ListActiveModelResourceTypesResponse>;
270
310
  }
271
311
 
272
312
  class AuthorizationImpl implements Authorization {
@@ -283,6 +323,20 @@ class AuthorizationImpl implements Authorization {
283
323
  this.client = createClient(AuthorizationProviderService, transport);
284
324
  }
285
325
 
326
+ async checkAccess(request: CheckAccessRequest): Promise<CheckAccessResponse> {
327
+ return checkAccessResponseFromProto(
328
+ await this.client.checkAccess(checkAccessRequestToProto(request)),
329
+ );
330
+ }
331
+
332
+ async checkAccessMany(
333
+ request: CheckAccessManyRequest,
334
+ ): Promise<CheckAccessManyResponse> {
335
+ return checkAccessManyResponseFromProto(
336
+ await this.client.checkAccessMany(checkAccessManyRequestToProto(request)),
337
+ );
338
+ }
339
+
286
340
  async listRelationships(
287
341
  request: ListRelationshipsRequest,
288
342
  ): Promise<ListRelationshipsResponse> {
@@ -290,6 +344,56 @@ class AuthorizationImpl implements Authorization {
290
344
  await this.client.listRelationships(listRelationshipsRequestToProto(request)),
291
345
  );
292
346
  }
347
+
348
+ async addRelationship(
349
+ request: AddRelationshipRequest,
350
+ ): Promise<AddRelationshipResponse> {
351
+ return addRelationshipResponseFromProto(
352
+ await this.client.addRelationship(addRelationshipRequestToProto(request)),
353
+ );
354
+ }
355
+
356
+ async deleteRelationship(
357
+ request: DeleteRelationshipRequest,
358
+ ): Promise<DeleteRelationshipResponse> {
359
+ return deleteRelationshipResponseFromProto(
360
+ await this.client.deleteRelationship(deleteRelationshipRequestToProto(request)),
361
+ );
362
+ }
363
+
364
+ async setAuthorizationState(
365
+ request: SetAuthorizationStateRequest,
366
+ ): Promise<SetAuthorizationStateResponse> {
367
+ return setAuthorizationStateResponseFromProto(
368
+ await this.client.setAuthorizationState(
369
+ setAuthorizationStateRequestToProto(request),
370
+ ),
371
+ );
372
+ }
373
+
374
+ async getActiveModelRef(): Promise<GetActiveModelRefResponse> {
375
+ return getActiveModelRefResponseFromProto(
376
+ await this.client.getActiveModelRef(create(EmptySchema)),
377
+ );
378
+ }
379
+
380
+ async setActiveModel(
381
+ request: SetActiveModelRequest,
382
+ ): Promise<SetActiveModelResponse> {
383
+ return setActiveModelResponseFromProto(
384
+ await this.client.setActiveModel(setActiveModelRequestToProto(request)),
385
+ );
386
+ }
387
+
388
+ async listActiveModelResourceTypes(
389
+ request: ListActiveModelResourceTypesRequest,
390
+ ): Promise<ListActiveModelResourceTypesResponse> {
391
+ return listActiveModelResourceTypesResponseFromProto(
392
+ await this.client.listActiveModelResourceTypes(
393
+ listActiveModelResourceTypesRequestToProto(request),
394
+ ),
395
+ );
396
+ }
293
397
  }
294
398
 
295
399
  let sharedAuthorization:
@@ -529,6 +633,30 @@ function checkAccessRequestFromProto(
529
633
  };
530
634
  }
531
635
 
636
+ function checkAccessRequestToProto(value: CheckAccessRequest) {
637
+ return create(CheckAccessRequestSchema, {
638
+ subject: subjectToProto(value.subject),
639
+ action: value.action
640
+ ? create(ActionSchema, {
641
+ name: value.action.name ?? "",
642
+ properties: value.action.properties === undefined
643
+ ? undefined
644
+ : structFromObject(value.action.properties),
645
+ })
646
+ : undefined,
647
+ resource: resourceToProto(value.resource),
648
+ });
649
+ }
650
+
651
+ function checkAccessResponseFromProto(
652
+ value: ProtoCheckAccessResponse,
653
+ ): CheckAccessResponse {
654
+ return {
655
+ allowed: value.allowed,
656
+ modelId: value.modelId,
657
+ };
658
+ }
659
+
532
660
  function checkAccessResponseToProto(value: CheckAccessResponse | undefined) {
533
661
  if (!value) {
534
662
  throw new ConnectError(
@@ -550,6 +678,20 @@ function checkAccessManyRequestFromProto(
550
678
  };
551
679
  }
552
680
 
681
+ function checkAccessManyRequestToProto(value: CheckAccessManyRequest) {
682
+ return create(CheckAccessManyRequestSchema, {
683
+ requests: (value.requests ?? []).map(checkAccessRequestToProto),
684
+ });
685
+ }
686
+
687
+ function checkAccessManyResponseFromProto(
688
+ value: ProtoCheckAccessManyResponse,
689
+ ): CheckAccessManyResponse {
690
+ return {
691
+ decisions: value.decisions.map(checkAccessResponseFromProto),
692
+ };
693
+ }
694
+
553
695
  function checkAccessManyResponseToProto(
554
696
  value: CheckAccessManyResponse | undefined,
555
697
  ) {
@@ -616,6 +758,20 @@ function addRelationshipRequestFromProto(
616
758
  };
617
759
  }
618
760
 
761
+ function addRelationshipRequestToProto(value: AddRelationshipRequest) {
762
+ return create(AddRelationshipRequestSchema, {
763
+ relationship: relationshipToProto(value.relationship),
764
+ });
765
+ }
766
+
767
+ function addRelationshipResponseFromProto(
768
+ value: ProtoAddRelationshipResponse,
769
+ ): AddRelationshipResponse {
770
+ return {
771
+ relationship: relationshipFromProto(value.relationship),
772
+ };
773
+ }
774
+
619
775
  function addRelationshipResponseToProto(
620
776
  value: AddRelationshipResponse | undefined,
621
777
  ) {
@@ -640,6 +796,18 @@ function deleteRelationshipRequestFromProto(
640
796
  };
641
797
  }
642
798
 
799
+ function deleteRelationshipRequestToProto(value: DeleteRelationshipRequest) {
800
+ return create(DeleteRelationshipRequestSchema, {
801
+ relationshipTuple: relationshipTupleToProto(value.relationshipTuple),
802
+ });
803
+ }
804
+
805
+ function deleteRelationshipResponseFromProto(
806
+ _value: ProtoDeleteRelationshipResponse,
807
+ ): DeleteRelationshipResponse {
808
+ return {};
809
+ }
810
+
643
811
  function setAuthorizationStateRequestFromProto(
644
812
  value: ProtoSetAuthorizationStateRequest,
645
813
  ): SetAuthorizationStateRequest {
@@ -649,6 +817,23 @@ function setAuthorizationStateRequestFromProto(
649
817
  };
650
818
  }
651
819
 
820
+ function setAuthorizationStateRequestToProto(
821
+ value: SetAuthorizationStateRequest,
822
+ ) {
823
+ return create(SetAuthorizationStateRequestSchema, {
824
+ model: authorizationModelToProto(value.model),
825
+ relationships: (value.relationships ?? []).map(relationshipToProtoRequired),
826
+ });
827
+ }
828
+
829
+ function setAuthorizationStateResponseFromProto(
830
+ value: ProtoSetAuthorizationStateResponse,
831
+ ): SetAuthorizationStateResponse {
832
+ return {
833
+ activeModel: authorizationModelRefFromProto(value.activeModel),
834
+ };
835
+ }
836
+
652
837
  function setAuthorizationStateResponseToProto(
653
838
  value: SetAuthorizationStateResponse | undefined,
654
839
  ) {
@@ -665,6 +850,14 @@ function setAuthorizationStateResponseToProto(
665
850
  });
666
851
  }
667
852
 
853
+ function getActiveModelRefResponseFromProto(
854
+ value: ProtoGetActiveModelRefResponse,
855
+ ): GetActiveModelRefResponse {
856
+ return {
857
+ model: authorizationModelRefFromProto(value.model),
858
+ };
859
+ }
860
+
668
861
  function getActiveModelRefResponseToProto(
669
862
  value: GetActiveModelRefResponse | undefined,
670
863
  ) {
@@ -687,6 +880,20 @@ function setActiveModelRequestFromProto(
687
880
  };
688
881
  }
689
882
 
883
+ function setActiveModelRequestToProto(value: SetActiveModelRequest) {
884
+ return create(SetActiveModelRequestSchema, {
885
+ model: authorizationModelToProto(value.model),
886
+ });
887
+ }
888
+
889
+ function setActiveModelResponseFromProto(
890
+ value: ProtoSetActiveModelResponse,
891
+ ): SetActiveModelResponse {
892
+ return {
893
+ model: authorizationModelRefFromProto(value.model),
894
+ };
895
+ }
896
+
690
897
  function setActiveModelResponseToProto(value: SetActiveModelResponse | undefined) {
691
898
  if (!value) {
692
899
  throw new ConnectError(
@@ -714,6 +921,31 @@ function listActiveModelResourceTypesRequestFromProto(
714
921
  };
715
922
  }
716
923
 
924
+ function listActiveModelResourceTypesRequestToProto(
925
+ value: ListActiveModelResourceTypesRequest,
926
+ ) {
927
+ return create(ListActiveModelResourceTypesRequestSchema, {
928
+ filter: value.filter
929
+ ? create(AuthorizationModelResourceTypeFilterSchema, {
930
+ name: value.filter.name ?? "",
931
+ sourceLayer: value.filter.sourceLayer ?? SourceLayer.UNSPECIFIED,
932
+ })
933
+ : undefined,
934
+ pageSize: value.pageSize ?? 0,
935
+ pageToken: value.pageToken ?? "",
936
+ });
937
+ }
938
+
939
+ function listActiveModelResourceTypesResponseFromProto(
940
+ value: ProtoListActiveModelResourceTypesResponse,
941
+ ): ListActiveModelResourceTypesResponse {
942
+ return {
943
+ resourceTypes: value.resourceTypes.map(authorizationModelResourceTypeFromProto),
944
+ nextPageToken: value.nextPageToken,
945
+ modelId: value.modelId,
946
+ };
947
+ }
948
+
717
949
  function listActiveModelResourceTypesResponseToProto(
718
950
  value: ListActiveModelResourceTypesResponse | undefined,
719
951
  ) {
@@ -940,6 +1172,19 @@ function authorizationModelFromProto(
940
1172
  };
941
1173
  }
942
1174
 
1175
+ function authorizationModelToProto(value: AuthorizationModel | undefined) {
1176
+ if (!value) {
1177
+ return undefined;
1178
+ }
1179
+ return create(AuthorizationModelSchema, {
1180
+ id: value.id ?? "",
1181
+ version: value.version ?? "",
1182
+ resourceTypes: (value.resourceTypes ?? []).map(
1183
+ authorizationModelResourceTypeToProto,
1184
+ ),
1185
+ });
1186
+ }
1187
+
943
1188
  function authorizationModelResourceTypeFromProto(
944
1189
  value: ProtoAuthorizationModelResourceType,
945
1190
  ): AuthorizationModelResourceType {
@@ -1027,6 +1272,19 @@ function modelAllowedTargetToProto(value: ModelAllowedTarget) {
1027
1272
  return create(ModelAllowedTargetSchema);
1028
1273
  }
1029
1274
 
1275
+ function authorizationModelRefFromProto(
1276
+ value: ProtoGetActiveModelRefResponse["model"] | undefined,
1277
+ ): AuthorizationModelRef | undefined {
1278
+ if (!value) {
1279
+ return undefined;
1280
+ }
1281
+ return {
1282
+ id: value.id,
1283
+ version: value.version,
1284
+ createdAt: value.createdAt ? dateFromTimestamp(value.createdAt) : undefined,
1285
+ };
1286
+ }
1287
+
1030
1288
  function authorizationModelRefToProto(value: AuthorizationModelRef) {
1031
1289
  return create(AuthorizationModelRefSchema, {
1032
1290
  id: value.id ?? "",
package/src/index.ts CHANGED
@@ -78,8 +78,8 @@ export {
78
78
  } from "./build.ts";
79
79
  export {
80
80
  App,
81
- type AppGraphQLInvokeOptions,
82
81
  type AppInvocationGrant,
82
+ type AppGraphQLInvokeOptions,
83
83
  type AppInvokeOptions,
84
84
  } from "./app-access.ts";
85
85
  export {
@@ -6,7 +6,7 @@ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobu
6
6
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { Timestamp, Value } from "@bufbuild/protobuf/wkt";
8
8
  import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
9
- import type { AgentToolRef, OperationAnnotations, SubjectContext } from "./app_pb";
9
+ import type { AgentToolRef, OperationAnnotations, RequestContext, SubjectContext } from "./app_pb";
10
10
  import { file_v1_app } from "./app_pb";
11
11
  import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
 
@@ -14,7 +14,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
14
14
  * Describes the file v1/agent.proto.
15
15
  */
16
16
  export const file_v1_agent: GenFile = /*@__PURE__*/
17
- fileDesc("Cg52MS9hZ2VudC5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSKLAQoMQWdlbnRNZXNzYWdlEgwKBHJvbGUYASABKAkSDAoEdGV4dBgCIAEoCRI0CgVwYXJ0cxgDIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRNZXNzYWdlUGFydBIpCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiYwoYQWdlbnRNZXNzYWdlUGFydFRvb2xDYWxsEgoKAmlkGAEgASgJEg8KB3Rvb2xfaWQYAiABKAkSKgoJYXJndW1lbnRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJ8ChpBZ2VudE1lc3NhZ2VQYXJ0VG9vbFJlc3VsdBIUCgx0b29sX2NhbGxfaWQYASABKAkSDgoGc3RhdHVzGAIgASgFEg8KB2NvbnRlbnQYAyABKAkSJwoGb3V0cHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI6ChhBZ2VudE1lc3NhZ2VQYXJ0SW1hZ2VSZWYSCwoDdXJpGAEgASgJEhEKCW1pbWVfdHlwZRgCIAEoCSLKAgoQQWdlbnRNZXNzYWdlUGFydBI3CgR0eXBlGAEgASgOMikuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2VQYXJ0VHlwZRIMCgR0ZXh0GAIgASgJEiUKBGpzb24YAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkAKCXRvb2xfY2FsbBgEIAEoCzItLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRNZXNzYWdlUGFydFRvb2xDYWxsEkQKC3Rvb2xfcmVzdWx0GAUgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2VQYXJ0VG9vbFJlc3VsdBJACglpbWFnZV9yZWYYBiABKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50TWVzc2FnZVBhcnRJbWFnZVJlZiJgCg5BZ2VudFdvcmtzcGFjZRJBCgljaGVja291dHMYASADKAsyLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50V29ya3NwYWNlR2l0Q2hlY2tvdXQSCwoDY3dkGAIgASgJIkMKGUFnZW50V29ya3NwYWNlR2l0Q2hlY2tvdXQSCwoDdXJsGAEgASgJEgsKA3JlZhgCIAEoCRIMCgRwYXRoGAMgASgJIjMKFlByZXBhcmVkQWdlbnRXb3Jrc3BhY2USDAoEcm9vdBgBIAEoCRILCgNjd2QYAiABKAkihAEKEVJlc29sdmVkQWdlbnRUb29sEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSMgoRcGFyYW1ldGVyc19zY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SgQIBBAFUgZ0YXJnZXQi5QIKGUFnZW50UHJvdmlkZXJDYXBhYmlsaXRpZXMSFgoOc3RyZWFtaW5nX3RleHQYASABKAgSEgoKdG9vbF9jYWxscxgCIAEoCBIbChNwYXJhbGxlbF90b29sX2NhbGxzGAMgASgIEhQKDGludGVyYWN0aW9ucxgFIAEoCBIXCg9yZXN1bWFibGVfdHVybnMYBiABKAgSGwoTcmVhc29uaW5nX3N1bW1hcmllcxgHIAEoCBIeChZib3VuZGVkX2xpc3RfaHlkcmF0aW9uGAkgASgIEkgKFnN1cHBvcnRlZF90b29sX3NvdXJjZXMYCiADKA4yKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFNvdXJjZU1vZGUSHgoWc3VwcG9ydHNfc2Vzc2lvbl9zdGFydBgLIAEoCBIjChtzdXBwb3J0c19wcmVwYXJlZF93b3Jrc3BhY2UYDCABKAhKBAgIEAkiJQojR2V0QWdlbnRQcm92aWRlckNhcGFiaWxpdGllc1JlcXVlc3QijgMKEEFnZW50SW50ZXJhY3Rpb24SCgoCaWQYASABKAkSNwoEdHlwZRgCIAEoDjIpLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRJbnRlcmFjdGlvblR5cGUSOQoFc3RhdGUYAyABKA4yKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50SW50ZXJhY3Rpb25TdGF0ZRINCgV0aXRsZRgEIAEoCRIOCgZwcm9tcHQYBSABKAkSKAoHcmVxdWVzdBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKwoKcmVzb2x1dGlvbhgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLcmVzb2x2ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3R1cm5faWQYCiABKAkSEgoKc2Vzc2lvbl9pZBgLIAEoCSLnAgoMQWdlbnRTZXNzaW9uEgoKAmlkGAEgASgJEhUKDXByb3ZpZGVyX25hbWUYAiABKAkSDQoFbW9kZWwYAyABKAkSEgoKY2xpZW50X3JlZhgEIAEoCRI1CgVzdGF0ZRgFIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uU3RhdGUSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh0KFWNyZWF0ZWRfYnlfc3ViamVjdF9pZBgHIAEoCRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxsYXN0X3R1cm5fYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq0ECiFDcmVhdGVBZ2VudFByb3ZpZGVyU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAiABKAkSDQoFbW9kZWwYAyABKAkSEgoKY2xpZW50X3JlZhgEIAEoCRIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAcgASgJEjQKB3N1YmplY3QYCCABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EkMKDXNlc3Npb25fc3RhcnQYCSABKAsyLC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0Q29uZmlnEkcKEnByZXBhcmVkX3dvcmtzcGFjZRgKIAEoCzIrLmdlc3RhbHQucHJvdmlkZXIudjEuUHJlcGFyZWRBZ2VudFdvcmtzcGFjZRIVCg1wcm92aWRlcl9uYW1lGAsgASgJEhgKEGludm9jYXRpb25fdG9rZW4YDCABKAkSNgoJd29ya3NwYWNlGA0gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFdvcmtzcGFjZRIpCgh3b3JrZmxvdxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgGEAdSEHByb3ZpZGVyX29wdGlvbnMiVAoXQWdlbnRTZXNzaW9uU3RhcnRDb25maWcSOQoFaG9va3MYASADKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9vayKQAgoVQWdlbnRTZXNzaW9uU3RhcnRIb29rEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkSDwoHY29tbWFuZBgDIAMoCRILCgNjd2QYBCABKAkSDwoHdGltZW91dBgFIAEoCRJACgNlbnYYBiADKAsyMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9vay5FbnZFbnRyeRJACgZvdXRwdXQYByABKAsyMC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9va091dHB1dBoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIksKG0FnZW50U2Vzc2lvblN0YXJ0SG9va091dHB1dBIaChJhZGRpdGlvbmFsX2NvbnRleHQYASABKAgSEAoIbWV0YWRhdGEYAiABKAgirwEKHkdldEFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqUCCiBMaXN0QWdlbnRQcm92aWRlclNlc3Npb25zUmVxdWVzdBI0CgdzdWJqZWN0GAEgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBITCgtzZXNzaW9uX2lkcxgCIAMoCRI1CgVzdGF0ZRgDIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uU3RhdGUSDQoFbGltaXQYBCABKAUSFAoMc3VtbWFyeV9vbmx5GAUgASgIEhUKDXByb3ZpZGVyX25hbWUYBiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgHIAEoCRIpCgh3b3JrZmxvdxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiWAohTGlzdEFnZW50UHJvdmlkZXJTZXNzaW9uc1Jlc3BvbnNlEjMKCHNlc3Npb25zGAEgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFNlc3Npb24iqAIKIVVwZGF0ZUFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhIKCmNsaWVudF9yZWYYAiABKAkSNQoFc3RhdGUYAyABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXRlEikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0CgdzdWJqZWN0GAUgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAYgASgJEikKCHdvcmtmbG93GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKrBAoJQWdlbnRUdXJuEgoKAmlkGAEgASgJEhIKCnNlc3Npb25faWQYAiABKAkSFQoNcHJvdmlkZXJfbmFtZRgDIAEoCRINCgVtb2RlbBgEIAEoCRI5CgZzdGF0dXMYBSABKA4yKS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzEjMKCG1lc3NhZ2VzGAYgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USFgoOc3RhdHVzX21lc3NhZ2UYCSABKAkSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAogASgJEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnN0YXJ0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNZXhlY3V0aW9uX3JlZhgOIAEoCRI4CgR0ZXh0GBQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFR1cm5UZXh0T3V0cHV0SAASRAoKc3RydWN0dXJlZBgVIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuU3RydWN0dXJlZE91dHB1dEgAQggKBm91dHB1dCIjChNBZ2VudFR1cm5UZXh0T3V0cHV0EgwKBHRleHQYASABKAkiUQoZQWdlbnRUdXJuU3RydWN0dXJlZE91dHB1dBIMCgR0ZXh0GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAgoQQWdlbnRUdXJuRGlzcGxheRIMCgRraW5kGAEgASgJEg0KBXBoYXNlGAIgASgJEgwKBHRleHQYAyABKAkSDQoFbGFiZWwYBCABKAkSCwoDcmVmGAUgASgJEhIKCnBhcmVudF9yZWYYBiABKAkSJQoFaW5wdXQYByABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSJgoGb3V0cHV0GAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiUKBWVycm9yGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg4KBmFjdGlvbhgKIAEoCRIOCgZmb3JtYXQYCyABKAkSEAoIbGFuZ3VhZ2UYDCABKAki+QUKHkNyZWF0ZUFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEhIKCnNlc3Npb25faWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEg0KBW1vZGVsGAQgASgJEjMKCG1lc3NhZ2VzGAUgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USNQoFdG9vbHMYBiADKAsyJi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc29sdmVkQWdlbnRUb29sEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYCiABKAkSFQoNZXhlY3V0aW9uX3JlZhgLIAEoCRI0Cgl0b29sX3JlZnMYDCADKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFJlZhI9Cgt0b29sX3NvdXJjZRgNIAEoDjIoLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUb29sU291cmNlTW9kZRI0CgdzdWJqZWN0GA4gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIuCg1tb2RlbF9vcHRpb25zGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIRCglydW5fZ3JhbnQYESABKAkSFwoPdGltZW91dF9zZWNvbmRzGBIgASgFEhgKEGludm9jYXRpb25fdG9rZW4YEyABKAkSFQoNdG9vbF9yZWZzX3NldBgUIAEoCBIwCgZvdXRwdXQYFSABKAsyIC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50T3V0cHV0EikKCHdvcmtmbG93GBYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEoECAkQCkoECA8QEFIQcHJvdmlkZXJfb3B0aW9uc1IKdG9vbF9ncmFudCIRCg9BZ2VudFRleHRPdXRwdXQiQAoVQWdlbnRTdHJ1Y3R1cmVkT3V0cHV0EicKBnNjaGVtYRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QijQEKC0FnZW50T3V0cHV0EjQKBHRleHQYASABKAsyJC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VGV4dE91dHB1dEgAEkAKCnN0cnVjdHVyZWQYAiABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U3RydWN0dXJlZE91dHB1dEgAQgYKBGtpbmQiqQEKG0dldEFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqACCh1MaXN0QWdlbnRQcm92aWRlclR1cm5zUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhAKCHR1cm5faWRzGAMgAygJEjkKBnN0YXR1cxgEIAEoDjIpLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRFeGVjdXRpb25TdGF0dXMSDQoFbGltaXQYBSABKAUSFAoMc3VtbWFyeV9vbmx5GAYgASgIEhgKEGludm9jYXRpb25fdG9rZW4YByABKAkSKQoId29ya2Zsb3cYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ik8KHkxpc3RBZ2VudFByb3ZpZGVyVHVybnNSZXNwb25zZRItCgV0dXJucxgBIAMoCzIeLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuIrwBCh5DYW5jZWxBZ2VudFByb3ZpZGVyVHVyblJlcXVlc3QSDwoHdHVybl9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSNAoHc3ViamVjdBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRIpCgh3b3JrZmxvdxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi+wEKDkFnZW50VHVybkV2ZW50EgoKAmlkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSCwoDc2VxGAMgASgDEgwKBHR5cGUYBCABKAkSDgoGc291cmNlGAUgASgJEhIKCnZpc2liaWxpdHkYBiABKAkSJQoEZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoHZGlzcGxheRgJIAEoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuRGlzcGxheSLSAQoiTGlzdEFnZW50UHJvdmlkZXJUdXJuRXZlbnRzUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEhEKCWFmdGVyX3NlcRgCIAEoAxINCgVsaW1pdBgDIAEoBRI0CgdzdWJqZWN0GAQgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAUgASgJEikKCHdvcmtmbG93GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJaCiNMaXN0QWdlbnRQcm92aWRlclR1cm5FdmVudHNSZXNwb25zZRIzCgZldmVudHMYASADKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VHVybkV2ZW50IowBCiJHZXRBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25SZXF1ZXN0EhYKDmludGVyYWN0aW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkisgEKJExpc3RBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25zUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ImQKJUxpc3RBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25zUmVzcG9uc2USOwoMaW50ZXJhY3Rpb25zGAEgAygLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudEludGVyYWN0aW9uIvkBCiZSZXNvbHZlQWdlbnRQcm92aWRlckludGVyYWN0aW9uUmVxdWVzdBIWCg5pbnRlcmFjdGlvbl9pZBgBIAEoCRIrCgpyZXNvbHV0aW9uGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0CgdzdWJqZWN0GAMgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAQgASgJEg8KB3R1cm5faWQYBSABKAkSKQoId29ya2Zsb3cYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Is8BChdFeGVjdXRlQWdlbnRUb29sUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSFAoMdG9vbF9jYWxsX2lkGAMgASgJEg8KB3Rvb2xfaWQYBCABKAkSKgoJYXJndW1lbnRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCg9pZGVtcG90ZW5jeV9rZXkYByABKAkSEQoJcnVuX2dyYW50GAggASgJSgQIBhAHUgp0b29sX2dyYW50IjgKGEV4ZWN1dGVBZ2VudFRvb2xSZXNwb25zZRIOCgZzdGF0dXMYASABKAUSDAoEYm9keRgCIAEoCSKTAgoPTGlzdGVkQWdlbnRUb29sEgoKAmlkGAEgASgJEhAKCG1jcF9uYW1lGAIgASgJEg0KBXRpdGxlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhQKDGlucHV0X3NjaGVtYRgFIAEoCRIVCg1vdXRwdXRfc2NoZW1hGAYgASgJEj4KC2Fubm90YXRpb25zGAcgASgLMikuZ2VzdGFsdC5wcm92aWRlci52MS5PcGVyYXRpb25Bbm5vdGF0aW9ucxIuCgNyZWYYCCABKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFJlZhIMCgR0YWdzGAkgAygJEhMKC3NlYXJjaF90ZXh0GAogASgJIpcBChVMaXN0QWdlbnRUb29sc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgd0dXJuX2lkGAIgASgJEhEKCXBhZ2Vfc2l6ZRgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJEhEKCXJ1bl9ncmFudBgGIAEoCRINCgVxdWVyeRgHIAEoCUoECAUQBlIKdG9vbF9ncmFudCJmChZMaXN0QWdlbnRUb29sc1Jlc3BvbnNlEjMKBXRvb2xzGAEgAygLMiQuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0ZWRBZ2VudFRvb2wSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIn0KHVJlc29sdmVBZ2VudENvbm5lY3Rpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHdHVybl9pZBgCIAEoCRISCgpjb25uZWN0aW9uGAMgASgJEhAKCGluc3RhbmNlGAQgASgJEhEKCXJ1bl9ncmFudBgFIAEoCSKJAwoXUmVzb2x2ZWRBZ2VudENvbm5lY3Rpb24SFQoNY29ubmVjdGlvbl9pZBgBIAEoCRISCgpjb25uZWN0aW9uGAIgASgJEhAKCGluc3RhbmNlGAMgASgJEgwKBG1vZGUYBCABKAkSSgoHaGVhZGVycxgFIAMoCzI5Lmdlc3RhbHQucHJvdmlkZXIudjEuUmVzb2x2ZWRBZ2VudENvbm5lY3Rpb24uSGVhZGVyc0VudHJ5EkgKBnBhcmFtcxgGIAMoCzI4Lmdlc3RhbHQucHJvdmlkZXIudjEuUmVzb2x2ZWRBZ2VudENvbm5lY3Rpb24uUGFyYW1zRW50cnkSLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLQoLUGFyYW1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASr6AQoUQWdlbnRNZXNzYWdlUGFydFR5cGUSJwojQUdFTlRfTUVTU0FHRV9QQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIgChxBR0VOVF9NRVNTQUdFX1BBUlRfVFlQRV9URVhUEAESIAocQUdFTlRfTUVTU0FHRV9QQVJUX1RZUEVfSlNPThACEiUKIUFHRU5UX01FU1NBR0VfUEFSVF9UWVBFX1RPT0xfQ0FMTBADEicKI0FHRU5UX01FU1NBR0VfUEFSVF9UWVBFX1RPT0xfUkVTVUxUEAQSJQohQUdFTlRfTUVTU0FHRV9QQVJUX1RZUEVfSU1BR0VfUkVGEAUqjAEKE0FnZW50VG9vbFNvdXJjZU1vZGUSJgoiQUdFTlRfVE9PTF9TT1VSQ0VfTU9ERV9VTlNQRUNJRklFRBAAEiYKIkFHRU5UX1RPT0xfU09VUkNFX01PREVfTUNQX0NBVEFMT0cQAhIfChtBR0VOVF9UT09MX1NPVVJDRV9NT0RFX05PTkUQAyIECAEQASqiAgoUQWdlbnRFeGVjdXRpb25TdGF0dXMSJgoiQUdFTlRfRVhFQ1VUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiIKHkFHRU5UX0VYRUNVVElPTl9TVEFUVVNfUEVORElORxABEiIKHkFHRU5UX0VYRUNVVElPTl9TVEFUVVNfUlVOTklORxACEiQKIEFHRU5UX0VYRUNVVElPTl9TVEFUVVNfU1VDQ0VFREVEEAMSIQodQUdFTlRfRVhFQ1VUSU9OX1NUQVRVU19GQUlMRUQQBBIjCh9BR0VOVF9FWEVDVVRJT05fU1RBVFVTX0NBTkNFTEVEEAUSLAooQUdFTlRfRVhFQ1VUSU9OX1NUQVRVU19XQUlUSU5HX0ZPUl9JTlBVVBAGKnoKEUFnZW50U2Vzc2lvblN0YXRlEiMKH0FHRU5UX1NFU1NJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIeChpBR0VOVF9TRVNTSU9OX1NUQVRFX0FDVElWRRABEiAKHEFHRU5UX1NFU1NJT05fU1RBVEVfQVJDSElWRUQQAiqvAQoUQWdlbnRJbnRlcmFjdGlvblR5cGUSJgoiQUdFTlRfSU5URVJBQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEiMKH0FHRU5UX0lOVEVSQUNUSU9OX1RZUEVfQVBQUk9WQUwQARIoCiRBR0VOVF9JTlRFUkFDVElPTl9UWVBFX0NMQVJJRklDQVRJT04QAhIgChxBR0VOVF9JTlRFUkFDVElPTl9UWVBFX0lOUFVUEAMqsQEKFUFnZW50SW50ZXJhY3Rpb25TdGF0ZRInCiNBR0VOVF9JTlRFUkFDVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEiMKH0FHRU5UX0lOVEVSQUNUSU9OX1NUQVRFX1BFTkRJTkcQARIkCiBBR0VOVF9JTlRFUkFDVElPTl9TVEFURV9SRVNPTFZFRBACEiQKIEFHRU5UX0lOVEVSQUNUSU9OX1NUQVRFX0NBTkNFTEVEEAMy4AsKDUFnZW50UHJvdmlkZXISagoNQ3JlYXRlU2Vzc2lvbhI2Lmdlc3RhbHQucHJvdmlkZXIudjEuQ3JlYXRlQWdlbnRQcm92aWRlclNlc3Npb25SZXF1ZXN0GiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFNlc3Npb24SZAoKR2V0U2Vzc2lvbhIzLmdlc3RhbHQucHJvdmlkZXIudjEuR2V0QWdlbnRQcm92aWRlclNlc3Npb25SZXF1ZXN0GiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFNlc3Npb24SfQoMTGlzdFNlc3Npb25zEjUuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlclNlc3Npb25zUmVxdWVzdBo2Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdEFnZW50UHJvdmlkZXJTZXNzaW9uc1Jlc3BvbnNlEmoKDVVwZGF0ZVNlc3Npb24SNi5nZXN0YWx0LnByb3ZpZGVyLnYxLlVwZGF0ZUFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBohLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uEmEKCkNyZWF0ZVR1cm4SMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkNyZWF0ZUFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBoeLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuElsKB0dldFR1cm4SMC5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldEFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBoeLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuEnQKCUxpc3RUdXJucxIyLmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdEFnZW50UHJvdmlkZXJUdXJuc1JlcXVlc3QaMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVyVHVybnNSZXNwb25zZRJhCgpDYW5jZWxUdXJuEjMuZ2VzdGFsdC5wcm92aWRlci52MS5DYW5jZWxBZ2VudFByb3ZpZGVyVHVyblJlcXVlc3QaHi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VHVybhKDAQoOTGlzdFR1cm5FdmVudHMSNy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVyVHVybkV2ZW50c1JlcXVlc3QaOC5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVyVHVybkV2ZW50c1Jlc3BvbnNlEnAKDkdldEludGVyYWN0aW9uEjcuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudEludGVyYWN0aW9uEokBChBMaXN0SW50ZXJhY3Rpb25zEjkuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlckludGVyYWN0aW9uc1JlcXVlc3QaOi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25zUmVzcG9uc2USeAoSUmVzb2x2ZUludGVyYWN0aW9uEjsuZ2VzdGFsdC5wcm92aWRlci52MS5SZXNvbHZlQWdlbnRQcm92aWRlckludGVyYWN0aW9uUmVxdWVzdBolLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRJbnRlcmFjdGlvbhJ7Cg9HZXRDYXBhYmlsaXRpZXMSOC5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldEFnZW50UHJvdmlkZXJDYXBhYmlsaXRpZXNSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFByb3ZpZGVyQ2FwYWJpbGl0aWVzMtQCCglBZ2VudEhvc3QSZAoJTGlzdFRvb2xzEiouZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRUb29sc1JlcXVlc3QaKy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFRvb2xzUmVzcG9uc2USagoLRXhlY3V0ZVRvb2wSLC5nZXN0YWx0LnByb3ZpZGVyLnYxLkV4ZWN1dGVBZ2VudFRvb2xSZXF1ZXN0Gi0uZ2VzdGFsdC5wcm92aWRlci52MS5FeGVjdXRlQWdlbnRUb29sUmVzcG9uc2USdQoRUmVzb2x2ZUNvbm5lY3Rpb24SMi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc29sdmVBZ2VudENvbm5lY3Rpb25SZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5SZXNvbHZlZEFnZW50Q29ubmVjdGlvbmIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_app]);
17
+ fileDesc("Cg52MS9hZ2VudC5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSKLAQoMQWdlbnRNZXNzYWdlEgwKBHJvbGUYASABKAkSDAoEdGV4dBgCIAEoCRI0CgVwYXJ0cxgDIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRNZXNzYWdlUGFydBIpCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiYwoYQWdlbnRNZXNzYWdlUGFydFRvb2xDYWxsEgoKAmlkGAEgASgJEg8KB3Rvb2xfaWQYAiABKAkSKgoJYXJndW1lbnRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJ8ChpBZ2VudE1lc3NhZ2VQYXJ0VG9vbFJlc3VsdBIUCgx0b29sX2NhbGxfaWQYASABKAkSDgoGc3RhdHVzGAIgASgFEg8KB2NvbnRlbnQYAyABKAkSJwoGb3V0cHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI6ChhBZ2VudE1lc3NhZ2VQYXJ0SW1hZ2VSZWYSCwoDdXJpGAEgASgJEhEKCW1pbWVfdHlwZRgCIAEoCSLKAgoQQWdlbnRNZXNzYWdlUGFydBI3CgR0eXBlGAEgASgOMikuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2VQYXJ0VHlwZRIMCgR0ZXh0GAIgASgJEiUKBGpzb24YAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkAKCXRvb2xfY2FsbBgEIAEoCzItLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRNZXNzYWdlUGFydFRvb2xDYWxsEkQKC3Rvb2xfcmVzdWx0GAUgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2VQYXJ0VG9vbFJlc3VsdBJACglpbWFnZV9yZWYYBiABKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50TWVzc2FnZVBhcnRJbWFnZVJlZiJgCg5BZ2VudFdvcmtzcGFjZRJBCgljaGVja291dHMYASADKAsyLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50V29ya3NwYWNlR2l0Q2hlY2tvdXQSCwoDY3dkGAIgASgJIkMKGUFnZW50V29ya3NwYWNlR2l0Q2hlY2tvdXQSCwoDdXJsGAEgASgJEgsKA3JlZhgCIAEoCRIMCgRwYXRoGAMgASgJIjMKFlByZXBhcmVkQWdlbnRXb3Jrc3BhY2USDAoEcm9vdBgBIAEoCRILCgNjd2QYAiABKAkihAEKEVJlc29sdmVkQWdlbnRUb29sEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSMgoRcGFyYW1ldGVyc19zY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SgQIBBAFUgZ0YXJnZXQi5QIKGUFnZW50UHJvdmlkZXJDYXBhYmlsaXRpZXMSFgoOc3RyZWFtaW5nX3RleHQYASABKAgSEgoKdG9vbF9jYWxscxgCIAEoCBIbChNwYXJhbGxlbF90b29sX2NhbGxzGAMgASgIEhQKDGludGVyYWN0aW9ucxgFIAEoCBIXCg9yZXN1bWFibGVfdHVybnMYBiABKAgSGwoTcmVhc29uaW5nX3N1bW1hcmllcxgHIAEoCBIeChZib3VuZGVkX2xpc3RfaHlkcmF0aW9uGAkgASgIEkgKFnN1cHBvcnRlZF90b29sX3NvdXJjZXMYCiADKA4yKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFNvdXJjZU1vZGUSHgoWc3VwcG9ydHNfc2Vzc2lvbl9zdGFydBgLIAEoCBIjChtzdXBwb3J0c19wcmVwYXJlZF93b3Jrc3BhY2UYDCABKAhKBAgIEAkiJQojR2V0QWdlbnRQcm92aWRlckNhcGFiaWxpdGllc1JlcXVlc3QijgMKEEFnZW50SW50ZXJhY3Rpb24SCgoCaWQYASABKAkSNwoEdHlwZRgCIAEoDjIpLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRJbnRlcmFjdGlvblR5cGUSOQoFc3RhdGUYAyABKA4yKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50SW50ZXJhY3Rpb25TdGF0ZRINCgV0aXRsZRgEIAEoCRIOCgZwcm9tcHQYBSABKAkSKAoHcmVxdWVzdBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKwoKcmVzb2x1dGlvbhgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLcmVzb2x2ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3R1cm5faWQYCiABKAkSEgoKc2Vzc2lvbl9pZBgLIAEoCSLnAgoMQWdlbnRTZXNzaW9uEgoKAmlkGAEgASgJEhUKDXByb3ZpZGVyX25hbWUYAiABKAkSDQoFbW9kZWwYAyABKAkSEgoKY2xpZW50X3JlZhgEIAEoCRI1CgVzdGF0ZRgFIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uU3RhdGUSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh0KFWNyZWF0ZWRfYnlfc3ViamVjdF9pZBgHIAEoCRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxsYXN0X3R1cm5fYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIuMECiFDcmVhdGVBZ2VudFByb3ZpZGVyU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAiABKAkSDQoFbW9kZWwYAyABKAkSEgoKY2xpZW50X3JlZhgEIAEoCRIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAcgASgJEjQKB3N1YmplY3QYCCABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EkMKDXNlc3Npb25fc3RhcnQYCSABKAsyLC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0Q29uZmlnEkcKEnByZXBhcmVkX3dvcmtzcGFjZRgKIAEoCzIrLmdlc3RhbHQucHJvdmlkZXIudjEuUHJlcGFyZWRBZ2VudFdvcmtzcGFjZRIVCg1wcm92aWRlcl9uYW1lGAsgASgJEhgKEGludm9jYXRpb25fdG9rZW4YDCABKAkSNgoJd29ya3NwYWNlGA0gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFdvcmtzcGFjZRIpCgh3b3JrZmxvdxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoHY29udGV4dBgPIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgGEAdSEHByb3ZpZGVyX29wdGlvbnMiVAoXQWdlbnRTZXNzaW9uU3RhcnRDb25maWcSOQoFaG9va3MYASADKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9vayKQAgoVQWdlbnRTZXNzaW9uU3RhcnRIb29rEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkSDwoHY29tbWFuZBgDIAMoCRILCgNjd2QYBCABKAkSDwoHdGltZW91dBgFIAEoCRJACgNlbnYYBiADKAsyMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9vay5FbnZFbnRyeRJACgZvdXRwdXQYByABKAsyMC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXJ0SG9va091dHB1dBoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIksKG0FnZW50U2Vzc2lvblN0YXJ0SG9va091dHB1dBIaChJhZGRpdGlvbmFsX2NvbnRleHQYASABKAgSEAoIbWV0YWRhdGEYAiABKAgi5QEKHkdldEFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKB2NvbnRleHQYBSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0ItsCCiBMaXN0QWdlbnRQcm92aWRlclNlc3Npb25zUmVxdWVzdBI0CgdzdWJqZWN0GAEgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBITCgtzZXNzaW9uX2lkcxgCIAMoCRI1CgVzdGF0ZRgDIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uU3RhdGUSDQoFbGltaXQYBCABKAUSFAoMc3VtbWFyeV9vbmx5GAUgASgIEhUKDXByb3ZpZGVyX25hbWUYBiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgHIAEoCRIpCgh3b3JrZmxvdxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoHY29udGV4dBgJIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQiWAohTGlzdEFnZW50UHJvdmlkZXJTZXNzaW9uc1Jlc3BvbnNlEjMKCHNlc3Npb25zGAEgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFNlc3Npb24i3gIKIVVwZGF0ZUFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhIKCmNsaWVudF9yZWYYAiABKAkSNQoFc3RhdGUYAyABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvblN0YXRlEikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0CgdzdWJqZWN0GAUgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAYgASgJEikKCHdvcmtmbG93GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cgdjb250ZXh0GAggASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dCKrBAoJQWdlbnRUdXJuEgoKAmlkGAEgASgJEhIKCnNlc3Npb25faWQYAiABKAkSFQoNcHJvdmlkZXJfbmFtZRgDIAEoCRINCgVtb2RlbBgEIAEoCRI5CgZzdGF0dXMYBSABKA4yKS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50RXhlY3V0aW9uU3RhdHVzEjMKCG1lc3NhZ2VzGAYgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USFgoOc3RhdHVzX21lc3NhZ2UYCSABKAkSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAogASgJEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnN0YXJ0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNZXhlY3V0aW9uX3JlZhgOIAEoCRI4CgR0ZXh0GBQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFR1cm5UZXh0T3V0cHV0SAASRAoKc3RydWN0dXJlZBgVIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuU3RydWN0dXJlZE91dHB1dEgAQggKBm91dHB1dCIjChNBZ2VudFR1cm5UZXh0T3V0cHV0EgwKBHRleHQYASABKAkiUQoZQWdlbnRUdXJuU3RydWN0dXJlZE91dHB1dBIMCgR0ZXh0GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAgoQQWdlbnRUdXJuRGlzcGxheRIMCgRraW5kGAEgASgJEg0KBXBoYXNlGAIgASgJEgwKBHRleHQYAyABKAkSDQoFbGFiZWwYBCABKAkSCwoDcmVmGAUgASgJEhIKCnBhcmVudF9yZWYYBiABKAkSJQoFaW5wdXQYByABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSJgoGb3V0cHV0GAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiUKBWVycm9yGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg4KBmFjdGlvbhgKIAEoCRIOCgZmb3JtYXQYCyABKAkSEAoIbGFuZ3VhZ2UYDCABKAkirwYKHkNyZWF0ZUFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEhIKCnNlc3Npb25faWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEg0KBW1vZGVsGAQgASgJEjMKCG1lc3NhZ2VzGAUgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USNQoFdG9vbHMYBiADKAsyJi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc29sdmVkQWdlbnRUb29sEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYCiABKAkSFQoNZXhlY3V0aW9uX3JlZhgLIAEoCRI0Cgl0b29sX3JlZnMYDCADKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFJlZhI9Cgt0b29sX3NvdXJjZRgNIAEoDjIoLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUb29sU291cmNlTW9kZRI0CgdzdWJqZWN0GA4gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIuCg1tb2RlbF9vcHRpb25zGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIRCglydW5fZ3JhbnQYESABKAkSFwoPdGltZW91dF9zZWNvbmRzGBIgASgFEhgKEGludm9jYXRpb25fdG9rZW4YEyABKAkSFQoNdG9vbF9yZWZzX3NldBgUIAEoCBIwCgZvdXRwdXQYFSABKAsyIC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50T3V0cHV0EikKCHdvcmtmbG93GBYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cgdjb250ZXh0GBcgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAkQCkoECA8QEFIQcHJvdmlkZXJfb3B0aW9uc1IKdG9vbF9ncmFudCIRCg9BZ2VudFRleHRPdXRwdXQiQAoVQWdlbnRTdHJ1Y3R1cmVkT3V0cHV0EicKBnNjaGVtYRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QijQEKC0FnZW50T3V0cHV0EjQKBHRleHQYASABKAsyJC5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VGV4dE91dHB1dEgAEkAKCnN0cnVjdHVyZWQYAiABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U3RydWN0dXJlZE91dHB1dEgAQgYKBGtpbmQi3wEKG0dldEFnZW50UHJvdmlkZXJUdXJuUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKB2NvbnRleHQYBSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0ItYCCh1MaXN0QWdlbnRQcm92aWRlclR1cm5zUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhAKCHR1cm5faWRzGAMgAygJEjkKBnN0YXR1cxgEIAEoDjIpLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRFeGVjdXRpb25TdGF0dXMSDQoFbGltaXQYBSABKAUSFAoMc3VtbWFyeV9vbmx5GAYgASgIEhgKEGludm9jYXRpb25fdG9rZW4YByABKAkSKQoId29ya2Zsb3cYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKB2NvbnRleHQYCSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0Ik8KHkxpc3RBZ2VudFByb3ZpZGVyVHVybnNSZXNwb25zZRItCgV0dXJucxgBIAMoCzIeLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuIvIBCh5DYW5jZWxBZ2VudFByb3ZpZGVyVHVyblJlcXVlc3QSDwoHdHVybl9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSNAoHc3ViamVjdBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRIpCgh3b3JrZmxvdxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoHY29udGV4dBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQi+wEKDkFnZW50VHVybkV2ZW50EgoKAmlkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSCwoDc2VxGAMgASgDEgwKBHR5cGUYBCABKAkSDgoGc291cmNlGAUgASgJEhIKCnZpc2liaWxpdHkYBiABKAkSJQoEZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoHZGlzcGxheRgJIAEoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRUdXJuRGlzcGxheSKIAgoiTGlzdEFnZW50UHJvdmlkZXJUdXJuRXZlbnRzUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEhEKCWFmdGVyX3NlcRgCIAEoAxINCgVsaW1pdBgDIAEoBRI0CgdzdWJqZWN0GAQgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAUgASgJEikKCHdvcmtmbG93GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cgdjb250ZXh0GAcgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dCJaCiNMaXN0QWdlbnRQcm92aWRlclR1cm5FdmVudHNSZXNwb25zZRIzCgZldmVudHMYASADKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VHVybkV2ZW50IsIBCiJHZXRBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25SZXF1ZXN0EhYKDmludGVyYWN0aW9uX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSNAoHY29udGV4dBgEIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQi6AEKJExpc3RBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25zUmVxdWVzdBIPCgd0dXJuX2lkGAEgASgJEjQKB3N1YmplY3QYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSKQoId29ya2Zsb3cYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKB2NvbnRleHQYBSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0ImQKJUxpc3RBZ2VudFByb3ZpZGVySW50ZXJhY3Rpb25zUmVzcG9uc2USOwoMaW50ZXJhY3Rpb25zGAEgAygLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudEludGVyYWN0aW9uIq8CCiZSZXNvbHZlQWdlbnRQcm92aWRlckludGVyYWN0aW9uUmVxdWVzdBIWCg5pbnRlcmFjdGlvbl9pZBgBIAEoCRIrCgpyZXNvbHV0aW9uGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0CgdzdWJqZWN0GAMgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBIYChBpbnZvY2F0aW9uX3Rva2VuGAQgASgJEg8KB3R1cm5faWQYBSABKAkSKQoId29ya2Zsb3cYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKB2NvbnRleHQYByABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0IoUCChdFeGVjdXRlQWdlbnRUb29sUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSFAoMdG9vbF9jYWxsX2lkGAMgASgJEg8KB3Rvb2xfaWQYBCABKAkSKgoJYXJndW1lbnRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCg9pZGVtcG90ZW5jeV9rZXkYByABKAkSEQoJcnVuX2dyYW50GAggASgJEjQKB2NvbnRleHQYCSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIBhAHUgp0b29sX2dyYW50IjgKGEV4ZWN1dGVBZ2VudFRvb2xSZXNwb25zZRIOCgZzdGF0dXMYASABKAUSDAoEYm9keRgCIAEoCSKTAgoPTGlzdGVkQWdlbnRUb29sEgoKAmlkGAEgASgJEhAKCG1jcF9uYW1lGAIgASgJEg0KBXRpdGxlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhQKDGlucHV0X3NjaGVtYRgFIAEoCRIVCg1vdXRwdXRfc2NoZW1hGAYgASgJEj4KC2Fubm90YXRpb25zGAcgASgLMikuZ2VzdGFsdC5wcm92aWRlci52MS5PcGVyYXRpb25Bbm5vdGF0aW9ucxIuCgNyZWYYCCABKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VG9vbFJlZhIMCgR0YWdzGAkgAygJEhMKC3NlYXJjaF90ZXh0GAogASgJIs0BChVMaXN0QWdlbnRUb29sc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgd0dXJuX2lkGAIgASgJEhEKCXBhZ2Vfc2l6ZRgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJEhEKCXJ1bl9ncmFudBgGIAEoCRINCgVxdWVyeRgHIAEoCRI0Cgdjb250ZXh0GAggASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAUQBlIKdG9vbF9ncmFudCJmChZMaXN0QWdlbnRUb29sc1Jlc3BvbnNlEjMKBXRvb2xzGAEgAygLMiQuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0ZWRBZ2VudFRvb2wSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIrMBCh1SZXNvbHZlQWdlbnRDb25uZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB3R1cm5faWQYAiABKAkSEgoKY29ubmVjdGlvbhgDIAEoCRIQCghpbnN0YW5jZRgEIAEoCRIRCglydW5fZ3JhbnQYBSABKAkSNAoHY29udGV4dBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQiiQMKF1Jlc29sdmVkQWdlbnRDb25uZWN0aW9uEhUKDWNvbm5lY3Rpb25faWQYASABKAkSEgoKY29ubmVjdGlvbhgCIAEoCRIQCghpbnN0YW5jZRgDIAEoCRIMCgRtb2RlGAQgASgJEkoKB2hlYWRlcnMYBSADKAsyOS5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc29sdmVkQWdlbnRDb25uZWN0aW9uLkhlYWRlcnNFbnRyeRJICgZwYXJhbXMYBiADKAsyOC5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc29sdmVkQWdlbnRDb25uZWN0aW9uLlBhcmFtc0VudHJ5Ei4KCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGi0KC1BhcmFtc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEq+gEKFEFnZW50TWVzc2FnZVBhcnRUeXBlEicKI0FHRU5UX01FU1NBR0VfUEFSVF9UWVBFX1VOU1BFQ0lGSUVEEAASIAocQUdFTlRfTUVTU0FHRV9QQVJUX1RZUEVfVEVYVBABEiAKHEFHRU5UX01FU1NBR0VfUEFSVF9UWVBFX0pTT04QAhIlCiFBR0VOVF9NRVNTQUdFX1BBUlRfVFlQRV9UT09MX0NBTEwQAxInCiNBR0VOVF9NRVNTQUdFX1BBUlRfVFlQRV9UT09MX1JFU1VMVBAEEiUKIUFHRU5UX01FU1NBR0VfUEFSVF9UWVBFX0lNQUdFX1JFRhAFKowBChNBZ2VudFRvb2xTb3VyY2VNb2RlEiYKIkFHRU5UX1RPT0xfU09VUkNFX01PREVfVU5TUEVDSUZJRUQQABImCiJBR0VOVF9UT09MX1NPVVJDRV9NT0RFX01DUF9DQVRBTE9HEAISHwobQUdFTlRfVE9PTF9TT1VSQ0VfTU9ERV9OT05FEAMiBAgBEAEqogIKFEFnZW50RXhlY3V0aW9uU3RhdHVzEiYKIkFHRU5UX0VYRUNVVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIiCh5BR0VOVF9FWEVDVVRJT05fU1RBVFVTX1BFTkRJTkcQARIiCh5BR0VOVF9FWEVDVVRJT05fU1RBVFVTX1JVTk5JTkcQAhIkCiBBR0VOVF9FWEVDVVRJT05fU1RBVFVTX1NVQ0NFRURFRBADEiEKHUFHRU5UX0VYRUNVVElPTl9TVEFUVVNfRkFJTEVEEAQSIwofQUdFTlRfRVhFQ1VUSU9OX1NUQVRVU19DQU5DRUxFRBAFEiwKKEFHRU5UX0VYRUNVVElPTl9TVEFUVVNfV0FJVElOR19GT1JfSU5QVVQQBip6ChFBZ2VudFNlc3Npb25TdGF0ZRIjCh9BR0VOVF9TRVNTSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASHgoaQUdFTlRfU0VTU0lPTl9TVEFURV9BQ1RJVkUQARIgChxBR0VOVF9TRVNTSU9OX1NUQVRFX0FSQ0hJVkVEEAIqrwEKFEFnZW50SW50ZXJhY3Rpb25UeXBlEiYKIkFHRU5UX0lOVEVSQUNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIjCh9BR0VOVF9JTlRFUkFDVElPTl9UWVBFX0FQUFJPVkFMEAESKAokQUdFTlRfSU5URVJBQ1RJT05fVFlQRV9DTEFSSUZJQ0FUSU9OEAISIAocQUdFTlRfSU5URVJBQ1RJT05fVFlQRV9JTlBVVBADKrEBChVBZ2VudEludGVyYWN0aW9uU3RhdGUSJwojQUdFTlRfSU5URVJBQ1RJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIjCh9BR0VOVF9JTlRFUkFDVElPTl9TVEFURV9QRU5ESU5HEAESJAogQUdFTlRfSU5URVJBQ1RJT05fU1RBVEVfUkVTT0xWRUQQAhIkCiBBR0VOVF9JTlRFUkFDVElPTl9TVEFURV9DQU5DRUxFRBADMuALCg1BZ2VudFByb3ZpZGVyEmoKDUNyZWF0ZVNlc3Npb24SNi5nZXN0YWx0LnByb3ZpZGVyLnYxLkNyZWF0ZUFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBohLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uEmQKCkdldFNlc3Npb24SMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldEFnZW50UHJvdmlkZXJTZXNzaW9uUmVxdWVzdBohLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRTZXNzaW9uEn0KDExpc3RTZXNzaW9ucxI1Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdEFnZW50UHJvdmlkZXJTZXNzaW9uc1JlcXVlc3QaNi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVyU2Vzc2lvbnNSZXNwb25zZRJqCg1VcGRhdGVTZXNzaW9uEjYuZ2VzdGFsdC5wcm92aWRlci52MS5VcGRhdGVBZ2VudFByb3ZpZGVyU2Vzc2lvblJlcXVlc3QaIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50U2Vzc2lvbhJhCgpDcmVhdGVUdXJuEjMuZ2VzdGFsdC5wcm92aWRlci52MS5DcmVhdGVBZ2VudFByb3ZpZGVyVHVyblJlcXVlc3QaHi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VHVybhJbCgdHZXRUdXJuEjAuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRBZ2VudFByb3ZpZGVyVHVyblJlcXVlc3QaHi5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50VHVybhJ0CglMaXN0VHVybnMSMi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RBZ2VudFByb3ZpZGVyVHVybnNSZXF1ZXN0GjMuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlclR1cm5zUmVzcG9uc2USYQoKQ2FuY2VsVHVybhIzLmdlc3RhbHQucHJvdmlkZXIudjEuQ2FuY2VsQWdlbnRQcm92aWRlclR1cm5SZXF1ZXN0Gh4uZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFR1cm4SgwEKDkxpc3RUdXJuRXZlbnRzEjcuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlclR1cm5FdmVudHNSZXF1ZXN0GjguZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlclR1cm5FdmVudHNSZXNwb25zZRJwCg5HZXRJbnRlcmFjdGlvbhI3Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0QWdlbnRQcm92aWRlckludGVyYWN0aW9uUmVxdWVzdBolLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRJbnRlcmFjdGlvbhKJAQoQTGlzdEludGVyYWN0aW9ucxI5Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdEFnZW50UHJvdmlkZXJJbnRlcmFjdGlvbnNSZXF1ZXN0GjouZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRQcm92aWRlckludGVyYWN0aW9uc1Jlc3BvbnNlEngKElJlc29sdmVJbnRlcmFjdGlvbhI7Lmdlc3RhbHQucHJvdmlkZXIudjEuUmVzb2x2ZUFnZW50UHJvdmlkZXJJbnRlcmFjdGlvblJlcXVlc3QaJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkFnZW50SW50ZXJhY3Rpb24SewoPR2V0Q2FwYWJpbGl0aWVzEjguZ2VzdGFsdC5wcm92aWRlci52MS5HZXRBZ2VudFByb3ZpZGVyQ2FwYWJpbGl0aWVzUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQWdlbnRQcm92aWRlckNhcGFiaWxpdGllczLUAgoJQWdlbnRIb3N0EmQKCUxpc3RUb29scxIqLmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdEFnZW50VG9vbHNSZXF1ZXN0GisuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0QWdlbnRUb29sc1Jlc3BvbnNlEmoKC0V4ZWN1dGVUb29sEiwuZ2VzdGFsdC5wcm92aWRlci52MS5FeGVjdXRlQWdlbnRUb29sUmVxdWVzdBotLmdlc3RhbHQucHJvdmlkZXIudjEuRXhlY3V0ZUFnZW50VG9vbFJlc3BvbnNlEnUKEVJlc29sdmVDb25uZWN0aW9uEjIuZ2VzdGFsdC5wcm92aWRlci52MS5SZXNvbHZlQWdlbnRDb25uZWN0aW9uUmVxdWVzdBosLmdlc3RhbHQucHJvdmlkZXIudjEuUmVzb2x2ZWRBZ2VudENvbm5lY3Rpb25iBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_app]);
18
18
 
19
19
  /**
20
20
  * @generated from message gestalt.provider.v1.AgentMessage
@@ -550,6 +550,11 @@ export type CreateAgentProviderSessionRequest = Message<"gestalt.provider.v1.Cre
550
550
  * @generated from field: google.protobuf.Struct workflow = 14;
551
551
  */
552
552
  workflow?: JsonObject | undefined;
553
+
554
+ /**
555
+ * @generated from field: gestalt.provider.v1.RequestContext context = 15;
556
+ */
557
+ context?: RequestContext | undefined;
553
558
  };
554
559
 
555
560
  /**
@@ -668,6 +673,11 @@ export type GetAgentProviderSessionRequest = Message<"gestalt.provider.v1.GetAge
668
673
  * @generated from field: google.protobuf.Struct workflow = 4;
669
674
  */
670
675
  workflow?: JsonObject | undefined;
676
+
677
+ /**
678
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
679
+ */
680
+ context?: RequestContext | undefined;
671
681
  };
672
682
 
673
683
  /**
@@ -726,6 +736,11 @@ export type ListAgentProviderSessionsRequest = Message<"gestalt.provider.v1.List
726
736
  * @generated from field: google.protobuf.Struct workflow = 8;
727
737
  */
728
738
  workflow?: JsonObject | undefined;
739
+
740
+ /**
741
+ * @generated from field: gestalt.provider.v1.RequestContext context = 9;
742
+ */
743
+ context?: RequestContext | undefined;
729
744
  };
730
745
 
731
746
  /**
@@ -790,6 +805,11 @@ export type UpdateAgentProviderSessionRequest = Message<"gestalt.provider.v1.Upd
790
805
  * @generated from field: google.protobuf.Struct workflow = 7;
791
806
  */
792
807
  workflow?: JsonObject | undefined;
808
+
809
+ /**
810
+ * @generated from field: gestalt.provider.v1.RequestContext context = 8;
811
+ */
812
+ context?: RequestContext | undefined;
793
813
  };
794
814
 
795
815
  /**
@@ -1101,6 +1121,11 @@ export type CreateAgentProviderTurnRequest = Message<"gestalt.provider.v1.Create
1101
1121
  * @generated from field: google.protobuf.Struct workflow = 22;
1102
1122
  */
1103
1123
  workflow?: JsonObject | undefined;
1124
+
1125
+ /**
1126
+ * @generated from field: gestalt.provider.v1.RequestContext context = 23;
1127
+ */
1128
+ context?: RequestContext | undefined;
1104
1129
  };
1105
1130
 
1106
1131
  /**
@@ -1192,6 +1217,11 @@ export type GetAgentProviderTurnRequest = Message<"gestalt.provider.v1.GetAgentP
1192
1217
  * @generated from field: google.protobuf.Struct workflow = 4;
1193
1218
  */
1194
1219
  workflow?: JsonObject | undefined;
1220
+
1221
+ /**
1222
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1223
+ */
1224
+ context?: RequestContext | undefined;
1195
1225
  };
1196
1226
 
1197
1227
  /**
@@ -1251,6 +1281,11 @@ export type ListAgentProviderTurnsRequest = Message<"gestalt.provider.v1.ListAge
1251
1281
  * @generated from field: google.protobuf.Struct workflow = 8;
1252
1282
  */
1253
1283
  workflow?: JsonObject | undefined;
1284
+
1285
+ /**
1286
+ * @generated from field: gestalt.provider.v1.RequestContext context = 9;
1287
+ */
1288
+ context?: RequestContext | undefined;
1254
1289
  };
1255
1290
 
1256
1291
  /**
@@ -1305,6 +1340,11 @@ export type CancelAgentProviderTurnRequest = Message<"gestalt.provider.v1.Cancel
1305
1340
  * @generated from field: google.protobuf.Struct workflow = 5;
1306
1341
  */
1307
1342
  workflow?: JsonObject | undefined;
1343
+
1344
+ /**
1345
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1346
+ */
1347
+ context?: RequestContext | undefined;
1308
1348
  };
1309
1349
 
1310
1350
  /**
@@ -1404,6 +1444,11 @@ export type ListAgentProviderTurnEventsRequest = Message<"gestalt.provider.v1.Li
1404
1444
  * @generated from field: google.protobuf.Struct workflow = 6;
1405
1445
  */
1406
1446
  workflow?: JsonObject | undefined;
1447
+
1448
+ /**
1449
+ * @generated from field: gestalt.provider.v1.RequestContext context = 7;
1450
+ */
1451
+ context?: RequestContext | undefined;
1407
1452
  };
1408
1453
 
1409
1454
  /**
@@ -1448,6 +1493,11 @@ export type GetAgentProviderInteractionRequest = Message<"gestalt.provider.v1.Ge
1448
1493
  * @generated from field: string invocation_token = 3;
1449
1494
  */
1450
1495
  invocationToken: string;
1496
+
1497
+ /**
1498
+ * @generated from field: gestalt.provider.v1.RequestContext context = 4;
1499
+ */
1500
+ context?: RequestContext | undefined;
1451
1501
  };
1452
1502
 
1453
1503
  /**
@@ -1480,6 +1530,11 @@ export type ListAgentProviderInteractionsRequest = Message<"gestalt.provider.v1.
1480
1530
  * @generated from field: google.protobuf.Struct workflow = 4;
1481
1531
  */
1482
1532
  workflow?: JsonObject | undefined;
1533
+
1534
+ /**
1535
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1536
+ */
1537
+ context?: RequestContext | undefined;
1483
1538
  };
1484
1539
 
1485
1540
  /**
@@ -1539,6 +1594,11 @@ export type ResolveAgentProviderInteractionRequest = Message<"gestalt.provider.v
1539
1594
  * @generated from field: google.protobuf.Struct workflow = 6;
1540
1595
  */
1541
1596
  workflow?: JsonObject | undefined;
1597
+
1598
+ /**
1599
+ * @generated from field: gestalt.provider.v1.RequestContext context = 7;
1600
+ */
1601
+ context?: RequestContext | undefined;
1542
1602
  };
1543
1603
 
1544
1604
  /**
@@ -1586,6 +1646,11 @@ export type ExecuteAgentToolRequest = Message<"gestalt.provider.v1.ExecuteAgentT
1586
1646
  * @generated from field: string run_grant = 8;
1587
1647
  */
1588
1648
  runGrant: string;
1649
+
1650
+ /**
1651
+ * @generated from field: gestalt.provider.v1.RequestContext context = 9;
1652
+ */
1653
+ context?: RequestContext | undefined;
1589
1654
  };
1590
1655
 
1591
1656
  /**
@@ -1712,6 +1777,11 @@ export type ListAgentToolsRequest = Message<"gestalt.provider.v1.ListAgentToolsR
1712
1777
  * @generated from field: string query = 7;
1713
1778
  */
1714
1779
  query: string;
1780
+
1781
+ /**
1782
+ * @generated from field: gestalt.provider.v1.RequestContext context = 8;
1783
+ */
1784
+ context?: RequestContext | undefined;
1715
1785
  };
1716
1786
 
1717
1787
  /**
@@ -1771,6 +1841,11 @@ export type ResolveAgentConnectionRequest = Message<"gestalt.provider.v1.Resolve
1771
1841
  * @generated from field: string run_grant = 5;
1772
1842
  */
1773
1843
  runGrant: string;
1844
+
1845
+ /**
1846
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1847
+ */
1848
+ context?: RequestContext | undefined;
1774
1849
  };
1775
1850
 
1776
1851
  /**