@eide/foir-proto-ts 0.99.0 → 0.101.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.99.0",
3
+ "version": "0.101.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./common/v1/pagination_pb": "./src/common/v1/pagination_pb.js",
@@ -0,0 +1,44 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "import_extension=js"
2
+ // @generated from file common/v1/access.proto (package common.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { Message } from "@bufbuild/protobuf";
7
+
8
+ /**
9
+ * Describes the file common/v1/access.proto.
10
+ */
11
+ export declare const file_common_v1_access: GenFile;
12
+
13
+ /**
14
+ * FieldAccess is the optional per-field {read, write} principal policy shared
15
+ * by model fields (models.v1.Field) and customer-profile fields
16
+ * (settings.v1.CustomerProfileField). Each list is an allow-list over the
17
+ * principals "public" | "self" | "scoped" | "service" | "admin": a non-empty
18
+ * `write` names exactly the principals permitted to write the field, and any
19
+ * other principal is rejected. An absent or empty list is unset (no
20
+ * restriction), so a field without a policy keeps its prior behavior.
21
+ *
22
+ * `read` governs client API exposure only; the platform's segment/variant
23
+ * resolution hydrator is a privileged reader that sees every field regardless.
24
+ *
25
+ * @generated from message common.v1.FieldAccess
26
+ */
27
+ export declare type FieldAccess = Message<"common.v1.FieldAccess"> & {
28
+ /**
29
+ * @generated from field: repeated string read = 1;
30
+ */
31
+ read: string[];
32
+
33
+ /**
34
+ * @generated from field: repeated string write = 2;
35
+ */
36
+ write: string[];
37
+ };
38
+
39
+ /**
40
+ * Describes the message common.v1.FieldAccess.
41
+ * Use `create(FieldAccessSchema)` to create a new message.
42
+ */
43
+ export declare const FieldAccessSchema: GenMessage<FieldAccess>;
44
+
@@ -0,0 +1,19 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "import_extension=js"
2
+ // @generated from file common/v1/access.proto (package common.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
+
7
+ /**
8
+ * Describes the file common/v1/access.proto.
9
+ */
10
+ export const file_common_v1_access = /*@__PURE__*/
11
+ fileDesc("ChZjb21tb24vdjEvYWNjZXNzLnByb3RvEgljb21tb24udjEiKgoLRmllbGRBY2Nlc3MSDAoEcmVhZBgBIAMoCRINCgV3cml0ZRgCIAMoCUI5WjdnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vY29tbW9uL3YxO2NvbW1vbnYxYgZwcm90bzM");
12
+
13
+ /**
14
+ * Describes the message common.v1.FieldAccess.
15
+ * Use `create(FieldAccessSchema)` to create a new message.
16
+ */
17
+ export const FieldAccessSchema = /*@__PURE__*/
18
+ messageDesc(file_common_v1_access, 0);
19
+
@@ -5,6 +5,7 @@
5
5
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
6
  import type { JsonObject, Message } from "@bufbuild/protobuf";
7
7
  import type { Timestamp, Value } from "@bufbuild/protobuf/wkt";
8
+ import type { FieldAccess } from "../../common/v1/access_pb.js";
8
9
  import type { PageInfo } from "../../common/v1/pagination_pb.js";
9
10
  import type { BreakingChange, PublishStatus } from "../../publish/v1/publish_pb.js";
10
11
 
@@ -116,6 +117,16 @@ export declare type Field = Message<"models.v1.Field"> & {
116
117
  * @generated from field: optional bool queryable = 16;
117
118
  */
118
119
  queryable?: boolean | undefined;
120
+
121
+ /**
122
+ * Optional per-field {read, write} principal policy. Absent ⇒ writable by
123
+ * any authenticated principal and read per the model's public-field rules
124
+ * (today's behavior); a non-empty write list restricts writes to the named
125
+ * principals. Enforced by the platform on every record write path.
126
+ *
127
+ * @generated from field: common.v1.FieldAccess access = 17;
128
+ */
129
+ access?: FieldAccess | undefined;
119
130
  };
120
131
 
121
132
  /**
@@ -707,16 +718,6 @@ export declare const GetModelByKeyResponseSchema: GenMessage<GetModelByKeyRespon
707
718
  * @generated from message models.v1.ListModelsRequest
708
719
  */
709
720
  export declare type ListModelsRequest = Message<"models.v1.ListModelsRequest"> & {
710
- /**
711
- * @generated from field: optional string search = 1;
712
- */
713
- search?: string | undefined;
714
-
715
- /**
716
- * @generated from field: optional string category = 2;
717
- */
718
- category?: string | undefined;
719
-
720
721
  /**
721
722
  * @generated from field: optional string after = 6;
722
723
  */
@@ -738,9 +739,17 @@ export declare type ListModelsRequest = Message<"models.v1.ListModelsRequest"> &
738
739
  last?: number | undefined;
739
740
 
740
741
  /**
741
- * @generated from field: optional string config_id = 5;
742
+ * Typed WhereInput tree fed through services/internal/whereinput. Supported
743
+ * keys mirror models columns: id, key, name, category (config.category),
744
+ * config_id, inline (config.inline), createdAt, updatedAt, plus AND/OR/NOT.
745
+ * Replaces the former ad-hoc search/category/config_id params — a free-text
746
+ * search is OR:[{name:{contains}},{key:{contains}}]; an inline/standalone
747
+ * filter is {inline:{eq:false}}. tenant/project scoping stays server-enforced
748
+ * via RLS, so where can't widen scope.
749
+ *
750
+ * @generated from field: optional google.protobuf.Struct where = 10;
742
751
  */
743
- configId?: string | undefined;
752
+ where?: JsonObject | undefined;
744
753
  };
745
754
 
746
755
  /**
@@ -6,12 +6,13 @@ import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/
6
6
  import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
7
  import { file_publish_v1_publish } from "../../publish/v1/publish_pb.js";
8
8
  import { file_common_v1_pagination } from "../../common/v1/pagination_pb.js";
9
+ import { file_common_v1_access } from "../../common/v1/access_pb.js";
9
10
 
10
11
  /**
11
12
  * Describes the file models/v1/models.proto.
12
13
  */
13
14
  export const file_models_v1_models = /*@__PURE__*/
14
- fileDesc("ChZtb2RlbHMvdjEvbW9kZWxzLnByb3RvEgltb2RlbHMudjEi3wQKBUZpZWxkEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgR0eXBlGAQgASgJEhAKCHJlcXVpcmVkGAUgASgIEhYKCWhlbHBfdGV4dBgGIAEoCUgAiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAGIAQESMgoNZGVmYXVsdF92YWx1ZRgIIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgCiAEBEicKBmNvbmZpZxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoJaXRlbV90eXBlGAogASgJSAOIAQESFAoHc3RvcmFnZRgLIAEoCUgEiAEBEhoKDXRlbXBsYXRlX3pvbmUYDCABKAlIBYgBARIXCgp6b25lX29yZGVyGA0gASgFSAaIAQESNgoQcmVmZXJlbmNlX2ZpbHRlchgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIvCgp2YWxpZGF0aW9uGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAiIAQESFgoJcXVlcnlhYmxlGBAgASgISAmIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCEAoOX2RlZmF1bHRfdmFsdWVCDAoKX2l0ZW1fdHlwZUIKCghfc3RvcmFnZUIQCg5fdGVtcGxhdGVfem9uZUINCgtfem9uZV9vcmRlckITChFfcmVmZXJlbmNlX2ZpbHRlckINCgtfdmFsaWRhdGlvbkIMCgpfcXVlcnlhYmxlIjwKDVNoYXJpbmdDb25maWcSDwoHZW5hYmxlZBgBIAEoCBIaChJyZXF1aXJlX2FjY2VwdGFuY2UYAiABKAgi9AUKC01vZGVsQ29uZmlnEhIKCnZlcnNpb25pbmcYASABKAgSEgoKcHVibGlzaGluZxgCIAEoCBIQCgh2YXJpYW50cxgDIAEoCBIOCgZpbmxpbmUYBCABKAgSFwoPY3VzdG9tZXJfc2NvcGVkGAUgASgIEi4KB3NoYXJpbmcYBiABKAsyGC5tb2RlbHMudjEuU2hhcmluZ0NvbmZpZ0gAiAEBEhgKC3BsdXJhbF9uYW1lGAcgASgJSAGIAQESGAoLZGVzY3JpcHRpb24YCCABKAlIAogBARIVCghjYXRlZ29yeRgJIAEoCUgDiAEBEhEKBGljb24YCiABKAlIBIgBARIaCg1kaXNwbGF5X2ZpZWxkGAsgASgJSAWIAQESFQoNc3lzdGVtX2VudGl0eRgNIAEoCBIWCglkZWxldGFibGUYDiABKAhIBogBARIVCghlZGl0YWJsZRgPIAEoCEgHiAEBEjUKD21ldGFkYXRhX3NjaGVtYRgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIrCgVob29rcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICYgBARIXCgpwbHVyYWxfa2V5GBIgASgJSAqIAQESLAoHbG9va3VwcxgTIAMoCzIbLm1vZGVscy52MS5Mb29rdXBEZWZpbml0aW9uEjkKDWNhY2hlX2NvbnRyb2wYFCABKAsyHS5tb2RlbHMudjEuQ2FjaGVDb250cm9sQ29uZmlnSAuIAQFCCgoIX3NoYXJpbmdCDgoMX3BsdXJhbF9uYW1lQg4KDF9kZXNjcmlwdGlvbkILCglfY2F0ZWdvcnlCBwoFX2ljb25CEAoOX2Rpc3BsYXlfZmllbGRCDAoKX2RlbGV0YWJsZUILCglfZWRpdGFibGVCEgoQX21ldGFkYXRhX3NjaGVtYUIICgZfaG9va3NCDQoLX3BsdXJhbF9rZXlCEAoOX2NhY2hlX2NvbnRyb2wiUgoSQ2FjaGVDb250cm9sQ29uZmlnEg8KB21heF9hZ2UYASABKAUSKwoFc2NvcGUYAiABKA4yHC5tb2RlbHMudjEuQ2FjaGVDb250cm9sU2NvcGUiPgoQTG9va3VwRGVmaW5pdGlvbhIOCgZrZXlfYnkYASADKAkSEQoEbmFtZRgCIAEoCUgAiAEBQgcKBV9uYW1lIokBChFNb2RlbENhcGFiaWxpdGllcxIUCgxpc192ZXJzaW9uZWQYASABKAgSFgoOaXNfcHVibGlzaGFibGUYAiABKAgSFAoMaGFzX3ZhcmlhbnRzGAMgASgIEhcKD2N1c3RvbWVyX3Njb3BlZBgEIAEoCBIXCg9zaGFyaW5nX2VuYWJsZWQYBSABKAgijwcKBU1vZGVsEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEiAKBmZpZWxkcxgEIAMoCzIQLm1vZGVscy52MS5GaWVsZBImCgZjb25maWcYBSABKAsyFi5tb2RlbHMudjEuTW9kZWxDb25maWcSFgoJY29uZmlnX2lkGAYgASgJSACIAQESMgoMY2FwYWJpbGl0aWVzGAcgASgLMhwubW9kZWxzLnYxLk1vZGVsQ2FwYWJpbGl0aWVzEh8KEmN1cnJlbnRfdmVyc2lvbl9pZBgIIAEoCUgBiAEBEiUKGHB1Ymxpc2hlZF92ZXJzaW9uX251bWJlchgJIAEoBUgCiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIA4gBARIXCgp1cGRhdGVkX2J5GBUgASgJSASIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoSbGFzdF9wdXNoZWRfZmllbGRzGCggAygLMhAubW9kZWxzLnYxLkZpZWxkEjcKDmxhc3RfcHVzaGVkX2F0GCkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEiEKFHB1Ymxpc2hlZF92ZXJzaW9uX2lkGCogASgJSAaIAQESPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYKyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBgsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBICIgBAUIMCgpfY29uZmlnX2lkQhUKE19jdXJyZW50X3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fbGFzdF9wdXNoZWRfYXRCFwoVX3B1Ymxpc2hlZF92ZXJzaW9uX2lkQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCLCAgoMTW9kZWxWZXJzaW9uEgoKAmlkGAEgASgJEhAKCG1vZGVsX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEiAKBmZpZWxkcxgEIAMoCzIQLm1vZGVscy52MS5GaWVsZBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkizQEKEkNyZWF0ZU1vZGVsUmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIgCgZmaWVsZHMYAyADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAQgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSACIAQESFgoJY29uZmlnX2lkGAUgASgJSAGIAQESHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYBiABKAhCCQoHX2NvbmZpZ0IMCgpfY29uZmlnX2lkIjYKE0NyZWF0ZU1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiHQoPR2V0TW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIjMKEEdldE1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiIwoUR2V0TW9kZWxCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIjgKFUdldE1vZGVsQnlLZXlSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCL1AQoRTGlzdE1vZGVsc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESFQoIY2F0ZWdvcnkYAiABKAlIAYgBARISCgVhZnRlchgGIAEoCUgCiAEBEhMKBmJlZm9yZRgHIAEoCUgDiAEBEhIKBWZpcnN0GAggASgFSASIAQESEQoEbGFzdBgJIAEoBUgFiAEBEhYKCWNvbmZpZ19pZBgFIAEoCUgGiAEBQgkKB19zZWFyY2hCCwoJX2NhdGVnb3J5QggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdEIMCgpfY29uZmlnX2lkIpEBChJMaXN0TW9kZWxzUmVzcG9uc2USIAoGbW9kZWxzGAEgAygLMhAubW9kZWxzLnYxLk1vZGVsEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyK4AgoSVXBkYXRlTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIgCgZmaWVsZHMYAyADKAsyEC5tb2RlbHMudjEuRmllbGQSKwoGY29uZmlnGAQgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnSAGIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAUgASgJSAKIAQESFQoNdXBkYXRlX2ZpZWxkcxgGIAEoCBIcChR1cGRhdGVfcHVzaF9zbmFwc2hvdBgHIAEoCBIVCg1zbmFwc2hvdF9vbmx5GAggASgIEhwKFGFsbG93X2xvb2t1cF9yZWJ1aWxkGAkgASgIQgcKBV9uYW1lQgkKB19jb25maWdCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiI2ChNVcGRhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIiAKEkRlbGV0ZU1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSImChNEZWxldGVNb2RlbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRgoVRHVwbGljYXRlTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJEg8KB25ld19rZXkYAiABKAkSEAoIbmV3X25hbWUYAyABKAkiOQoWRHVwbGljYXRlTW9kZWxSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCKkAQoYTGlzdE1vZGVsVmVyc2lvbnNSZXF1ZXN0EhAKCG1vZGVsX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBChlMaXN0TW9kZWxWZXJzaW9uc1Jlc3BvbnNlEikKCHZlcnNpb25zGAEgAygLMhcubW9kZWxzLnYxLk1vZGVsVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iPgoWR2V0TW9kZWxWZXJzaW9uUmVxdWVzdBIQCghtb2RlbF9pZBgBIAEoCRISCgp2ZXJzaW9uX2lkGAIgASgJIkMKF0dldE1vZGVsVmVyc2lvblJlc3BvbnNlEigKB3ZlcnNpb24YASABKAsyFy5tb2RlbHMudjEuTW9kZWxWZXJzaW9uIkIKGlJlc3RvcmVNb2RlbFZlcnNpb25SZXF1ZXN0EhAKCG1vZGVsX2lkGAEgASgJEhIKCnZlcnNpb25faWQYAiABKAkiPgobUmVzdG9yZU1vZGVsVmVyc2lvblJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsImMKFERlcHJlY2F0ZWRGaWVsZFRvdWNoEhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRIRCglmaWVsZF9rZXkYBCABKAkiVgoiTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVxdWVzdBIwCgd0b3VjaGVzGAEgAygLMh8ubW9kZWxzLnYxLkRlcHJlY2F0ZWRGaWVsZFRvdWNoIjYKI01hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZFJlc3BvbnNlEg8KB3VwZGF0ZWQYASABKAUi9wEKGERlcHJlY2F0ZWRGaWVsZENhbmRpZGF0ZRIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghtb2RlbF9pZBgDIAEoCRIRCgltb2RlbF9rZXkYBCABKAkSEQoJZmllbGRfa2V5GAUgASgJEi4KCmRlbGV0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKD2xhc3RfcXVlcmllZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUISChBfbGFzdF9xdWVyaWVkX2F0IrwBCiRMaXN0RGVwcmVjYXRlZEZpZWxkQ2FuZGlkYXRlc1JlcXVlc3QSHAoUZ3JhY2VfcGVyaW9kX3NlY29uZHMYASABKAMSEgoFZmlyc3QYAiABKAVIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhEKBGxhc3QYBCABKAVIAogBARITCgZiZWZvcmUYBSABKAlIA4gBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUiuwEKJUxpc3REZXByZWNhdGVkRmllbGRDYW5kaWRhdGVzUmVzcG9uc2USNwoKY2FuZGlkYXRlcxgBIAMoCzIjLm1vZGVscy52MS5EZXByZWNhdGVkRmllbGRDYW5kaWRhdGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIkEKGkRyb3BEZXByZWNhdGVkRmllbGRSZXF1ZXN0EhAKCG1vZGVsX2lkGAEgASgJEhEKCWZpZWxkX2tleRgCIAEoCSIuChtEcm9wRGVwcmVjYXRlZEZpZWxkUmVzcG9uc2USDwoHZHJvcHBlZBgBIAEoCCIhChNQdWJsaXNoTW9kZWxSZXF1ZXN0EgoKAmlkGAEgASgJIm0KFFB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIiMKFVVucHVibGlzaE1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSI5ChZVbnB1Ymxpc2hNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIioKHEdldE1vZGVsUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiSgodR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIqEBChtTY2hlZHVsZU1vZGVsUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiPwocU2NoZWR1bGVNb2RlbFB1Ymxpc2hSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCIwCiJDYW5jZWxTY2hlZHVsZWRNb2RlbFB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJIkYKI0NhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsKvkCCglGaWVsZFR5cGUSGgoWRklFTERfVFlQRV9VTlNQRUNJRklFRBAAEhMKD0ZJRUxEX1RZUEVfVEVYVBABEhUKEUZJRUxEX1RZUEVfTlVNQkVSEAISFgoSRklFTERfVFlQRV9CT09MRUFOEAMSEwoPRklFTERfVFlQRV9EQVRFEAQSFQoRRklFTERfVFlQRV9TRUxFQ1QQBRITCg9GSUVMRF9UWVBFX0pTT04QBhITCg9GSUVMRF9UWVBFX0xJU1QQBxIUChBGSUVMRF9UWVBFX01PREVMEAgSGAoURklFTERfVFlQRV9SRUZFUkVOQ0UQCRITCg9GSUVMRF9UWVBFX0ZJTEUQChIUChBGSUVMRF9UWVBFX0lNQUdFEAsSFAoQRklFTERfVFlQRV9WSURFTxAMEhcKE0ZJRUxEX1RZUEVfRkxFWElCTEUQDRITCg9GSUVMRF9UWVBFX0VOVU0QDhIXChNGSUVMRF9UWVBFX1JJQ0hURVhUEA8qmwEKEUNhY2hlQ29udHJvbFNjb3BlEiMKH0NBQ0hFX0NPTlRST0xfU0NPUEVfVU5TUEVDSUZJRUQQABIeChpDQUNIRV9DT05UUk9MX1NDT1BFX1BVQkxJQxABEh8KG0NBQ0hFX0NPTlRST0xfU0NPUEVfUFJJVkFURRACEiAKHENBQ0hFX0NPTlRST0xfU0NPUEVfTk9fQ0FDSEUQAzK4DQoNTW9kZWxzU2VydmljZRJDCghHZXRNb2RlbBIaLm1vZGVscy52MS5HZXRNb2RlbFJlcXVlc3QaGy5tb2RlbHMudjEuR2V0TW9kZWxSZXNwb25zZRJSCg1HZXRNb2RlbEJ5S2V5Eh8ubW9kZWxzLnYxLkdldE1vZGVsQnlLZXlSZXF1ZXN0GiAubW9kZWxzLnYxLkdldE1vZGVsQnlLZXlSZXNwb25zZRJJCgpMaXN0TW9kZWxzEhwubW9kZWxzLnYxLkxpc3RNb2RlbHNSZXF1ZXN0Gh0ubW9kZWxzLnYxLkxpc3RNb2RlbHNSZXNwb25zZRJMCgtDcmVhdGVNb2RlbBIdLm1vZGVscy52MS5DcmVhdGVNb2RlbFJlcXVlc3QaHi5tb2RlbHMudjEuQ3JlYXRlTW9kZWxSZXNwb25zZRJMCgtVcGRhdGVNb2RlbBIdLm1vZGVscy52MS5VcGRhdGVNb2RlbFJlcXVlc3QaHi5tb2RlbHMudjEuVXBkYXRlTW9kZWxSZXNwb25zZRJMCgtEZWxldGVNb2RlbBIdLm1vZGVscy52MS5EZWxldGVNb2RlbFJlcXVlc3QaHi5tb2RlbHMudjEuRGVsZXRlTW9kZWxSZXNwb25zZRJVCg5EdXBsaWNhdGVNb2RlbBIgLm1vZGVscy52MS5EdXBsaWNhdGVNb2RlbFJlcXVlc3QaIS5tb2RlbHMudjEuRHVwbGljYXRlTW9kZWxSZXNwb25zZRJYCg9HZXRNb2RlbFZlcnNpb24SIS5tb2RlbHMudjEuR2V0TW9kZWxWZXJzaW9uUmVxdWVzdBoiLm1vZGVscy52MS5HZXRNb2RlbFZlcnNpb25SZXNwb25zZRJeChFMaXN0TW9kZWxWZXJzaW9ucxIjLm1vZGVscy52MS5MaXN0TW9kZWxWZXJzaW9uc1JlcXVlc3QaJC5tb2RlbHMudjEuTGlzdE1vZGVsVmVyc2lvbnNSZXNwb25zZRJkChNSZXN0b3JlTW9kZWxWZXJzaW9uEiUubW9kZWxzLnYxLlJlc3RvcmVNb2RlbFZlcnNpb25SZXF1ZXN0GiYubW9kZWxzLnYxLlJlc3RvcmVNb2RlbFZlcnNpb25SZXNwb25zZRJPCgxQdWJsaXNoTW9kZWwSHi5tb2RlbHMudjEuUHVibGlzaE1vZGVsUmVxdWVzdBofLm1vZGVscy52MS5QdWJsaXNoTW9kZWxSZXNwb25zZRJVCg5VbnB1Ymxpc2hNb2RlbBIgLm1vZGVscy52MS5VbnB1Ymxpc2hNb2RlbFJlcXVlc3QaIS5tb2RlbHMudjEuVW5wdWJsaXNoTW9kZWxSZXNwb25zZRJqChVHZXRNb2RlbFB1Ymxpc2hTdGF0dXMSJy5tb2RlbHMudjEuR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVxdWVzdBooLm1vZGVscy52MS5HZXRNb2RlbFB1Ymxpc2hTdGF0dXNSZXNwb25zZRJnChRTY2hlZHVsZU1vZGVsUHVibGlzaBImLm1vZGVscy52MS5TY2hlZHVsZU1vZGVsUHVibGlzaFJlcXVlc3QaJy5tb2RlbHMudjEuU2NoZWR1bGVNb2RlbFB1Ymxpc2hSZXNwb25zZRJ8ChtDYW5jZWxTY2hlZHVsZWRNb2RlbFB1Ymxpc2gSLS5tb2RlbHMudjEuQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVxdWVzdBouLm1vZGVscy52MS5DYW5jZWxTY2hlZHVsZWRNb2RlbFB1Ymxpc2hSZXNwb25zZRJ8ChtNYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWQSLS5tb2RlbHMudjEuTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVxdWVzdBouLm1vZGVscy52MS5NYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWRSZXNwb25zZRKCAQodTGlzdERlcHJlY2F0ZWRGaWVsZENhbmRpZGF0ZXMSLy5tb2RlbHMudjEuTGlzdERlcHJlY2F0ZWRGaWVsZENhbmRpZGF0ZXNSZXF1ZXN0GjAubW9kZWxzLnYxLkxpc3REZXByZWNhdGVkRmllbGRDYW5kaWRhdGVzUmVzcG9uc2USZAoTRHJvcERlcHJlY2F0ZWRGaWVsZBIlLm1vZGVscy52MS5Ecm9wRGVwcmVjYXRlZEZpZWxkUmVxdWVzdBomLm1vZGVscy52MS5Ecm9wRGVwcmVjYXRlZEZpZWxkUmVzcG9uc2VCOVo3Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL21vZGVscy92MTttb2RlbHN2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish, file_common_v1_pagination]);
15
+ fileDesc("ChZtb2RlbHMvdjEvbW9kZWxzLnByb3RvEgltb2RlbHMudjEihwUKBUZpZWxkEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgR0eXBlGAQgASgJEhAKCHJlcXVpcmVkGAUgASgIEhYKCWhlbHBfdGV4dBgGIAEoCUgAiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAGIAQESMgoNZGVmYXVsdF92YWx1ZRgIIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgCiAEBEicKBmNvbmZpZxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFgoJaXRlbV90eXBlGAogASgJSAOIAQESFAoHc3RvcmFnZRgLIAEoCUgEiAEBEhoKDXRlbXBsYXRlX3pvbmUYDCABKAlIBYgBARIXCgp6b25lX29yZGVyGA0gASgFSAaIAQESNgoQcmVmZXJlbmNlX2ZpbHRlchgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIvCgp2YWxpZGF0aW9uGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAiIAQESFgoJcXVlcnlhYmxlGBAgASgISAmIAQESJgoGYWNjZXNzGBEgASgLMhYuY29tbW9uLnYxLkZpZWxkQWNjZXNzQgwKCl9oZWxwX3RleHRCDgoMX3BsYWNlaG9sZGVyQhAKDl9kZWZhdWx0X3ZhbHVlQgwKCl9pdGVtX3R5cGVCCgoIX3N0b3JhZ2VCEAoOX3RlbXBsYXRlX3pvbmVCDQoLX3pvbmVfb3JkZXJCEwoRX3JlZmVyZW5jZV9maWx0ZXJCDQoLX3ZhbGlkYXRpb25CDAoKX3F1ZXJ5YWJsZSI8Cg1TaGFyaW5nQ29uZmlnEg8KB2VuYWJsZWQYASABKAgSGgoScmVxdWlyZV9hY2NlcHRhbmNlGAIgASgIIvQFCgtNb2RlbENvbmZpZxISCgp2ZXJzaW9uaW5nGAEgASgIEhIKCnB1Ymxpc2hpbmcYAiABKAgSEAoIdmFyaWFudHMYAyABKAgSDgoGaW5saW5lGAQgASgIEhcKD2N1c3RvbWVyX3Njb3BlZBgFIAEoCBIuCgdzaGFyaW5nGAYgASgLMhgubW9kZWxzLnYxLlNoYXJpbmdDb25maWdIAIgBARIYCgtwbHVyYWxfbmFtZRgHIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAggASgJSAKIAQESFQoIY2F0ZWdvcnkYCSABKAlIA4gBARIRCgRpY29uGAogASgJSASIAQESGgoNZGlzcGxheV9maWVsZBgLIAEoCUgFiAEBEhUKDXN5c3RlbV9lbnRpdHkYDSABKAgSFgoJZGVsZXRhYmxlGA4gASgISAaIAQESFQoIZWRpdGFibGUYDyABKAhIB4gBARI1Cg9tZXRhZGF0YV9zY2hlbWEYECABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAiIAQESKwoFaG9va3MYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESFwoKcGx1cmFsX2tleRgSIAEoCUgKiAEBEiwKB2xvb2t1cHMYEyADKAsyGy5tb2RlbHMudjEuTG9va3VwRGVmaW5pdGlvbhI5Cg1jYWNoZV9jb250cm9sGBQgASgLMh0ubW9kZWxzLnYxLkNhY2hlQ29udHJvbENvbmZpZ0gLiAEBQgoKCF9zaGFyaW5nQg4KDF9wbHVyYWxfbmFtZUIOCgxfZGVzY3JpcHRpb25CCwoJX2NhdGVnb3J5QgcKBV9pY29uQhAKDl9kaXNwbGF5X2ZpZWxkQgwKCl9kZWxldGFibGVCCwoJX2VkaXRhYmxlQhIKEF9tZXRhZGF0YV9zY2hlbWFCCAoGX2hvb2tzQg0KC19wbHVyYWxfa2V5QhAKDl9jYWNoZV9jb250cm9sIlIKEkNhY2hlQ29udHJvbENvbmZpZxIPCgdtYXhfYWdlGAEgASgFEisKBXNjb3BlGAIgASgOMhwubW9kZWxzLnYxLkNhY2hlQ29udHJvbFNjb3BlIj4KEExvb2t1cERlZmluaXRpb24SDgoGa2V5X2J5GAEgAygJEhEKBG5hbWUYAiABKAlIAIgBAUIHCgVfbmFtZSKJAQoRTW9kZWxDYXBhYmlsaXRpZXMSFAoMaXNfdmVyc2lvbmVkGAEgASgIEhYKDmlzX3B1Ymxpc2hhYmxlGAIgASgIEhQKDGhhc192YXJpYW50cxgDIAEoCBIXCg9jdXN0b21lcl9zY29wZWQYBCABKAgSFwoPc2hhcmluZ19lbmFibGVkGAUgASgIIo8HCgVNb2RlbBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIgCgZmaWVsZHMYBCADKAsyEC5tb2RlbHMudjEuRmllbGQSJgoGY29uZmlnGAUgASgLMhYubW9kZWxzLnYxLk1vZGVsQ29uZmlnEhYKCWNvbmZpZ19pZBgGIAEoCUgAiAEBEjIKDGNhcGFiaWxpdGllcxgHIAEoCzIcLm1vZGVscy52MS5Nb2RlbENhcGFiaWxpdGllcxIfChJjdXJyZW50X3ZlcnNpb25faWQYCCABKAlIAYgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYCSABKAVIAogBARIRCgl0ZW5hbnRfaWQYCiABKAkSEgoKcHJvamVjdF9pZBgLIAEoCRIXCgpjcmVhdGVkX2J5GBQgASgJSAOIAQESFwoKdXBkYXRlZF9ieRgVIAEoCUgEiAEBEi4KCmNyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKEmxhc3RfcHVzaGVkX2ZpZWxkcxgoIAMoCzIQLm1vZGVscy52MS5GaWVsZBI3Cg5sYXN0X3B1c2hlZF9hdBgpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIhChRwdWJsaXNoZWRfdmVyc2lvbl9pZBgqIAEoCUgGiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAiIAQFCDAoKX2NvbmZpZ19pZEIVChNfY3VycmVudF92ZXJzaW9uX2lkQhsKGV9wdWJsaXNoZWRfdmVyc2lvbl9udW1iZXJCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCEQoPX2xhc3RfcHVzaGVkX2F0QhcKFV9wdWJsaXNoZWRfdmVyc2lvbl9pZEIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiwgIKDE1vZGVsVmVyc2lvbhIKCgJpZBgBIAEoCRIQCghtb2RlbF9pZBgCIAEoCRIWCg52ZXJzaW9uX251bWJlchgDIAEoBRIgCgZmaWVsZHMYBCADKAsyEC5tb2RlbHMudjEuRmllbGQSFAoMY29udGVudF9oYXNoGAUgASgJEh4KEXNvdXJjZV92ZXJzaW9uX2lkGAYgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAcgASgJSAGIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRgJIAEoCUgCiAEBQhQKEl9zb3VyY2VfdmVyc2lvbl9pZEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5Is0BChJDcmVhdGVNb2RlbFJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSIAoGZmllbGRzGAMgAygLMhAubW9kZWxzLnYxLkZpZWxkEisKBmNvbmZpZxgEIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZ0gAiAEBEhYKCWNvbmZpZ19pZBgFIAEoCUgBiAEBEhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAYgASgIQgkKB19jb25maWdCDAoKX2NvbmZpZ19pZCI2ChNDcmVhdGVNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIh0KD0dldE1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSIzChBHZXRNb2RlbFJlc3BvbnNlEh8KBW1vZGVsGAEgASgLMhAubW9kZWxzLnYxLk1vZGVsIiMKFEdldE1vZGVsQnlLZXlSZXF1ZXN0EgsKA2tleRgBIAEoCSI4ChVHZXRNb2RlbEJ5S2V5UmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiwgEKEUxpc3RNb2RlbHNSZXF1ZXN0EhIKBWFmdGVyGAYgASgJSACIAQESEwoGYmVmb3JlGAcgASgJSAGIAQESEgoFZmlyc3QYCCABKAVIAogBARIRCgRsYXN0GAkgASgFSAOIAQESKwoFd2hlcmUYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKRAQoSTGlzdE1vZGVsc1Jlc3BvbnNlEiAKBm1vZGVscxgBIAMoCzIQLm1vZGVscy52MS5Nb2RlbBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iuAIKElVwZGF0ZU1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESIAoGZmllbGRzGAMgAygLMhAubW9kZWxzLnYxLkZpZWxkEisKBmNvbmZpZxgEIAEoCzIWLm1vZGVscy52MS5Nb2RlbENvbmZpZ0gBiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgFIAEoCUgCiAEBEhUKDXVwZGF0ZV9maWVsZHMYBiABKAgSHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYByABKAgSFQoNc25hcHNob3Rfb25seRgIIAEoCBIcChRhbGxvd19sb29rdXBfcmVidWlsZBgJIAEoCEIHCgVfbmFtZUIJCgdfY29uZmlnQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24iNgoTVXBkYXRlTW9kZWxSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCIgChJEZWxldGVNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkiJgoTRGVsZXRlTW9kZWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkYKFUR1cGxpY2F0ZU1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCRIPCgduZXdfa2V5GAIgASgJEhAKCG5ld19uYW1lGAMgASgJIjkKFkR1cGxpY2F0ZU1vZGVsUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwipAEKGExpc3RNb2RlbFZlcnNpb25zUmVxdWVzdBIQCghtb2RlbF9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKhAQoZTGlzdE1vZGVsVmVyc2lvbnNSZXNwb25zZRIpCgh2ZXJzaW9ucxgBIAMoCzIXLm1vZGVscy52MS5Nb2RlbFZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIj4KFkdldE1vZGVsVmVyc2lvblJlcXVlc3QSEAoIbW9kZWxfaWQYASABKAkSEgoKdmVyc2lvbl9pZBgCIAEoCSJDChdHZXRNb2RlbFZlcnNpb25SZXNwb25zZRIoCgd2ZXJzaW9uGAEgASgLMhcubW9kZWxzLnYxLk1vZGVsVmVyc2lvbiJCChpSZXN0b3JlTW9kZWxWZXJzaW9uUmVxdWVzdBIQCghtb2RlbF9pZBgBIAEoCRISCgp2ZXJzaW9uX2lkGAIgASgJIj4KG1Jlc3RvcmVNb2RlbFZlcnNpb25SZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCJjChREZXByZWNhdGVkRmllbGRUb3VjaBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIRCgltb2RlbF9rZXkYAyABKAkSEQoJZmllbGRfa2V5GAQgASgJIlYKIk1hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZFJlcXVlc3QSMAoHdG91Y2hlcxgBIAMoCzIfLm1vZGVscy52MS5EZXByZWNhdGVkRmllbGRUb3VjaCI2CiNNYXJrRGVwcmVjYXRlZEZpZWxkc1F1ZXJpZWRSZXNwb25zZRIPCgd1cGRhdGVkGAEgASgFIvcBChhEZXByZWNhdGVkRmllbGRDYW5kaWRhdGUSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIbW9kZWxfaWQYAyABKAkSEQoJbW9kZWxfa2V5GAQgASgJEhEKCWZpZWxkX2tleRgFIAEoCRIuCgpkZWxldGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9sYXN0X3F1ZXJpZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCEgoQX2xhc3RfcXVlcmllZF9hdCK8AQokTGlzdERlcHJlY2F0ZWRGaWVsZENhbmRpZGF0ZXNSZXF1ZXN0EhwKFGdyYWNlX3BlcmlvZF9zZWNvbmRzGAEgASgDEhIKBWZpcnN0GAIgASgFSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARIRCgRsYXN0GAQgASgFSAKIAQESEwoGYmVmb3JlGAUgASgJSAOIAQFCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIrsBCiVMaXN0RGVwcmVjYXRlZEZpZWxkQ2FuZGlkYXRlc1Jlc3BvbnNlEjcKCmNhbmRpZGF0ZXMYASADKAsyIy5tb2RlbHMudjEuRGVwcmVjYXRlZEZpZWxkQ2FuZGlkYXRlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJBChpEcm9wRGVwcmVjYXRlZEZpZWxkUmVxdWVzdBIQCghtb2RlbF9pZBgBIAEoCRIRCglmaWVsZF9rZXkYAiABKAkiLgobRHJvcERlcHJlY2F0ZWRGaWVsZFJlc3BvbnNlEg8KB2Ryb3BwZWQYASABKAgiIQoTUHVibGlzaE1vZGVsUmVxdWVzdBIKCgJpZBgBIAEoCSJtChRQdWJsaXNoTW9kZWxSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbBI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIjChVVbnB1Ymxpc2hNb2RlbFJlcXVlc3QSCgoCaWQYASABKAkiOQoWVW5wdWJsaXNoTW9kZWxSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCIqChxHZXRNb2RlbFB1Ymxpc2hTdGF0dXNSZXF1ZXN0EgoKAmlkGAEgASgJIkoKHUdldE1vZGVsUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyKhAQobU2NoZWR1bGVNb2RlbFB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0Ij8KHFNjaGVkdWxlTW9kZWxQdWJsaXNoUmVzcG9uc2USHwoFbW9kZWwYASABKAsyEC5tb2RlbHMudjEuTW9kZWwiMAoiQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJGCiNDYW5jZWxTY2hlZHVsZWRNb2RlbFB1Ymxpc2hSZXNwb25zZRIfCgVtb2RlbBgBIAEoCzIQLm1vZGVscy52MS5Nb2RlbCr5AgoJRmllbGRUeXBlEhoKFkZJRUxEX1RZUEVfVU5TUEVDSUZJRUQQABITCg9GSUVMRF9UWVBFX1RFWFQQARIVChFGSUVMRF9UWVBFX05VTUJFUhACEhYKEkZJRUxEX1RZUEVfQk9PTEVBThADEhMKD0ZJRUxEX1RZUEVfREFURRAEEhUKEUZJRUxEX1RZUEVfU0VMRUNUEAUSEwoPRklFTERfVFlQRV9KU09OEAYSEwoPRklFTERfVFlQRV9MSVNUEAcSFAoQRklFTERfVFlQRV9NT0RFTBAIEhgKFEZJRUxEX1RZUEVfUkVGRVJFTkNFEAkSEwoPRklFTERfVFlQRV9GSUxFEAoSFAoQRklFTERfVFlQRV9JTUFHRRALEhQKEEZJRUxEX1RZUEVfVklERU8QDBIXChNGSUVMRF9UWVBFX0ZMRVhJQkxFEA0SEwoPRklFTERfVFlQRV9FTlVNEA4SFwoTRklFTERfVFlQRV9SSUNIVEVYVBAPKpsBChFDYWNoZUNvbnRyb2xTY29wZRIjCh9DQUNIRV9DT05UUk9MX1NDT1BFX1VOU1BFQ0lGSUVEEAASHgoaQ0FDSEVfQ09OVFJPTF9TQ09QRV9QVUJMSUMQARIfChtDQUNIRV9DT05UUk9MX1NDT1BFX1BSSVZBVEUQAhIgChxDQUNIRV9DT05UUk9MX1NDT1BFX05PX0NBQ0hFEAMyuA0KDU1vZGVsc1NlcnZpY2USQwoIR2V0TW9kZWwSGi5tb2RlbHMudjEuR2V0TW9kZWxSZXF1ZXN0GhsubW9kZWxzLnYxLkdldE1vZGVsUmVzcG9uc2USUgoNR2V0TW9kZWxCeUtleRIfLm1vZGVscy52MS5HZXRNb2RlbEJ5S2V5UmVxdWVzdBogLm1vZGVscy52MS5HZXRNb2RlbEJ5S2V5UmVzcG9uc2USSQoKTGlzdE1vZGVscxIcLm1vZGVscy52MS5MaXN0TW9kZWxzUmVxdWVzdBodLm1vZGVscy52MS5MaXN0TW9kZWxzUmVzcG9uc2USTAoLQ3JlYXRlTW9kZWwSHS5tb2RlbHMudjEuQ3JlYXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLkNyZWF0ZU1vZGVsUmVzcG9uc2USTAoLVXBkYXRlTW9kZWwSHS5tb2RlbHMudjEuVXBkYXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLlVwZGF0ZU1vZGVsUmVzcG9uc2USTAoLRGVsZXRlTW9kZWwSHS5tb2RlbHMudjEuRGVsZXRlTW9kZWxSZXF1ZXN0Gh4ubW9kZWxzLnYxLkRlbGV0ZU1vZGVsUmVzcG9uc2USVQoORHVwbGljYXRlTW9kZWwSIC5tb2RlbHMudjEuRHVwbGljYXRlTW9kZWxSZXF1ZXN0GiEubW9kZWxzLnYxLkR1cGxpY2F0ZU1vZGVsUmVzcG9uc2USWAoPR2V0TW9kZWxWZXJzaW9uEiEubW9kZWxzLnYxLkdldE1vZGVsVmVyc2lvblJlcXVlc3QaIi5tb2RlbHMudjEuR2V0TW9kZWxWZXJzaW9uUmVzcG9uc2USXgoRTGlzdE1vZGVsVmVyc2lvbnMSIy5tb2RlbHMudjEuTGlzdE1vZGVsVmVyc2lvbnNSZXF1ZXN0GiQubW9kZWxzLnYxLkxpc3RNb2RlbFZlcnNpb25zUmVzcG9uc2USZAoTUmVzdG9yZU1vZGVsVmVyc2lvbhIlLm1vZGVscy52MS5SZXN0b3JlTW9kZWxWZXJzaW9uUmVxdWVzdBomLm1vZGVscy52MS5SZXN0b3JlTW9kZWxWZXJzaW9uUmVzcG9uc2USTwoMUHVibGlzaE1vZGVsEh4ubW9kZWxzLnYxLlB1Ymxpc2hNb2RlbFJlcXVlc3QaHy5tb2RlbHMudjEuUHVibGlzaE1vZGVsUmVzcG9uc2USVQoOVW5wdWJsaXNoTW9kZWwSIC5tb2RlbHMudjEuVW5wdWJsaXNoTW9kZWxSZXF1ZXN0GiEubW9kZWxzLnYxLlVucHVibGlzaE1vZGVsUmVzcG9uc2USagoVR2V0TW9kZWxQdWJsaXNoU3RhdHVzEicubW9kZWxzLnYxLkdldE1vZGVsUHVibGlzaFN0YXR1c1JlcXVlc3QaKC5tb2RlbHMudjEuR2V0TW9kZWxQdWJsaXNoU3RhdHVzUmVzcG9uc2USZwoUU2NoZWR1bGVNb2RlbFB1Ymxpc2gSJi5tb2RlbHMudjEuU2NoZWR1bGVNb2RlbFB1Ymxpc2hSZXF1ZXN0GicubW9kZWxzLnYxLlNjaGVkdWxlTW9kZWxQdWJsaXNoUmVzcG9uc2USfAobQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoEi0ubW9kZWxzLnYxLkNhbmNlbFNjaGVkdWxlZE1vZGVsUHVibGlzaFJlcXVlc3QaLi5tb2RlbHMudjEuQ2FuY2VsU2NoZWR1bGVkTW9kZWxQdWJsaXNoUmVzcG9uc2USfAobTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkEi0ubW9kZWxzLnYxLk1hcmtEZXByZWNhdGVkRmllbGRzUXVlcmllZFJlcXVlc3QaLi5tb2RlbHMudjEuTWFya0RlcHJlY2F0ZWRGaWVsZHNRdWVyaWVkUmVzcG9uc2USggEKHUxpc3REZXByZWNhdGVkRmllbGRDYW5kaWRhdGVzEi8ubW9kZWxzLnYxLkxpc3REZXByZWNhdGVkRmllbGRDYW5kaWRhdGVzUmVxdWVzdBowLm1vZGVscy52MS5MaXN0RGVwcmVjYXRlZEZpZWxkQ2FuZGlkYXRlc1Jlc3BvbnNlEmQKE0Ryb3BEZXByZWNhdGVkRmllbGQSJS5tb2RlbHMudjEuRHJvcERlcHJlY2F0ZWRGaWVsZFJlcXVlc3QaJi5tb2RlbHMudjEuRHJvcERlcHJlY2F0ZWRGaWVsZFJlc3BvbnNlQjlaN2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9tb2RlbHMvdjE7bW9kZWxzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
15
16
 
16
17
  /**
17
18
  * Describes the message models.v1.Field.
@@ -6,6 +6,7 @@ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobu
6
6
  import type { JsonObject, Message } from "@bufbuild/protobuf";
7
7
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
8
  import type { PageInfo } from "../../common/v1/pagination_pb.js";
9
+ import type { FieldAccess } from "../../common/v1/access_pb.js";
9
10
  import type { RuleExpression } from "../../expressions/v1/expressions_pb.js";
10
11
  import type { BreakingChange, PendingEntity, PublishStatus, SchemaChannel } from "../../publish/v1/publish_pb.js";
11
12
 
@@ -2485,6 +2486,16 @@ export declare type CustomerProfileField = Message<"settings.v1.CustomerProfileF
2485
2486
  * @generated from field: optional google.protobuf.Struct config = 8;
2486
2487
  */
2487
2488
  config?: JsonObject | undefined;
2489
+
2490
+ /**
2491
+ * Optional per-field {read, write} principal policy. Absent ⇒ today's
2492
+ * behavior (writable by any authenticated principal, read per publicFields);
2493
+ * a non-empty write list restricts writes — e.g. `plan` as write:[service,
2494
+ * admin] so a customer can't self-grant. Enforced on every profile write.
2495
+ *
2496
+ * @generated from field: common.v1.FieldAccess access = 9;
2497
+ */
2498
+ access?: FieldAccess | undefined;
2488
2499
  };
2489
2500
 
2490
2501
  /**
@@ -7,12 +7,13 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
7
7
  import { file_expressions_v1_expressions } from "../../expressions/v1/expressions_pb.js";
8
8
  import { file_publish_v1_publish } from "../../publish/v1/publish_pb.js";
9
9
  import { file_common_v1_pagination } from "../../common/v1/pagination_pb.js";
10
+ import { file_common_v1_access } from "../../common/v1/access_pb.js";
10
11
 
11
12
  /**
12
13
  * Describes the file settings/v1/settings.proto.
13
14
  */
14
15
  export const file_settings_v1_settings = /*@__PURE__*/
15
- fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmcixQEKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKXAQoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ilQEKEUNyZWF0ZU5vdGVSZXF1ZXN0EhMKC2VudGl0eV90eXBlGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRIoCgdjb250ZW50GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIbCg5wYXJlbnRfbm90ZV9pZBgEIAEoCUgAiAEBQhEKD19wYXJlbnRfbm90ZV9pZCI1ChJDcmVhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHAoOR2V0Tm90ZVJlcXVlc3QSCgoCaWQYASABKAkiMgoPR2V0Tm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIsEBChBMaXN0Tm90ZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKQAQoRTGlzdE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKEAQoRVXBkYXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkSLQoHY29udGVudBgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIYCgtpc19yZXNvbHZlZBgDIAEoCEgBiAEBQgoKCF9jb250ZW50Qg4KDF9pc19yZXNvbHZlZCI1ChJVcGRhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHwoRRGVsZXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiJQoSRGVsZXRlTm90ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgirAUKC05vdGVNZW50aW9uEgoKAmlkGAEgASgJEg8KB25vdGVfaWQYAiABKAkSGQoRbWVudGlvbmVkX3VzZXJfaWQYAyABKAkSDgoGc3RhdHVzGAQgASgJEjAKB3NlZW5fYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPYWNrbm93bGVkZ2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjUKDGNvbXBsZXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIbCg5jb21wbGV0ZWRfbm90ZRgIIAEoCUgDiAEBEjUKDGRpc21pc3NlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIbCg5kaXNtaXNzX3JlYXNvbhgKIAEoCUgFiAEBEjEKCGR1ZV9kYXRlGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEhEKCXRlbmFudF9pZBgUIAEoCRIXCgpwcm9qZWN0X2lkGBUgASgJSAeIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3NlZW5fYXRCEgoQX2Fja25vd2xlZGdlZF9hdEIPCg1fY29tcGxldGVkX2F0QhEKD19jb21wbGV0ZWRfbm90ZUIPCg1fZGlzbWlzc2VkX2F0QhEKD19kaXNtaXNzX3JlYXNvbkILCglfZHVlX2RhdGVCDQoLX3Byb2plY3RfaWQi2gEKEk1lbnRpb25XaXRoQ29udGV4dBIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24SHwoEbm90ZRgCIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUSGAoLYXV0aG9yX25hbWUYAyABKAlIAIgBARIYCgtlbnRpdHlfdHlwZRgEIAEoCUgBiAEBEhYKCWVudGl0eV9pZBgFIAEoCUgCiAEBQg4KDF9hdXRob3JfbmFtZUIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZCJPCg1NZW50aW9uQ291bnRzEg8KB3BlbmRpbmcYASABKAUSEAoIcGFzdF9kdWUYAiABKAUSGwoTY29tcGxldGVkX3RoaXNfd2VlaxgDIAEoBSLGAQoVTGlzdE15TWVudGlvbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCLPAQoWTGlzdE15TWVudGlvbnNSZXNwb25zZRIuCgVpdGVtcxgBIAMoCzIfLnNldHRpbmdzLnYxLk1lbnRpb25XaXRoQ29udGV4dBINCgV0b3RhbBgCIAEoBRIqCgZjb3VudHMYAyABKAsyGi5zZXR0aW5ncy52MS5NZW50aW9uQ291bnRzEisKCXBhZ2VfaW5mbxgEIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBSADKAlCDAoKX3BhZ2VfaW5mbyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsIBChFMaXN0U2hhcmVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikwEKEkxpc3RTaGFyZXNSZXNwb25zZRIiCgZzaGFyZXMYASADKAsyEi5zZXR0aW5ncy52MS5TaGFyZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ioAEKElVwZGF0ZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCRI1CgpwZXJtaXNzaW9uGAIgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uSACIAQESLQoGc3RhdHVzGAMgASgOMhguc2V0dGluZ3MudjEuU2hhcmVTdGF0dXNIAYgBAUINCgtfcGVybWlzc2lvbkIJCgdfc3RhdHVzIjgKE1VwZGF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIgChJSZXZva2VTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiJgoTUmV2b2tlU2hhcmVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKEkFjY2VwdFNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChNBY2NlcHRTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIQoTRGVjbGluZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI5ChREZWNsaW5lU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIr8DCgZMb2NhbGUSCgoCaWQYASABKAkSDgoGbG9jYWxlGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIYCgtuYXRpdmVfbmFtZRgEIAEoCUgAiAEBEhIKCmlzX2RlZmF1bHQYBSABKAgSEQoJaXNfYWN0aXZlGAYgASgIEg4KBmlzX3J0bBgHIAEoCBIcCg9mYWxsYmFja19sb2NhbGUYCCABKAlIAYgBARIZChFmYWxsYmFja19wcmlvcml0eRgJIAEoBRIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAKIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9uYXRpdmVfbmFtZUISChBfZmFsbGJhY2tfbG9jYWxlQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5IsMBChJMaXN0TG9jYWxlc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpYBChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldExvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkiOAoRR2V0TG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIt8BChNDcmVhdGVMb2NhbGVSZXF1ZXN0Eg4KBmxvY2FsZRgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSGAoLbmF0aXZlX25hbWUYAyABKAlIAIgBARIXCgppc19kZWZhdWx0GAQgASgISAGIAQESEwoGaXNfcnRsGAUgASgISAKIAQESHAoPZmFsbGJhY2tfbG9jYWxlGAYgASgJSAOIAQFCDgoMX25hdGl2ZV9uYW1lQg0KC19pc19kZWZhdWx0QgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRDcmVhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUilwIKE1VwZGF0ZUxvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkSGQoMZGlzcGxheV9uYW1lGAIgASgJSACIAQESGAoLbmF0aXZlX25hbWUYAyABKAlIAYgBARIXCgppc19kZWZhdWx0GAQgASgISAKIAQESFgoJaXNfYWN0aXZlGAUgASgISAOIAQESEwoGaXNfcnRsGAYgASgISASIAQESHAoPZmFsbGJhY2tfbG9jYWxlGAcgASgJSAWIAQFCDwoNX2Rpc3BsYXlfbmFtZUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZUIJCgdfaXNfcnRsQhIKEF9mYWxsYmFja19sb2NhbGUiOwoUVXBkYXRlTG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiEKE0RlbGV0ZUxvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlTG9jYWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKUAQoOTmF2UHJlZmVyZW5jZXMSGQoRZmF2b3JpdGVfcHJvamVjdHMYASADKAkSGgoSZmF2b3JpdGVfbmF2X2l0ZW1zGAIgAygJEhoKEmNvbGxhcHNlZF9zZWN0aW9ucxgDIAMoCRIvCg5uYXZfaXRlbV9vcmRlchgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiGgoYR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0Ik0KGUdldE5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyL8AQobVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0EjUKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXNIAIgBARIeChF0b2dnbGVfcHJvamVjdF9pZBgCIAEoCUgBiAEBEhwKD3RvZ2dsZV9uYXZfaXRlbRgDIAEoCUgCiAEBEhsKDnRvZ2dsZV9zZWN0aW9uGAQgASgJSAOIAQFCDgoMX3ByZWZlcmVuY2VzQhQKEl90b2dnbGVfcHJvamVjdF9pZEISChBfdG9nZ2xlX25hdl9pdGVtQhEKD190b2dnbGVfc2VjdGlvbiJQChxVcGRhdGVOYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEjAKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXMiXgoSUmVjZW50bHlPcGVuZWRJdGVtEgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCRIRCgl0aW1lc3RhbXAYBSABKAMikwEKGUxpc3RSZWNlbnRseU9wZW5lZFJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QimAEKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAlCDAoKX3BhZ2VfaW5mbyJTChpUcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEg0KBWxhYmVsGAMgASgJEgwKBHBhdGgYBCABKAkiLgobVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNwobUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkiLwocUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhwKGkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Ii4KG0NsZWFyUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIs8FChBDb250ZXh0RGltZW5zaW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEwoLc291cmNlX3R5cGUYBSABKAkSGAoQc291cmNlX21vZGVsX2tleRgGIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYByABKAlIAYgBARIRCglpc19zeXN0ZW0YCCABKAgSFwoPYnVpbHRfaW5fdmFsdWVzGAkgAygJEhEKCWRhdGFfdHlwZRgKIAEoCRIQCghjYXRlZ29yeRgLIAEoCRITCgtpc19yZXF1aXJlZBgMIAEoCBISCgpzb3J0X29yZGVyGA0gASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAogBARIXCgp1cGRhdGVkX2J5GB8gASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiMwoVQ29udGV4dERpbWVuc2lvblZhbHVlEgsKA2tleRgBIAEoCRINCgVsYWJlbBgCIAEoCSK2AQocTGlzdENvbnRleHREaW1lbnNpb25zUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq0BCh1MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRIxCgpkaW1lbnNpb25zGAEgAygLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiL/AQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBEhQKB3B1Ymxpc2gYBiABKAhIBIgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEwoRX3NvdXJjZV9tb2RlbF9rZXlCFQoTX2RlZmF1bHRfcmVjb3JkX2tleUIKCghfcHVibGlzaCJSCh5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiIrCh1EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIxCh5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLRAQogR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QSFQoNZGltZW5zaW9uX2tleRgBIAEoCRITCgZzZWFyY2gYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrIBCiFHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USMgoGdmFsdWVzGAEgAygLMiIuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZhbHVlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLnAQoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCCQoHX2NvbmZpZyKSAwoVQ3VzdG9tZXJQcm9maWxlU2NoZW1hEgoKAmlkGAEgASgJEjEKBmZpZWxkcxgCIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAyADKAkSDwoHdmVyc2lvbhgEIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSLyAwoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGAoLZmFsbGJhY2tfaWQYCiABKAlIAogBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAOIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgEiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkISChBfdGFyZ2V0aW5nX3J1bGVzQg4KDF9mYWxsYmFja19pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLKAQoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiqgEKGkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjEKB2VudHJpZXMYASADKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXAocQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRInCgZjcmVhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkYKHUNyZWF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEiUKBGRhdGEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlwKHFVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJGCh1VcGRhdGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRIlCgRkYXRhGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJuCiJVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0EjEKBmZpZWxkcxgBIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAiADKAkiWQojVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USMgoGc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hIlMKFUN1c3RvbWVyUHJvZmlsZVJlc3VsdBITCgtjdXN0b21lcl9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKmAQodU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1JlcXVlc3QSDQoFcXVlcnkYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBARITCgZiZWZvcmUYAyABKAlIAYgBARISCgVmaXJzdBgEIAEoBUgCiAEBEhEKBGxhc3QYBSABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QisAEKHlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXNwb25zZRIzCgdyZXN1bHRzGAEgAygLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlUmVzdWx0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIzChxEZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIjAKHURlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiPQomR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiWQoTUmVzb2x1dGlvbkF0dHJpYnV0ZRILCgNrZXkYASABKAkSNQoGdmFsdWVzGAIgAygLMiUuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlIoABChhSZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUSDQoFdmFsdWUYASABKAkSDQoFY291bnQYAiABKAUSNQoMbGFzdF9zZWVuX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9sYXN0X3NlZW5fYXQijAIKJ0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRIZChF0b3RhbF9yZXNvbHV0aW9ucxgBIAEoBRI0CgphdHRyaWJ1dGVzGAIgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZRI2Cg1maXJzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjUKDGxhc3Rfc2Vlbl9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIQCg5fZmlyc3Rfc2Vlbl9hdEIPCg1fbGFzdF9zZWVuX2F0IiwKF0dldEVkaXRvckNvbmZpZ3NSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSLAAgoVRWRpdG9yQ29uZmlnUGxhY2VtZW50EhEKCWNvbmZpZ19pZBgBIAEoCRISCgpjb25maWdfa2V5GAIgASgJEhAKA3VybBgDIAEoCUgAiAEBEhsKDmFsbG93ZWRfb3JpZ2luGAQgASgJSAGIAQESEwoGaGVpZ2h0GAUgASgFSAKIAQESEgoFbGFiZWwYBiABKAlIA4gBARIUCgdhcGlfa2V5GAcgASgJSASIAQESFAoHYXBpX3VybBgIIAEoCUgFiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAkgASgJSAaIAQFCBgoEX3VybEIRCg9fYWxsb3dlZF9vcmlnaW5CCQoHX2hlaWdodEIICgZfbGFiZWxCCgoIX2FwaV9rZXlCCgoIX2FwaV91cmxCFAoSX2Nvbm5lY3Rpb25fZG9tYWluIlIKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI2CgpwbGFjZW1lbnRzGAEgAygLMiIuc2V0dGluZ3MudjEuRWRpdG9yQ29uZmlnUGxhY2VtZW50IiAKElJlc29sdmVOb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSI2ChNSZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIiIKFFVucmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjgKFVVucmVzb2x2ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSLFAQoSU2VhcmNoTm90ZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhgKC2VudGl0eV90eXBlGAIgASgJSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIOCgxfZW50aXR5X3R5cGVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpIBChNTZWFyY2hOb3Rlc1Jlc3BvbnNlEiAKBW5vdGVzGAEgAygLMhEuc2V0dGluZ3MudjEuTm90ZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iGQoXTWFya01lbnRpb25zU2VlblJlcXVlc3QiKQoYTWFya01lbnRpb25zU2VlblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIi4KH0dldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIlQKIEdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iGQoXR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QiPwoYR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImChZHZXRMb2NhbGVCeUNvZGVSZXF1ZXN0EgwKBGNvZGUYASABKAkiPgoXR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKJEdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJYCiVHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIjChREZWxldGVTZXR0aW5nUmVxdWVzdBILCgNrZXkYASABKAkiKAoVRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMwofRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSIxCiBEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRINCgVjb3VudBgBIAEoBSJNChZCdWxrU2V0U2V0dGluZ3NSZXF1ZXN0EjMKCHNldHRpbmdzGAEgAygLMiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QiKAoXQnVsa1NldFNldHRpbmdzUmVzcG9uc2USDQoFY291bnQYASABKAUiKQonRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlsKKEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IvADCgxEZXNpZ25Ub2tlbnMSKQoIZG9jdW1lbnQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjMKCHJlc29sdmVkGAIgASgLMiEuc2V0dGluZ3MudjEuUmVzb2x2ZWREZXNpZ25Ub2tlbnMSDwoHdmVyc2lvbhgKIAEoBRIeChFwdWJsaXNoZWRfdmVyc2lvbhgLIAEoBUgAiAEBEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GDwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYPSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCFAoSX3B1Ymxpc2hlZF92ZXJzaW9uQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCL6BAoUUmVzb2x2ZWREZXNpZ25Ub2tlbnMSLwoGY29sb3JzGAEgAygLMh8uc2V0dGluZ3MudjEuUmVzb2x2ZWRDb2xvclRva2VuEjsKDWZvbnRfZmFtaWxpZXMYAiADKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZEZvbnRGYW1pbHlUb2tlbhI6Cgxmb250X3dlaWdodHMYAyADKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZEZvbnRXZWlnaHRUb2tlbhI3Cgpmb250X3NpemVzGAQgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhI2CgxsaW5lX2hlaWdodHMYBSADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZE51bWJlclRva2VuEjwKD2xldHRlcl9zcGFjaW5ncxgGIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SOAoKdHlwb2dyYXBoeRgHIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkVHlwb2dyYXBoeVRva2VuEjUKCHNwYWNpbmdzGAggAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIyCgVyYWRpaRgJIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SMQoHc2hhZG93cxgKIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkU2hhZG93VG9rZW4SMQoHYm9yZGVycxgLIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkQm9yZGVyVG9rZW4iaQoSUmVzb2x2ZWRDb2xvclRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgJQg4KDF9kZXNjcmlwdGlvbiJuChdSZXNvbHZlZEZvbnRGYW1pbHlUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAMoCUIOCgxfZGVzY3JpcHRpb24ibgoXUmVzb2x2ZWRGb250V2VpZ2h0VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAVCDgoMX2Rlc2NyaXB0aW9uIm0KFlJlc29sdmVkRGltZW5zaW9uVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAlCDgoMX2Rlc2NyaXB0aW9uImoKE1Jlc29sdmVkTnVtYmVyVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAFCDgoMX2Rlc2NyaXB0aW9uIswBChdSZXNvbHZlZFR5cG9ncmFwaHlUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIzCgV2YWx1ZRgEIAEoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkVHlwb2dyYXBoeVZhbHVlEhIKBWxhYmVsGAUgASgJSAGIAQESEAoDdGFnGAYgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQggKBl9sYWJlbEIGCgRfdGFnIo0BChNSZXNvbHZlZFNoYWRvd1Rva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjAKBmxheWVycxgEIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkU2hhZG93TGF5ZXJCDgoMX2Rlc2NyaXB0aW9uInUKE1Jlc29sdmVkU2hhZG93TGF5ZXISEAoIb2Zmc2V0X3gYASABKAkSEAoIb2Zmc2V0X3kYAiABKAkSDAoEYmx1chgDIAEoCRIOCgZzcHJlYWQYBCABKAkSDQoFY29sb3IYBSABKAkSDQoFaW5zZXQYBiABKAgijAEKE1Jlc29sdmVkQm9yZGVyVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESLwoFdmFsdWUYBCABKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZEJvcmRlclZhbHVlQg4KDF9kZXNjcmlwdGlvbiJCChNSZXNvbHZlZEJvcmRlclZhbHVlEg0KBWNvbG9yGAEgASgJEg0KBXdpZHRoGAIgASgJEg0KBXN0eWxlGAMgASgJIpsBChdSZXNvbHZlZFR5cG9ncmFwaHlWYWx1ZRITCgtmb250X2ZhbWlseRgBIAMoCRIRCglmb250X3NpemUYAiABKAkSEwoLZm9udF93ZWlnaHQYAyABKAUSEwoLbGluZV9oZWlnaHQYBCABKAESFgoObGV0dGVyX3NwYWNpbmcYBSABKAkSFgoOdGV4dF90cmFuc2Zvcm0YBiABKAkiRAoWR2V0RGVzaWduVG9rZW5zUmVxdWVzdBIqCgdjaGFubmVsGAEgASgOMhkucHVibGlzaC52MS5TY2hlbWFDaGFubmVsIkQKF0dldERlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyJGChlVcGRhdGVEZXNpZ25Ub2tlbnNSZXF1ZXN0EikKCGRvY3VtZW50GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJHChpVcGRhdGVEZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiHAoaUHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QifgobUHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucxI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIeChxVbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0IkoKHVVucHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyIlCiNHZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzUmVxdWVzdCJRCiRHZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIpwBCiJTY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0Ei4KCnB1Ymxpc2hfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IlAKI1NjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaFJlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyIrCilDYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoUmVxdWVzdCJXCipDYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIjcKIUNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVxdWVzdBISCgp0b2tlbl9wYXRoGAEgASgJIlMKIkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVzcG9uc2USFwoPcGFyYWdyYXBoX2NvdW50GAEgASgFEhQKDHJlY29yZF9jb3VudBgCIAEoBSLZAgoSRGVzaWduVG9rZW5WZXJzaW9uEgoKAmlkGAEgASgJEhgKEGRlc2lnbl90b2tlbnNfaWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSIqChxHZXREZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlEKHUdldERlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlEjAKB3ZlcnNpb24YASABKAsyHy5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlblZlcnNpb24imAEKHkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKvAQofTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXNwb25zZRIxCgh2ZXJzaW9ucxgBIAMoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ibgogUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIoQBCiFSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zEjQKC25ld192ZXJzaW9uGAIgASgLMh8uc2V0dGluZ3MudjEuRGVzaWduVG9rZW5WZXJzaW9uIkUKF0dldFByb2plY3RTY2hlbWFSZXF1ZXN0EioKB2NoYW5uZWwYASABKA4yGS5wdWJsaXNoLnYxLlNjaGVtYUNoYW5uZWwiZQoSUHJvamVjdFNjaGVtYU1vZGVsEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhMKC2ZpZWxkc19qc29uGAQgASgJEhMKC2NvbmZpZ19qc29uGAUgASgJIsIBCh1Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIdChBzb3VyY2VfbW9kZWxfa2V5GAQgASgJSACIAQESHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAUgASgJSAGIAQESDgoGdmFsdWVzGAYgAygJQhMKEV9zb3VyY2VfbW9kZWxfa2V5QhUKE19kZWZhdWx0X3JlY29yZF9rZXkijgEKGVByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEiwKBmNvbmZpZxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIJCgdfY29uZmlnIp8DChZQcm9qZWN0U2NoZW1hT3BlcmF0aW9uEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhAKCGVuZHBvaW50GAMgASgJEhIKCnRpbWVvdXRfbXMYBCABKAUSMgoMaW5wdXRfc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEjMKDW91dHB1dF9zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESFgoOc3VwcG9ydHNfYXN5bmMYByABKAgSDAoEa2luZBgIIAEoCRIeChFhdHRhY2hlZF90b19tb2RlbBgJIAEoCUgCiAEBEhUKDXBhcmVudF9maWVsZHMYCiADKAkSMwoNY2FjaGVfY29udHJvbBgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUIPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQhQKEl9hdHRhY2hlZF90b19tb2RlbEIQCg5fY2FjaGVfY29udHJvbCJEChRQcm9qZWN0U2NoZW1hU2VnbWVudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgiWQoaUHJvamVjdFNjaGVtYVByb2ZpbGVTY2hlbWESEwoLZmllbGRzX2pzb24YASABKAkSFQoNcHVibGljX2ZpZWxkcxgCIAMoCRIPCgd2ZXJzaW9uGAMgASgFIpIDChhHZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USLwoGbW9kZWxzGAEgAygLMh8uc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU1vZGVsEj4KCmRpbWVuc2lvbnMYAiADKAsyKi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhI+Cg5hdXRoX3Byb3ZpZGVycxgDIAMoCzImLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISNwoKb3BlcmF0aW9ucxgEIAMoCzIjLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFPcGVyYXRpb24SMwoIc2VnbWVudHMYBSADKAsyIS5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hU2VnbWVudBJECg5wcm9maWxlX3NjaGVtYRgHIAEoCzInLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hSACIAQFCEQoPX3Byb2ZpbGVfc2NoZW1hIiwKHlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSKJAQofUHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIi4KIFVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlUKIVVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjUKJ0dldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJVCihHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyLiAgoXQ29udGV4dERpbWVuc2lvblZlcnNpb24SCgoCaWQYASABKAkSHAoUY29udGV4dF9kaW1lbnNpb25faWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSIvCiFHZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiWwoiR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRI1Cgd2ZXJzaW9uGAEgASgLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24iuwEKI0xpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnNSZXF1ZXN0EhwKFGNvbnRleHRfZGltZW5zaW9uX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrkBCiRMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVzcG9uc2USNgoIdmVyc2lvbnMYASADKAsyJC5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8icwolUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgCIAEoCUgAiAEBQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ilQEKJlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SOQoLbmV3X3ZlcnNpb24YAiABKAsyJC5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uVmVyc2lvbiIdChtQdWJsaXNoUHJvZmlsZVNjaGVtYVJlcXVlc3QikAEKHFB1Ymxpc2hQcm9maWxlU2NoZW1hUmVzcG9uc2USOgoOcHJvZmlsZV9zY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWESNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiHwodVW5wdWJsaXNoUHJvZmlsZVNjaGVtYVJlcXVlc3QiXAoeVW5wdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hIiYKJEdldFByb2ZpbGVTY2hlbWFQdWJsaXNoU3RhdHVzUmVxdWVzdCJSCiVHZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyLcAgoUUHJvZmlsZVNjaGVtYVZlcnNpb24SCgoCaWQYASABKAkSGQoRcHJvZmlsZV9zY2hlbWFfaWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSIsCh5HZXRQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiVQofR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRIyCgd2ZXJzaW9uGAEgASgLMiEuc2V0dGluZ3MudjEuUHJvZmlsZVNjaGVtYVZlcnNpb24imgEKIExpc3RQcm9maWxlU2NoZW1hVmVyc2lvbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrMBCiFMaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVzcG9uc2USMwoIdmVyc2lvbnMYASADKAsyIS5zZXR0aW5ncy52MS5Qcm9maWxlU2NoZW1hVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8icAoiUmVzdG9yZVByb2ZpbGVTY2hlbWFWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgCIAEoCUgAiAEBQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ikQEKI1Jlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYRI2CgtuZXdfdmVyc2lvbhgCIAEoCzIhLnNldHRpbmdzLnYxLlByb2ZpbGVTY2hlbWFWZXJzaW9uIh0KG1B1Ymxpc2hQcm9qZWN0U2NoZW1hUmVxdWVzdCL2AQocUHVibGlzaFByb2plY3RTY2hlbWFSZXNwb25zZRIYChBtb2RlbHNfcHVibGlzaGVkGAEgASgFEhwKFG9wZXJhdGlvbnNfcHVibGlzaGVkGAIgASgFEiQKHGNvbnRleHRfZGltZW5zaW9uc19wdWJsaXNoZWQYAyABKAUSIAoYYXV0aF9wcm92aWRlcnNfcHVibGlzaGVkGAQgASgFEiAKGHByb2ZpbGVfc2NoZW1hX3B1Ymxpc2hlZBgFIAEoCBI0ChBicmVha2luZ19jaGFuZ2VzGAYgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIgCh5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1JlcXVlc3QigwEKH0dldFByb2plY3RQdWJsaXNoU3RhdHVzUmVzcG9uc2USKgoHcGVuZGluZxgBIAMoCzIZLnB1Ymxpc2gudjEuUGVuZGluZ0VudGl0eRI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSKsAQomU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiWwonU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iOwotQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJImIKLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiKdAQojU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QSLgoKcHVibGlzaF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiYgokU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaFJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hIiwKKkNhbmNlbFNjaGVkdWxlZFByb2ZpbGVTY2hlbWFQdWJsaXNoUmVxdWVzdCJpCitDYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hKnYKEVNoYXJlUmVzb3VyY2VUeXBlEiMKH1NIQVJFX1JFU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIeChpTSEFSRV9SRVNPVVJDRV9UWVBFX1JFQ09SRBABEhwKGFNIQVJFX1JFU09VUkNFX1RZUEVfRklMRRACKoUBCg9TaGFyZVBlcm1pc3Npb24SIAocU0hBUkVfUEVSTUlTU0lPTl9VTlNQRUNJRklFRBAAEhkKFVNIQVJFX1BFUk1JU1NJT05fVklFVxABEhkKFVNIQVJFX1BFUk1JU1NJT05fRURJVBACEhoKFlNIQVJFX1BFUk1JU1NJT05fQURNSU4QAyp7CgtTaGFyZVN0YXR1cxIcChhTSEFSRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIYChRTSEFSRV9TVEFUVVNfUEVORElORxABEhkKFVNIQVJFX1NUQVRVU19BQ0NFUFRFRBACEhkKFVNIQVJFX1NUQVRVU19ERUNMSU5FRBADMsBMCg9TZXR0aW5nc1NlcnZpY2USUAoLR2V0U2V0dGluZ3MSHy5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1Jlc3BvbnNlElYKDVVwZGF0ZVNldHRpbmcSIS5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVwZGF0ZVNldHRpbmdSZXNwb25zZRJWCg1EZWxldGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nUmVzcG9uc2USdwoYRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5Eiwuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBotLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlc3BvbnNlElwKD0J1bGtTZXRTZXR0aW5ncxIjLnNldHRpbmdzLnYxLkJ1bGtTZXRTZXR0aW5nc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXNwb25zZRJWCg1MaXN0QXVkaXRMb2dzEiEuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIi5zZXR0aW5ncy52MS5MaXN0QXVkaXRMb2dzUmVzcG9uc2USTQoKQ3JlYXRlTm90ZRIeLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuQ3JlYXRlTm90ZVJlc3BvbnNlEkQKB0dldE5vdGUSGy5zZXR0aW5ncy52MS5HZXROb3RlUmVxdWVzdBocLnNldHRpbmdzLnYxLkdldE5vdGVSZXNwb25zZRJKCglMaXN0Tm90ZXMSHS5zZXR0aW5ncy52MS5MaXN0Tm90ZXNSZXF1ZXN0Gh4uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVzcG9uc2USTQoKVXBkYXRlTm90ZRIeLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuVXBkYXRlTm90ZVJlc3BvbnNlEk0KCkRlbGV0ZU5vdGUSHi5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGVSZXNwb25zZRJQCgtSZXNvbHZlTm90ZRIfLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVzcG9uc2USVgoNVW5yZXNvbHZlTm90ZRIhLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXF1ZXN0GiIuc2V0dGluZ3MudjEuVW5yZXNvbHZlTm90ZVJlc3BvbnNlElAKC1NlYXJjaE5vdGVzEh8uc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXF1ZXN0GiAuc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXNwb25zZRJZCg5MaXN0TXlNZW50aW9ucxIiLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVxdWVzdBojLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVzcG9uc2USaAoTVXBkYXRlTWVudGlvblN0YXR1cxInLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0Giguc2V0dGluZ3MudjEuVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEl8KEE1hcmtNZW50aW9uc1NlZW4SJC5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVxdWVzdBolLnNldHRpbmdzLnYxLk1hcmtNZW50aW9uc1NlZW5SZXNwb25zZRJQCgtMaXN0TG9jYWxlcxIfLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVzcG9uc2USSgoJR2V0TG9jYWxlEh0uc2V0dGluZ3MudjEuR2V0TG9jYWxlUmVxdWVzdBoeLnNldHRpbmdzLnYxLkdldExvY2FsZVJlc3BvbnNlEl8KEEdldERlZmF1bHRMb2NhbGUSJC5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldERlZmF1bHRMb2NhbGVSZXNwb25zZRJcCg9HZXRMb2NhbGVCeUNvZGUSIy5zZXR0aW5ncy52MS5HZXRMb2NhbGVCeUNvZGVSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USUwoMQ3JlYXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuQ3JlYXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlc3BvbnNlElMKDFVwZGF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLlVwZGF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXNwb25zZRJTCgxEZWxldGVMb2NhbGUSIC5zZXR0aW5ncy52MS5EZWxldGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVzcG9uc2USYgoRR2V0TmF2UHJlZmVyZW5jZXMSJS5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QaJi5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEmsKFFVwZGF0ZU5hdlByZWZlcmVuY2VzEiguc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0Gikuc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXNwb25zZRJlChJMaXN0UmVjZW50bHlPcGVuZWQSJi5zZXR0aW5ncy52MS5MaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTVHJhY2tSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmsKFFJlbW92ZVJlY2VudGx5T3BlbmVkEiguc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRJoChNDbGVhclJlY2VudGx5T3BlbmVkEicuc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QaKC5zZXR0aW5ncy52MS5DbGVhclJlY2VudGx5T3BlbmVkUmVzcG9uc2USUAoLQ3JlYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlc3BvbnNlEkcKCEdldFNoYXJlEhwuc2V0dGluZ3MudjEuR2V0U2hhcmVSZXF1ZXN0Gh0uc2V0dGluZ3MudjEuR2V0U2hhcmVSZXNwb25zZRJNCgpMaXN0U2hhcmVzEh4uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1JlcXVlc3QaHy5zZXR0aW5ncy52MS5MaXN0U2hhcmVzUmVzcG9uc2USUAoLVXBkYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlc3BvbnNlElAKC1Jldm9rZVNoYXJlEh8uc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXNwb25zZRJQCgtBY2NlcHRTaGFyZRIfLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVzcG9uc2USUwoMRGVjbGluZVNoYXJlEiAuc2V0dGluZ3MudjEuRGVjbGluZVNoYXJlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlc3BvbnNlEm4KFUxpc3RDb250ZXh0RGltZW5zaW9ucxIpLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRJoChNHZXRDb250ZXh0RGltZW5zaW9uEicuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QaKC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USdwoYR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5Eiwuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVxdWVzdBotLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEnEKFkNyZWF0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZVcGRhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWRGVsZXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuRGVsZXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnoKGUdldENvbnRleHREaW1lbnNpb25WYWx1ZXMSLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVxdWVzdBouLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXNwb25zZRJ3ChhHZXRDdXN0b21lclByb2ZpbGVTY2hlbWESLC5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0Gi0uc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USZQoSR2V0Q3VzdG9tZXJQcm9maWxlEiYuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBonLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEm4KFUNyZWF0ZUN1c3RvbWVyUHJvZmlsZRIpLnNldHRpbmdzLnYxLkNyZWF0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaKi5zZXR0aW5ncy52MS5DcmVhdGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVVcGRhdGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USgAEKG1VwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYRIvLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QaMC5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRJxChZTZWFyY2hDdXN0b21lclByb2ZpbGVzEiouc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1JlcXVlc3QaKy5zZXR0aW5ncy52MS5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USbgoVRGVsZXRlQ3VzdG9tZXJQcm9maWxlEikuc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBoqLnNldHRpbmdzLnYxLkRlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEowBCh9HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzEjMuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QaNC5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USXwoQR2V0RWRpdG9yQ29uZmlncxIkLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1Jlc3BvbnNlEmUKEkxpc3RWYXJpYW50Q2F0YWxvZxImLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QaJy5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRJxChZHZXRWYXJpYW50Q2F0YWxvZ0VudHJ5Eiouc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaKy5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGVVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlEZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2UShgEKHUdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5EjEuc2V0dGluZ3MudjEuR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0GjIuc2V0dGluZ3MudjEuR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKPAQogRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSNC5zZXR0aW5ncy52MS5FbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaNS5zZXR0aW5ncy52MS5FbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEl8KEEdldFByb2plY3RTY2hlbWESJC5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXNwb25zZRJ0ChdQdWJsaXNoQ29udGV4dERpbWVuc2lvbhIrLnNldHRpbmdzLnYxLlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBosLnNldHRpbmdzLnYxLlB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USegoZVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvbhItLnNldHRpbmdzLnYxLlVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEo8BCiBHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1cxI0LnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBo1LnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USjAEKH1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2gSMy5zZXR0aW5ncy52MS5TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBo0LnNldHRpbmdzLnYxLlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRKhAQomQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2gSOi5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QaOy5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEn0KGkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uEi4uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0Gi8uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRKDAQocTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9ucxIwLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnNSZXF1ZXN0GjEuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEokBCh5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb24SMi5zZXR0aW5ncy52MS5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0GjMuc2V0dGluZ3MudjEuUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USdAoXR2V0UHJvZmlsZVNjaGVtYVZlcnNpb24SKy5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QaLC5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hVmVyc2lvblJlc3BvbnNlEnoKGUxpc3RQcm9maWxlU2NoZW1hVmVyc2lvbnMSLS5zZXR0aW5ncy52MS5MaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVxdWVzdBouLnNldHRpbmdzLnYxLkxpc3RQcm9maWxlU2NoZW1hVmVyc2lvbnNSZXNwb25zZRKAAQobUmVzdG9yZVByb2ZpbGVTY2hlbWFWZXJzaW9uEi8uc2V0dGluZ3MudjEuUmVzdG9yZVByb2ZpbGVTY2hlbWFWZXJzaW9uUmVxdWVzdBowLnNldHRpbmdzLnYxLlJlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlc3BvbnNlEmsKFFB1Ymxpc2hQcm9maWxlU2NoZW1hEiguc2V0dGluZ3MudjEuUHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRJxChZVbnB1Ymxpc2hQcm9maWxlU2NoZW1hEiouc2V0dGluZ3MudjEuVW5wdWJsaXNoUHJvZmlsZVNjaGVtYVJlcXVlc3QaKy5zZXR0aW5ncy52MS5VbnB1Ymxpc2hQcm9maWxlU2NoZW1hUmVzcG9uc2UShgEKHUdldFByb2ZpbGVTY2hlbWFQdWJsaXNoU3RhdHVzEjEuc2V0dGluZ3MudjEuR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjIuc2V0dGluZ3MudjEuR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXNSZXNwb25zZRKDAQocU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaBIwLnNldHRpbmdzLnYxLlNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0GjEuc2V0dGluZ3MudjEuU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaFJlc3BvbnNlEpgBCiNDYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaBI3LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZFByb2ZpbGVTY2hlbWFQdWJsaXNoUmVxdWVzdBo4LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZFByb2ZpbGVTY2hlbWFQdWJsaXNoUmVzcG9uc2USdAoXR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXMSKy5zZXR0aW5ncy52MS5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1JlcXVlc3QaLC5zZXR0aW5ncy52MS5HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEmsKFFB1Ymxpc2hQcm9qZWN0U2NoZW1hEiguc2V0dGluZ3MudjEuUHVibGlzaFByb2plY3RTY2hlbWFSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUHVibGlzaFByb2plY3RTY2hlbWFSZXNwb25zZRJcCg9HZXREZXNpZ25Ub2tlbnMSIy5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUmVzcG9uc2USZQoSVXBkYXRlRGVzaWduVG9rZW5zEiYuc2V0dGluZ3MudjEuVXBkYXRlRGVzaWduVG9rZW5zUmVxdWVzdBonLnNldHRpbmdzLnYxLlVwZGF0ZURlc2lnblRva2Vuc1Jlc3BvbnNlEmgKE1B1Ymxpc2hEZXNpZ25Ub2tlbnMSJy5zZXR0aW5ncy52MS5QdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdBooLnNldHRpbmdzLnYxLlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRJuChVVbnB1Ymxpc2hEZXNpZ25Ub2tlbnMSKS5zZXR0aW5ncy52MS5VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USgwEKHEdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXMSMC5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzUmVxdWVzdBoxLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXNwb25zZRKAAQobU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoEi8uc2V0dGluZ3MudjEuU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVxdWVzdBowLnNldHRpbmdzLnYxLlNjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaFJlc3BvbnNlEpUBCiJDYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoEjYuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkRGVzaWduVG9rZW5zUHVibGlzaFJlcXVlc3QaNy5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USfQoaQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXMSLi5zZXR0aW5ncy52MS5Db3VudERlc2lnblRva2VuUmVmZXJlbmNlc1JlcXVlc3QaLy5zZXR0aW5ncy52MS5Db3VudERlc2lnblRva2VuUmVmZXJlbmNlc1Jlc3BvbnNlEm4KFUdldERlc2lnblRva2VuVmVyc2lvbhIpLnNldHRpbmdzLnYxLkdldERlc2lnblRva2VuVmVyc2lvblJlcXVlc3QaKi5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZRJ0ChdMaXN0RGVzaWduVG9rZW5WZXJzaW9ucxIrLnNldHRpbmdzLnYxLkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVxdWVzdBosLnNldHRpbmdzLnYxLkxpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVzcG9uc2USegoZUmVzdG9yZURlc2lnblRva2VuVmVyc2lvbhItLnNldHRpbmdzLnYxLlJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0Gi4uc2V0dGluZ3MudjEuUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zZXR0aW5ncy92MTtzZXR0aW5nc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination]);
16
+ fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmcixQEKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKXAQoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ilQEKEUNyZWF0ZU5vdGVSZXF1ZXN0EhMKC2VudGl0eV90eXBlGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRIoCgdjb250ZW50GAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIbCg5wYXJlbnRfbm90ZV9pZBgEIAEoCUgAiAEBQhEKD19wYXJlbnRfbm90ZV9pZCI1ChJDcmVhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHAoOR2V0Tm90ZVJlcXVlc3QSCgoCaWQYASABKAkiMgoPR2V0Tm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIsEBChBMaXN0Tm90ZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKQAQoRTGlzdE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKEAQoRVXBkYXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkSLQoHY29udGVudBgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIYCgtpc19yZXNvbHZlZBgDIAEoCEgBiAEBQgoKCF9jb250ZW50Qg4KDF9pc19yZXNvbHZlZCI1ChJVcGRhdGVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiHwoRRGVsZXRlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiJQoSRGVsZXRlTm90ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgirAUKC05vdGVNZW50aW9uEgoKAmlkGAEgASgJEg8KB25vdGVfaWQYAiABKAkSGQoRbWVudGlvbmVkX3VzZXJfaWQYAyABKAkSDgoGc3RhdHVzGAQgASgJEjAKB3NlZW5fYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPYWNrbm93bGVkZ2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjUKDGNvbXBsZXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIbCg5jb21wbGV0ZWRfbm90ZRgIIAEoCUgDiAEBEjUKDGRpc21pc3NlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIbCg5kaXNtaXNzX3JlYXNvbhgKIAEoCUgFiAEBEjEKCGR1ZV9kYXRlGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEhEKCXRlbmFudF9pZBgUIAEoCRIXCgpwcm9qZWN0X2lkGBUgASgJSAeIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3NlZW5fYXRCEgoQX2Fja25vd2xlZGdlZF9hdEIPCg1fY29tcGxldGVkX2F0QhEKD19jb21wbGV0ZWRfbm90ZUIPCg1fZGlzbWlzc2VkX2F0QhEKD19kaXNtaXNzX3JlYXNvbkILCglfZHVlX2RhdGVCDQoLX3Byb2plY3RfaWQi2gEKEk1lbnRpb25XaXRoQ29udGV4dBIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24SHwoEbm90ZRgCIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUSGAoLYXV0aG9yX25hbWUYAyABKAlIAIgBARIYCgtlbnRpdHlfdHlwZRgEIAEoCUgBiAEBEhYKCWVudGl0eV9pZBgFIAEoCUgCiAEBQg4KDF9hdXRob3JfbmFtZUIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZCJPCg1NZW50aW9uQ291bnRzEg8KB3BlbmRpbmcYASABKAUSEAoIcGFzdF9kdWUYAiABKAUSGwoTY29tcGxldGVkX3RoaXNfd2VlaxgDIAEoBSLGAQoVTGlzdE15TWVudGlvbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCLPAQoWTGlzdE15TWVudGlvbnNSZXNwb25zZRIuCgVpdGVtcxgBIAMoCzIfLnNldHRpbmdzLnYxLk1lbnRpb25XaXRoQ29udGV4dBINCgV0b3RhbBgCIAEoBRIqCgZjb3VudHMYAyABKAsyGi5zZXR0aW5ncy52MS5NZW50aW9uQ291bnRzEisKCXBhZ2VfaW5mbxgEIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBSADKAlCDAoKX3BhZ2VfaW5mbyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsIBChFMaXN0U2hhcmVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikwEKEkxpc3RTaGFyZXNSZXNwb25zZRIiCgZzaGFyZXMYASADKAsyEi5zZXR0aW5ncy52MS5TaGFyZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ioAEKElVwZGF0ZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCRI1CgpwZXJtaXNzaW9uGAIgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uSACIAQESLQoGc3RhdHVzGAMgASgOMhguc2V0dGluZ3MudjEuU2hhcmVTdGF0dXNIAYgBAUINCgtfcGVybWlzc2lvbkIJCgdfc3RhdHVzIjgKE1VwZGF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIgChJSZXZva2VTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiJgoTUmV2b2tlU2hhcmVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKEkFjY2VwdFNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChNBY2NlcHRTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIQoTRGVjbGluZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI5ChREZWNsaW5lU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIr8DCgZMb2NhbGUSCgoCaWQYASABKAkSDgoGbG9jYWxlGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIYCgtuYXRpdmVfbmFtZRgEIAEoCUgAiAEBEhIKCmlzX2RlZmF1bHQYBSABKAgSEQoJaXNfYWN0aXZlGAYgASgIEg4KBmlzX3J0bBgHIAEoCBIcCg9mYWxsYmFja19sb2NhbGUYCCABKAlIAYgBARIZChFmYWxsYmFja19wcmlvcml0eRgJIAEoBRIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAKIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9uYXRpdmVfbmFtZUISChBfZmFsbGJhY2tfbG9jYWxlQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5IsMBChJMaXN0TG9jYWxlc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpYBChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldExvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkiOAoRR2V0TG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIt8BChNDcmVhdGVMb2NhbGVSZXF1ZXN0Eg4KBmxvY2FsZRgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSGAoLbmF0aXZlX25hbWUYAyABKAlIAIgBARIXCgppc19kZWZhdWx0GAQgASgISAGIAQESEwoGaXNfcnRsGAUgASgISAKIAQESHAoPZmFsbGJhY2tfbG9jYWxlGAYgASgJSAOIAQFCDgoMX25hdGl2ZV9uYW1lQg0KC19pc19kZWZhdWx0QgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRDcmVhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUilwIKE1VwZGF0ZUxvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkSGQoMZGlzcGxheV9uYW1lGAIgASgJSACIAQESGAoLbmF0aXZlX25hbWUYAyABKAlIAYgBARIXCgppc19kZWZhdWx0GAQgASgISAKIAQESFgoJaXNfYWN0aXZlGAUgASgISAOIAQESEwoGaXNfcnRsGAYgASgISASIAQESHAoPZmFsbGJhY2tfbG9jYWxlGAcgASgJSAWIAQFCDwoNX2Rpc3BsYXlfbmFtZUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZUIJCgdfaXNfcnRsQhIKEF9mYWxsYmFja19sb2NhbGUiOwoUVXBkYXRlTG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiEKE0RlbGV0ZUxvY2FsZVJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlTG9jYWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKUAQoOTmF2UHJlZmVyZW5jZXMSGQoRZmF2b3JpdGVfcHJvamVjdHMYASADKAkSGgoSZmF2b3JpdGVfbmF2X2l0ZW1zGAIgAygJEhoKEmNvbGxhcHNlZF9zZWN0aW9ucxgDIAMoCRIvCg5uYXZfaXRlbV9vcmRlchgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiGgoYR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0Ik0KGUdldE5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyL8AQobVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0EjUKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXNIAIgBARIeChF0b2dnbGVfcHJvamVjdF9pZBgCIAEoCUgBiAEBEhwKD3RvZ2dsZV9uYXZfaXRlbRgDIAEoCUgCiAEBEhsKDnRvZ2dsZV9zZWN0aW9uGAQgASgJSAOIAQFCDgoMX3ByZWZlcmVuY2VzQhQKEl90b2dnbGVfcHJvamVjdF9pZEISChBfdG9nZ2xlX25hdl9pdGVtQhEKD190b2dnbGVfc2VjdGlvbiJQChxVcGRhdGVOYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEjAKC3ByZWZlcmVuY2VzGAEgASgLMhsuc2V0dGluZ3MudjEuTmF2UHJlZmVyZW5jZXMiXgoSUmVjZW50bHlPcGVuZWRJdGVtEgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCRIRCgl0aW1lc3RhbXAYBSABKAMikwEKGUxpc3RSZWNlbnRseU9wZW5lZFJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QimAEKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtEisKCXBhZ2VfaW5mbxgCIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYAyADKAlCDAoKX3BhZ2VfaW5mbyJTChpUcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEg0KBWxhYmVsGAMgASgJEgwKBHBhdGgYBCABKAkiLgobVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNwobUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkiLwocUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhwKGkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Ii4KG0NsZWFyUmVjZW50bHlPcGVuZWRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIs8FChBDb250ZXh0RGltZW5zaW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEwoLc291cmNlX3R5cGUYBSABKAkSGAoQc291cmNlX21vZGVsX2tleRgGIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYByABKAlIAYgBARIRCglpc19zeXN0ZW0YCCABKAgSFwoPYnVpbHRfaW5fdmFsdWVzGAkgAygJEhEKCWRhdGFfdHlwZRgKIAEoCRIQCghjYXRlZ29yeRgLIAEoCRITCgtpc19yZXF1aXJlZBgMIAEoCBISCgpzb3J0X29yZGVyGA0gASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAogBARIXCgp1cGRhdGVkX2J5GB8gASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiMwoVQ29udGV4dERpbWVuc2lvblZhbHVlEgsKA2tleRgBIAEoCRINCgVsYWJlbBgCIAEoCSK2AQocTGlzdENvbnRleHREaW1lbnNpb25zUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq0BCh1MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRIxCgpkaW1lbnNpb25zGAEgAygLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiL/AQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBEhQKB3B1Ymxpc2gYBiABKAhIBIgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEwoRX3NvdXJjZV9tb2RlbF9rZXlCFQoTX2RlZmF1bHRfcmVjb3JkX2tleUIKCghfcHVibGlzaCJSCh5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiIrCh1EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIxCh5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLRAQogR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QSFQoNZGltZW5zaW9uX2tleRgBIAEoCRITCgZzZWFyY2gYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrIBCiFHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USMgoGdmFsdWVzGAEgAygLMiIuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZhbHVlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKPAgoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJgoGYWNjZXNzGAkgASgLMhYuY29tbW9uLnYxLkZpZWxkQWNjZXNzQgwKCl9oZWxwX3RleHRCDgoMX3BsYWNlaG9sZGVyQgkKB19jb25maWcikgMKFUN1c3RvbWVyUHJvZmlsZVNjaGVtYRIKCgJpZBgBIAEoCRIxCgZmaWVsZHMYAiADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAMgAygJEg8KB3ZlcnNpb24YBCABKAUSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiIQofR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdCJWCiBHZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWEi8gMKE1ZhcmlhbnRDYXRhbG9nRW50cnkSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARI8Cg90YXJnZXRpbmdfcnVsZXMYBSABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgBiAEBEhAKCHByaW9yaXR5GAYgASgFEhIKCmlzX2RlZmF1bHQYByABKAgSEQoJaXNfYWN0aXZlGAggASgIEhgKC2ZhbGxiYWNrX2lkGAogASgJSAKIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiygEKGUxpc3RWYXJpYW50Q2F0YWxvZ1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqoBChpMaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKwodR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkiUQoeR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSKrAgogQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARI8Cg90YXJnZXRpbmdfcnVsZXMYBCABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgBiAEBEhUKCHByaW9yaXR5GAUgASgFSAKIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgDiAEBEhYKCWlzX2FjdGl2ZRgHIAEoCEgEiAEBQg4KDF9kZXNjcmlwdGlvbkISChBfdGFyZ2V0aW5nX3J1bGVzQgsKCV9wcmlvcml0eUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlIlQKIUNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIvCgVlbnRyeRgBIAEoCzIgLnNldHRpbmdzLnYxLlZhcmlhbnRDYXRhbG9nRW50cnkiuAIKIFVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAKIAQESFQoIcHJpb3JpdHkYBSABKAVIA4gBARIXCgppc19kZWZhdWx0GAYgASgISASIAQESFgoJaXNfYWN0aXZlGAcgASgISAWIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIuCiBEZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSI0CiFEZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIwChlHZXRDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIkMKGkdldEN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEiUKBGRhdGEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlwKHENyZWF0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSJwoGY3JlYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJGCh1DcmVhdGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRIlCgRkYXRhGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJcChxVcGRhdGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEicKBnVwZGF0ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiRgodVXBkYXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QibgoiVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBIxCgZmaWVsZHMYASADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAIgAygJIlkKI1VwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSJTChVDdXN0b21lclByb2ZpbGVSZXN1bHQSEwoLY3VzdG9tZXJfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QipgEKHVNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IrABCh5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVJlc3VsdBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iMwocRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSIwCh1EZWxldGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIj0KJkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIlkKE1Jlc29sdXRpb25BdHRyaWJ1dGUSCwoDa2V5GAEgASgJEjUKBnZhbHVlcxgCIAMoCzIlLnNldHRpbmdzLnYxLlJlc29sdXRpb25BdHRyaWJ1dGVWYWx1ZSKAAQoYUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlEg0KBXZhbHVlGAEgASgJEg0KBWNvdW50GAIgASgFEjUKDGxhc3Rfc2Vlbl9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fbGFzdF9zZWVuX2F0IowCCidHZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USGQoRdG90YWxfcmVzb2x1dGlvbnMYASABKAUSNAoKYXR0cmlidXRlcxgCIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdXRpb25BdHRyaWJ1dGUSNgoNZmlyc3Rfc2Vlbl9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI1CgxsYXN0X3NlZW5fYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCEAoOX2ZpcnN0X3NlZW5fYXRCDwoNX2xhc3Rfc2Vlbl9hdCIsChdHZXRFZGl0b3JDb25maWdzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiwAIKFUVkaXRvckNvbmZpZ1BsYWNlbWVudBIRCgljb25maWdfaWQYASABKAkSEgoKY29uZmlnX2tleRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIbCg5hbGxvd2VkX29yaWdpbhgEIAEoCUgBiAEBEhMKBmhlaWdodBgFIAEoBUgCiAEBEhIKBWxhYmVsGAYgASgJSAOIAQESFAoHYXBpX2tleRgHIAEoCUgEiAEBEhQKB2FwaV91cmwYCCABKAlIBYgBARIeChFjb25uZWN0aW9uX2RvbWFpbhgJIAEoCUgGiAEBQgYKBF91cmxCEQoPX2FsbG93ZWRfb3JpZ2luQgkKB19oZWlnaHRCCAoGX2xhYmVsQgoKCF9hcGlfa2V5QgoKCF9hcGlfdXJsQhQKEl9jb25uZWN0aW9uX2RvbWFpbiJSChhHZXRFZGl0b3JDb25maWdzUmVzcG9uc2USNgoKcGxhY2VtZW50cxgBIAMoCzIiLnNldHRpbmdzLnYxLkVkaXRvckNvbmZpZ1BsYWNlbWVudCIgChJSZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiNgoTUmVzb2x2ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIiChRVbnJlc29sdmVOb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChVVbnJlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUixQEKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCDgoMX2VudGl0eV90eXBlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKSAQoTU2VhcmNoTm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIhkKF01hcmtNZW50aW9uc1NlZW5SZXF1ZXN0IikKGE1hcmtNZW50aW9uc1NlZW5SZXNwb25zZRINCgVjb3VudBgBIAEoBSIuCh9HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXF1ZXN0EgsKA2tleRgBIAEoCSJUCiBHZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIhkKF0dldERlZmF1bHRMb2NhbGVSZXF1ZXN0Ij8KGEdldERlZmF1bHRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiJgoWR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBIMCgRjb2RlGAEgASgJIj4KF0dldExvY2FsZUJ5Q29kZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImCiRHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QiWAolR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIvCgVlbnRyeRgBIAEoCzIgLnNldHRpbmdzLnYxLlZhcmlhbnRDYXRhbG9nRW50cnkiIwoURGVsZXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJIigKFURlbGV0ZVNldHRpbmdSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjMKH0RlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkiMQogRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVzcG9uc2USDQoFY291bnQYASABKAUiTQoWQnVsa1NldFNldHRpbmdzUmVxdWVzdBIzCghzZXR0aW5ncxgBIAMoCzIhLnNldHRpbmdzLnYxLlVwZGF0ZVNldHRpbmdSZXF1ZXN0IigKF0J1bGtTZXRTZXR0aW5nc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFIikKJ0Vuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJbCihFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSLwAwoMRGVzaWduVG9rZW5zEikKCGRvY3VtZW50GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXNvbHZlZBgCIAEoCzIhLnNldHRpbmdzLnYxLlJlc29sdmVkRGVzaWduVG9rZW5zEg8KB3ZlcnNpb24YCiABKAUSHgoRcHVibGlzaGVkX3ZlcnNpb24YCyABKAVIAIgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQhQKEl9wdWJsaXNoZWRfdmVyc2lvbkIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQi+gQKFFJlc29sdmVkRGVzaWduVG9rZW5zEi8KBmNvbG9ycxgBIAMoCzIfLnNldHRpbmdzLnYxLlJlc29sdmVkQ29sb3JUb2tlbhI7Cg1mb250X2ZhbWlsaWVzGAIgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRGb250RmFtaWx5VG9rZW4SOgoMZm9udF93ZWlnaHRzGAMgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRGb250V2VpZ2h0VG9rZW4SNwoKZm9udF9zaXplcxgEIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SNgoMbGluZV9oZWlnaHRzGAUgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWROdW1iZXJUb2tlbhI8Cg9sZXR0ZXJfc3BhY2luZ3MYBiADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjgKCnR5cG9ncmFwaHkYByADKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZFR5cG9ncmFwaHlUb2tlbhI1CghzcGFjaW5ncxgIIAMoCzIjLnNldHRpbmdzLnYxLlJlc29sdmVkRGltZW5zaW9uVG9rZW4SMgoFcmFkaWkYCSADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjEKB3NoYWRvd3MYCiADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZFNoYWRvd1Rva2VuEjEKB2JvcmRlcnMYCyADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZEJvcmRlclRva2VuImkKElJlc29sdmVkQ29sb3JUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoCUIOCgxfZGVzY3JpcHRpb24ibgoXUmVzb2x2ZWRGb250RmFtaWx5VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCADKAlCDgoMX2Rlc2NyaXB0aW9uIm4KF1Jlc29sdmVkRm9udFdlaWdodFRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgFQg4KDF9kZXNjcmlwdGlvbiJtChZSZXNvbHZlZERpbWVuc2lvblRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgJQg4KDF9kZXNjcmlwdGlvbiJqChNSZXNvbHZlZE51bWJlclRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgASgBQg4KDF9kZXNjcmlwdGlvbiLMAQoXUmVzb2x2ZWRUeXBvZ3JhcGh5VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMwoFdmFsdWUYBCABKAsyJC5zZXR0aW5ncy52MS5SZXNvbHZlZFR5cG9ncmFwaHlWYWx1ZRISCgVsYWJlbBgFIAEoCUgBiAEBEhAKA3RhZxgGIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIICgZfbGFiZWxCBgoEX3RhZyKNAQoTUmVzb2x2ZWRTaGFkb3dUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIwCgZsYXllcnMYBCADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHZlZFNoYWRvd0xheWVyQg4KDF9kZXNjcmlwdGlvbiJ1ChNSZXNvbHZlZFNoYWRvd0xheWVyEhAKCG9mZnNldF94GAEgASgJEhAKCG9mZnNldF95GAIgASgJEgwKBGJsdXIYAyABKAkSDgoGc3ByZWFkGAQgASgJEg0KBWNvbG9yGAUgASgJEg0KBWluc2V0GAYgASgIIowBChNSZXNvbHZlZEJvcmRlclRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEi8KBXZhbHVlGAQgASgLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRCb3JkZXJWYWx1ZUIOCgxfZGVzY3JpcHRpb24iQgoTUmVzb2x2ZWRCb3JkZXJWYWx1ZRINCgVjb2xvchgBIAEoCRINCgV3aWR0aBgCIAEoCRINCgVzdHlsZRgDIAEoCSKbAQoXUmVzb2x2ZWRUeXBvZ3JhcGh5VmFsdWUSEwoLZm9udF9mYW1pbHkYASADKAkSEQoJZm9udF9zaXplGAIgASgJEhMKC2ZvbnRfd2VpZ2h0GAMgASgFEhMKC2xpbmVfaGVpZ2h0GAQgASgBEhYKDmxldHRlcl9zcGFjaW5nGAUgASgJEhYKDnRleHRfdHJhbnNmb3JtGAYgASgJIkQKFkdldERlc2lnblRva2Vuc1JlcXVlc3QSKgoHY2hhbm5lbBgBIAEoDjIZLnB1Ymxpc2gudjEuU2NoZW1hQ2hhbm5lbCJEChdHZXREZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiRgoZVXBkYXRlRGVzaWduVG9rZW5zUmVxdWVzdBIpCghkb2N1bWVudBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiRwoaVXBkYXRlRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIhwKGlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0In4KG1B1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiHgocVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdCJKCh1VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiJQojR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1JlcXVlc3QiUQokR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyKcAQoiU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVxdWVzdBIuCgpwdWJsaXNoX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJQCiNTY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiKwopQ2FuY2VsU2NoZWR1bGVkRGVzaWduVG9rZW5zUHVibGlzaFJlcXVlc3QiVwoqQ2FuY2VsU2NoZWR1bGVkRGVzaWduVG9rZW5zUHVibGlzaFJlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyI3CiFDb3VudERlc2lnblRva2VuUmVmZXJlbmNlc1JlcXVlc3QSEgoKdG9rZW5fcGF0aBgBIAEoCSJTCiJDb3VudERlc2lnblRva2VuUmVmZXJlbmNlc1Jlc3BvbnNlEhcKD3BhcmFncmFwaF9jb3VudBgBIAEoBRIUCgxyZWNvcmRfY291bnQYAiABKAUi2QIKEkRlc2lnblRva2VuVmVyc2lvbhIKCgJpZBgBIAEoCRIYChBkZXNpZ25fdG9rZW5zX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiKgocR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJRCh1HZXREZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZRIwCgd2ZXJzaW9uGAEgASgLMh8uc2V0dGluZ3MudjEuRGVzaWduVG9rZW5WZXJzaW9uIpgBCh5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1JlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirwEKH0xpc3REZXNpZ25Ub2tlblZlcnNpb25zUmVzcG9uc2USMQoIdmVyc2lvbnMYASADKAsyHy5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIm4KIFJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiKEAQohUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucxI0CgtuZXdfdmVyc2lvbhgCIAEoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbiJFChdHZXRQcm9qZWN0U2NoZW1hUmVxdWVzdBIqCgdjaGFubmVsGAEgASgOMhkucHVibGlzaC52MS5TY2hlbWFDaGFubmVsImUKElByb2plY3RTY2hlbWFNb2RlbBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtmaWVsZHNfanNvbhgEIAEoCRITCgtjb25maWdfanNvbhgFIAEoCSLCAQodUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgAiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgBiAEBEg4KBnZhbHVlcxgGIAMoCUITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5Io4BChlQcm9qZWN0U2NoZW1hQXV0aFByb3ZpZGVyEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBIsCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCQoHX2NvbmZpZyKfAwoWUHJvamVjdFNjaGVtYU9wZXJhdGlvbhILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIQCghlbmRwb2ludBgDIAEoCRISCgp0aW1lb3V0X21zGAQgASgFEjIKDGlucHV0X3NjaGVtYRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIzCg1vdXRwdXRfc2NoZW1hGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhYKDnN1cHBvcnRzX2FzeW5jGAcgASgIEgwKBGtpbmQYCCABKAkSHgoRYXR0YWNoZWRfdG9fbW9kZWwYCSABKAlIAogBARIVCg1wYXJlbnRfZmllbGRzGAogAygJEjMKDWNhY2hlX2NvbnRyb2wYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQFCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIUChJfYXR0YWNoZWRfdG9fbW9kZWxCEAoOX2NhY2hlX2NvbnRyb2wiRAoUUHJvamVjdFNjaGVtYVNlZ21lbnQSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEQoJaXNfYWN0aXZlGAMgASgIIlkKGlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hEhMKC2ZpZWxkc19qc29uGAEgASgJEhUKDXB1YmxpY19maWVsZHMYAiADKAkSDwoHdmVyc2lvbhgDIAEoBSKSAwoYR2V0UHJvamVjdFNjaGVtYVJlc3BvbnNlEi8KBm1vZGVscxgBIAMoCzIfLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFNb2RlbBI+CgpkaW1lbnNpb25zGAIgAygLMiouc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYUNvbnRleHREaW1lbnNpb24SPgoOYXV0aF9wcm92aWRlcnMYAyADKAsyJi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQXV0aFByb3ZpZGVyEjcKCm9wZXJhdGlvbnMYBCADKAsyIy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hT3BlcmF0aW9uEjMKCHNlZ21lbnRzGAUgAygLMiEuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYVNlZ21lbnQSRAoOcHJvZmlsZV9zY2hlbWEYByABKAsyJy5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYUgAiAEBQhEKD19wcm9maWxlX3NjaGVtYSIsCh5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiiQEKH1B1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIuCiBVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJVCiFVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiI1CidHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiVQooR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi4gIKF0NvbnRleHREaW1lbnNpb25WZXJzaW9uEgoKAmlkGAEgASgJEhwKFGNvbnRleHRfZGltZW5zaW9uX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLwohR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlsKIkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USNQoHdmVyc2lvbhgBIAEoCzIkLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WZXJzaW9uIrsBCiNMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVxdWVzdBIcChRjb250ZXh0X2RpbWVuc2lvbl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCK5AQokTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEjYKCHZlcnNpb25zGAEgAygLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInMKJVJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpUBCiZSZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjkKC25ld192ZXJzaW9uGAIgASgLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24iHQobUHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IpABChxQdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh8KHVVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IlwKHlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSImCiRHZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1JlcXVlc3QiUgolR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi3AIKFFByb2ZpbGVTY2hlbWFWZXJzaW9uEgoKAmlkGAEgASgJEhkKEXByb2ZpbGVfc2NoZW1hX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLAoeR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlUKH0dldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USMgoHdmVyc2lvbhgBIAEoCzIhLnNldHRpbmdzLnYxLlByb2ZpbGVTY2hlbWFWZXJzaW9uIpoBCiBMaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKzAQohTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1Jlc3BvbnNlEjMKCHZlcnNpb25zGAEgAygLMiEuc2V0dGluZ3MudjEuUHJvZmlsZVNjaGVtYVZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInAKIlJlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpEBCiNSZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWESNgoLbmV3X3ZlcnNpb24YAiABKAsyIS5zZXR0aW5ncy52MS5Qcm9maWxlU2NoZW1hVmVyc2lvbiIdChtQdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3Qi9gEKHFB1Ymxpc2hQcm9qZWN0U2NoZW1hUmVzcG9uc2USGAoQbW9kZWxzX3B1Ymxpc2hlZBgBIAEoBRIcChRvcGVyYXRpb25zX3B1Ymxpc2hlZBgCIAEoBRIkChxjb250ZXh0X2RpbWVuc2lvbnNfcHVibGlzaGVkGAMgASgFEiAKGGF1dGhfcHJvdmlkZXJzX3B1Ymxpc2hlZBgEIAEoBRIgChhwcm9maWxlX3NjaGVtYV9wdWJsaXNoZWQYBSABKAgSNAoQYnJlYWtpbmdfY2hhbmdlcxgGIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiIAoeR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXF1ZXN0IoMBCh9HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEioKB3BlbmRpbmcYASADKAsyGS5wdWJsaXNoLnYxLlBlbmRpbmdFbnRpdHkSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UirAEKJlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IlsKJ1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjsKLUNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJiCi5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24inQEKI1NjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0Ei4KCnB1Ymxpc2hfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0ImIKJFNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSIsCipDYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QiaQorQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSp2ChFTaGFyZVJlc291cmNlVHlwZRIjCh9TSEFSRV9SRVNPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASHgoaU0hBUkVfUkVTT1VSQ0VfVFlQRV9SRUNPUkQQARIcChhTSEFSRV9SRVNPVVJDRV9UWVBFX0ZJTEUQAiqFAQoPU2hhcmVQZXJtaXNzaW9uEiAKHFNIQVJFX1BFUk1JU1NJT05fVU5TUEVDSUZJRUQQABIZChVTSEFSRV9QRVJNSVNTSU9OX1ZJRVcQARIZChVTSEFSRV9QRVJNSVNTSU9OX0VESVQQAhIaChZTSEFSRV9QRVJNSVNTSU9OX0FETUlOEAMqewoLU2hhcmVTdGF0dXMSHAoYU0hBUkVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGAoUU0hBUkVfU1RBVFVTX1BFTkRJTkcQARIZChVTSEFSRV9TVEFUVVNfQUNDRVBURUQQAhIZChVTSEFSRV9TVEFUVVNfREVDTElORUQQAzLATAoPU2V0dGluZ3NTZXJ2aWNlElAKC0dldFNldHRpbmdzEh8uc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXF1ZXN0GiAuc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXNwb25zZRJWCg1VcGRhdGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoNRGVsZXRlU2V0dGluZxIhLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdSZXF1ZXN0GiIuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEncKGERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeRIsLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlcXVlc3QaLS5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRJcCg9CdWxrU2V0U2V0dGluZ3MSIy5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXF1ZXN0GiQuc2V0dGluZ3MudjEuQnVsa1NldFNldHRpbmdzUmVzcG9uc2USVgoNTGlzdEF1ZGl0TG9ncxIhLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXF1ZXN0GiIuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEk0KCkNyZWF0ZU5vdGUSHi5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXNwb25zZRJECgdHZXROb3RlEhsuc2V0dGluZ3MudjEuR2V0Tm90ZVJlcXVlc3QaHC5zZXR0aW5ncy52MS5HZXROb3RlUmVzcG9uc2USSgoJTGlzdE5vdGVzEh0uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVxdWVzdBoeLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1Jlc3BvbnNlEk0KClVwZGF0ZU5vdGUSHi5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXNwb25zZRJNCgpEZWxldGVOb3RlEh4uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVzcG9uc2USUAoLUmVzb2x2ZU5vdGUSHy5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlc3BvbnNlElYKDVVucmVzb2x2ZU5vdGUSIS5zZXR0aW5ncy52MS5VbnJlc29sdmVOb3RlUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXNwb25zZRJQCgtTZWFyY2hOb3RlcxIfLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJfChBNYXJrTWVudGlvbnNTZWVuEiQuc2V0dGluZ3MudjEuTWFya01lbnRpb25zU2VlblJlcXVlc3QaJS5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USUAoLTGlzdExvY2FsZXMSHy5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1Jlc3BvbnNlEkoKCUdldExvY2FsZRIdLnNldHRpbmdzLnYxLkdldExvY2FsZVJlcXVlc3QaHi5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXNwb25zZRJfChBHZXREZWZhdWx0TG9jYWxlEiQuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USXAoPR2V0TG9jYWxlQnlDb2RlEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlc3BvbnNlElMKDENyZWF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXNwb25zZRJTCgxVcGRhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVzcG9uc2USUwoMRGVsZXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlc3BvbnNlEmIKEUdldE5hdlByZWZlcmVuY2VzEiUuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0GiYuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRJrChRVcGRhdGVOYXZQcmVmZXJlbmNlcxIoLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVxdWVzdBopLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USZQoSTGlzdFJlY2VudGx5T3BlbmVkEiYuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE1RyYWNrUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXNwb25zZRJrChRSZW1vdmVSZWNlbnRseU9wZW5lZBIoLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVxdWVzdBopLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTQ2xlYXJSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlElAKC0NyZWF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXNwb25zZRJHCghHZXRTaGFyZRIcLnNldHRpbmdzLnYxLkdldFNoYXJlUmVxdWVzdBodLnNldHRpbmdzLnYxLkdldFNoYXJlUmVzcG9uc2USTQoKTGlzdFNoYXJlcxIeLnNldHRpbmdzLnYxLkxpc3RTaGFyZXNSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1Jlc3BvbnNlElAKC1VwZGF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXNwb25zZRJQCgtSZXZva2VTaGFyZRIfLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVzcG9uc2USUAoLQWNjZXB0U2hhcmUSHy5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlc3BvbnNlElMKDERlY2xpbmVTaGFyZRIgLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5EZWNsaW5lU2hhcmVSZXNwb25zZRJuChVMaXN0Q29udGV4dERpbWVuc2lvbnMSKS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USaAoTR2V0Q29udGV4dERpbWVuc2lvbhInLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giguc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEncKGEdldENvbnRleHREaW1lbnNpb25CeUtleRIsLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QaLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXNwb25zZRJxChZDcmVhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWVXBkYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFkRlbGV0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzEi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USdwoYR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hEiwuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBotLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEmUKEkdldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVDcmVhdGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5DcmVhdGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USbgoVVXBkYXRlQ3VzdG9tZXJQcm9maWxlEikuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBoqLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEoABChtVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWESLy5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0GjAuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2UScQoWU2VhcmNoQ3VzdG9tZXJQcm9maWxlcxIqLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Gisuc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEm4KFURlbGV0ZUN1c3RvbWVyUHJvZmlsZRIpLnNldHRpbmdzLnYxLkRlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaKi5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRKMAQofR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlcxIzLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXF1ZXN0GjQuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1Jlc3BvbnNlEl8KEEdldEVkaXRvckNvbmZpZ3MSJC5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRJlChJMaXN0VmFyaWFudENhdGFsb2cSJi5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVzcG9uc2UScQoWR2V0VmFyaWFudENhdGFsb2dFbnRyeRIqLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gisuc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGUNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEoYBCh1HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRIxLnNldHRpbmdzLnYxLkdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBoyLnNldHRpbmdzLnYxLkdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USjwEKIEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5EjQuc2V0dGluZ3MudjEuRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0GjUuc2V0dGluZ3MudjEuRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJfChBHZXRQcm9qZWN0U2NoZW1hEiQuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USdAoXUHVibGlzaENvbnRleHREaW1lbnNpb24SKy5zZXR0aW5ncy52MS5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QaLC5zZXR0aW5ncy52MS5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnoKGVVucHVibGlzaENvbnRleHREaW1lbnNpb24SLS5zZXR0aW5ncy52MS5VbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBouLnNldHRpbmdzLnYxLlVucHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRKPAQogR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXMSNC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1JlcXVlc3QaNS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1Jlc3BvbnNlEowBCh9TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoEjMuc2V0dGluZ3MudjEuU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlcXVlc3QaNC5zZXR0aW5ncy52MS5TY2hlZHVsZUNvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USoQEKJkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoEjouc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0Gjsuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRJ9ChpHZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvbhIuLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uUmVxdWVzdBovLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USgwEKHExpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnMSMC5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVxdWVzdBoxLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uVmVyc2lvbnNSZXNwb25zZRKJAQoeUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uEjIuc2V0dGluZ3MudjEuUmVzdG9yZUNvbnRleHREaW1lbnNpb25WZXJzaW9uUmVxdWVzdBozLnNldHRpbmdzLnYxLlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlc3BvbnNlEnQKF0dldFByb2ZpbGVTY2hlbWFWZXJzaW9uEisuc2V0dGluZ3MudjEuR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0Giwuc2V0dGluZ3MudjEuR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRJ6ChlMaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zEi0uc2V0dGluZ3MudjEuTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5MaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVzcG9uc2USgAEKG1Jlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvbhIvLnNldHRpbmdzLnYxLlJlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QaMC5zZXR0aW5ncy52MS5SZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRJrChRQdWJsaXNoUHJvZmlsZVNjaGVtYRIoLnNldHRpbmdzLnYxLlB1Ymxpc2hQcm9maWxlU2NoZW1hUmVxdWVzdBopLnNldHRpbmdzLnYxLlB1Ymxpc2hQcm9maWxlU2NoZW1hUmVzcG9uc2UScQoWVW5wdWJsaXNoUHJvZmlsZVNjaGVtYRIqLnNldHRpbmdzLnYxLlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0Gisuc2V0dGluZ3MudjEuVW5wdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEoYBCh1HZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1cxIxLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFQdWJsaXNoU3RhdHVzUmVxdWVzdBoyLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFQdWJsaXNoU3RhdHVzUmVzcG9uc2USgwEKHFNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2gSMC5zZXR0aW5ncy52MS5TY2hlZHVsZVByb2ZpbGVTY2hlbWFQdWJsaXNoUmVxdWVzdBoxLnNldHRpbmdzLnYxLlNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRKYAQojQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2gSNy5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QaOC5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlc3BvbnNlEnQKF0dldFByb2plY3RQdWJsaXNoU3RhdHVzEisuc2V0dGluZ3MudjEuR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXF1ZXN0Giwuc2V0dGluZ3MudjEuR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXNwb25zZRJrChRQdWJsaXNoUHJvamVjdFNjaGVtYRIoLnNldHRpbmdzLnYxLlB1Ymxpc2hQcm9qZWN0U2NoZW1hUmVxdWVzdBopLnNldHRpbmdzLnYxLlB1Ymxpc2hQcm9qZWN0U2NoZW1hUmVzcG9uc2USXAoPR2V0RGVzaWduVG9rZW5zEiMuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1Jlc3BvbnNlEmUKElVwZGF0ZURlc2lnblRva2VucxImLnNldHRpbmdzLnYxLlVwZGF0ZURlc2lnblRva2Vuc1JlcXVlc3QaJy5zZXR0aW5ncy52MS5VcGRhdGVEZXNpZ25Ub2tlbnNSZXNwb25zZRJoChNQdWJsaXNoRGVzaWduVG9rZW5zEicuc2V0dGluZ3MudjEuUHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QaKC5zZXR0aW5ncy52MS5QdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USbgoVVW5wdWJsaXNoRGVzaWduVG9rZW5zEikuc2V0dGluZ3MudjEuVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdBoqLnNldHRpbmdzLnYxLlVucHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEoMBChxHZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzEjAuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1JlcXVlc3QaMS5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNQdWJsaXNoU3RhdHVzUmVzcG9uc2USgAEKG1NjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaBIvLnNldHRpbmdzLnYxLlNjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaFJlcXVlc3QaMC5zZXR0aW5ncy52MS5TY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRKVAQoiQ2FuY2VsU2NoZWR1bGVkRGVzaWduVG9rZW5zUHVibGlzaBI2LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0Gjcuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkRGVzaWduVG9rZW5zUHVibGlzaFJlc3BvbnNlEn0KGkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzEi4uc2V0dGluZ3MudjEuQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXF1ZXN0Gi8uc2V0dGluZ3MudjEuQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXNwb25zZRJuChVHZXREZXNpZ25Ub2tlblZlcnNpb24SKS5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlblZlcnNpb25SZXF1ZXN0Giouc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2USdAoXTGlzdERlc2lnblRva2VuVmVyc2lvbnMSKy5zZXR0aW5ncy52MS5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1JlcXVlc3QaLC5zZXR0aW5ncy52MS5MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1Jlc3BvbnNlEnoKGVJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb24SLS5zZXR0aW5ncy52MS5SZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBouLnNldHRpbmdzLnYxLlJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZUI9WjtnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc2V0dGluZ3MvdjE7c2V0dGluZ3N2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
16
17
 
17
18
  /**
18
19
  * Describes the message settings.v1.Setting.