@scalekit-sdk/node 2.4.0 → 2.5.1
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/lib/actions.d.ts +169 -0
- package/lib/actions.js +286 -0
- package/lib/actions.js.map +1 -0
- package/lib/connected-accounts.d.ts +149 -0
- package/lib/connected-accounts.js +213 -0
- package/lib/connected-accounts.js.map +1 -0
- package/lib/core.d.ts +5 -3
- package/lib/core.js +35 -13
- package/lib/core.js.map +1 -1
- package/lib/m2mclient.d.ts +122 -0
- package/lib/m2mclient.js +172 -0
- package/lib/m2mclient.js.map +1 -0
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js +2 -1
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/clients/clients_pb.d.ts +2597 -0
- package/lib/pkg/grpc/scalekit/v1/clients/clients_pb.js +546 -0
- package/lib/pkg/grpc/scalekit/v1/clients/clients_pb.js.map +1 -0
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.d.ts +798 -0
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js +233 -0
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js.map +1 -0
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.d.ts +78 -0
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js +17 -2
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.d.ts +70 -0
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js +18 -2
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.d.ts +13 -0
- package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.d.ts +8 -0
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js +1 -1
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.d.ts +504 -0
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js +118 -0
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js.map +1 -0
- package/lib/pkg/grpc/scalekit/v1/users/users_pb.js +1 -1
- package/lib/pkg/grpc/scalekit/v1/users/users_pb.js.map +1 -1
- package/lib/role.d.ts +47 -1
- package/lib/role.js +65 -0
- package/lib/role.js.map +1 -1
- package/lib/scalekit.d.ts +8 -0
- package/lib/scalekit.js +8 -0
- package/lib/scalekit.js.map +1 -1
- package/lib/token.d.ts +34 -2
- package/lib/token.js +30 -0
- package/lib/token.js.map +1 -1
- package/lib/tools.d.ts +96 -0
- package/lib/tools.js +108 -0
- package/lib/tools.js.map +1 -0
- package/lib/user.d.ts +54 -1
- package/lib/user.js +85 -0
- package/lib/user.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
|
|
3
|
+
// @generated from file scalekit/v1/clients/clients.proto (package scalekit.v1.clients, syntax proto3)
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GetClientResponseSchema = exports.GetClientRequestSchema = exports.DeleteOrganizationClientRequestSchema = exports.ListOrganizationClientsResponseSchema = exports.ListOrganizationClientsRequestSchema = exports.DeleteOrganizationClientSecretRequestSchema = exports.CreateOrganizationClientSecretResponseSchema = exports.CreateOrganizationClientSecretRequestSchema = exports.CustomClaimSchema = exports.GetOrganizationClientResponseSchema = exports.GetOrganizationClientRequestSchema = exports.M2MClientSchema = exports.UpdateOrganizationClientResponseSchema = exports.UpdateOrganizationClientRequestSchema = exports.CreateOrganizationClientResponseSchema = exports.OrganizationClientSchema = exports.CreateOrganizationClientRequestSchema = exports.DeleteResourceClientResponseSchema = exports.DeleteResourceClientRequestSchema = exports.ListResourceClientsResponseSchema = exports.ListResourceClientsRequestSchema = exports.ResourceUserConsentSchema = exports.ListResourceUserConsentsResponseSchema = exports.ListResourceUserConsentsRequestSchema = exports.ConsentedUserSchema = exports.GetResourceClientResponseSchema = exports.GetResourceClientRequestSchema = exports.UpdateResourceClientResponseSchema = exports.UpdateResourceClientRequestSchema = exports.CreateResourceClientResponseSchema = exports.CreateResourceClientRequestSchema = exports.UpdateResourceResponseSchema = exports.UpdateResourceSchema = exports.UpdateResourceRequestSchema = exports.ListResourcesResponseSchema = exports.ListResourcesRequestSchema = exports.RegisterClientResponseSchema = exports.RegisterClientSchema = exports.RegisterClientRequestSchema = exports.ResourceSchema = exports.ApplicationSchema = exports.DeleteResourceRequestSchema = exports.DeleteResourceProviderRequestSchema = exports.GetResourceResponseSchema = exports.GetResourceRequestSchema = exports.CreateResourceResponseSchema = exports.ResourceClientSchema = exports.CreateResourceSchema = exports.CreateResourceRequestSchema = exports.file_scalekit_v1_clients_clients = void 0;
|
|
7
|
+
exports.ClientService = exports.ResourceConnectionTypeSchema = exports.ResourceConnectionType = exports.ClientSecretStatusSchema = exports.ClientSecretStatus = exports.ResourceTypeSchema = exports.ResourceType = exports.ResourceCustomConnectionSettingsSchema = exports.ResourceConnectionSchema = exports.EnsureResourceConnectionResponseSchema = exports.EnsureResourceConnectionRequestSchema = exports.RevokeUserConsentResponseSchema = exports.RevokeUserConsentRequestSchema = exports.UserSchema = exports.ConsentScopeSchema = exports.ConsentClientSchema = exports.GetConsentDetailsResponseSchema = exports.DeleteScopeRequestSchema = exports.UpdateScopeResponseSchema = exports.UpdateScopeSchema = exports.UpdateScopeRequestSchema = exports.ListScopesResponseSchema = exports.ListScopesRequestSchema = exports.CreateScopeResponseSchema = exports.CreateScopeRequestSchema = exports.CreateScopeSchema = exports.ScopeSchema = exports.ClientSecretSchema = exports.ClientSchema = exports.DeleteClientSecretRequestSchema = exports.DeleteClientRequestSchema = exports.UpdateClientSecretResponseSchema = exports.UpdateClientSecretSchema = exports.UpdateClientSecretRequestSchema = exports.CreateClientSecretResponseSchema = exports.CreateClientSecretRequestSchema = exports.UpdateClientResponseSchema = exports.UpdateClientSchema = exports.UpdateClientRequestSchema = exports.CreateClientResponseSchema = exports.CreateClientSchema = exports.CreateClientRequestSchema = exports.ListClientsResponseSchema = exports.ListClientsRequest_FilterSchema = exports.ListClientsRequestSchema = void 0;
|
|
8
|
+
const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
|
|
9
|
+
const validate_pb_1 = require("../../../buf/validate/validate_pb");
|
|
10
|
+
const annotations_pb_1 = require("../../../google/api/annotations_pb");
|
|
11
|
+
const field_behavior_pb_1 = require("../../../google/api/field_behavior_pb");
|
|
12
|
+
const visibility_pb_1 = require("../../../google/api/visibility_pb");
|
|
13
|
+
const wkt_1 = require("@bufbuild/protobuf/wkt");
|
|
14
|
+
const annotations_pb_2 = require("../../../protoc-gen-openapiv2/options/annotations_pb");
|
|
15
|
+
const options_pb_1 = require("../options/options_pb");
|
|
16
|
+
/**
|
|
17
|
+
* Describes the file scalekit/v1/clients/clients.proto.
|
|
18
|
+
*/
|
|
19
|
+
exports.file_scalekit_v1_clients_clients = (0, codegenv2_1.fileDesc)("CiFzY2FsZWtpdC92MS9jbGllbnRzL2NsaWVudHMucHJvdG8SE3NjYWxla2l0LnYxLmNsaWVudHMigAEKFUNyZWF0ZVJlc291cmNlUmVxdWVzdBJnCghyZXNvdXJjZRgBIAEoCzIjLnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlUmVzb3VyY2VCMJJBJzIlRGV0YWlscyBvZiB0aGUgcmVzb3VyY2UgdG8gYmUgY3JlYXRlZLpIA8gBASLDCwoOQ3JlYXRlUmVzb3VyY2USbgoNcmVzb3VyY2VfdHlwZRgBIAEoDjIhLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VUeXBlQjSSQSsyIlR5cGUgb2YgdGhlIHJlc291cmNlIHRvIGJlIGNyZWF0ZWRKBSJXRUIiukgDyAEBEkUKBG5hbWUYAiABKAlCN5JBKTIUTmFtZSBvZiB0aGUgcmVzb3VyY2VKESJNeSBBUEkgUmVzb3VyY2UiukgIyAEBcgMYgAESeQoLZGVzY3JpcHRpb24YAyABKAlCZJJBWTIbRGVzY3JpcHRpb24gb2YgdGhlIHJlc291cmNlSjoiUmVzb3VyY2UgZm9yIGFjY2Vzc2luZyB5b3VyIG9yZ2FuaXphdGlvbidzIEFQSSByZXNvdXJjZXMiukgFcgMYgAQSngEKDHJlc291cmNlX3VyaRgEIAEoCUKHAZJBgwEyYVJlc291cmNlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZS4gVGhpcyBjb3VsZCBiZSB0aGUgVVJMIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZSByZXNvdXJjZXNKHiJodHRwczovL3Jlc291cmNlLmV4YW1wbGUuY29tIhJUChNhY2Nlc3NfdG9rZW5fZXhwaXJ5GAUgASgDQjeSQTQyLEV4cGlyeSB0aW1lIGluIHNlY29uZHMgZm9yIHRoZSBhY2Nlc3MgdG9rZW4uSgQzNjAwElcKFHJlZnJlc2hfdG9rZW5fZXhwaXJ5GAYgASgDQjmSQTYyLUV4cGlyeSB0aW1lIGluIHNlY29uZHMgZm9yIHRoZSByZWZyZXNoIHRva2VuLkoFODY0MDASfQojZGlzYWJsZV9keW5hbWljX2NsaWVudF9yZWdpc3RyYXRpb24YByABKAhCUJJBTTJFSW5kaWNhdGVzIGlmIGR5bmFtaWMgY2xpZW50IHJlZ2lzdHJhdGlvbiBpcyBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlSgR0cnVlElgKCGxvZ29fdXJpGAggASgJQkaSQTsyGUxvZ28gVVJJIGZvciB0aGUgcmVzb3VyY2VKHiJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nIrpIBXIDGIAEEk4KCHByb3ZpZGVyGAkgASgJQjySQTEyJENvbm5lY3Rpb24gcHJvdmlkZXIgZm9yIHRoZSByZXNvdXJjZUoJIkRFU0NPUEUiukgFcgMYgAQSnQEKC3Jlc291cmNlX2lkGAogASgJQocBkkGDATJhUmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlLiBUaGlzIGNvdWxkIGJlIHRoZSBVUkwgdXNlZCB0byBhY2Nlc3MgdGhlIHJlc291cmNlIHJlc291cmNlc0oeImh0dHBzOi8vcmVzb3VyY2UuZXhhbXBsZS5jb20iEmEKBnNjb3BlcxgLIAMoCUJRkkFOMjFMaXN0IG9mIE9BdXRoIHNjb3BlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc291cmNlShlbInVzcjpyZWFkIiwgInVzcjp3cml0ZSJdEo0BCiBpbnRlcnNlY3Rfc2NvcGVzX3VzZXJfcGVybWlzc2lvbhgMIAEoCEJjkkFgMlhJbmRpY2F0ZXMgaWYgdGhlIHNjb3BlcyBzaG91bGQgYmUgaW50ZXJzZWN0ZWQgd2l0aCB1c2VyIHBlcm1pc3Npb25zIGZvciBncmFudWxhciBjb250cm9sSgR0cnVlEnMKC2VuYWJsZV9jaW1kGA0gASgIQl6SQVsyUlNwZWNpZmllcyB3aGV0aGVyIENsaWVudCBJRCBNZXRhZGF0YSBEb2N1bWVudCAoQ0lNRCkgaXMgYWN0aXZhdGVkIGZvciB0aGUgcmVzb3VyY2VKBWZhbHNlIsIFCg5SZXNvdXJjZUNsaWVudBI+CgRuYW1lGAEgASgJQjCSQSUyEk5hbWUgb2YgdGhlIGNsaWVudEoPIk15IEFQSSBDbGllbnQiukgFcgMYgAESdQoLZGVzY3JpcHRpb24YAiABKAlCYJJBVTIZRGVzY3JpcHRpb24gb2YgdGhlIGNsaWVudEo4IkNsaWVudCBmb3IgYWNjZXNzaW5nIHlvdXIgb3JnYW5pemF0aW9uJ3MgQVBJIHJlc291cmNlcyK6SAVyAxiABBIwCgZzY29wZXMYAyADKAlCIJJBHTIbT0F1dGggc2NvcGVzIGZvciB0aGUgY2xpZW50ElgKCGF1ZGllbmNlGAQgAygJQkaSQUMyJE9BdXRoIGF1ZGllbmNlIHZhbHVlcyBmb3IgdGhlIGNsaWVudEobWyJodHRwczovL2FwaS5leGFtcGxlLmNvbSJdErgBCg1jdXN0b21fY2xhaW1zGAUgAygLMiAuc2NhbGVraXQudjEuY2xpZW50cy5DdXN0b21DbGFpbUJ/kkF8MnpDdXN0b20gY2xhaW1zIHRvIGJlIGluY2x1ZGVkIGluIGFjY2VzcyB0b2tlbnMuIFBsZWFzZSBrZWVwIHRoaXMgdG8gdGhlIGVzc2VudGlhbHMgYXMgdGhpcyBpbmNyZWFzZXMgdGhlIHNpemUgb2YgdGhlIHRva2VuLhJXCgZleHBpcnkYBiABKANCR5JBRDI8RXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIHRva2VuIGdlbmVyYXRlZCBieSB0aGUgY2xpZW50SgQzNjAwElkKDXJlZGlyZWN0X3VyaXMYByADKAlCQpJBPzIbUmVkaXJlY3QgVVJJIGZvciB0aGUgY2xpZW50SiBbImh0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2siXSJvChZDcmVhdGVSZXNvdXJjZVJlc3BvbnNlElUKCHJlc291cmNlGAEgASgLMh0uc2NhbGVraXQudjEuY2xpZW50cy5SZXNvdXJjZUIkkkEhMh9EZXRhaWxzIG9mIHRoZSBjcmVhdGVkIHJlc291cmNlIoYBChJHZXRSZXNvdXJjZVJlcXVlc3QScAoLcmVzb3VyY2VfaWQYASABKAlCW5JBTzI0VW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCByZXNvdXJjZSB0byByZXRyaWV2ZUoXImFwcF82OTM4ODc5ODQ2NjcyMDAwNSK6SAZyBBABGCAibgoTR2V0UmVzb3VyY2VSZXNwb25zZRJXCghyZXNvdXJjZRgBIAEoCzIdLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VCJpJBIzIhRGV0YWlscyBvZiB0aGUgcmVxdWVzdGVkIHJlc291cmNlIpEBCh1EZWxldGVSZXNvdXJjZVByb3ZpZGVyUmVxdWVzdBJwCgtyZXNvdXJjZV9pZBgBIAEoCUJbkkFPMjRVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY2xpZW50IHJlc291cmNlIHRvIHJldHJpZXZlShciYXBwXzY5Mzg4Nzk4NDY2NzIwMDA1IrpIBnIEEAEYICKHAQoVRGVsZXRlUmVzb3VyY2VSZXF1ZXN0Em4KC3Jlc291cmNlX2lkGAEgASgJQlmSQU0yMlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgcmVzb3VyY2UgdG8gZGVsZXRlShciYXBwXzY5Mzg4Nzk4NDY2NzIwMDA1IrpIBnIEEAEYICK7CgoLQXBwbGljYXRpb24SggEKAmlkGAEgASgJQnaSQXMyWFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UuIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHVwb24gY3JlYXRpb24gYW5kIGltbXV0YWJsZS5KFyJhcHBfNjkzODg3OTg0NjY3MjAwMDUiEkIKBG5hbWUYAiABKAlCNJJBKTIUTmFtZSBvZiB0aGUgcmVzb3VyY2VKESJNeSBBUEkgUmVzb3VyY2UiukgFcgMYgAESqAEKC3Jlc291cmNlX2lkGAMgASgJQpIBkkGEATJiUmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlLiBUaGlzIGNvdWxkICBiZSB0aGUgVVJMIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZSByZXNvdXJjZXNKHiJodHRwczovL3Jlc291cmNlLmV4YW1wbGUuY29tIrpIB3IFEAEYgAQSeQoLZGVzY3JpcHRpb24YBCABKAlCZJJBWTIbRGVzY3JpcHRpb24gb2YgdGhlIHJlc291cmNlSjoiUmVzb3VyY2UgZm9yIGFjY2Vzc2luZyB5b3VyIG9yZ2FuaXphdGlvbidzIEFQSSByZXNvdXJjZXMiukgFcgMYgAQSYwoQYXBwbGljYXRpb25fdHlwZRgFIAEoDjIhLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VUeXBlQiaSQR0yFFR5cGUgb2YgdGhlIHJlc291cmNlSgUiV0VCIrpIA8gBARKDAQojZGlzYWJsZV9keW5hbWljX2NsaWVudF9yZWdpc3RyYXRpb24YBiABKAhCVpJBTTJFSW5kaWNhdGVzIGlmIGR5bmFtaWMgY2xpZW50IHJlZ2lzdHJhdGlvbiBpcyBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlSgR0cnVlukgDyAEBElgKCGxvZ29fdXJpGAcgASgJQkaSQTsyGUxvZ28gVVJJIGZvciB0aGUgcmVzb3VyY2VKHiJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nIrpIBXIDGIAEElQKE2FjY2Vzc190b2tlbl9leHBpcnkYCCABKANCN5JBNDIsRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIGFjY2VzcyB0b2tlbi5KBDM2MDASVwoUcmVmcmVzaF90b2tlbl9leHBpcnkYCSABKANCOZJBNjItRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIHJlZnJlc2ggdG9rZW4uSgU4NjQwMBJ5CgtjcmVhdGVfdGltZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCSJJBRTInVGltZXN0YW1wIHdoZW4gdGhlIHJlc291cmNlIHdhcyBjcmVhdGVkShoiMjAyNC0wMS0wNVQxNDo0ODowMC4wMDBaIhJ+Cgt1cGRhdGVfdGltZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCTZJBSjIsVGltZXN0YW1wIHdoZW4gdGhlIHJlc291cmNlIHdhcyBsYXN0IHVwZGF0ZWRKGiIyMDI0LTAxLTA1VDE0OjQ4OjAwLjAwMFoiEk4KCHByb3ZpZGVyGAwgASgJQjySQTEyJENvbm5lY3Rpb24gcHJvdmlkZXIgZm9yIHRoZSByZXNvdXJjZUoJIkRFU0NPUEUiukgFcgMYgAQi3BYKCFJlc291cmNlEoIBCgJpZBgBIAEoCUJ2kkFzMlhVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlLiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB1cG9uIGNyZWF0aW9uIGFuZCBpbW11dGFibGUuShciYXBwXzY5Mzg4Nzk4NDY2NzIwMDA1IhJCCgRuYW1lGAIgASgJQjSSQSkyFE5hbWUgb2YgdGhlIHJlc291cmNlShEiTXkgQVBJIFJlc291cmNlIrpIBXIDGIABEqcBCgxyZXNvdXJjZV91cmkYAyABKAlCkAGSQYQBMmJSZXNvdXJjZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UuIFRoaXMgY291bGQgIGJlIHRoZSBVUkwgdXNlZCB0byBhY2Nlc3MgdGhlIHJlc291cmNlIHJlc291cmNlc0oeImh0dHBzOi8vcmVzb3VyY2UuZXhhbXBsZS5jb20iukgFcgMYgAQSeQoLZGVzY3JpcHRpb24YBCABKAlCZJJBWTIbRGVzY3JpcHRpb24gb2YgdGhlIHJlc291cmNlSjoiUmVzb3VyY2UgZm9yIGFjY2Vzc2luZyB5b3VyIG9yZ2FuaXphdGlvbidzIEFQSSByZXNvdXJjZXMiukgFcgMYgAQSYAoNcmVzb3VyY2VfdHlwZRgFIAEoDjIhLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VUeXBlQiaSQR0yFFR5cGUgb2YgdGhlIHJlc291cmNlSgUiV0VCIrpIA8gBARKDAQojZGlzYWJsZV9keW5hbWljX2NsaWVudF9yZWdpc3RyYXRpb24YBiABKAhCVpJBTTJFSW5kaWNhdGVzIGlmIGR5bmFtaWMgY2xpZW50IHJlZ2lzdHJhdGlvbiBpcyBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlSgR0cnVlukgDyAEBElgKCGxvZ29fdXJpGAcgASgJQkaSQTsyGUxvZ28gVVJJIGZvciB0aGUgcmVzb3VyY2VKHiJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nIrpIBXIDGIAEElQKE2FjY2Vzc190b2tlbl9leHBpcnkYCCABKANCN5JBNDIsRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIGFjY2VzcyB0b2tlbi5KBDM2MDASVwoUcmVmcmVzaF90b2tlbl9leHBpcnkYCSABKANCOZJBNjItRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIHJlZnJlc2ggdG9rZW4uSgU4NjQwMBJ5CgtjcmVhdGVfdGltZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCSJJBRTInVGltZXN0YW1wIHdoZW4gdGhlIHJlc291cmNlIHdhcyBjcmVhdGVkShoiMjAyNC0wMS0wNVQxNDo0ODowMC4wMDBaIhJ+Cgt1cGRhdGVfdGltZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCTZJBSjIsVGltZXN0YW1wIHdoZW4gdGhlIHJlc291cmNlIHdhcyBsYXN0IHVwZGF0ZWRKGiIyMDI0LTAxLTA1VDE0OjQ4OjAwLjAwMFoiEk4KCHByb3ZpZGVyGAwgASgJQjySQTEyJENvbm5lY3Rpb24gcHJvdmlkZXIgZm9yIHRoZSByZXNvdXJjZUoJIkRFU0NPUEUiukgFcgMYgAQSuAMKEnByb3RlY3RlZF9tZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCggOSQf4CMoIBUHJvdGVjdGVkIG1ldGFkYXRhIGZvciB0aGUgcmVzb3VyY2UuIFRoaXMgZmllbGQgaXMgdXNlZCB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGluIHB1YmxpYyBBUElzLkr2AXsicmVzb3VyY2UiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9tY3AiLCJhdXRob3JpemF0aW9uX3NlcnZlcnMiOiBbImh0dHBzOi8vZXhhbXBsZS5zY2FsZWtpdC5jb20vcmVzb3VyY2VzL3Jlc18xMjMxMjMxMjMiXSwiYmVhcmVyX21ldGhvZHNfc3VwcG9ydGVkIjogWyJoZWFkZXIiXSwicmVzb3VyY2VfZG9jdW1lbnRhdGlvbiI6ICJodHRwczovL2V4YW1wbGUuY29tL2RvY3MiLCJzY29wZXNfc3VwcG9ydGVkIjogWyJ1c3I6cmVhZCJdfRKaAQoWcHJvdGVjdGVkX21ldGFkYXRhX3VyaRgOIAEoCUJ6kkF3MjVVUkkgdG8gYWNjZXNzIHRoZSBwcm90ZWN0ZWQgbWV0YWRhdGEgZm9yIHRoZSByZXNvdXJjZUo+Imh0dHBzOi8vZXhhbXBsZS5jb20vLndlbGwta25vd24vb2F1dGgtcHJvdGVjdGVkLXJlc291cmNlL21jcCISpgEKC3Jlc291cmNlX2lkGA8gASgJQpABkkGEATJiUmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlLiBUaGlzIGNvdWxkICBiZSB0aGUgVVJMIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZSByZXNvdXJjZXNKHiJodHRwczovL3Jlc291cmNlLmV4YW1wbGUuY29tIrpIBXIDGIAEEvMBCgZzY29wZXMYECADKAsyGi5zY2FsZWtpdC52MS5jbGllbnRzLlNjb3BlQsYBkkHCATJPTGlzdCBvZiBPQXV0aCBzY29wZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZSB3aXRoIGVuYWJsZWQgb3IgZGlzYWJsZWQgZmxhZ0pvW3siaWQiOiAicGVybV8iLCAibmFtZSI6ICJ1c3I6cmVhZCIsICJkZXNjcmlwdGlvbiI6ICJSZWFkaW5nIGJhc2ljIGluZm9ybWF0aW9uIG9mIHRoZSB1c2VycyIsICJlbmFibGVkIjogdHJ1ZX1dErABChJjb25uZWN0aW9uX2RldGFpbHMYESABKAsyJy5zY2FsZWtpdC52MS5jbGllbnRzLlJlc291cmNlQ29ubmVjdGlvbkJrkkFlMmNEZXRhaWxzIG9mIHRoZSBvd24gYXV0aCBjb25uZWN0aW9uIGlmIGFueS4gRm9yIGZ1bGwgc3RhY2sgdGhpcyBmaWVsZCB3aWxsIGJlIGVtcHR5IG9yIG5vdCBwb3B1bGF0ZWTgQQMSdwoaZGlzYWxsb3dfY29ubmVjdGlvbl91cGRhdGUYEiABKAhCU5JBTTJESW5kaWNhdGVzIGlmIHVwZGF0aW5nIHRoZSBjb25uZWN0aW9uIGlzIGRpc2FsbG93ZWQgZm9yIHRoaXMgcmVzb3VyY2VKBWZhbHNl4EEDEo0BCiBpbnRlcnNlY3Rfc2NvcGVzX3VzZXJfcGVybWlzc2lvbhgTIAEoCEJjkkFgMlhJbmRpY2F0ZXMgaWYgdGhlIHNjb3BlcyBzaG91bGQgYmUgaW50ZXJzZWN0ZWQgd2l0aCB1c2VyIHBlcm1pc3Npb25zIGZvciBncmFudWxhciBjb250cm9sSgR0cnVlEnMKC2VuYWJsZV9jaW1kGBQgASgIQl6SQVsyUlNwZWNpZmllcyB3aGV0aGVyIENsaWVudCBJRCBNZXRhZGF0YSBEb2N1bWVudCAoQ0lNRCkgaXMgYWN0aXZhdGVkIGZvciB0aGUgcmVzb3VyY2VKBWZhbHNlIuMBChVSZWdpc3RlckNsaWVudFJlcXVlc3QSYgoGcmVzX2lkGAEgASgJQlKSQUMyKFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgcmVzb3VyY2VKFyJhcHBfNjkzODg3OTg0NjY3MjAwMDUiukgJyAEBcgQQARggEmYKBmNsaWVudBgCIAEoCzIjLnNjYWxla2l0LnYxLmNsaWVudHMuUmVnaXN0ZXJDbGllbnRCMZJBKDImRGV0YWlscyBvZiB0aGUgY2xpZW50IHRvIGJlIHJlZ2lzdGVyZWS6SAPIAQEiwAUKDlJlZ2lzdGVyQ2xpZW50EkUKC2NsaWVudF9uYW1lGAEgASgJQjCSQSUyEk5hbWUgb2YgdGhlIGNsaWVudEoPIk15IEFQSSBDbGllbnQiukgFcgMYgAESdQoLZGVzY3JpcHRpb24YAiABKAlCYJJBVTIZRGVzY3JpcHRpb24gb2YgdGhlIGNsaWVudEo4IkNsaWVudCBmb3IgYWNjZXNzaW5nIHlvdXIgb3JnYW5pemF0aW9uJ3MgQVBJIHJlc291cmNlcyK6SAVyAxiABBJZCg1yZWRpcmVjdF91cmlzGAMgAygJQkKSQT8yG1JlZGlyZWN0IFVSSSBmb3IgdGhlIGNsaWVudEogWyJodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrIl0SUgoFc2NvcGUYBCABKAlCQ5JBQDIbT0F1dGggc2NvcGVzIGZvciB0aGUgY2xpZW50SiFbInJlYWQ6dXNlcnMiLCAid3JpdGU6cmVzb3VyY2VzIl0SSQoKY2xpZW50X3VyaRgFIAEoCUI1kkEyMhlDbGllbnQgVVJJIGZvciB0aGUgY2xpZW50ShUiaHR0cHM6Ly9leGFtcGxlLmNvbSISTgoIbG9nb191cmkYBiABKAlCPJJBOTIXTG9nbyBVUkkgZm9yIHRoZSBjbGllbnRKHiJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nIhJUCgd0b3NfdXJpGAcgASgJQkOSQUAyI1Rlcm1zIG9mIFNlcnZpY2UgVVJJIGZvciB0aGUgY2xpZW50ShkiaHR0cHM6Ly9leGFtcGxlLmNvbS90b3MiElAKCnBvbGljeV91cmkYCCABKAlCPJJBOTIZUG9saWN5IFVSSSBmb3IgdGhlIGNsaWVudEocImh0dHBzOi8vZXhhbXBsZS5jb20vcG9saWN5IiKUFgoWUmVnaXN0ZXJDbGllbnRSZXNwb25zZRLyAQoJY2xpZW50X2lkGAEgASgJQt4BkkHaATK8AVRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBNMk0gY2xpZW50LiBUaGlzIElEIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNsaWVudCBpbiBBUEkgcmVxdWVzdHMgYW5kIGxvZ3MuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHdoZW4gdGhlIGNsaWVudCBpcyBjcmVhdGVkIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQuShkibTJtb3JnXzEyMzEyMzQyMzM0MjQzNDQiEqoCCgdzZWNyZXRzGAIgAygLMiEuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRTZWNyZXRC9QGSQfEBMu4BTGlzdCBvZiBjbGllbnQgc2VjcmV0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjbGllbnQuIEVhY2ggc2VjcmV0IGNhbiBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiwgYnV0IG9ubHkgdGhlIG1vc3QgcmVjZW50bHkgY3JlYXRlZCBzZWNyZXQgaXMgdHlwaWNhbGx5IGFjdGl2ZS4gU2VjcmV0cyBhcmUgc3RvcmVkIHNlY3VyZWx5IGFuZCB0aGVpciB2YWx1ZXMgYXJlIG5ldmVyIHJldHVybmVkIGFmdGVyIGNyZWF0aW9uLhKcAQoEbmFtZRgDIAEoCUKNAZJBiQEyYlRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIE0yTSBjbGllbnQuIFRoaXMgbmFtZSBoZWxwcyBpZGVudGlmeSB0aGUgY2xpZW50IGluIHRoZSBkYXNoYm9hcmQgYW5kIGxvZ3MuSiMiR2l0SHViIEFjdGlvbnMgRGVwbG95bWVudCBTZXJ2aWNlIhLNAQoLZGVzY3JpcHRpb24YBCABKAlCtwGSQbMBMntBIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBjbGllbnQncyBwdXJwb3NlIGFuZCB1c2FnZS4gVGhpcyBoZWxwcyBhZG1pbmlzdHJhdG9ycyB1bmRlcnN0YW5kIHdoYXQgdGhlIGNsaWVudCBpcyB1c2VkIGZvci5KNCJTZXJ2aWNlIGFjY291bnQgZm9yIGF1dG9tYXRlZCBkZXBsb3ltZW50IHByb2Nlc3NlcyISyQEKC2NyZWF0ZV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKXAZJBkwEydVRoZSB0aW1lc3RhbXAgd2hlbiB0aGlzIE0yTSBjbGllbnQgd2FzIGNyZWF0ZWQuIFRoaXMgZmllbGQgaXMgYXV0b21hdGljYWxseSBzZXQgYnkgdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkoaIjIwMjQtMDEtMDVUMTQ6NDg6MDAuMDAwWiIS6AEKC3VwZGF0ZV90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEK2AZJBsgEykwFUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBNMk0gY2xpZW50IHdhcyBsYXN0IHVwZGF0ZWQuIFRoaXMgZmllbGQgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGJ5IHRoZSBzZXJ2ZXIgd2hlbmV2ZXIgdGhlIGNsaWVudCdzIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy5KGiIyMDI0LTAxLTA1VDE0OjQ4OjAwLjAwMFoiErYBCgZzY29wZXMYByADKAlCpQGSQaEBMnVUaGUgT0F1dGggMi4wIHNjb3BlcyBncmFudGVkIHRvIHRoaXMgY2xpZW50LiBUaGVzZSBzY29wZXMgZGV0ZXJtaW5lIHdoYXQgcmVzb3VyY2VzIGFuZCBhY3Rpb25zIHRoZSBjbGllbnQgY2FuIGFjY2Vzcy5KKFsiZGVwbG95OnJlc291cmNlcyIsICJyZWFkOmRlcGxveW1lbnRzIl0SvQEKCGF1ZGllbmNlGAggAygJQqoBkkGmATKGAVRoZSBpbnRlbmRlZCByZWNpcGllbnRzIG9mIGFjY2VzcyB0b2tlbnMgaXNzdWVkIHRvIHRoaXMgY2xpZW50LiBFYWNoIGF1ZGllbmNlIHZhbHVlIHNob3VsZCBiZSBhIFVSSSB0aGF0IGlkZW50aWZpZXMgYW4gQVBJIG9yIHNlcnZpY2UuShtbImh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIl0S3gEKDWN1c3RvbV9jbGFpbXMYCSADKAsyIC5zY2FsZWtpdC52MS5jbGllbnRzLkN1c3RvbUNsYWltQqQBkkGgATKdAUFkZGl0aW9uYWwgY2xhaW1zIGluY2x1ZGVkIGluIGFjY2VzcyB0b2tlbnMgaXNzdWVkIHRvIHRoaXMgY2xpZW50LiBUaGVzZSBjbGFpbXMgcHJvdmlkZSBjb250ZXh0IGFib3V0IHRoZSBjbGllbnQgYW5kIGNhbiBiZSB1c2VkIGZvciBhdXRob3JpemF0aW9uIGRlY2lzaW9ucy4SqgEKBmV4cGlyeRgKIAEoA0KZAZJBlQEyjAFUaGUgbGlmZXRpbWUgb2YgYWNjZXNzIHRva2VucyBpc3N1ZWQgdG8gdGhpcyBjbGllbnQsIGluIHNlY29uZHMuIFRoaXMgZGV0ZXJtaW5lcyBob3cgbG9uZyBhIHRva2VuIHJlbWFpbnMgdmFsaWQgYmVmb3JlIGl0IG11c3QgYmUgcmVmcmVzaGVkLkoEMzYwMBK4AQoLcmVzb3VyY2VfaWQYCyABKAlCogGSQZ4BMoMBVGhlIElEIG9mIHRoZSByZXNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBNMk0gY2xpZW50LiBUaGlzIGZpZWxkIGlzIHVzZWQgdG8gbGluayB0aGUgY2xpZW50IHRvIGEgc3BlY2lmaWMgcmVzb3VyY2UgaW4gdGhlIHN5c3RlbS5KFiJhcHBfMTIzMTIzNDIzMzQyNDM0NCISwwEKDXJlZGlyZWN0X3VyaXMYDCADKAlCqwGSQacBMoIBVGhlIHJlZGlyZWN0IFVSSSBmb3IgdGhpcyBNMk0gY2xpZW50LiBUaGlzIFVSSSBpcyB1c2VkIGluIHRoZSBPQXV0aCAyLjAgYXV0aG9yaXphdGlvbiBmbG93IHRvIHJlZGlyZWN0IHVzZXJzIGFmdGVyIGF1dGhlbnRpY2F0aW9uLkogWyJodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrIl0ScAoNY2xpZW50X3NlY3JldBgNIAEoCUJZkkFWMjRDbGllbnQgc2VjcmV0IHZhbHVlIChvbmx5IHJldHVybmVkIG9uY2UgYXQgY3JlYXRpb24pSh4iQ2RFeHNkRXJmY2N4RERzc2RkZmZmZ2ZlRkhIMSIStwEKGGNsaWVudF9zZWNyZXRfZXhwaXJlc19hdBgOIAEoBUKUAZJBkAEyckNsaWVudCBzZWNyZXQgZXhwaXJ5IHRpbWUgaW4gUkZDMzMzOSBmb3JtYXQuIElmIHRoZSBjbGllbnQgc2VjcmV0IGRvZXMgbm90IGV4cGlyZSwgdGhpcyBmaWVsZCB3aWxsIGJlIHNldCB0byBudWxsLkoaIjIwMjQtMTItMzFUMjM6NTk6NTkuMDAwWiIiugIKFExpc3RSZXNvdXJjZXNSZXF1ZXN0EmQKDXJlc291cmNlX3R5cGUYASABKA4yIS5zY2FsZWtpdC52MS5jbGllbnRzLlJlc291cmNlVHlwZUIqkkEhMhhGaWx0ZXIgcmVzb3VyY2VzIGJ5IHR5cGVKBSJXRUIiukgDyAEBElIKCnBhZ2VfdG9rZW4YAiABKAlCPpJBOzIiVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0c0oVIm5leHRfcGFnZV90b2tlbl8xMjMiEmgKCXBhZ2Vfc2l6ZRgDIAEoDUJVkkFLMkVOdW1iZXIgb2YgcmVzb3VyY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gTWF4aW11bSBpcyAzMC4gRGVmYXVsdCBpcyAxMC5KAjIwukgEKgIYHiKnAgoVTGlzdFJlc291cmNlc1Jlc3BvbnNlEjwKCnRvdGFsX3NpemUYASABKA1CKJJBJTIjVG90YWwgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUSQAoPbmV4dF9wYWdlX3Rva2VuGAIgASgJQieSQSQyIlRva2VuIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMSSAoJcmVzb3VyY2VzGAMgAygLMh0uc2NhbGVraXQudjEuY2xpZW50cy5SZXNvdXJjZUIWkkETMhFMaXN0IG9mIHJlc291cmNlcxJECg9wcmV2X3BhZ2VfdG9rZW4YBCABKAlCK5JBKDImVG9rZW4gZm9yIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMijQIKFVVwZGF0ZVJlc291cmNlUmVxdWVzdBJnCgtyZXNvdXJjZV9pZBgBIAEoCUJSkkFGMitVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gdXBkYXRlShciYXBwXzY5Mzg4Nzk4NDY2NzIwMDA1IrpIBnIEEAEYIBJaCghyZXNvdXJjZRgCIAEoCzIjLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlUmVzb3VyY2VCI5JBGjIYVXBkYXRlZCByZXNvdXJjZSBkZXRhaWxzukgDyAEBEi8KC3VwZGF0ZV9tYXNrGGMgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayLMDAoOVXBkYXRlUmVzb3VyY2USSgoEbmFtZRgBIAEoCUI8kkExMhROYW1lIG9mIHRoZSByZXNvdXJjZUoZIk15IFVwZGF0ZWQgQVBJIFJlc291cmNlIrpIBXIDGIABEoEBCgtkZXNjcmlwdGlvbhgCIAEoCUJskkFhMhtEZXNjcmlwdGlvbiBvZiB0aGUgcmVzb3VyY2VKQiJVcGRhdGVkIHJlc291cmNlIGZvciBhY2Nlc3NpbmcgeW91ciBvcmdhbml6YXRpb24ncyBBUEkgcmVzb3VyY2VzIrpIBXIDGIAEEp4BCgxyZXNvdXJjZV91cmkYAyABKAlChwGSQYMBMmFSZXNvdXJjZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UuIFRoaXMgY291bGQgYmUgdGhlIFVSTCB1c2VkIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2UgcmVzb3VyY2VzSh4iaHR0cHM6Ly9yZXNvdXJjZS5leGFtcGxlLmNvbSISVAoTYWNjZXNzX3Rva2VuX2V4cGlyeRgEIAEoA0I3kkE0MixFeHBpcnkgdGltZSBpbiBzZWNvbmRzIGZvciB0aGUgYWNjZXNzIHRva2VuLkoEMzYwMBJXChRyZWZyZXNoX3Rva2VuX2V4cGlyeRgFIAEoA0I5kkE2Mi1FeHBpcnkgdGltZSBpbiBzZWNvbmRzIGZvciB0aGUgcmVmcmVzaCB0b2tlbi5KBTg2NDAwEpkBCiNkaXNhYmxlX2R5bmFtaWNfY2xpZW50X3JlZ2lzdHJhdGlvbhgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVCUJJBTTJFSW5kaWNhdGVzIGlmIGR5bmFtaWMgY2xpZW50IHJlZ2lzdHJhdGlvbiBpcyBhbGxvd2VkIGZvciB0aGlzIHJlc291cmNlSgR0cnVlElgKCGxvZ29fdXJpGAcgASgJQkaSQTsyGUxvZ28gVVJJIGZvciB0aGUgcmVzb3VyY2VKHiJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nIrpIBXIDGIAEEk4KCHByb3ZpZGVyGAogASgJQjySQTEyJENvbm5lY3Rpb24gcHJvdmlkZXIgZm9yIHRoZSByZXNvdXJjZUoJIkRFU0NPUEUiukgFcgMYgAQSnQEKC3Jlc291cmNlX2lkGAsgASgJQocBkkGDATJhUmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlLiBUaGlzIGNvdWxkIGJlIHRoZSBVUkwgdXNlZCB0byBhY2Nlc3MgdGhlIHJlc291cmNlIHJlc291cmNlc0oeImh0dHBzOi8vcmVzb3VyY2UuZXhhbXBsZS5jb20iEmEKBnNjb3BlcxgMIAMoCUJRkkFOMjFMaXN0IG9mIE9BdXRoIHNjb3BlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc291cmNlShlbInVzcjpyZWFkIiwgInVzcjp3cml0ZSJdEo0BChpjdXN0b21fY29ubmVjdGlvbl9zZXR0aW5ncxgNIAEoCzI1LnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VDdXN0b21Db25uZWN0aW9uU2V0dGluZ3NCMJJBLTIrQ3VzdG9tIGNvbm5lY3Rpb24gc2V0dGluZ3MgZm9yIHRoZSByZXNvdXJjZUgAEqkBCiBpbnRlcnNlY3Rfc2NvcGVzX3VzZXJfcGVybWlzc2lvbhgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVCY5JBYDJYSW5kaWNhdGVzIGlmIHRoZSBzY29wZXMgc2hvdWxkIGJlIGludGVyc2VjdGVkIHdpdGggdXNlciBwZXJtaXNzaW9ucyBmb3IgZ3JhbnVsYXIgY29udHJvbEoEdHJ1ZRKIAQoLZW5hYmxlX2NpbWQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlQleSQVQyS0luZGljYXRlcyBpZiBDSU1EIChDbGllbnQgSUQgTWV0YWRhdGEgRG9jdW1lbnQpIGlzIGVuYWJsZWQgZm9yIHRoZSByZXNvdXJjZUoFZmFsc2VCCgoIc2V0dGluZ3MibwoWVXBkYXRlUmVzb3VyY2VSZXNwb25zZRJVCghyZXNvdXJjZRgBIAEoCzIdLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VCJJJBITIfRGV0YWlscyBvZiB0aGUgdXBkYXRlZCByZXNvdXJjZSLoAQobQ3JlYXRlUmVzb3VyY2VDbGllbnRSZXF1ZXN0EmQKC3Jlc291cmNlX2lkGAEgASgJQk+SQUMyKFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgcmVzb3VyY2VKFyJhcHBfNjkzODg3OTg0NjY3MjAwMDUiukgGcgQQARggEmMKBmNsaWVudBgCIAEoCzIjLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VDbGllbnRCLpJBJTIjRGV0YWlscyBvZiB0aGUgY2xpZW50IHRvIGJlIGNyZWF0ZWS6SAPIAQEi4wEKHENyZWF0ZVJlc291cmNlQ2xpZW50UmVzcG9uc2USUgoGY2xpZW50GAEgASgLMh4uc2NhbGVraXQudjEuY2xpZW50cy5NMk1DbGllbnRCIpJBHzIdRGV0YWlscyBvZiB0aGUgY3JlYXRlZCBjbGllbnQSbwoMcGxhaW5fc2VjcmV0GAIgASgJQlmSQVYyNENsaWVudCBzZWNyZXQgdmFsdWUgKG9ubHkgcmV0dXJuZWQgb25jZSBhdCBjcmVhdGlvbilKHiJDZEV4c2RFcmZjY3hERHNzZGRmZmZnZmVGSEgxIiKdAwobVXBkYXRlUmVzb3VyY2VDbGllbnRSZXF1ZXN0El0KC3Jlc291cmNlX2lkGAEgASgJQkiSQTwyIVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZUoXInJlc182OTM4ODc5ODQ2NjcyMDAwNSK6SAZyBBABGCASWQoJY2xpZW50X2lkGAIgASgJQkaSQToyH1VuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnRKFyJtMm1fMTIzNDU2Nzg5MDEyMzQ1NjciukgGcgQQARggEl4KBmNsaWVudBgDIAEoCzIjLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VDbGllbnRCKZJBIDIeRmllbGRzIG9mIHRoZSBjbGllbnQgdG8gdXBkYXRlukgDyAEBEmQKC3VwZGF0ZV9tYXNrGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IzkkEwMi5NYXNrIHNwZWNpZnlpbmcgd2hpY2ggZmllbGRzIHNob3VsZCBiZSB1cGRhdGVkImsKHFVwZGF0ZVJlc291cmNlQ2xpZW50UmVzcG9uc2USSwoGY2xpZW50GAEgASgLMh4uc2NhbGVraXQudjEuY2xpZW50cy5NMk1DbGllbnRCG5JBGDIWVXBkYXRlZCBjbGllbnQgZGV0YWlscyL/AQoYR2V0UmVzb3VyY2VDbGllbnRSZXF1ZXN0EmkKC3Jlc291cmNlX2lkGAEgASgJQlSSQUgyNFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgcmVzb3VyY2UgdG8gcmV0cmlldmVKECJza2NfMTIzNDU2Nzg5MCK6SAZyBBABGCASeAoJY2xpZW50X2lkGAIgASgJQmWSQVkyPFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZUoZIm0ybW9yZ18xMjMxMjM0MjMzNDI0MzQ0IrpIBnIEEAEYICKQAgoZR2V0UmVzb3VyY2VDbGllbnRSZXNwb25zZRJUCgZjbGllbnQYAiABKAsyHi5zY2FsZWtpdC52MS5jbGllbnRzLk0yTUNsaWVudEIkkkEhMh9EZXRhaWxzIG9mIHRoZSByZXF1ZXN0ZWQgY2xpZW50EpYBCg9jb25zZW50ZWRfdXNlcnMYAyADKAsyIi5zY2FsZWtpdC52MS5jbGllbnRzLkNvbnNlbnRlZFVzZXJCWZJBVjJUTGlzdCBvZiB1c2VyIElEcyB3aG8gaGF2ZSBjb25zZW50ZWQgdG8gdGhpcyBjbGllbnQuIEFwcGxpY2FibGUgZm9yIERDUiBvbmx5IGNsaWVudHMuSgQIARACIvwCCg1Db25zZW50ZWRVc2VyEoEBCgpjb25zZW50X2lkGAEgASgJQm2SQWoyUlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNvbnNlbnQgcmVjb3JkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgYW5kIGNsaWVudC5KFCJ1c3JjbnN0XzEyMzQ1Njc4OTAiEnMKEGV4dGVybmFsX3VzZXJfaWQYAiABKAlCWZJBVjJCVGhlIGV4dGVybmFsIHVzZXIgSUQgb2YgdGhlIHVzZXIgd2hvIGhhcyBjb25zZW50ZWQgdG8gdGhpcyBjbGllbnQuShAidXNyXzEyMzQ1Njc4OTAiEnIKBnNjb3BlcxgDIAMoCUJikkFfMjpUaGUgc2NvcGVzIHRoYXQgdGhlIHVzZXIgaGFzIGNvbnNlbnRlZCB0byBmb3IgdGhpcyBjbGllbnQuSiFbInJlYWQ6dXNlcnMiLCAid3JpdGU6cmVzb3VyY2VzIl0iowMKH0xpc3RSZXNvdXJjZVVzZXJDb25zZW50c1JlcXVlc3QSggEKC3Jlc291cmNlX2lkGAEgASgJQm2SQWEyRlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB3aG9zZSB1c2VyIGNvbnNlbnRzIGFyZSB0byBiZSBsaXN0ZWRKFyJyZXNfNjkzODg3OTg0NjY3MjAwMDUiukgGcgQQARggEk4KBnNlYXJjaBgCIAEoCUI+kkE7Mi5DYXNlLWluc2Vuc2l0aXZlIHNlYXJjaCBvdmVyIGV4dGVybmFsIHVzZXIgSURzSgkidXNyXzEyMyISUQoJcGFnZV9zaXplGAMgASgNQj6SQTQyLk51bWJlciBvZiBjb25zZW50cyB0byByZXR1cm4gcGVyIHBhZ2UgKG1heCAzMClKAjIwukgEKgIYHhJYCgpwYWdlX3Rva2VuGAQgASgJQkSSQUEyM1BhZ2luYXRpb24gdG9rZW4gdG8gZmV0Y2ggdGhlIG5leHQgb3IgcHJldmlvdXMgcGFnZUoKIj46YWJjMTIzIiLZAgogTGlzdFJlc291cmNlVXNlckNvbnNlbnRzUmVzcG9uc2USSwoKdG90YWxfc2l6ZRgBIAEoDUI3kkE0MjJUb3RhbCBudW1iZXIgb2YgdXNlciBjb25zZW50cyBtYXRjaGluZyB0aGUgcmVxdWVzdBJFCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAlCLJJBKTInUGFnaW5hdGlvbiB0b2tlbiB0byBmZXRjaCB0aGUgbmV4dCBwYWdlElYKCGNvbnNlbnRzGAMgAygLMiguc2NhbGVraXQudjEuY2xpZW50cy5SZXNvdXJjZVVzZXJDb25zZW50QhqSQRcyFUxpc3Qgb2YgdXNlciBjb25zZW50cxJJCg9wcmV2X3BhZ2VfdG9rZW4YBCABKAlCMJJBLTIrUGFnaW5hdGlvbiB0b2tlbiB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZSKfBAoTUmVzb3VyY2VVc2VyQ29uc2VudBJUCgJpZBgBIAEoCUJIkkFFMiVVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciBjb25zZW50ShwidXNyY25zdF8xMDI3MDk1MzU2MDg2NjgxNjMiEmIKEGV4dGVybmFsX3VzZXJfaWQYAiABKAlCSJJBRTIqRXh0ZXJuYWwgaWRlbnRpZmllciBvZiB0aGUgY29uc2VudGluZyB1c2VyShcidXNyXzgzNTYyODk1NzkwNjM3ODQxIhJWCgljbGllbnRfaWQYAyABKAlCQ5JBQDItQ2xpZW50IGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb25zZW50Sg8ibTJtXzEyMzEyMzEyMyISOAoLY2xpZW50X25hbWUYBCABKAlCI5JBIDIUUmVhZGFibGUgY2xpZW50IG5hbWVKCCJNQ1BKYW0iEkcKBnNjb3BlcxgFIAMoCUI3kkE0Mh1TY29wZXMgZ3JhbnRlZCBpbiB0aGUgY29uc2VudEoTWyJvcGVuaWQiLCAiZW1haWwiXRJzCgpncmFudGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEJDkkFAMiJUaW1lc3RhbXAgd2hlbiBjb25zZW50IHdhcyBncmFudGVkShoiMjAyNS0xMi0wOVQxMzoyNzoyOS44MTBaIiKTAQoaTGlzdFJlc291cmNlQ2xpZW50c1JlcXVlc3QSdQoLcmVzb3VyY2VfaWQYASABKAlCYJJBVDJAVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlc291cmNlIHdob3NlIGNsaWVudHMgYXJlIHRvIGJlIGxpc3RlZEoQInNrY18xMjM0NTY3ODkwIrpIBnIEEAEYICLCAgobTGlzdFJlc291cmNlQ2xpZW50c1Jlc3BvbnNlEmIKB2NsaWVudHMYAiADKAsyHi5zY2FsZWtpdC52MS5jbGllbnRzLk0yTUNsaWVudEIxkkEuMixMaXN0IG9mIGNsaWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZRJYChF0b3RhbF9kY3JfY2xpZW50cxgDIAEoBUI9kkE6MjhUb3RhbCBudW1iZXIgb2YgRENSIGNsaWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZRJfChR0b3RhbF9zdGF0aWNfY2xpZW50cxgEIAEoBUJBkkE+MjxUb3RhbCBudW1iZXIgb2Ygbm9uLURDUiBjbGllbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VKBAgBEAIi1wEKG0RlbGV0ZVJlc291cmNlQ2xpZW50UmVxdWVzdBJdCgtyZXNvdXJjZV9pZBgBIAEoCUJIkkE8MiFVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2VKFyJhcHBfNjkzODg3OTg0NjY3MjAwMDUiukgGcgQQARggElkKCWNsaWVudF9pZBgCIAEoCUJGkkE6Mh9VbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY2xpZW50ShcibTJtXzEyMzQ1Njc4OTAxMjM0NTY3IrpIBnIEEAEYICIeChxEZWxldGVSZXNvdXJjZUNsaWVudFJlc3BvbnNlIvYBCh9DcmVhdGVPcmdhbml6YXRpb25DbGllbnRSZXF1ZXN0EmoKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJRkkE/MiVVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uShYib3JnXzEyMzEyMzQyMzM0MjQzNDQiukgMcgoQARggOgRvcmdfEmcKBmNsaWVudBgCIAEoCzInLnNjYWxla2l0LnYxLmNsaWVudHMuT3JnYW5pemF0aW9uQ2xpZW50Qi6SQSUyI0RldGFpbHMgb2YgdGhlIGNsaWVudCB0byBiZSBjcmVhdGVkukgDyAEBIu0LChJPcmdhbml6YXRpb25DbGllbnQS4QEKBG5hbWUYASABKAlC0gGSQcYBMp4BQSBkZXNjcmlwdGl2ZSBuYW1lIGZvciB0aGUgQVBJIGNsaWVudCB0aGF0IGhlbHBzIGlkZW50aWZ5IGl0cyBwdXJwb3NlLiBUaGlzIG5hbWUgaXMgZGlzcGxheWVkIGluIHRoZSBkYXNoYm9hcmQgYW5kIGxvZ3MuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMjggY2hhcmFjdGVycy5KIyJHaXRIdWIgQWN0aW9ucyBEZXBsb3ltZW50IFNlcnZpY2UiukgFcgMYgAES+wEKC2Rlc2NyaXB0aW9uGAIgASgJQuUBkkHZATKOAUEgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhlIGNsaWVudCdzIHB1cnBvc2UgYW5kIHVzYWdlLiBUaGlzIGhlbHBzIGFkbWluaXN0cmF0b3JzIHVuZGVyc3RhbmQgd2hhdCB0aGUgY2xpZW50IGlzIHVzZWQgZm9yIGFuZCB3aG8gbWFuYWdlcyBpdC5KRiJTZXJ2aWNlIGFjY291bnQgZm9yIEdpdEh1YiBBY3Rpb25zIHRvIGRlcGxveSByZXNvdXJjZXMgdG8gcHJvZHVjdGlvbiK6SAVyAxiABBKNAgoGc2NvcGVzGAMgAygJQvwBkkH4ATLLAU9BdXRoIDIuMCBzY29wZXMgdGhhdCBkZWZpbmUgdGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gdGhpcyBjbGllbnQuIEVhY2ggc2NvcGUgcmVwcmVzZW50cyBhIHNwZWNpZmljIHBlcm1pc3Npb24gb3Igc2V0IG9mIHBlcm1pc3Npb25zLiBUaGUgY2xpZW50IGNhbiBvbmx5IGFjY2VzcyByZXNvdXJjZXMgdGhhdCBtYXRjaCBpdHMgZ3JhbnRlZCBzY29wZXMuSihbImRlcGxveTpyZXNvdXJjZXMiLCAicmVhZDpkZXBsb3ltZW50cyJdEpQCCghhdWRpZW5jZRgEIAMoCUKBApJB/QEyqAFUaGUgaW50ZW5kZWQgcmVjaXBpZW50cyBvZiB0aGUgYWNjZXNzIHRva2VucyBpc3N1ZWQgdG8gdGhpcyBjbGllbnQuIEVhY2ggYXVkaWVuY2UgdmFsdWUgc2hvdWxkIGJlIGEgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgQVBJIG9yIHNlcnZpY2UgdGhhdCB3aWxsIHZhbGlkYXRlIHRoZSB0b2tlbi5KUFsiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vYXBpL2FuYWx5dGljcyIsICJodHRwczovL2RlcGxveW1lbnQtYXBpLmFjbWVjb3JwLmNvbSJdEvQCCg1jdXN0b21fY2xhaW1zGAUgAygLMiAuc2NhbGVraXQudjEuY2xpZW50cy5DdXN0b21DbGFpbUK6ApJBtgIy1wFBZGRpdGlvbmFsIGNsYWltcyB0byBiZSBpbmNsdWRlZCBpbiBhY2Nlc3MgdG9rZW5zIGlzc3VlZCB0byB0aGlzIGNsaWVudC4gVGhlc2UgY2xhaW1zIHByb3ZpZGUgY29udGV4dCBhYm91dCB0aGUgY2xpZW50IGFuZCBjYW4gYmUgdXNlZCBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMuIEtlZXAgY2xhaW1zIG1pbmltYWwgdG8gYXZvaWQgaW5jcmVhc2luZyB0b2tlbiBzaXplLkpaW3sia2V5IjogImVudmlyb25tZW50IiwgInZhbHVlIjogInByb2R1Y3Rpb24ifSwgeyJrZXkiOiAic2VydmljZSIsICJ2YWx1ZSI6ICJkZXBsb3ltZW50In1dElcKBmV4cGlyeRgGIAEoA0JHkkFEMjxFeHBpcnkgdGltZSBpbiBzZWNvbmRzIGZvciB0aGUgdG9rZW4gZ2VuZXJhdGVkIGJ5IHRoZSBjbGllbnRKBDM2MDAi5wEKIENyZWF0ZU9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlElIKBmNsaWVudBgBIAEoCzIeLnNjYWxla2l0LnYxLmNsaWVudHMuTTJNQ2xpZW50QiKSQR8yHURldGFpbHMgb2YgdGhlIGNyZWF0ZWQgY2xpZW50Em8KDHBsYWluX3NlY3JldBgCIAEoCUJZkkFWMjRDbGllbnQgc2VjcmV0IHZhbHVlIChvbmx5IHJldHVybmVkIG9uY2UgYXQgY3JlYXRpb24pSh4iQ2RFeHNkRXJmY2N4RERzc2RkZmZmZ2ZlRkhIMSIi1wIKH1VwZGF0ZU9yZ2FuaXphdGlvbkNsaWVudFJlcXVlc3QSagoPb3JnYW5pemF0aW9uX2lkGAEgASgJQlGSQT8yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzMTIzNDIzMzQyNDM0NCK6SAxyChABGCA6BG9yZ18SZAoJY2xpZW50X2lkGAIgASgJQlGSQTwyH1VuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnRKGSJtMm1vcmdfMTIzMTIzNDIzMzQyNDM0NCK6SA9yDRABGCA6B20ybW9yZ18SYgoGY2xpZW50GAMgASgLMicuc2NhbGVraXQudjEuY2xpZW50cy5Pcmdhbml6YXRpb25DbGllbnRCKZJBIDIeVXBkYXRlZCBkZXRhaWxzIGZvciB0aGUgY2xpZW50ukgDyAEBInYKIFVwZGF0ZU9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlElIKBmNsaWVudBgBIAEoCzIeLnNjYWxla2l0LnYxLmNsaWVudHMuTTJNQ2xpZW50QiKSQR8yHVVwZGF0ZWQgZGV0YWlscyBvZiB0aGUgY2xpZW50IsEZCglNMk1DbGllbnQS8gEKCWNsaWVudF9pZBgBIAEoCULeAZJB2gEyvAFUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQVBJIGNsaWVudC4gVGhpcyBJRCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjbGllbnQgaW4gQVBJIHJlcXVlc3RzIGFuZCBsb2dzLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB3aGVuIHRoZSBjbGllbnQgaXMgY3JlYXRlZCBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkoZIm0ybW9yZ18xMjMxMjM0MjMzNDI0MzQ0IhKqAgoHc2VjcmV0cxgCIAMoCzIhLnNjYWxla2l0LnYxLmNsaWVudHMuQ2xpZW50U2VjcmV0QvUBkkHxATLuAUxpc3Qgb2YgY2xpZW50IHNlY3JldHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2xpZW50LiBFYWNoIHNlY3JldCBjYW4gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24sIGJ1dCBvbmx5IHRoZSBtb3N0IHJlY2VudGx5IGNyZWF0ZWQgc2VjcmV0IGlzIHR5cGljYWxseSBhY3RpdmUuIFNlY3JldHMgYXJlIHN0b3JlZCBzZWN1cmVseSBhbmQgdGhlaXIgdmFsdWVzIGFyZSBuZXZlciByZXR1cm5lZCBhZnRlciBjcmVhdGlvbi4SnAEKBG5hbWUYAyABKAlCjQGSQYkBMmJUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBBUEkgY2xpZW50LiBUaGlzIG5hbWUgaGVscHMgaWRlbnRpZnkgdGhlIGNsaWVudCBpbiB0aGUgZGFzaGJvYXJkIGFuZCBsb2dzLkojIkdpdEh1YiBBY3Rpb25zIERlcGxveW1lbnQgU2VydmljZSISzQEKC2Rlc2NyaXB0aW9uGAQgASgJQrcBkkGzATJ7QSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgY2xpZW50J3MgcHVycG9zZSBhbmQgdXNhZ2UuIFRoaXMgaGVscHMgYWRtaW5pc3RyYXRvcnMgdW5kZXJzdGFuZCB3aGF0IHRoZSBjbGllbnQgaXMgdXNlZCBmb3IuSjQiU2VydmljZSBhY2NvdW50IGZvciBhdXRvbWF0ZWQgZGVwbG95bWVudCBwcm9jZXNzZXMiEucBCg9vcmdhbml6YXRpb25faWQYBSABKAlCzQGSQckBMq4BVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoaXMgQVBJIGNsaWVudC4gVGhpcyBJRCBpcyB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgY2xpZW50IHdpdGggdGhlIGNvcnJlY3Qgb3JnYW5pemF0aW9uIGFuZCBlbmZvcmNlIG9yZ2FuaXphdGlvbi1zcGVjaWZpYyBhY2Nlc3MgY29udHJvbHMuShYib3JnXzEyMzEyMzQyMzM0MjQzNDQiEskBCgtjcmVhdGVfdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBClwGSQZMBMnVUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBBUEkgY2xpZW50IHdhcyBjcmVhdGVkLiBUaGlzIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IHRoZSBzZXJ2ZXIgYW5kIGNhbm5vdCBiZSBtb2RpZmllZC5KGiIyMDI0LTAxLTA1VDE0OjQ4OjAwLjAwMFoiEugBCgt1cGRhdGVfdGltZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCtgGSQbIBMpMBVGhlIHRpbWVzdGFtcCB3aGVuIHRoaXMgQVBJIGNsaWVudCB3YXMgbGFzdCB1cGRhdGVkLiBUaGlzIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBieSB0aGUgc2VydmVyIHdoZW5ldmVyIHRoZSBjbGllbnQncyBjb25maWd1cmF0aW9uIGNoYW5nZXMuShoiMjAyNC0wMS0wNVQxNDo0ODowMC4wMDBaIhK2AQoGc2NvcGVzGAggAygJQqUBkkGhATJ1VGhlIE9BdXRoIDIuMCBzY29wZXMgZ3JhbnRlZCB0byB0aGlzIGNsaWVudC4gVGhlc2Ugc2NvcGVzIGRldGVybWluZSB3aGF0IHJlc291cmNlcyBhbmQgYWN0aW9ucyB0aGUgY2xpZW50IGNhbiBhY2Nlc3MuSihbImRlcGxveTpyZXNvdXJjZXMiLCAicmVhZDpkZXBsb3ltZW50cyJdEr0BCghhdWRpZW5jZRgJIAMoCUKqAZJBpgEyhgFUaGUgaW50ZW5kZWQgcmVjaXBpZW50cyBvZiBhY2Nlc3MgdG9rZW5zIGlzc3VlZCB0byB0aGlzIGNsaWVudC4gRWFjaCBhdWRpZW5jZSB2YWx1ZSBzaG91bGQgYmUgYSBVUkkgdGhhdCBpZGVudGlmaWVzIGFuIEFQSSBvciBzZXJ2aWNlLkobWyJodHRwczovL2FwaS5leGFtcGxlLmNvbSJdEt4BCg1jdXN0b21fY2xhaW1zGAogAygLMiAuc2NhbGVraXQudjEuY2xpZW50cy5DdXN0b21DbGFpbUKkAZJBoAEynQFBZGRpdGlvbmFsIGNsYWltcyBpbmNsdWRlZCBpbiBhY2Nlc3MgdG9rZW5zIGlzc3VlZCB0byB0aGlzIGNsaWVudC4gVGhlc2UgY2xhaW1zIHByb3ZpZGUgY29udGV4dCBhYm91dCB0aGUgY2xpZW50IGFuZCBjYW4gYmUgdXNlZCBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMuElcKBmV4cGlyeRgLIAEoA0JHkkFEMjxFeHBpcnkgdGltZSBpbiBzZWNvbmRzIGZvciB0aGUgdG9rZW4gZ2VuZXJhdGVkIGJ5IHRoZSBjbGllbnRKBDM2MDASuAEKC3Jlc291cmNlX2lkGAwgASgJQqIBkkGeATKDAVRoZSBJRCBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgTTJNIGNsaWVudC4gVGhpcyBmaWVsZCBpcyB1c2VkIHRvIGxpbmsgdGhlIGNsaWVudCB0byBhIHNwZWNpZmljIHJlc291cmNlIGluIHRoZSBzeXN0ZW0uShYiYXBwXzEyMzEyMzQyMzM0MjQzNDQiEsMBCg1yZWRpcmVjdF91cmlzGA0gAygJQqsBkkGnATKCAVRoZSByZWRpcmVjdCBVUkkgZm9yIHRoaXMgQVBJIGNsaWVudC4gVGhpcyBVUkkgaXMgdXNlZCBpbiB0aGUgT0F1dGggMi4wIGF1dGhvcml6YXRpb24gZmxvdyB0byByZWRpcmVjdCB1c2VycyBhZnRlciBhdXRoZW50aWNhdGlvbi5KIFsiaHR0cHM6Ly9leGFtcGxlLmNvbS9jYWxsYmFjayJdEt4BCgZpc19kY3IYDyABKAhCzQGSQckBMr8BSW5kaWNhdGVzIGlmIHRoZSBjbGllbnQgd2FzIGNyZWF0ZWQgdmlhIER5bmFtaWMgQ2xpZW50IFJlZ2lzdHJhdGlvbiAoRENSKS4gQ2xpZW50cyBjcmVhdGVkIHRocm91Z2ggRENSIG1heSBoYXZlIGRpZmZlcmVudCBtYW5hZ2VtZW50IGFuZCBsaWZlY3ljbGUgcG9saWNpZXMgY29tcGFyZWQgdG8gdGhvc2UgY3JlYXRlZCBtYW51YWxseS5KBWZhbHNlEsABCgdpc19jaW1kGBAgASgIQq4BkkGqATKgAUluZGljYXRlcyBpZiB0aGUgY2xpZW50IHdhcyBjcmVhdGVkIHZpYSBDbGllbnQgSUQgTWV0YWRhdGEgRG9jdW1lbnQgKENJTUQpLiBDSU1EIGNsaWVudHMgY2FuIHVwZGF0ZSB0aGVpciBvd24gY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIENJTUQgc3BlY2lmaWNhdGlvbi5KBWZhbHNlEqkBCgxtZXRhZGF0YV91cmkYESABKAlCkgGSQY4BMmBUaGUgVVJJIHRvIHRoZSBjbGllbnQncyBtZXRhZGF0YSwgd2hpY2ggaXMgdXRpbGl6ZWQgdG8gb2J0YWluIHRoZSBjbGllbnQncyBjb25maWd1cmF0aW9uIGRldGFpbHNKKiJodHRwczovL2V4YW1wbGUuY29tL2NsaWVudC1tZXRhZGF0YS5qc29uIiL0AQocR2V0T3JnYW5pemF0aW9uQ2xpZW50UmVxdWVzdBJqCg9vcmdhbml6YXRpb25faWQYASABKAlCUZJBPzIlVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG9yZ2FuaXphdGlvbkoWIm9yZ18xMjMxMjM0MjMzNDI0MzQ0IrpIDHIKEAEYIDoEb3JnXxJoCgljbGllbnRfaWQYAiABKAlCVZJBQDIjVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBjbGllbnRKGSJtMm1vcmdfMTIzMTIzNDIzMzQyNDM0NCK6SA9yDRABGCA6B20ybW9yZ18idQodR2V0T3JnYW5pemF0aW9uQ2xpZW50UmVzcG9uc2USVAoGY2xpZW50GAEgASgLMh4uc2NhbGVraXQudjEuY2xpZW50cy5NMk1DbGllbnRCJJJBITIfRGV0YWlscyBvZiB0aGUgcmVxdWVzdGVkIGNsaWVudCLIAgoLQ3VzdG9tQ2xhaW0SsgEKA2tleRgBIAEoCUKkAZJBlgEyhAFUaGUgbmFtZSBvZiB0aGUgY3VzdG9tIGNsYWltLiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMuIFVzZSBkZXNjcmlwdGl2ZSBuYW1lcyB0aGF0IGNsZWFybHkgaW5kaWNhdGUgdGhlIGNsYWltJ3MgcHVycG9zZS5KDSJlbnZpcm9ubWVudCK6SAdyBRABGIABEoMBCgV2YWx1ZRgCIAEoCUJ0kkFxMmFUaGUgdmFsdWUgb2YgdGhlIGN1c3RvbSBjbGFpbS4gVGhpcyB2YWx1ZSB3aWxsIGJlIGluY2x1ZGVkIGluIGFjY2VzcyB0b2tlbnMgaXNzdWVkIHRvIHRoZSBjbGllbnQuSgwicHJvZHVjdGlvbiIi/QEKJUNyZWF0ZU9yZ2FuaXphdGlvbkNsaWVudFNlY3JldFJlcXVlc3QSagoPb3JnYW5pemF0aW9uX2lkGAEgASgJQlGSQT8yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzMTIzNDIzMzQyNDM0NCK6SAxyChABGCA6BG9yZ18SaAoJY2xpZW50X2lkGAIgASgJQlWSQUAyI1VuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBBUEkgY2xpZW50ShkibTJtb3JnXzEyMzEyMzQyMzM0MjQzNDQiukgPcg0QARggOgdtMm1vcmdfIvYBCiZDcmVhdGVPcmdhbml6YXRpb25DbGllbnRTZWNyZXRSZXNwb25zZRJuCgxwbGFpbl9zZWNyZXQYASABKAlCWJJBVTI0Q2xpZW50IHNlY3JldCB2YWx1ZSAob25seSByZXR1cm5lZCBvbmNlIGF0IGNyZWF0aW9uKUodIm0ybW9yZ19jbGllbnRfc2VjcmV0X3h5ejEyMyISXAoGc2VjcmV0GAIgASgLMiEuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRTZWNyZXRCKZJBJjIkRGV0YWlscyBvZiB0aGUgY3JlYXRlZCBjbGllbnQgc2VjcmV0It4CCiVEZWxldGVPcmdhbml6YXRpb25DbGllbnRTZWNyZXRSZXF1ZXN0EmoKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJRkkE/MiVVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uShYib3JnXzEyMzEyMzQyMzM0MjQzNDQiukgMcgoQARggOgRvcmdfEmgKCWNsaWVudF9pZBgCIAEoCUJVkkFAMiNVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGNsaWVudEoZIm0ybW9yZ18xMjMxMjM0MjMzNDI0MzQ0IrpID3INEAEYIDoHbTJtb3JnXxJfCglzZWNyZXRfaWQYAyABKAlCTJJBQDImVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCBzZWNyZXRKFiJzZWNfMTIzMTIzNDIzMzQyNDM0NCK6SAZyBBABGCAiqwUKHkxpc3RPcmdhbml6YXRpb25DbGllbnRzUmVxdWVzdBKhAQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQocBkkF1MltVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uIHdob3NlIGNsaWVudHMgdG8gbGlzdC4gTXVzdCBzdGFydCB3aXRoICdvcmdfJyBwcmVmaXguShYib3JnXzEyMzEyMzQyMzM0MjQzNDQiukgMcgoQARggOgRvcmdfEmgKCXBhZ2Vfc2l6ZRgCIAEoDUJVkkFSMkxNYXhpbXVtIG51bWJlciBvZiBBUEkgY2xpZW50cyB0byByZXR1cm4gcGVyIHBhZ2UuIE11c3QgYmUgYmV0d2VlbiAxMCBhbmQgMTAwSgIzMBKLAQoKcGFnZV90b2tlbhgDIAEoCUJ3kkF0MmJQYWdpbmF0aW9uIHRva2VuIGZyb20gdGhlIHByZXZpb3VzIHJlc3BvbnNlLiBVc2UgdG8gcmV0cmlldmUgdGhlIG5leHQgcGFnZSBvZiBvcmdhbml6YXRpb24gY2xpZW50c0oOIjxwYWdlX3Rva2VuPiI67AGSQegBCqgBKiFMaXN0IE9yZ2FuaXphdGlvbiBDbGllbnRzIFJlcXVlc3QyggFSZXF1ZXN0IG1lc3NhZ2UgZm9yIGxpc3RpbmcgQVBJIGNsaWVudHMgd2l0aGluIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLiBTdXBwb3J0cyBwYWdpbmF0aW9uIGZvciBoYW5kbGluZyBsYXJnZSBudW1iZXJzIG9mIGNsaWVudHMuKjsKEUFQSSBEb2N1bWVudGF0aW9uEiZodHRwczovL2RvY3Muc2NhbGVraXQuY29tL20ybS9vdmVydmlldyLzBQofTGlzdE9yZ2FuaXphdGlvbkNsaWVudHNSZXNwb25zZRKIAQoPbmV4dF9wYWdlX3Rva2VuGAEgASgJQm+SQWwyVVBhZ2luYXRpb24gdG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gVXNlIHRoaXMgdG9rZW4gdG8gZmV0Y2ggdGhlIG5leHQgcGFnZS5KEyI8bmV4dF9wYWdlX3Rva2VuPiISTQoKdG90YWxfc2l6ZRgCIAEoDUI5kkE2MjBUb3RhbCBudW1iZXIgb2YgQVBJIGNsaWVudHMgaW4gdGhlIG9yZ2FuaXphdGlvbi5KAjMwEtcBCgdjbGllbnRzGAMgAygLMh4uc2NhbGVraXQudjEuY2xpZW50cy5NMk1DbGllbnRCpQGSQaEBMp4BTGlzdCBvZiBBUEkgY2xpZW50IG9iamVjdHMgZm9yIHRoZSBvcmdhbml6YXRpb24uIEVhY2ggY2xpZW50IGluY2x1ZGVzIGl0cyBjb25maWd1cmF0aW9uLCBtZXRhZGF0YSwgYW5kIGFjdGl2ZSBzZWNyZXRzICh3aXRob3V0IGV4cG9zaW5nIGFjdHVhbCBzZWNyZXQgdmFsdWVzKS4SkAEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUJ3kkF0Ml1QYWdpbmF0aW9uIHRva2VuIGZvciB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiBVc2UgdGhpcyB0b2tlbiB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZS5KEyI8cHJldl9wYWdlX3Rva2VuPiI6iAGSQYQBCoEBKiJMaXN0IE9yZ2FuaXphdGlvbiBDbGllbnRzIFJlc3BvbnNlMltSZXNwb25zZSBtZXNzYWdlIGNvbnRhaW5pbmcgYSBwYWdpbmF0ZWQgbGlzdCBvZiBBUEkgY2xpZW50cyBmb3IgdGhlIHNwZWNpZmllZCBvcmdhbml6YXRpb24uIukCCh9EZWxldGVPcmdhbml6YXRpb25DbGllbnRSZXF1ZXN0EqABCg9vcmdhbml6YXRpb25faWQYASABKAlChgGSQXQyWlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSBjbGllbnQuIE11c3Qgc3RhcnQgd2l0aCAnb3JnXycgcHJlZml4LkoWIm9yZ18xMjMxMjM0MjMzNDI0MzQ0IrpIDHIKEAEYIDoEb3JnXxKiAQoJY2xpZW50X2lkGAIgASgJQo4BkkF5MlxVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGNsaWVudCB0byBwZXJtYW5lbnRseSBkZWxldGUuIE11c3Qgc3RhcnQgd2l0aCAnbTJtb3JnXycgcHJlZml4LkoZIm0ybW9yZ18xMjMxMjM0MjMzNDI0MzQ0IrpID3INEAEYIDoHbTJtb3JnXyKbAQoQR2V0Q2xpZW50UmVxdWVzdBKGAQoJY2xpZW50X2lkGAEgASgJQnOSQWcyU1VuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgcmVzb3VyY2UgdG8gcmV0cmlldmUuIE11c3QgYmUgMS0zMiBjaGFyYWN0ZXJzIGxvbmcuShAic2tjXzEyMzQ1Njc4OTAiukgGcgQQARggIu0BChFHZXRDbGllbnRSZXNwb25zZRLXAQoGY2xpZW50GAEgASgLMhsuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRCqQGSQaUBMqIBQ29tcGxldGUgY2xpZW50IGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzLCByZWRpcmVjdCBVUklzLCBhbmQgc2VjcmV0cy4gVGhpcyBjb250YWlucyBhbGwgY3VycmVudCBzZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3RlZCBjbGllbnQgcmVzb3VyY2UuIqMGChJMaXN0Q2xpZW50c1JlcXVlc3QS3gEKFGluY2x1ZGVfcGxhaW5fc2VjcmV0GAEgASgIQr8BkkG7ATKxAVdoZXRoZXIgdG8gaW5jbHVkZSBwbGFpbiBzZWNyZXQgdmFsdWVzIGluIHRoZSByZXNwb25zZS4gRW5hYmxlIG9ubHkgZHVyaW5nIGluaXRpYWwgY2xpZW50IGNyZWF0aW9uLCB0aGVuIHN0b3JlIHNlY3JldHMgc2VjdXJlbHkuIE5vdCBhdmFpbGFibGUgd2hlbiBmaWx0ZXJpbmcgYnkgQUxMIGNsaWVudCB0eXBlc0oFZmFsc2USfQoGZmlsdGVyGAMgASgLMi4uc2NhbGVraXQudjEuY2xpZW50cy5MaXN0Q2xpZW50c1JlcXVlc3QuRmlsdGVyQj2SQToyOEZpbHRlcnMgY2xpZW50cyBieSB0eXBlOiBFTlYsIFdFQl9BUFAsIE5UViwgU1BBLCBvciBBTEwuElIKCnBhZ2VfdG9rZW4YBCABKAlCPpJBOzIiVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0c0oVIm5leHRfcGFnZV90b2tlbl8xMjMiEloKCXBhZ2Vfc2l6ZRgFIAEoDUJHkkE9MjdOdW1iZXIgb2YgY2xpZW50cyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gMTAsIG1heGltdW0gMzAuSgIzMLpIBCoCGB4a9gEKBkZpbHRlchLrAQoLY2xpZW50X3R5cGUYASADKAlC1QGSQdEBMs4BRmlsdGVycyBjbGllbnRzIGJ5IHR5cGUuIFZhbGlkIHZhbHVlczogRU5WLCBXRUJfQVBQLCBOVFYsIFNQQSwgQUxMLiBEZWZhdWx0cyB0byBFTlYuIEFMTCB0YWtlcyBwcmVjZWRlbmNlIGFuZCBvdGhlciB0eXBlcyBhcmUgaWdub3JlZC4gRm9yIHJlc291cmNlLXNwZWNpZmljIGNsaWVudHMgKGUuZy4sIE0yTSksIHVzZSBMaXN0UmVzb3VyY2VDbGllbnRzIEFQSS5KBAgCEAMivwMKE0xpc3RDbGllbnRzUmVzcG9uc2USTwoKdG90YWxfc2l6ZRgBIAEoDUI7kkE4MjJUb3RhbCBudW1iZXIgb2YgY2xpZW50IHJlc291cmNlcyBpbiB0aGUgd29ya3NwYWNlLkoCMTISuAEKB2NsaWVudHMYAiADKAsyGy5zY2FsZWtpdC52MS5jbGllbnRzLkNsaWVudEKJAZJBhQEyggFMaXN0IG9mIGNsaWVudCByZXNvdXJjZSBjb25maWd1cmF0aW9ucyBtYXRjaGluZyB0aGUgcXVlcnkgY3JpdGVyaWEuIEVhY2ggY2xpZW50IGluY2x1ZGVzIGl0cyBtZXRhZGF0YSBhbmQgYXV0aGVudGljYXRpb24gc2V0dGluZ3MuElYKD25leHRfcGFnZV90b2tlbhgDIAEoCUI9kkE6MjhQYWdpbmF0aW9uIHRva2VuIHRoYXQgcmV0cmlldmVzIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cxJECg9wcmV2X3BhZ2VfdG9rZW4YBCABKAlCK5JBKDImVG9rZW4gZm9yIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMi5QEKE0NyZWF0ZUNsaWVudFJlcXVlc3QSzQEKBmNsaWVudBgBIAEoCzIhLnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlQ2xpZW50QpkBkkGPATIbQ2xpZW50IHBhcmFtZXRlcnMgdG8gY3JlYXRlSnB7InBvc3RfbG9naW5fdXJpcyI6IFsiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vY2FsbGJhY2siXSwgImluaXRpYXRlX2xvZ2luX3VyaSI6ICJodHRwczovL2FwcC5leGFtcGxlLmNvbS9sb2dpbiJ9ukgDyAEBIokWCgxDcmVhdGVDbGllbnQS2AEKBG5hbWUYASABKAlCyQGSQboBMp4BQSBkZXNjcmlwdGl2ZSBuYW1lIGZvciB0aGUgQVBJIGNsaWVudCB0aGF0IGhlbHBzIGlkZW50aWZ5IGl0cyBwdXJwb3NlLiBUaGlzIG5hbWUgaXMgZGlzcGxheWVkIGluIHRoZSBkYXNoYm9hcmQgYW5kIGxvZ3MuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMjggY2hhcmFjdGVycy5KFyJNeSBBcHBsaWNhdGlvbiBDbGllbnQiukgIyAEBcgMYgAESygEKC2NsaWVudF90eXBlGAIgASgJQrQBkkGlATKZAUNsaWVudCBhcHBsaWNhdGlvbiB0eXBlLiBWYWxpZCB2YWx1ZXM6IFdFQl9BUFAgKHdlYiBhcHBsaWNhdGlvbnMpLCBTUEEgKHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9ucyksIE5UViAobmF0aXZlIGFwcGxpY2F0aW9ucyBpbmNsdWRpbmcgbW9iaWxlIGFuZCBkZXNrdG9wKUoHV0VCX0FQULpICMgBAXIDGIABEp8CChhiYWNrX2NoYW5uZWxfbG9nb3V0X3VyaXMYAyADKAlC/AGSQekBMndIVFRQUyBlbmRwb2ludHMgdGhhdCByZWNlaXZlIGJhY2stY2hhbm5lbCBsb2dvdXQgbm90aWZpY2F0aW9ucyBmb3IgYXBwbGljYXRpb24taW5pdGlhdGVkIGxvZ291dCBhbmQgc2Vzc2lvbiBtYW5hZ2VtZW50LkpuWyJodHRwczovL2FwcC5leGFtcGxlLmNvbS9iYWNrY2hhbm5lbC1sb2dvdXQtaW50ZXJuYWwiLCAiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vYmFja2NoYW5uZWwtbG9nb3V0LWV4dGVybmFsIl26SAySAQkYASIFcgOIAQESngIKGXBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaXMYBCADKAlC+gGSQecBMpwBQWxsb3dlZCBVUklzIGZvciBwb3N0LWxvZ291dCByZWRpcmVjdGlvbi4gVGhlc2UgVVJJcyBhcmUgdXNlZCB3aGVuIGEgdXNlciBpcyByZWRpcmVjdGVkIGFmdGVyIGxvZ291dC4gTXVzdCB1c2UgSFRUUFMgYW5kIGNvbmZvcm0gdG8gc2VjdXJpdHkgc3BlY2lmaWNhdGlvbnMuSkZbImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tL2xvZ2dlZC1vdXQiLCAiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vaG9tZSJdukgMkgEJGAEiBXIDiAEBEu0BChJpbml0aWF0ZV9sb2dpbl91cmkYBSABKAlCywGSQccBMqMBUHJlLWNvbmZpZ3VyZWQgVVJJIGZvciBpbml0aWF0aW5nIGxvZ2luIGZsb3dzLiBUaGlzIFVSSSBpcyB1c2VkIHRvIHN0YXJ0IGF1dGhlbnRpY2F0aW9uIGZsb3dzIHByb2dyYW1tYXRpY2FsbHkuIE11c3QgdXNlIEhUVFBTIHByb3RvY29sIGFuZCBjb250YWluIGEgdmFsaWQgZG9tYWluLkofImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tL2xvZ2luIkgAiAEBEuoBCg9wb3N0X2xvZ2luX3VyaXMYBiADKAlC0AGSQb0BMnVMaXN0IG9mIGFsbG93ZWQgcG9zdCBsb2dpbiBVUklzIGZvciBPQXV0aCAyLjAgYXV0aG9yaXphdGlvbiBmbG93cy4gRWFjaCBVUkkgbXVzdCBiZSB2YWxpZC4gTWF4aW11bSBvZiA1IFVSSXMgYWxsb3dlZC5KRFsiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vY2FsbGJhY2siLCAiaHR0cHM6Ly9kZXYuZXhhbXBsZS5jb20vYXV0aCJdukgMkgEJGAEiBXIDiAEBElQKE2FjY2Vzc190b2tlbl9leHBpcnkYByABKANCN5JBNDIsRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIGFjY2VzcyB0b2tlbi5KBDM2MDASqwEKBnNjb3BlcxgIIAMoCUKaAZJBlgEyd0xpc3Qgb2Ygc2NvcGVzIHRvIGJlIGF0dGFjaGVkIHRvIHRoaXMgY2xpZW50LiBUaGVzZSBzY29wZXMgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUgc2NvcGVzIGF2YWlsYWJsZSBpbiB0aGUgZW52aXJvbm1lbnQuShtbImRhdGE6cmVhZCIsICJkYXRhOndyaXRlIl0SuAEKDWN1c3RvbV9jbGFpbXMYCSADKAsyIC5zY2FsZWtpdC52MS5jbGllbnRzLkN1c3RvbUNsYWltQn+SQXwyekN1c3RvbSBjbGFpbXMgdG8gYmUgaW5jbHVkZWQgaW4gYWNjZXNzIHRva2Vucy4gUGxlYXNlIGtlZXAgdGhpcyB0byB0aGUgZXNzZW50aWFscyBhcyB0aGlzIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgdG9rZW4uEtUBChxkaXNhbGxvd19zY2FsZWtpdF9hcGlfYWNjZXNzGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUKSAZJBjgEyhQFJZiBzZXQgdG8gdHJ1ZSwgdGhlIGNsaWVudCB3aWxsIGJlIHJlc3RyaWN0ZWQgZnJvbSBhY2Nlc3NpbmcgU2NhbGVraXQgQVBJcyBkaXJlY3RseSwgZW5oYW5jaW5nIHNlY3VyaXR5IGJ5IGxpbWl0aW5nIGl0cyBjYXBhYmlsaXRpZXMuSgR0cnVlEtQBCgtncmFudF90eXBlcxgLIAMoCUK+AZJBugEyeUxpc3Qgb2YgT0F1dGggMi4wIGdyYW50IHR5cGVzIHRoYXQgdGhlIGNsaWVudCBpcyBhdXRob3JpemVkIHRvIHVzZS4gVGhpcyBkZWZpbmVzIGhvdyB0aGUgY2xpZW50IGNhbiBvYnRhaW4gYWNjZXNzIHRva2Vucy5KPVsiYXV0aG9yaXphdGlvbl9jb2RlIiwgInJlZnJlc2hfdG9rZW4iLCAiY2xpZW50X2NyZWRlbnRpYWxzIl0S1AEKDGVuZm9yY2VfcGtjZRgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVCoQGSQZ0BMpQBV2hldGhlciBQcm9vZiBLZXkgZm9yIENvZGUgRXhjaGFuZ2UgKFBLQ0UpIGlzIHJlcXVpcmVkLiBQS0NFIG1pdGlnYXRlcyBhdXRob3JpemF0aW9uIGNvZGUgaW50ZXJjZXB0aW9uIGF0dGFja3MuIERlZmF1bHRzIHRvIHRydWUgZm9yIHB1YmxpYyBjbGllbnRzLkoEdHJ1ZTrUAZJB0AEKnAEqDUNyZWF0ZSBDbGllbnQyigFSZXF1ZXN0IG1lc3NhZ2UgZm9yIGNyZWF0aW5nIGEgbmV3IEFQSSBjbGllbnQgd2l0aCBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGluY2x1ZGluZyByZWRpcmVjdCBVUklzIGFuZCBhdXRoZW50aWNhdGlvbiBzZXR0aW5ncy4qLwoRQVBJIERvY3VtZW50YXRpb24SGmh0dHBzOi8vZG9jcy5zY2FsZWtpdC5jb20vQhUKE19pbml0aWF0ZV9sb2dpbl91cmkihAEKFENyZWF0ZUNsaWVudFJlc3BvbnNlEmwKBmNsaWVudBgBIAEoCzIbLnNjYWxla2l0LnYxLmNsaWVudHMuQ2xpZW50Qj+SQTwyOkNyZWF0ZWQgY2xpZW50IHdpdGggYWxsIHNldHRpbmdzIHJlZmxlY3RlZCBpbiB0aGUgcmVzcG9uc2Ui4gMKE1VwZGF0ZUNsaWVudFJlcXVlc3QScwoJY2xpZW50X2lkGAEgASgJQmCSQVQyOlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZWdpc3RlcmVkIGFwcGxpY2F0aW9uIHRvIHVwZGF0ZS5KFiJza2NfMDFIOVhQUVI3WlkyQUpLTCK6SAZyBBABGCASlwIKBmNsaWVudBgCIAEoCzIhLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlQ2xpZW50QuMBkkHZATJiQXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHRvIHVwZGF0ZS4gQ29udGFpbnMgcmVkaXJlY3QgVVJJcyBhbmQgYXV0aGVudGljYXRpb24gc2V0dGluZ3NKc3sicmVkaXJlY3RfdXJpcyI6IFsiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vY2FsbGJhY2siXSwgImRlZmF1bHRfcmVkaXJlY3RfdXJpIjogImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tL2NhbGxiYWNrIn26SAPIAQESPAoEbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCEuBBA/rS5JMCCRIHUFJFVklFVyLLGQoMVXBkYXRlQ2xpZW50EpACCg1yZWRpcmVjdF91cmlzGAIgAygJQvgBkkHlATKcAUxpc3Qgb2YgYWxsb3dlZCByZWRpcmVjdCBVUklzIGZvciBPQXV0aCAyLjAgYXV0aG9yaXphdGlvbiBmbG93cy4gRWFjaCBVUkkgbXVzdCBiZSB2YWxpZCBhbmQgdXNlIEhUVFBTIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiBNYXhpbXVtIG9mIDUgVVJJcyBhbGxvd2VkLkpEWyJodHRwczovL2FwcC5leGFtcGxlLmNvbS9jYWxsYmFjayIsICJodHRwczovL2Rldi5leGFtcGxlLmNvbS9hdXRoIl26SAySAQkYASIFcgOIAQEShwIKFGRlZmF1bHRfcmVkaXJlY3RfdXJpGAMgASgJQuMBkkGnATKAAVByaW1hcnkgcmVkaXJlY3QgVVJJIHVzZWQgd2hlbiBub25lIGlzIHNwZWNpZmllZCBpbiBhdXRob3JpemF0aW9uIHJlcXVlc3RzLiBNdXN0IGV4YWN0bHkgbWF0Y2ggb25lIG9mIHRoZSBVUklzIGluIHJlZGlyZWN0X3VyaXMuSiIiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vY2FsbGJhY2siukg1ugEyCgl2YWxpZF91cmkSF3VyaSBtdXN0IGJlIGEgdmFsaWQgVVJJGgx0aGlzLmlzVXJpKClIAIgBARKsAgoYYmFja19jaGFubmVsX2xvZ291dF91cmlzGAQgAygJQokCkkH2ATKVAUhUVFBTIGVuZHBvaW50cyBmb3IgcmVjZWl2aW5nIGJhY2stY2hhbm5lbCBsb2dvdXQgbm90aWZpY2F0aW9ucy4gUmVxdWlyZWQgZm9yIGltcGxlbWVudGluZyBhcHBsaWNhdGlvbi1pbml0aWF0ZWQgbG9nb3V0IGZsb3dzIGFuZCBzZXNzaW9uIG1hbmFnZW1lbnQuSlxbImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tL2JhY2tjaGFubmVsLWxvZ291dCIsICJodHRwczovL2FwcC5leGFtcGxlLmNvbS9iYWNrY2hhbm5lbC1sb2dvdXQiXbpIDJIBCRgBIgVyA4gBARKeAgoZcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpcxgFIAMoCUL6AZJB5wEynAFBbGxvd2VkIFVSSXMgZm9yIHBvc3QtbG9nb3V0IHJlZGlyZWN0aW9uLiBUaGVzZSBVUklzIGFyZSB1c2VkIHdoZW4gYSB1c2VyIGlzIHJlZGlyZWN0ZWQgYWZ0ZXIgbG9nb3V0LiBNdXN0IHVzZSBIVFRQUyBhbmQgY29uZm9ybSB0byBzZWN1cml0eSBzcGVjaWZpY2F0aW9ucy5KRlsiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vbG9nZ2VkLW91dCIsICJodHRwczovL2FwcC5leGFtcGxlLmNvbS9ob21lIl26SAySAQkYASIFcgOIAQES7QEKEmluaXRpYXRlX2xvZ2luX3VyaRgGIAEoCULLAZJBxwEyowFQcmUtY29uZmlndXJlZCBVUkkgZm9yIGluaXRpYXRpbmcgbG9naW4gZmxvd3MuIFRoaXMgVVJJIGlzIHVzZWQgdG8gc3RhcnQgYXV0aGVudGljYXRpb24gZmxvd3MgcHJvZ3JhbW1hdGljYWxseS4gTXVzdCB1c2UgSFRUUFMgcHJvdG9jb2wgYW5kIGNvbnRhaW4gYSB2YWxpZCBkb21haW4uSh8iaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20vbG9naW4iSAGIAQESlAIKD3Bvc3RfbG9naW5fdXJpcxgHIAMoCUL6AZJB5wEyngFMaXN0IG9mIGFsbG93ZWQgcG9zdCBsb2dpbiBVUklzIGZvciBPQXV0aCAyLjAgYXV0aG9yaXphdGlvbiBmbG93cy4gRWFjaCBVUkkgbXVzdCBiZSB2YWxpZCBhbmQgdXNlIEhUVFBTIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiBNYXhpbXVtIG9mIDUgVVJJcyBhbGxvd2VkLkpEWyJodHRwczovL2FwcC5leGFtcGxlLmNvbS9jYWxsYmFjayIsICJodHRwczovL2Rldi5leGFtcGxlLmNvbS9hdXRoIl26SAySAQkYASIFcgOIAQESzQEKBG5hbWUYCCABKAlCvgGSQboBMp4BQSBkZXNjcmlwdGl2ZSBuYW1lIGZvciB0aGUgQVBJIGNsaWVudCB0aGF0IGhlbHBzIGlkZW50aWZ5IGl0cyBwdXJwb3NlLiBUaGlzIG5hbWUgaXMgZGlzcGxheWVkIGluIHRoZSBkYXNoYm9hcmQgYW5kIGxvZ3MuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMjggY2hhcmFjdGVycy5KFyJNeSBBcHBsaWNhdGlvbiBDbGllbnQiElQKE2FjY2Vzc190b2tlbl9leHBpcnkYCSABKANCN5JBNDIsRXhwaXJ5IHRpbWUgaW4gc2Vjb25kcyBmb3IgdGhlIGFjY2VzcyB0b2tlbi5KBDM2MDASqwEKBnNjb3BlcxgLIAMoCUKaAZJBlgEyd0xpc3Qgb2Ygc2NvcGVzIHRvIGJlIGF0dGFjaGVkIHRvIHRoaXMgY2xpZW50LiBUaGVzZSBzY29wZXMgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUgc2NvcGVzIGF2YWlsYWJsZSBpbiB0aGUgZW52aXJvbm1lbnQuShtbImRhdGE6cmVhZCIsICJkYXRhOndyaXRlIl0SuAEKDWN1c3RvbV9jbGFpbXMYDCADKAsyIC5zY2FsZWtpdC52MS5jbGllbnRzLkN1c3RvbUNsYWltQn+SQXwyekN1c3RvbSBjbGFpbXMgdG8gYmUgaW5jbHVkZWQgaW4gYWNjZXNzIHRva2Vucy4gUGxlYXNlIGtlZXAgdGhpcyB0byB0aGUgZXNzZW50aWFscyBhcyB0aGlzIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgdG9rZW4uEtUBChxkaXNhbGxvd19zY2FsZWtpdF9hcGlfYWNjZXNzGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUKSAZJBjgEyhQFJZiBzZXQgdG8gdHJ1ZSwgdGhlIGNsaWVudCB3aWxsIGJlIHJlc3RyaWN0ZWQgZnJvbSBhY2Nlc3NpbmcgU2NhbGVraXQgQVBJcyBkaXJlY3RseSwgZW5oYW5jaW5nIHNlY3VyaXR5IGJ5IGxpbWl0aW5nIGl0cyBjYXBhYmlsaXRpZXMuSgR0cnVlEtQBCgtncmFudF90eXBlcxgOIAMoCUK+AZJBugEyeUxpc3Qgb2YgT0F1dGggMi4wIGdyYW50IHR5cGVzIHRoYXQgdGhlIGNsaWVudCBpcyBhdXRob3JpemVkIHRvIHVzZS4gVGhpcyBkZWZpbmVzIGhvdyB0aGUgY2xpZW50IGNhbiBvYnRhaW4gYWNjZXNzIHRva2Vucy5KPVsiYXV0aG9yaXphdGlvbl9jb2RlIiwgInJlZnJlc2hfdG9rZW4iLCAiY2xpZW50X2NyZWRlbnRpYWxzIl0S1AEKDGVuZm9yY2VfcGtjZRgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVCoQGSQZ0BMpQBV2hldGhlciBQcm9vZiBLZXkgZm9yIENvZGUgRXhjaGFuZ2UgKFBLQ0UpIGlzIHJlcXVpcmVkLiBQS0NFIG1pdGlnYXRlcyBhdXRob3JpemF0aW9uIGNvZGUgaW50ZXJjZXB0aW9uIGF0dGFja3MuIERlZmF1bHRzIHRvIHRydWUgZm9yIHB1YmxpYyBjbGllbnRzLkoEdHJ1ZTqBApJB/QEKvQEqG1VwZGF0ZSBDbGllbnQgQ29uZmlndXJhdGlvbjKdAVBhcmFtZXRlcnMgZm9yIHVwZGF0aW5nIGFuIEFQSSBjbGllbnQgYXBwbGljYXRpb24ncyBjb25maWd1cmF0aW9uLiBUaGlzIGFsbG93cyBtb2RpZmljYXRpb24gb2YgcmVkaXJlY3QgVVJJcywgbG9nb3V0IHNldHRpbmdzLCBhbmQgb3RoZXIgc2VjdXJpdHkgcGFyYW1ldGVycy4qOwoRQVBJIERvY3VtZW50YXRpb24SJmh0dHBzOi8vZG9jcy5zY2FsZWtpdC5jb20vbTJtL292ZXJ2aWV3QhcKFV9kZWZhdWx0X3JlZGlyZWN0X3VyaUIVChNfaW5pdGlhdGVfbG9naW5fdXJpIqABChRVcGRhdGVDbGllbnRSZXNwb25zZRKHAQoGY2xpZW50GAEgASgLMhsuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRCWpJBVzJVVXBkYXRlZCBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHdpdGggYWxsIGN1cnJlbnQgc2V0dGluZ3MgcmVmbGVjdGVkIGluIHRoZSByZXNwb25zZSKkAQoZQ3JlYXRlQ2xpZW50U2VjcmV0UmVxdWVzdBKGAQoJY2xpZW50X2lkGAEgASgJQnOSQWcyTVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24gZm9yIHdoaWNoIHRvIGNyZWF0ZSBhIG5ldyBzZWNyZXQuShYic2tjXzAxSDlYUFFSN1pZMkFKS0wiukgGcgQQARggIpgDChpDcmVhdGVDbGllbnRTZWNyZXRSZXNwb25zZRK5AQoMcGxhaW5fc2VjcmV0GAEgASgJQqIBkkGeATKEAVBsYWludGV4dCBzZWNyZXQgdmFsdWUuIFRoaXMgdmFsdWUgaXMgb25seSByZXR1cm5lZCBvbmNlIGF0IGNyZWF0aW9uIHRpbWUgYW5kIG11c3QgYmUgc3RvcmVkIHNlY3VyZWx5LiBJdCBjYW5ub3QgYmUgcmV0cmlldmVkIGFnYWluLkoVInNlY19wbGFpbnRleHQxMjM0NTYiEr0BCgZzZWNyZXQYAiABKAsyIS5zY2FsZWtpdC52MS5jbGllbnRzLkNsaWVudFNlY3JldEKJAZJBhQEyggFNZXRhZGF0YSBhYm91dCB0aGUgbmV3bHkgY3JlYXRlZCBzZWNyZXQsIGluY2x1ZGluZyBpdHMgSUQsIGNyZWF0aW9uIHRpbWUsIGFuZCBzdGF0dXMuIERvZXMgbm90IGluY2x1ZGUgdGhlIHBsYWludGV4dCBzZWNyZXQgdmFsdWUuIuEEChlVcGRhdGVDbGllbnRTZWNyZXRSZXF1ZXN0EoUBCgljbGllbnRfaWQYASABKAlCcpJBZjJMVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiBjb250YWluaW5nIHRoZSBzZWNyZXQgdG8gdXBkYXRlLkoWInNrY18wMUg5WFBRUjdaWTJBSktMIrpIBnIEEAEYIBKhAQoJc2VjcmV0X2lkGAIgASgJQo0BkkGAATJmVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCBzZWNyZXQgdG8gdXBkYXRlLiBUaGlzIHJlZmVyZW5jZXMgYSBzcGVjaWZpYyBzZWNyZXQgd2l0aGluIHRoZSBjbGllbnQuShYic2VjXzAxSDlYUFFSN1pZMkFKS0wiukgGcgQQARggEqgBCgZzZWNyZXQYAyABKAsyJy5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZUNsaWVudFNlY3JldEJvkkFmMmRVcGRhdGVkIHNldHRpbmdzIGZvciB0aGUgc2VjcmV0LiBDdXJyZW50bHkgc3VwcG9ydHMgbW9kaWZ5aW5nIHRoZSBzZWNyZXQncyBzdGF0dXMgKGFjdGl2ZS9pbmFjdGl2ZSkuukgDyAEBEm0KBG1hc2sYBCABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQkOSQUAyPlNwZWNpZmllcyB3aGljaCBmaWVsZHMgdG8gdXBkYXRlLiBTeXN0ZW0tY29udHJvbGxlZCBwYXJhbWV0ZXIuIuQBChJVcGRhdGVDbGllbnRTZWNyZXQSzQEKBnN0YXR1cxgBIAEoDjInLnNjYWxla2l0LnYxLmNsaWVudHMuQ2xpZW50U2VjcmV0U3RhdHVzQpMBkkGPATKCAVN0YXR1cyB0byBzZXQgZm9yIHRoZSBjbGllbnQgc2VjcmV0LiBTZXQgdG8gQUNUSVZFIHRvIGVuYWJsZSB0aGUgc2VjcmV0IGZvciBhdXRoZW50aWNhdGlvbiwgb3IgSU5BQ1RJVkUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBpdC5KCElOQUNUSVZFIt8BChpVcGRhdGVDbGllbnRTZWNyZXRSZXNwb25zZRLAAQoGc2VjcmV0GAEgASgLMiEuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRTZWNyZXRCjAGSQYgBMoUBVXBkYXRlZCBzZWNyZXQgbWV0YWRhdGEsIHJlZmxlY3RpbmcgdGhlIGNoYW5nZXMgbWFkZSBieSB0aGUgdXBkYXRlIG9wZXJhdGlvbi4gTm90ZSB0aGF0IHRoZSBwbGFpbnRleHQgc2VjcmV0IHZhbHVlIGlzIG5ldmVyIHJldHVybmVkLiJ7ChNEZWxldGVDbGllbnRSZXF1ZXN0EmQKCWNsaWVudF9pZBgBIAEoCUJRkkFFMipVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY2xpZW50IHRvIGRlbGV0ZS5KFyJ3ZWJjXzAxSDlYUFFSN1pZMkFKS0wiukgGcgQQARggIp8CChlEZWxldGVDbGllbnRTZWNyZXRSZXF1ZXN0EmcKCWNsaWVudF9pZBgBIAEoCUJUkkFIMi5JZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgY29udGFpbmluZyB0aGUgc2VjcmV0ShYic2tjXzAxSDlYUFFSN1pZMkFKS0wiukgGcgQQARggEpgBCglzZWNyZXRfaWQYAiABKAlChAGSQXgyXlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjbGllbnQgc2VjcmV0IHRvIHBlcm1hbmVudGx5IGRlbGV0ZS4gVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHVuZG9uZS5KFiJzZWNfMDFIOVhQUVI3WlkyQUpLTCK6SAZyBBABGCAixCAKBkNsaWVudBLeAQoCaWQYASABKAlC0QGSQc0BMrIBVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjbGllbnQgYXBwbGljYXRpb24uIFRoaXMgSUQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2hlbiB0aGUgY2xpZW50IGlzIGNyZWF0ZWQgYW5kIGNhbm5vdCBiZSBtb2RpZmllZC4gVXNlZCBpbiBBUEkgcmVxdWVzdHMgYW5kIGF1dGhlbnRpY2F0aW9uIGZsb3dzLkoWInNrY18xMjM0YWJjZDU2NzhlZmdoIhLQAQoFa2V5SWQYAiABKAlCwAGSQbwBMqEBSWRlbnRpZmllciBmb3IgdGhlIGNyeXB0b2dyYXBoaWMga2V5IHBhaXIgdXNlZCB0byBzaWduIHRva2Vucy4gVGhpcyBrZXkgaXMgdXNlZCBmb3IgSldUIHNpZ25pbmcgb3BlcmF0aW9ucy4gS2V5cyBjYW4gYmUgcm90YXRlZCBieSBnZW5lcmF0aW5nIG5ldyBjbGllbnQgc2VjcmV0cy5KFiJrZXlfOTg3Nnp5eHc1NDMydnV0cyIS5AEKC2NyZWF0ZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKyAZJBrgEyjwFUaW1lc3RhbXAgaW5kaWNhdGluZyB3aGVuIHRoZSBjbGllbnQgY29uZmlndXJhdGlvbiB3YXMgaW5pdGlhbGx5IGNyZWF0ZWQuIFRoaXMgZmllbGQgaXMgYXV0b21hdGljYWxseSBzZXQgYnkgdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkoaIjIwMjQtMDEtMDVUMTQ6NDg6MDAuMDAwWiIS9QEKC3VwZGF0ZV90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcELDAZJBvwEyoAFUaW1lc3RhbXAgb2YgdGhlIGxhc3QgbW9kaWZpY2F0aW9uIHRvIHRoZSBjbGllbnQgY29uZmlndXJhdGlvbi4gVGhpcyBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgYnkgdGhlIHNlcnZlciB3aGVuZXZlciBhbnkgYXNwZWN0IG9mIHRoZSBjbGllbnQgaXMgbW9kaWZpZWQuShoiMjAyNC0wMS0xMFQwOToxMjowMC4wMDBaIhLHAgoNcmVkaXJlY3RfdXJpcxgFIAMoCUKvApJBqwIy2wFMaXN0IG9mIGFsbG93ZWQgcmVkaXJlY3QgVVJJcyBmb3IgT0F1dGggMi4wIGF1dGhvcml6YXRpb24gZmxvd3MuIFRoZXNlIFVSSXMgbXVzdCB1c2UgSFRUUFMgcHJvdG9jb2wgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMgYW5kIGNvbXBseSB3aXRoIFJGQyA2NzQ5LiBVc2VycyB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gb25lIG9mIHRoZXNlIFVSSXMgYWZ0ZXIgYXV0aG9yaXphdGlvbi5KS1siaHR0cHM6Ly9hdXRoLnlvdXItYXBwLmNvbS9jYWxsYmFjayIsICJodHRwczovL3NjYWxla2l0LmV4YW1wbGUub3JnL2F1dGgiXRLsAQoUZGVmYXVsdF9yZWRpcmVjdF91cmkYBiABKAlCzQGSQckBMqABUHJpbWFyeSByZWRpcmVjdCBVUkkgdXNlZCB3aGVuIG5vbmUgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gYXV0aG9yaXphdGlvbiByZXF1ZXN0cy4gVGhpcyBVUkkgbXVzdCBleGFjdGx5IG1hdGNoIG9uZSBvZiB0aGUgZW50cmllcyBpbiB0aGUgcmVkaXJlY3RfdXJpcyBsaXN0LkokImh0dHBzOi8vYXV0aC55b3VyLWFwcC5jb20vY2FsbGJhY2siEpwCCgdzZWNyZXRzGAcgAygLMiEuc2NhbGVraXQudjEuY2xpZW50cy5DbGllbnRTZWNyZXRC5wGSQeMBMuABTGlzdCBvZiBjbGllbnQgc2VjcmV0cyB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi4gRWFjaCBzZWNyZXQgaXMgc3RvcmVkIHNlY3VyZWx5IHVzaW5nIG9uZS13YXkgaGFzaGluZyAoYmNyeXB0KS4gVGhlIHBsYWludGV4dCBzZWNyZXQgdmFsdWVzIGFyZSBvbmx5IGRpc3BsYXllZCBkdXJpbmcgaW5pdGlhbCBjcmVhdGlvbiBhbmQgbXVzdCBiZSBzdG9yZWQgc2VjdXJlbHkgYnkgdGhlIGNsaWVudC4SiwIKGXBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaXMYCCADKAlC5wGSQeMBMroBQWxsb3dlZCBVUklzIGZvciBwb3N0LWxvZ291dCByZWRpcmVjdGlvbi4gVGhlc2UgVVJJcyBhcmUgdXNlZCB3aGVuIGEgdXNlciBpcyByZWRpcmVjdGVkIGFmdGVyIHNpZ25pbmcgb3V0LiBNdXN0IHVzZSBIVFRQUyBhbmQgY29uZm9ybSB0byBPcGVuSUQgQ29ubmVjdCBTZXNzaW9uIE1hbmFnZW1lbnQgc3BlY2lmaWNhdGlvbnMuSiRbImh0dHBzOi8vYXV0aC55b3VyLWFwcC5jb20vbG9nb3V0Il0SsgIKGGJhY2tfY2hhbm5lbF9sb2dvdXRfdXJpcxgJIAMoCUKPApJBiwIy2AFIVFRQUyBlbmRwb2ludCBmb3IgcmVjZWl2aW5nIGJhY2stY2hhbm5lbCBsb2dvdXQgbm90aWZpY2F0aW9ucy4gVGhpcyBVUkkgaXMgY2FsbGVkIGJ5IHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2ZXIgd2hlbiBhIHNlc3Npb24gZXhwaXJlcyBvciBpcyB0ZXJtaW5hdGVkLiBSZXF1aXJlZCBmb3IgaW1wbGVtZW50aW5nIHJlbHlpbmcgcGFydHktaW5pdGlhdGVkIGxvZ291dCBmbG93cy5KLiJodHRwczovL2F1dGgueW91ci1hcHAuY29tL2JhY2tjaGFubmVsLWxvZ291dCISjgIKEmluaXRpYXRlX2xvZ2luX3VyaRgKIAEoCULxAZJB7QEyvwFQcmUtY29uZmlndXJlZCBVUkkgZm9yIGluaXRpYXRpbmcgbG9naW4gZmxvd3MgcHJvZ3JhbW1hdGljYWxseS4gVGhpcyBVUkkgbXVzdCB1c2UgdGhlIEhUVFBTIHNjaGVtZSBhbmQgY29udGFpbiBhIHZhbGlkIGRvbWFpbi4gVXNlZCBmb3Igc3RhcnRpbmcgYXV0aGVudGljYXRpb24gZmxvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLkopImh0dHBzOi8vYXV0aC55b3VyLWFwcC5jb20vaW5pdGlhdGUtYXV0aCISnAIKD3Bvc3RfbG9naW5fdXJpcxgLIAMoCUKCApJB/gEyswFMaXN0IG9mIGFsbG93ZWQgcmVkaXJlY3QgVVJJcyBmb3IgT0F1dGggMi4wIGF1dGhvcml6YXRpb24gZmxvd3MuIFRoZXNlIFVSSXMgbXVzdCB1c2UgSFRUUFMgcHJvdG9jb2wgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMgYW5kIGNvbXBseSB3aXRoIFJGQyA2NzQ5LiBNYXhpbXVtIG9mIDUgVVJJcyBhbGxvd2VkLkpGWyJodHRwczovL2F1dGgueW91ci1hcHAuY29tL2NhbGxiYWNrIiwgImh0dHBzOi8vZGV2LmV4YW1wbGUuY29tL2F1dGgiXRJuCgRuYW1lGAwgASgJQmCSQV0yQkEgZGVzY3JpcHRpdmUgbmFtZSBmb3IgdGhlIGNsaWVudCB0aGF0IGhlbHBzIGlkZW50aWZ5IGl0cyBwdXJwb3NlLkoXIk15IEFwcGxpY2F0aW9uIENsaWVudCISWQoTYWNjZXNzX3Rva2VuX2V4cGlyeRgNIAEoA0I3kkE0MixFeHBpcnkgdGltZSBpbiBzZWNvbmRzIGZvciB0aGUgYWNjZXNzIHRva2VuLkoEMzYwMEgAiAEBEl8KBnNjb3BlcxgOIAMoCUJPkkFMMi1MaXN0IG9mIHNjb3BlcyB0byBiZSBhdHRhY2hlZCB0byB0aGlzIGNsaWVudC5KG1siZGF0YTpyZWFkIiwgImRhdGE6d3JpdGUiXRK4AQoNY3VzdG9tX2NsYWltcxgPIAMoCzIgLnNjYWxla2l0LnYxLmNsaWVudHMuQ3VzdG9tQ2xhaW1Cf5JBfDJ6Q3VzdG9tIGNsYWltcyB0byBiZSBpbmNsdWRlZCBpbiBhY2Nlc3MgdG9rZW5zLiBQbGVhc2Uga2VlcCB0aGlzIHRvIHRoZSBlc3NlbnRpYWxzIGFzIHRoaXMgaW5jcmVhc2VzIHRoZSBzaXplIG9mIHRoZSB0b2tlbi4SdAocZGlzYWxsb3dfc2NhbGVraXRfYXBpX2FjY2VzcxgQIAEoCEJOkkFLMkNJZiB0cnVlLCB0aGUgY2xpZW50IHdpbGwgYmUgcmVzdHJpY3RlZCBmcm9tIGFjY2Vzc2luZyBTY2FsZWtpdCBBUElzSgR0cnVlEp4BCgtncmFudF90eXBlcxgRIAMoCUKIAZJBhAEyQ0xpc3Qgb2YgT0F1dGggMi4wIGdyYW50IHR5cGVzIHRoYXQgdGhlIGNsaWVudCBpcyBhdXRob3JpemVkIHRvIHVzZS5KPVsiYXV0aG9yaXphdGlvbl9jb2RlIiwgInJlZnJlc2hfdG9rZW4iLCAiY2xpZW50X2NyZWRlbnRpYWxzIl0SVQoLY2xpZW50X3R5cGUYEiABKAlCQJJBPTI0VHlwZSBvZiBjbGllbnQuIFZhbGlkIHZhbHVlczogRU5WLCBXRUJfQVBQLCBOVFYsIFNQQUoFIkVOViISuAEKDGVuZm9yY2VfcGtjZRgTIAEoCEKhAZJBnQEylAFXaGV0aGVyIFByb29mIEtleSBmb3IgQ29kZSBFeGNoYW5nZSAoUEtDRSkgaXMgcmVxdWlyZWQuIFBLQ0UgbWl0aWdhdGVzIGF1dGhvcml6YXRpb24gY29kZSBpbnRlcmNlcHRpb24gYXR0YWNrcy4gRGVmYXVsdHMgdG8gdHJ1ZSBmb3IgcHVibGljIGNsaWVudHMuSgR0cnVlOrMBkkGvAQqsASoSQ2xpZW50IEFwcGxpY2F0aW9uMpUBQ29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIGNsaWVudCBhcHBsaWNhdGlvbiByZWdpc3RlcmVkIHdpdGggU2NhbGVraXQuIENvbnRhaW5zIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzLCByZWRpcmVjdCBVUklzLCBhbmQgb3RoZXIgc2VjdXJpdHkgcGFyYW1ldGVycy5CFgoUX2FjY2Vzc190b2tlbl9leHBpcnki3RIKDENsaWVudFNlY3JldBLRAQoCaWQYASABKAlCxAGSQcABMqUBVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGNsaWVudCBzZWNyZXQuIFRoaXMgSUQgaXMgdXNlZCB0byByZWZlcmVuY2UgdGhlIHNlY3JldCBpbiBBUEkgcmVxdWVzdHMgZm9yIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyBsaWtlIHVwZGF0aW5nIG9yIGRlbGV0aW5nIHRoZSBzZWNyZXQuShYic2VjXzEyMzRhYmNkNTY3OGVmZ2giEsUBCgtjcmVhdGVfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCkwGSQY8BMnFUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBzZWNyZXQgd2FzIGNyZWF0ZWQuIFRoaXMgZmllbGQgaXMgYXV0b21hdGljYWxseSBzZXQgYnkgdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkoaIjIwMjQtMDEtMDVUMTQ6NDg6MDAuMDAwWiIS+gEKC3VwZGF0ZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcELIAZJBxAEypQFUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBzZWNyZXQgd2FzIGxhc3QgdXBkYXRlZC4gVGhpcyBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgYnkgdGhlIHNlcnZlciB3aGVuIHRoZSBzZWNyZXQncyBzdGF0dXMgY2hhbmdlcyBvciBvdGhlciBwcm9wZXJ0aWVzIGFyZSBtb2RpZmllZC5KGiIyMDI0LTAxLTEwVDA5OjEyOjAwLjAwMFoiEvQBCg1zZWNyZXRfc3VmZml4GAQgASgJQtwBkkHYATLNAUEgc3VmZml4IHRoYXQgaGVscHMgaWRlbnRpZnkgdGhpcyBzZWNyZXQuIFRoaXMgaXMgdGhlIGxhc3QgZmV3IGNoYXJhY3RlcnMgb2YgdGhlIGZ1bGwgc2VjcmV0IHZhbHVlIGJ1dCBpcyBub3Qgc3VmZmljaWVudCBmb3IgYXV0aGVudGljYXRpb24uIEhlbHBzIGlkZW50aWZ5IHdoaWNoIHNlY3JldCBpcyBiZWluZyB1c2VkIGluIGxvZ3MgYW5kIGRlYnVnZ2luZy5KBiJ4eXp3IhK+AQoKY3JlYXRlZF9ieRgFIAEoCUKkAZJBoAEyjwFUaGUgaWRlbnRpZmllciBvZiB0aGUgdXNlciBvciBzeXN0ZW0gdGhhdCBjcmVhdGVkIHRoaXMgc2VjcmV0LiBUaGlzIGZpZWxkIGhlbHBzIHRyYWNrIHdobyBjcmVhdGVkIHRoZSBzZWNyZXQgZm9yIGF1ZGl0IGFuZCBjb21wbGlhbmNlIHB1cnBvc2VzLkoMInVzZXJfMTIzNDUiSACIAQES/gEKBnN0YXR1cxgGIAEoDjInLnNjYWxla2l0LnYxLmNsaWVudHMuQ2xpZW50U2VjcmV0U3RhdHVzQsQBkkHAATKxAVRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGlzIHNlY3JldC4gQSBzZWNyZXQgbXVzdCBiZSBBQ1RJVkUgdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIElOQUNUSVZFIHNlY3JldHMgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uIGJ1dCBhcmUgcmV0YWluZWQgZm9yIGF1ZGl0IHB1cnBvc2VzLkoKIklOQUNUSVZFIhKAAgoLZXhwaXJlX3RpbWUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQs4BkkHKATKrAVRoZSB0aW1lc3RhbXAgd2hlbiB0aGlzIHNlY3JldCB3aWxsIGV4cGlyZS4gQWZ0ZXIgdGhpcyB0aW1lLCB0aGUgc2VjcmV0IGNhbm5vdCBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiByZWdhcmRsZXNzIG9mIGl0cyBzdGF0dXMuIElmIG5vdCBzZXQsIHRoZSBzZWNyZXQgZG9lcyBub3QgZXhwaXJlLkoaIjIwMjUtMDEtMDVUMTQ6NDg6MDAuMDAwWiISmAIKDmxhc3RfdXNlZF90aW1lGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcELjAZJB3wEywAFUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBzZWNyZXQgd2FzIGxhc3QgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFRoaXMgZmllbGQgaGVscHMgdHJhY2sgc2VjcmV0IHVzYWdlIGZvciBzZWN1cml0eSBtb25pdG9yaW5nIGFuZCBpZGVudGlmeWluZyB1bnVzZWQgc2VjcmV0cyB0aGF0IG1heSBiZSBjYW5kaWRhdGVzIGZvciByb3RhdGlvbi5KGiIyMDI0LTAyLTE1VDEwOjMwOjAwLjAwMFoiEqYCCgxwbGFpbl9zZWNyZXQYCSABKAlCigKSQYYCMtcBVGhlIGZ1bGwgcGxhaW50ZXh0IHNlY3JldCB2YWx1ZS4gVGhpcyBmaWVsZCBpcyBvbmx5IHBvcHVsYXRlZCB3aGVuIHRoZSBzZWNyZXQgaXMgZmlyc3QgY3JlYXRlZCBhbmQgaXMgbmV2ZXIgc3RvcmVkIGJ5IHRoZSBzZXJ2ZXIuIEl0IG11c3QgYmUgc2VjdXJlbHkgc3RvcmVkIGJ5IHRoZSBjbGllbnQgYXBwbGljYXRpb24gYXMgaXQgY2Fubm90IGJlIHJldHJpZXZlZCBhZ2Fpbi5KKiJzZWNfMTIzNDU2Nzg5MGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IkgBiAEBOpMBkkGPAQqMASoNQ2xpZW50IFNlY3JldDJ7QSBzZWN1cmUgY3JlZGVudGlhbCB1c2VkIGZvciBhdXRoZW50aWNhdGluZyBhbiBBUEkgY2xpZW50LiBFYWNoIGNsaWVudCBjYW4gaGF2ZSBtdWx0aXBsZSBzZWNyZXRzIGZvciBrZXkgcm90YXRpb24gcHVycG9zZXMuQg0KC19jcmVhdGVkX2J5Qg8KDV9wbGFpbl9zZWNyZXQimAIKBVNjb3BlEqQBCgJpZBgBIAEoCUKXAZJBigEydFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2NvcGUgcmVzb3VyY2UuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMDAgY2hhcmFjdGVycyBsb25nIGFuZCBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uShIic2NvcGVfMTIzNDU2Nzg5MCK6SAZyBBABGGQSMAoEbmFtZRgCIAEoCUIiukgfyAEBchoQARhkMhReW2EtekEtWjAtOTpdezEsNjR9JBIdCgtkZXNjcmlwdGlvbhgDIAEoCUIIukgFcgMY0A8SFwoHZW5hYmxlZBgEIAEoCEIGukgDyAEBIl4KC0NyZWF0ZVNjb3BlEjAKBG5hbWUYASABKAlCIrpIH8gBAXIaEAEYZDIUXlthLXpBLVowLTk6XXsxLDY0fSQSHQoLZGVzY3JpcHRpb24YAiABKAlCCLpIBXIDGNAPIuUBChJDcmVhdGVTY29wZVJlcXVlc3QSNwoFc2NvcGUYASABKAsyIC5zY2FsZWtpdC52MS5jbGllbnRzLkNyZWF0ZVNjb3BlQga6SAPIAQESlQEKBmVudl9pZBgCIAEoCUKEAZJBeDJkVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGVudmlyb25tZW50IHdoZXJlIHRoZSBzY29wZSB3aWxsIGJlIGNyZWF0ZWQuIE11c3Qgc3RhcnQgd2l0aCAnZW52XycgcHJlZml4LkoQImVudl8xMjM0NTY3ODkwIrpIBnIEEAAYICJAChNDcmVhdGVTY29wZVJlc3BvbnNlEikKBXNjb3BlGAEgASgLMhouc2NhbGVraXQudjEuY2xpZW50cy5TY29wZSKjAQoRTGlzdFNjb3Blc1JlcXVlc3QSjQEKBmVudl9pZBgBIAEoCUJ9kkFxMl1VbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW52aXJvbm1lbnQgZm9yIHdoaWNoIHRvIGxpc3Qgc2NvcGVzLiBNdXN0IHN0YXJ0IHdpdGggJ2Vudl8nIHByZWZpeC5KECJlbnZfMTIzNDU2Nzg5MCK6SAZyBBAAGCAiQAoSTGlzdFNjb3Blc1Jlc3BvbnNlEioKBnNjb3BlcxgBIAMoCzIaLnNjYWxla2l0LnYxLmNsaWVudHMuU2NvcGUiZAoSVXBkYXRlU2NvcGVSZXF1ZXN0EhUKAmlkGAEgASgJQgm6SAZyBBABGGQSNwoFc2NvcGUYAiABKAsyIC5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZVNjb3BlQga6SAPIAQEiWQoLVXBkYXRlU2NvcGUSHQoLZGVzY3JpcHRpb24YASABKAlCCLpIBXIDGNAPEisKB2VuYWJsZWQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlIkAKE1VwZGF0ZVNjb3BlUmVzcG9uc2USKQoFc2NvcGUYASABKAsyGi5zY2FsZWtpdC52MS5jbGllbnRzLlNjb3BlIi0KEkRlbGV0ZVNjb3BlUmVxdWVzdBIXCgJpZBgBIAEoCUILukgIcgY6BHNjcF8irwQKGUdldENvbnNlbnREZXRhaWxzUmVzcG9uc2USVwoIcmVzb3VyY2UYASABKAsyHS5zY2FsZWtpdC52MS5jbGllbnRzLlJlc291cmNlQiaSQSMyIURldGFpbHMgb2YgdGhlIHJlcXVlc3RlZCByZXNvdXJjZRJVCgR1c2VyGAIgASgLMhkuc2NhbGVraXQudjEuY2xpZW50cy5Vc2VyQiySQSkyJ0RldGFpbHMgb2YgdGhlIHVzZXIgd2hvIGdyYW50ZWQgY29uc2VudBJqCgZjbGllbnQYAyABKAsyIi5zY2FsZWtpdC52MS5jbGllbnRzLkNvbnNlbnRDbGllbnRCNpJBMzIxRGV0YWlscyBvZiB0aGUgY2xpZW50IHJlc291cmNlIHJlcXVlc3RpbmcgY29uc2VudBKTAQoGc2NvcGVzGAQgAygLMiEuc2NhbGVraXQudjEuY2xpZW50cy5Db25zZW50U2NvcGVCYJJBXTJbTGlzdCBvZiBzY29wZXMgZm9yIHdoaWNoIGNvbnNlbnQgd2FzIGdyYW50ZWQuIEVhY2ggc2NvcGUgaW5jbHVkZXMgaXRzIG5hbWUgYW5kIGRlc2NyaXB0aW9uLhJgCgthcHBsaWNhdGlvbhgFIAEoCzIgLnNjYWxla2l0LnYxLmNsaWVudHMuQXBwbGljYXRpb25CKZJBJjIkRGV0YWlscyBvZiB0aGUgcmVxdWVzdGVkIGFwcGxpY2F0aW9uIoAFCg1Db25zZW50Q2xpZW50EkwKBG5hbWUYASABKAlCPpJBOzIuTmFtZSBvZiB0aGUgY2xpZW50IHJlc291cmNlIHJlcXVlc3RpbmcgY29uc2VudEoJIlZTIENvZGUiEmwKC3ByaXZhY3lfdXJpGAIgASgJQleSQU0yLFByaXZhY3kgcG9saWN5IFVSSSBvZiB0aGUgY2xpZW50IGFwcGxpY2F0aW9uSh0iaHR0cHM6Ly95b3VyYXBwLmNvbS9wcml2YWN5IrpIBHICGGQSaQoHdG9zX3VyaRgDIAEoCUJYkkFNMi5UZXJtcyBvZiBzZXJ2aWNlIFVSSSBvZiB0aGUgY2xpZW50IGFwcGxpY2F0aW9uShsiaHR0cHM6Ly95b3VyYXBwLmNvbS90ZXJtcyK6SAVyAxjQDxJlCgljbGllbnRfaWQYBCABKAlCUpJBTzI7VW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCByZXNvdXJjZSByZXF1ZXN0aW5nIGNvbnNlbnRKECJtMm1fMTIzNDU2Nzg5MCISgQEKDG1ldGFkYXRhX3VyaRgFIAEoCUJrkkFoMkFNZXRhZGF0YSBVUkkgb2YgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiAtIGFwcGxpY2FibGUgZm9yIENJTUQgb25seUojImh0dHBzOi8vZXhhbXBsZS5jb20vbWV0YWRhdGEuanNvbiISXQoIbG9nb191cmkYBiABKAlCS5JBSDIiTG9nbyBVUkkgb2YgdGhlIGNsaWVudCBhcHBsaWNhdGlvbkoiImh0dHBzOi8vY2RuLmV4YW1wbGUuY29tL2xvZ28ucG5nIiJJCgxDb25zZW50U2NvcGUSGgoEbmFtZRgBIAEoCUIMukgJyAEBcgQQARhkEh0KC2Rlc2NyaXB0aW9uGAIgASgJQgi6SAVyAxjQDyJrCgRVc2VyEmMKBWVtYWlsGAEgASgJQlSSQVEyOEVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIuIE11c3QgYmUgYSB2YWxpZCBlbWFpbCBmb3JtYXQuShVhbGljZS5kb2VAZXhhbXBsZS5jb20ijAIKGFJldm9rZVVzZXJDb25zZW50UmVxdWVzdBJ9CgljbGllbnRfaWQYASABKAlCapJBWDJEVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCByZXNvdXJjZSBmb3Igd2hpY2ggdG8gcmV2b2tlIGNvbnNlbnRKECJtMm1fMTIzNDU2Nzg5MCK6SAxyChABGCA6BG0ybV8ScQoKY29uc2VudF9pZBgCIAEoCUJdkkFHMi9VbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciBjb25zZW50IHRvIHJldm9rZUoUInVzcmNuc3RfMTIzNDU2Nzg5MCK6SBByDhABGCA6CHVzcmNuc3RfIhsKGVJldm9rZVVzZXJDb25zZW50UmVzcG9uc2UikwEKH0Vuc3VyZVJlc291cmNlQ29ubmVjdGlvblJlcXVlc3QScAoLcmVzb3VyY2VfaWQYASABKAlCW5JBTzI0VW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNsaWVudCByZXNvdXJjZSB0byByZXRyaWV2ZUoXImFwcF82OTM4ODc5ODQ2NjcyMDAwNSK6SAZyBBABGCAiyAEKIEVuc3VyZVJlc291cmNlQ29ubmVjdGlvblJlc3BvbnNlEqMBCgpjb25uZWN0aW9uGAEgASgLMicuc2NhbGVraXQudjEuY2xpZW50cy5SZXNvdXJjZUNvbm5lY3Rpb25CZpJBXTJbRGV0YWlscyBvZiB0aGUgY29ubmVjdGlvbiByZXNvdXJjZS4gQ29udGFpbnMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhbmQgc3RhdHVzIGluZm9ybWF0aW9uLrpIA8gBASKBBwoSUmVzb3VyY2VDb25uZWN0aW9uElAKAmlkGAEgASgJQkSSQUEyLFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb25uZWN0aW9uIHJlc291cmNlShEiY29ubl8xMjM0NTY3ODkwIhKbAQoEdHlwZRgCIAEoDjIrLnNjYWxla2l0LnYxLmNsaWVudHMuUmVzb3VyY2VDb25uZWN0aW9uVHlwZUJgkkFdMlFUeXBlIG9mIGNvbm5lY3Rpb24uIERldGVybWluZXMgdGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB1c2VkIGZvciB0aGUgY29ubmVjdGlvbi5KCCJDVVNUT00iEowBCgZzdGF0dXMYAyABKAlCfJJBeTJtQ3VycmVudCBzdGF0dXMgb2YgdGhlIGNvbm5lY3Rpb24uIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb25uZWN0aW9uIGlzIGFjdGl2ZSwgaW5hY3RpdmUsIG9yIGluIGFuIGVycm9yIHN0YXRlLkoIIkFDVElWRSISgAEKB2VuYWJsZWQYBCABKAhCb5JBbDJkSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbm5lY3Rpb24gaXMgZW5hYmxlZC4gRGlzYWJsZWQgY29ubmVjdGlvbnMgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uLkoEdHJ1ZRLdAQoIc2V0dGluZ3MYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QrEBkkGtATJrQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGNvbm5lY3Rpb24uIFRoZSBzdHJ1Y3R1cmUgb2YgdGhpcyBmaWVsZCB2YXJpZXMgYmFzZWQgb24gdGhlIGNvbm5lY3Rpb24gdHlwZS5KPnsiYXBpX2tleSI6ICJhYmNkMTIzNCIsICJlbmRwb2ludCI6ICJodHRwczovL2FwaS5leGFtcGxlLmNvbSJ9EogBCghwcm92aWRlchgGIAEoCUJ2kkFzMl5UaGUgcHJvdmlkZXIgb2YgdGhlIGNvbm5lY3Rpb24uIEluZGljYXRlcyB0aGUgc2VydmljZSBvciBwbGF0Zm9ybSB0aGF0IG1hbmFnZXMgdGhlIGNvbm5lY3Rpb24uShEiY3VzdG9tX3Byb3ZpZGVyIiLOAQogUmVzb3VyY2VDdXN0b21Db25uZWN0aW9uU2V0dGluZ3MSqQEKDWF1dGhvcml6ZV91cmkYASABKAlCkQGSQYMBMltUaGUgVVJJIHdoZXJlIHVzZXJzIGFyZSByZWRpcmVjdGVkIHRvIGF1dGhvcml6ZSB0aGUgYXBwbGljYXRpb24uIE11c3QgYmUgYSB2YWxpZCBIVFRQUyBVUkwuSiQiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tL2F1dGhvcml6ZSK6SAdyBRABiAEBKmsKDFJlc291cmNlVHlwZRIdChlSRVNPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASBwoDV0VCEAESCgoGTU9CSUxFEAISCwoHREVTS1RPUBADEgoKBlNFUlZFUhAEEg4KCk1DUF9TRVJWRVIQBSouChJDbGllbnRTZWNyZXRTdGF0dXMSCgoGQUNUSVZFEAASDAoISU5BQ1RJVkUQASoxChZSZXNvdXJjZUNvbm5lY3Rpb25UeXBlEgsKB0lOVkFMSUQQABIKCgZDVVNUT00QATK5igEKDUNsaWVudFNlcnZpY2USoAMKCkxpc3RDbGllbnQSJy5zY2FsZWtpdC52MS5jbGllbnRzLkxpc3RDbGllbnRzUmVxdWVzdBooLnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdENsaWVudHNSZXNwb25zZSK+ApJBjgIKCEFQSSBBdXRoEhBMaXN0IEFQSSBjbGllbnRzGpABUmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2YgQVBJIGNsaWVudCBhcHBsaWNhdGlvbnMgaW4gdGhlIGVudmlyb25tZW50LiBSZXR1cm5zIG9ubHkgZW52aXJvbm1lbnQtbGV2ZWwgY2xpZW50cywgbm90IHJlc291cmNlLXNwZWNpZmljIGNsaWVudHMuSl0KAzIwMBJWCiZMaXN0IG9mIGNsaWVudHMgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5LhIsCioaKC5zY2FsZWtpdC52MS5jbGllbnRzLkxpc3RDbGllbnRzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAhESDy9hcGkvdjEvY2xpZW50cxK0AwoMQ3JlYXRlQ2xpZW50Eiguc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRSZXF1ZXN0Gikuc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRSZXNwb25zZSLOApJBlgIKBkNsaWVudBINQ3JlYXRlIENsaWVudBqBAUNyZWF0ZXMgYW4gT0F1dGggY2xpZW50IHdpdGggcHJvcGVydGllcyBpbmNsdWRpbmcgcG9zdC1sb2dpbiBVUklzLCBzY29wZXMsIGFuZCBjdXN0b20gY2xhaW1zLiBSZXF1aXJlZCBmaWVsZHM6IG5hbWUsIGNsaWVudF90eXBlLkp5CgMyMDAScgpBQ2xpZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBjcmVhdGVkIGNsaWVudCByZXNvdXJjZS4SLQorGikuc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCGToGY2xpZW50Ig8vYXBpL3YxL2NsaWVudHMS0AQKCUdldENsaWVudBIlLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0Q2xpZW50UmVxdWVzdBomLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0Q2xpZW50UmVzcG9uc2Ui8wOSQbcDCg5DbGllbnQgQ29uZmlncxIYR2V0IENsaWVudCBDb25maWd1cmF0aW9uGsUBUmV0cmlldmVzIGNvbXBsZXRlIGNsaWVudCBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBzY29wZXMsIGN1c3RvbSBjbGFpbXMsIHJlZGlyZWN0IFVSSXMsIGFuZCBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbiB0aW1lLiBVc2UgdGhpcyBlbmRwb2ludCB0byB2aWV3IG9yIHZlcmlmeSBjbGllbnQgc2V0dGluZ3MgYW5kIHNlY3VyaXR5IHBhcmFtZXRlcnNKwgEKAzIwMBK6AQqLAUNsaWVudCBjb25maWd1cmF0aW9uIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgZnVsbCBjbGllbnQgbWV0YWRhdGEgaW5jbHVkaW5nIHNjb3BlcywgYXVkaWVuY2UsIGN1c3RvbSBjbGFpbXMsIGFuZCBzZWN1cml0eSBzZXR0aW5ncy4SKgooGiYuc2NhbGVraXQudjEuY2xpZW50cy5HZXRDbGllbnRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCHRIbL2FwaS92MS9jbGllbnRzL3tjbGllbnRfaWR9EsMFCgxVcGRhdGVDbGllbnQSKC5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZUNsaWVudFJlcXVlc3QaKS5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZUNsaWVudFJlc3BvbnNlIt0EkkGZBAoOQ2xpZW50IENvbmZpZ3MSG1VwZGF0ZSBDbGllbnQgQ29uZmlndXJhdGlvbhqwAlVwZGF0ZXMgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGFuIE0yTSBjbGllbnQuIFRoaXMgZW5kcG9pbnQgYWxsb3dzIHlvdSB0byBtb2RpZnkgY2xpZW50IHByb3BlcnRpZXMgc3VjaCBhcyByZWRpcmVjdCBVUklzLCBzY29wZXMsIGF1ZGllbmNlLCBhbmQgY3VzdG9tIGNsYWltcy4gUmVxdWlyZWQgZmllbGRzIGluY2x1ZGUgcmVkaXJlY3RfdXJpcyBhbmQgZGVmYXVsdF9yZWRpcmVjdF91cmkuIE5vdGUgdGhhdCBjbGllbnRfaWQgYW5kIGNyZWF0ZV90aW1lIGFyZSBpbW11dGFibGUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZC5KtgEKAzIwMRKuAQp9Q2xpZW50IGNvbmZpZ3VyYXRpb24gdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIHVwZGF0ZWQgY2xpZW50IHJlc291cmNlIHdpdGggbmV3IHVwZGF0ZV90aW1lIGFuZCBhbGwgY3VycmVudCBzZXR0aW5ncy4SLQorGikuc2NhbGVraXQudjEuY2xpZW50cy5VcGRhdGVDbGllbnRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCJToGY2xpZW50MhsvYXBpL3YxL2NsaWVudHMve2NsaWVudF9pZH0SmgMKDERlbGV0ZUNsaWVudBIoLnNjYWxla2l0LnYxLmNsaWVudHMuRGVsZXRlQ2xpZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSLHApJBiwIKBkNsaWVudBINRGVsZXRlIENsaWVudBqyAVBlcm1hbmVudGx5IGRlbGV0ZXMgYSBjbGllbnQgYW5kIGFzc29jaWF0ZWQgc2VjcmV0cy4gVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHVuZG9uZS4gU3VwcG9ydHMgV0VCX0FQUCwgTlRWLCBhbmQgU1BBIGNsaWVudCB0eXBlcyBvbmx5LiBDYW5ub3QgZGVsZXRlIGRlZmF1bHQgZW52aXJvbm1lbnQgY2xpZW50cy5KPQoDMjAwEjYKNENsaWVudCBzdWNjZXNzZnVsbHkgZGVsZXRlZCBhbmQgbm8gbG9uZ2VyIGFjY2Vzc2libGWCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAh0qGy9hcGkvdjEvY2xpZW50cy97Y2xpZW50X2lkfRKkBQoSQ3JlYXRlQ2xpZW50U2VjcmV0Ei4uc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRTZWNyZXRSZXF1ZXN0Gi8uc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRTZWNyZXRSZXNwb25zZSKsBJJB6AMKDkNsaWVudCBDb25maWdzEhRDcmVhdGUgQ2xpZW50IFNlY3JldBqCAkdlbmVyYXRlcyBhIG5ldyBjbGllbnQgc2VjcmV0IGZvciBhbiBBUEkgY2xpZW50LiBUaGlzIGVuZHBvaW50IGNyZWF0ZXMgYSBzZWN1cmUgY3JlZGVudGlhbCB0aGF0IGNhbiBiZSB1c2VkIGZvciBPQXV0aCAyLjAgY2xpZW50IGNyZWRlbnRpYWxzIGZsb3cuIFRoZSBwbGFpbiBzZWNyZXQgaXMgb25seSByZXR1cm5lZCBvbmNlIGR1cmluZyBjcmVhdGlvbiBhbmQgc2hvdWxkIGJlIHN0b3JlZCBzZWN1cmVseSBieSB0aGUgY2xpZW50IGFwcGxpY2F0aW9uLkq6AQoDMjAxErIBCntDbGllbnQgc2VjcmV0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBuZXcgc2VjcmV0IElEIGFuZCB0aGUgcGxhaW4gc2VjcmV0IHZhbHVlIChvbmx5IGF2YWlsYWJsZSBhdCBjcmVhdGlvbiB0aW1lKS4SMwoxGi8uc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVDbGllbnRTZWNyZXRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCJSIjL2FwaS92MS9jbGllbnRzL3tjbGllbnRfaWR9L3NlY3JldHMSygUKElVwZGF0ZUNsaWVudFNlY3JldBIuLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlQ2xpZW50U2VjcmV0UmVxdWVzdBovLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlQ2xpZW50U2VjcmV0UmVzcG9uc2Ui0gSSQb8DCg5DbGllbnQgQ29uZmlncxIUVXBkYXRlIENsaWVudCBTZWNyZXQa/QFVcGRhdGVzIHRoZSBzdGF0dXMgb2YgYSBjbGllbnQgc2VjcmV0LiBUaGlzIGVuZHBvaW50IGFsbG93cyB5b3UgdG8gYWN0aXZhdGUgb3IgZGVhY3RpdmF0ZSBhIGNsaWVudCBzZWNyZXQuIFVzZSB0aGlzIHRvIHJvdGF0ZSBzZWNyZXRzIG9yIHJldm9rZSBhY2Nlc3MgZm9yIGNvbXByb21pc2VkIGNyZWRlbnRpYWxzLiBUaGUgc2VjcmV0IHZhbHVlIGl0c2VsZiBjYW5ub3QgYmUgbW9kaWZpZWQgLSBjcmVhdGUgYSBuZXcgc2VjcmV0IGluc3RlYWQuSpYBCgMyMDASjgEKV0NsaWVudCBzZWNyZXQgdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIHVwZGF0ZWQgc2VjcmV0IHdpdGggaXRzIGN1cnJlbnQgc3RhdHVzLhIzCjEaLy5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZUNsaWVudFNlY3JldFJlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwJ0OgZzZWNyZXRaOToGc2VjcmV0Mi8vYXBpL3YxL2NsaWVudHMve2NsaWVudF9pZH0vc2VjcmV0cy97c2VjcmV0X2lkfRovL2FwaS92MS9jbGllbnRzL3tjbGllbnRfaWR9L3NlY3JldHMve3NlY3JldF9pZH0S4wMKEkRlbGV0ZUNsaWVudFNlY3JldBIuLnNjYWxla2l0LnYxLmNsaWVudHMuRGVsZXRlQ2xpZW50U2VjcmV0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSKEA5JBtAIKDkNsaWVudCBDb25maWdzEhREZWxldGUgQ2xpZW50IFNlY3JldBrFAVBlcm1hbmVudGx5IGRlbGV0ZXMgYSBjbGllbnQgc2VjcmV0LiBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lLiBVc2UgdGhpcyBlbmRwb2ludCB0byByZW1vdmUgY29tcHJvbWlzZWQgb3IgdW51c2VkIHNlY3JldHMuIEFmdGVyIGRlbGV0aW9uLCB0aGUgc2VjcmV0IGNhbiBubyBsb25nZXIgYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uSkQKAzIwMBI9CjtDbGllbnQgc2VjcmV0IHN1Y2Nlc3NmdWxseSBkZWxldGVkIGFuZCBubyBsb25nZXIgYWNjZXNzaWJsZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCMSovL2FwaS92MS9jbGllbnRzL3tjbGllbnRfaWR9L3NlY3JldHMve3NlY3JldF9pZH0SkgUKGENyZWF0ZU9yZ2FuaXphdGlvbkNsaWVudBI0LnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlT3JnYW5pemF0aW9uQ2xpZW50UmVxdWVzdBo1LnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlT3JnYW5pemF0aW9uQ2xpZW50UmVzcG9uc2UiiASSQb8DCghBUEkgQXV0aBIeQ3JlYXRlIG9yZ2FuaXphdGlvbiBBUEkgY2xpZW50GnJDcmVhdGVzIGEgbmV3IEFQSSBjbGllbnQgZm9yIGFuIG9yZ2FuaXphdGlvbi4gUmV0dXJucyB0aGUgY2xpZW50IGRldGFpbHMgYW5kIGEgcGxhaW4gc2VjcmV0IChhdmFpbGFibGUgb25seSBvbmNlKS5KngIKAzIwMRKWAgrYAUFQSSBjbGllbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIGNsaWVudCBJRCBhbmQgcGxhaW4gc2VjcmV0IChvbmx5IGF2YWlsYWJsZSBhdCBjcmVhdGlvbiB0aW1lKS4gVGhlIGNsaWVudCBjYW4gYmUgY29uZmlndXJlZCB3aXRoIHNjb3BlcywgYXVkaWVuY2UgdmFsdWVzLCBhbmQgY3VzdG9tIGNsYWltcyBmb3IgZmluZS1ncmFpbmVkIGFjY2VzcyBjb250cm9sLhI5CjcaNS5zY2FsZWtpdC52MS5jbGllbnRzLkNyZWF0ZU9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlgrUYAhhEgtPkkwI5OgZjbGllbnQiLy9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS9jbGllbnRzErUEChVHZXRPcmdhbml6YXRpb25DbGllbnQSMS5zY2FsZWtpdC52MS5jbGllbnRzLkdldE9yZ2FuaXphdGlvbkNsaWVudFJlcXVlc3QaMi5zY2FsZWtpdC52MS5jbGllbnRzLkdldE9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlIrQDkkHnAgoIQVBJIEF1dGgSG0dldCBvcmdhbml6YXRpb24gQVBJIGNsaWVudBo+UmV0cmlldmVzIGRldGFpbHMgb2YgYSBzcGVjaWZpYyBBUEkgY2xpZW50IGluIGFuIG9yZ2FuaXphdGlvbi5K/QEKAzIwMBL1AQq6AVJldHVybnMgdGhlIGNvbXBsZXRlIEFQSSBjbGllbnQgY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nIGFsbCBjdXJyZW50IHNldHRpbmdzIGFuZCBhIGxpc3Qgb2YgYWN0aXZlIHNlY3JldHMuIE5vdGUgdGhhdCBzZWNyZXQgdmFsdWVzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlIGZvciBzZWN1cml0eSByZWFzb25zLhI2CjQaMi5zY2FsZWtpdC52MS5jbGllbnRzLkdldE9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlgrUYAhhEgtPkkwI9EjsvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vY2xpZW50cy97Y2xpZW50X2lkfRKJBQoeQ3JlYXRlT3JnYW5pemF0aW9uQ2xpZW50U2VjcmV0Ejouc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVPcmdhbml6YXRpb25DbGllbnRTZWNyZXRSZXF1ZXN0Gjsuc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVPcmdhbml6YXRpb25DbGllbnRTZWNyZXRSZXNwb25zZSLtA5JBmAMKCEFQSSBBdXRoEiVDcmVhdGUgb3JnYW5pemF0aW9uIEFQSSBjbGllbnQgc2VjcmV0GmRDcmVhdGVzIGEgbmV3IHNlY3JldCBmb3IgYW4gb3JnYW5pemF0aW9uIEFQSSBjbGllbnQuIFJldHVybnMgdGhlIHBsYWluIHNlY3JldCAoYXZhaWxhYmxlIG9ubHkgb25jZSkuSv4BCgMyMDES9gEKsgFDbGllbnQgc2VjcmV0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBuZXcgc2VjcmV0IElEIGFuZCB0aGUgcGxhaW4gc2VjcmV0IHZhbHVlIChvbmx5IGF2YWlsYWJsZSBhdCBjcmVhdGlvbiB0aW1lKS4gVGhlIHNlY3JldCBjYW4gYmUgdXNlZCBpbW1lZGlhdGVseSBmb3IgYXV0aGVudGljYXRpb24uEj8KPRo7LnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlT3JnYW5pemF0aW9uQ2xpZW50U2VjcmV0UmVzcG9uc2WCtRgCGESC0+STAkUiQy9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS9jbGllbnRzL3tjbGllbnRfaWR9L3NlY3JldHMSrwMKHkRlbGV0ZU9yZ2FuaXphdGlvbkNsaWVudFNlY3JldBI6LnNjYWxla2l0LnYxLmNsaWVudHMuRGVsZXRlT3JnYW5pemF0aW9uQ2xpZW50U2VjcmV0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSK4ApJB1wEKCEFQSSBBdXRoEiVEZWxldGUgb3JnYW5pemF0aW9uIEFQSSBjbGllbnQgc2VjcmV0Gl5QZXJtYW5lbnRseSBkZWxldGVzIGEgc2VjcmV0IGZyb20gYW4gb3JnYW5pemF0aW9uIEFQSSBjbGllbnQuIFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSB1bmRvbmUuSkQKAzIwMBI9CjtDbGllbnQgc2VjcmV0IHN1Y2Nlc3NmdWxseSBkZWxldGVkIGFuZCBubyBsb25nZXIgYWNjZXNzaWJsZYK1GAIYRILT5JMCUSpPL2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L2NsaWVudHMve2NsaWVudF9pZH0vc2VjcmV0cy97c2VjcmV0X2lkfRLCBAoYVXBkYXRlT3JnYW5pemF0aW9uQ2xpZW50EjQuc2NhbGVraXQudjEuY2xpZW50cy5VcGRhdGVPcmdhbml6YXRpb25DbGllbnRSZXF1ZXN0GjUuc2NhbGVraXQudjEuY2xpZW50cy5VcGRhdGVPcmdhbml6YXRpb25DbGllbnRSZXNwb25zZSK4A5JB4wIKCEFQSSBBdXRoEh5VcGRhdGUgb3JnYW5pemF0aW9uIEFQSSBjbGllbnQaUFVwZGF0ZXMgYW4gZXhpc3Rpbmcgb3JnYW5pemF0aW9uIEFQSSBjbGllbnQuIE9ubHkgc3BlY2lmaWVkIGZpZWxkcyBhcmUgbW9kaWZpZWQuSuQBCgMyMDAS3AEKngFSZXR1cm5zIHRoZSB1cGRhdGVkIG9yZ2FuaXphdGlvbiBBUEkgY2xpZW50IHdpdGggYWxsIGN1cnJlbnQgZGV0YWlscyByZWZsZWN0ZWQgaW4gdGhlIHJlc3BvbnNlLCBpbmNsdWRpbmcgbW9kaWZpZWQgc2NvcGVzLCBhdWRpZW5jZSB2YWx1ZXMsIGFuZCBjdXN0b20gY2xhaW1zLhI5CjcaNS5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZU9yZ2FuaXphdGlvbkNsaWVudFJlc3BvbnNlgrUYAhhEgtPkkwJFOgZjbGllbnQyOy9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS9jbGllbnRzL3tjbGllbnRfaWR9EqMEChhEZWxldGVPcmdhbml6YXRpb25DbGllbnQSNC5zY2FsZWtpdC52MS5jbGllbnRzLkRlbGV0ZU9yZ2FuaXphdGlvbkNsaWVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiuAOSQesCCghBUEkgQXV0aBIeRGVsZXRlIG9yZ2FuaXphdGlvbiBBUEkgY2xpZW50Gu4BUGVybWFuZW50bHkgZGVsZXRlcyBhbiBBUEkgY2xpZW50IGZyb20gYW4gb3JnYW5pemF0aW9uLiBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lIGFuZCB3aWxsIHJldm9rZSBhbGwgYWNjZXNzIGZvciB0aGUgY2xpZW50LiBBbGwgYXNzb2NpYXRlZCBzZWNyZXRzIHdpbGwgYWxzbyBiZSBpbnZhbGlkYXRlZC4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gcmVtb3ZlIHVudXNlZCBvciBjb21wcm9taXNlZCBjbGllbnRzLkpOCgMyMDASRwpFT3JnYW5pemF0aW9uIEFQSSBjbGllbnQgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgYW5kIG5vIGxvbmdlciBhY2Nlc3NpYmxlgrUYAhhEgtPkkwI9KjsvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vY2xpZW50cy97Y2xpZW50X2lkfRLoBAoXTGlzdE9yZ2FuaXphdGlvbkNsaWVudHMSMy5zY2FsZWtpdC52MS5jbGllbnRzLkxpc3RPcmdhbml6YXRpb25DbGllbnRzUmVxdWVzdBo0LnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdE9yZ2FuaXphdGlvbkNsaWVudHNSZXNwb25zZSLhA5JBoAMKCEFQSSBBdXRoEh1MaXN0IG9yZ2FuaXphdGlvbiBBUEkgY2xpZW50cxq5AVJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIEFQSSBjbGllbnRzIGZvciBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gUmV0dXJucyBjbGllbnQgZGV0YWlscyBpbmNsdWRpbmcgbWV0YWRhdGEsIHNjb3BlcywgYW5kIHNlY3JldCBpbmZvcm1hdGlvbiAod2l0aG91dCBleHBvc2luZyBhY3R1YWwgc2VjcmV0IHZhbHVlcykuSrgBCgMyMDASsAEKdExpc3Qgb2Ygb3JnYW5pemF0aW9uIEFQSSBjbGllbnRzIHJldHVybmVkIHN1Y2Nlc3NmdWxseS4gRWFjaCBjbGllbnQgaW5jbHVkZXMgaXRzIGNvbmZpZ3VyYXRpb24gZGV0YWlscyBhbmQgbWV0YWRhdGEuEjgKNho0LnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdE9yZ2FuaXphdGlvbkNsaWVudHNSZXNwb25zZYK1GAIYRILT5JMCMRIvL2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L2NsaWVudHMSlQMKDkNyZWF0ZVJlc291cmNlEiouc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVSZXNvdXJjZVJlcXVlc3QaKy5zY2FsZWtpdC52MS5jbGllbnRzLkNyZWF0ZVJlc291cmNlUmVzcG9uc2UiqQKSQe0BCghBUEkgQXV0aBIPQ3JlYXRlIFJlc291cmNlGlhDcmVhdGVzIGEgbmV3IGNsaWVudCByZXNvdXJjZS4gVGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZSByZXNvdXJjZSBJRCBhbmQgb3RoZXIgbWV0YWRhdGEuSnYKAzIwMRJvCjxSZXNvdXJjZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS4SLwotGisuc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVSZXNvdXJjZVJlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwIdOghyZXNvdXJjZSIRL2FwaS92MS9yZXNvdXJjZXMS6gIKC0dldFJlc291cmNlEicuc2NhbGVraXQudjEuY2xpZW50cy5HZXRSZXNvdXJjZVJlcXVlc3QaKC5zY2FsZWtpdC52MS5jbGllbnRzLkdldFJlc291cmNlUmVzcG9uc2UihwKSQccBCghBUEkgQXV0aBIMR2V0IFJlc291cmNlGjZSZXRyaWV2ZXMgZGV0YWlscyBvZiBhIHNwZWNpZmljIGNsaWVudCByZXNvdXJjZSBieSBJRC5KdQoDMjAwEm4KPlJlc291cmNlIGRldGFpbHMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgcmVzb3VyY2UuEiwKKhooLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0UmVzb3VyY2VSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCIRIfL2FwaS92MS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfRLTAgoNTGlzdFJlc291cmNlcxIpLnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdFJlc291cmNlc1JlcXVlc3QaKi5zY2FsZWtpdC52MS5jbGllbnRzLkxpc3RSZXNvdXJjZXNSZXNwb25zZSLqAZJBuAEKCEFQSSBBdXRoEhFMaXN0IGFwcGxpY2F0aW9ucxo2UmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2YgQVBJIGNsaWVudCBhcHBsaWNhdGlvbnMuSmEKAzIwMBJaCihMaXN0IG9mIHJlc291cmNlcyByZXR1cm5lZCBzdWNjZXNzZnVsbHkuEi4KLBoqLnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdFJlc291cmNlc1Jlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwITEhEvYXBpL3YxL3Jlc291cmNlcxKTAwoOVXBkYXRlUmVzb3VyY2USKi5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZVJlc291cmNlUmVxdWVzdBorLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlUmVzb3VyY2VSZXNwb25zZSKnApJB3QEKCEFQSSBBdXRoEg9VcGRhdGUgUmVzb3VyY2UaSFVwZGF0ZXMgYW4gZXhpc3RpbmcgY2xpZW50IHJlc291cmNlLiBPbmx5IHNwZWNpZmllZCBmaWVsZHMgYXJlIG1vZGlmaWVkLkp2CgMyMDASbwo8UmVzb3VyY2UgdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIHVwZGF0ZWQgcmVzb3VyY2UuEi8KLRorLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlUmVzb3VyY2VSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCKzoIcmVzb3VyY2UyHy9hcGkvdjEvcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0SkwMKDkRlbGV0ZVJlc291cmNlEiouc2NhbGVraXQudjEuY2xpZW50cy5EZWxldGVSZXNvdXJjZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkivAKSQfwBCghBUEkgQXV0aBIPRGVsZXRlIFJlc291cmNlGp0BUGVybWFuZW50bHkgZGVsZXRlcyBhIGNsaWVudCByZXNvdXJjZS4gVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHVuZG9uZSBhbmQgd2lsbCByZW1vdmUgdGhlIHJlc291cmNlIGFsb25nIHdpdGggYWxsIGl0cyBhc3NvY2lhdGVkIGNsaWVudHMgYW5kIGNvbmZpZ3VyYXRpb25zLko/CgMyMDASOAo2UmVzb3VyY2Ugc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgYW5kIG5vIGxvbmdlciBhY2Nlc3NpYmxlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwIhKh8vYXBpL3YxL3Jlc291cmNlcy97cmVzb3VyY2VfaWR9ErIDChZEZWxldGVSZXNvdXJjZVByb3ZpZGVyEjIuc2NhbGVraXQudjEuY2xpZW50cy5EZWxldGVSZXNvdXJjZVByb3ZpZGVyUmVxdWVzdBooLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0UmVzb3VyY2VSZXNwb25zZSK5ApJB6QEKCEFQSSBBdXRoEh1EZWxldGUgUHJvdmlkZXIgZnJvbSByZXNvdXJjZRpHRGVsZXRlIFByb3ZpZGVyIGZyb20gcmVzb3VyY2UgdG8gdXNlIHNjYWxla2l0IGZ1bGwgc3RhY2sgYXV0aGVudGljYXRpb25KdQoDMjAwEm4KPlJlc291cmNlIGRldGFpbHMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgcmVzb3VyY2UuEiwKKhooLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0UmVzb3VyY2VSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCMRovL2FwaS92MS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9wcm92aWRlcjpkZWxldGUS9QMKFENyZWF0ZVJlc291cmNlQ2xpZW50EjAuc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVSZXNvdXJjZUNsaWVudFJlcXVlc3QaMS5zY2FsZWtpdC52MS5jbGllbnRzLkNyZWF0ZVJlc291cmNlQ2xpZW50UmVzcG9uc2Ui9wKSQacCCghBUEkgQXV0aBIWQ3JlYXRlIFJlc291cmNlIENsaWVudBpwQ3JlYXRlcyBhIG5ldyBBUEkgY2xpZW50IHVuZGVyIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuIFJldHVybnMgY2xpZW50IGRldGFpbHMgYW5kIHRoZSBwbGFpbiBzZWNyZXQgKHNob3duIG9uY2UpLkqQAQoDMjAxEogBCk9DbGllbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIGFuZCBwbGFpbiBzZWNyZXQuEjUKMxoxLnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlUmVzb3VyY2VDbGllbnRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCMToGY2xpZW50IicvYXBpL3YxL3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L2NsaWVudHMSzwMKFFVwZGF0ZVJlc291cmNlQ2xpZW50EjAuc2NhbGVraXQudjEuY2xpZW50cy5VcGRhdGVSZXNvdXJjZUNsaWVudFJlcXVlc3QaMS5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZVJlc291cmNlQ2xpZW50UmVzcG9uc2Ui0QKSQfUBCghBUEkgQXV0aBIWVXBkYXRlIFJlc291cmNlIENsaWVudBpIVXBkYXRlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBhbiBBUEkgY2xpZW50IHVuZGVyIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuSoYBCgMyMDASfwpGQ2xpZW50IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSB1cGRhdGVkIGNsaWVudCBjb25maWd1cmF0aW9uLhI1CjMaMS5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZVJlc291cmNlQ2xpZW50UmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAj06BmNsaWVudDIzL2FwaS92MS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9jbGllbnRzL3tjbGllbnRfaWR9Es4DChFHZXRSZXNvdXJjZUNsaWVudBItLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0UmVzb3VyY2VDbGllbnRSZXF1ZXN0Gi4uc2NhbGVraXQudjEuY2xpZW50cy5HZXRSZXNvdXJjZUNsaWVudFJlc3BvbnNlItkCkkGFAgoIQVBJIEF1dGgSF0dldCBSZXNvdXJjZSBBUEkgQ2xpZW50GkpSZXRyaWV2ZXMgZGV0YWlscyBvZiBhIHNwZWNpZmljIEFQSSBjbGllbnQgYXNzb2NpYXRlZCB3aXRoIGFuIGFwcGxpY2F0aW9uLkqTAQoDMjAwEosBClVDbGllbnQgZGV0YWlscyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSByZXNvdXJjZSBhbmQgY2xpZW50IGNvbmZpZ3VyYXRpb24uEjIKMBouLnNjYWxla2l0LnYxLmNsaWVudHMuR2V0UmVzb3VyY2VDbGllbnRSZXNwb25zZYK1GAIYRPrS5JMCCRIHUFJFVklFV4LT5JMCNRIzL2FwaS92MS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9jbGllbnRzL3tjbGllbnRfaWR9EucDChNMaXN0UmVzb3VyY2VDbGllbnRzEi8uc2NhbGVraXQudjEuY2xpZW50cy5MaXN0UmVzb3VyY2VDbGllbnRzUmVxdWVzdBowLnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdFJlc291cmNlQ2xpZW50c1Jlc3BvbnNlIuwCkkGkAgoIQVBJIEF1dGgSGUxpc3QgUmVzb3VyY2UgQVBJIENsaWVudHMaUFJldHJpZXZlcyBhIGxpc3Qgb2YgQVBJIGNsaWVudHMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYXBwbGljYXRpb24gcmVzb3VyY2UuSqoBCgMyMDASogEKakxpc3Qgb2YgY2xpZW50cyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSByZXNvdXJjZSBkZXRhaWxzIGFuZCBhc3NvY2lhdGVkIGNsaWVudCBjb25maWd1cmF0aW9ucy4SNAoyGjAuc2NhbGVraXQudjEuY2xpZW50cy5MaXN0UmVzb3VyY2VDbGllbnRzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAikSJy9hcGkvdjEvcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vY2xpZW50cxLLAwoYTGlzdFJlc291cmNlVXNlckNvbnNlbnRzEjQuc2NhbGVraXQudjEuY2xpZW50cy5MaXN0UmVzb3VyY2VVc2VyQ29uc2VudHNSZXF1ZXN0GjUuc2NhbGVraXQudjEuY2xpZW50cy5MaXN0UmVzb3VyY2VVc2VyQ29uc2VudHNSZXNwb25zZSLBApJBiwIKCEFQSSBBdXRoEiFMaXN0IHVzZXIgY29uc2VudHMgZm9yIGEgcmVzb3VyY2UaalJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIHVzZXIgY29uc2VudHMgZm9yIGEgZ2l2ZW4gcmVzb3VyY2UsIHdpdGggb3B0aW9uYWwgc2VhcmNoIGJ5IGV4dGVybmFsIHVzZXIgSURKcAoDMjAwEmkKLExpc3Qgb2YgdXNlciBjb25zZW50cyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5EjkKNxo1LnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdFJlc291cmNlVXNlckNvbnNlbnRzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAhcSFS9hcGkvdjEvdXNlcl9jb25zZW50cxKHAwoURGVsZXRlUmVzb3VyY2VDbGllbnQSMC5zY2FsZWtpdC52MS5jbGllbnRzLkRlbGV0ZVJlc291cmNlQ2xpZW50UmVxdWVzdBoxLnNjYWxla2l0LnYxLmNsaWVudHMuRGVsZXRlUmVzb3VyY2VDbGllbnRSZXNwb25zZSKJApJBtQEKCEFQSSBBdXRoEhZEZWxldGUgUmVzb3VyY2UgQ2xpZW50GjNEZWxldGVzIGFuIEFQSSBjbGllbnQgdW5kZXIgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5KXAoDMjAwElUKHENsaWVudCBkZWxldGVkIHN1Y2Nlc3NmdWxseS4SNQozGjEuc2NhbGVraXQudjEuY2xpZW50cy5EZWxldGVSZXNvdXJjZUNsaWVudFJlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwI1KjMvYXBpL3YxL3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L2NsaWVudHMve2NsaWVudF9pZH0SggQKDlJlZ2lzdGVyQ2xpZW50Eiouc2NhbGVraXQudjEuY2xpZW50cy5SZWdpc3RlckNsaWVudFJlcXVlc3QaKy5zY2FsZWtpdC52MS5jbGllbnRzLlJlZ2lzdGVyQ2xpZW50UmVzcG9uc2UilgOSQcICCghBUEkgQXV0aBITUmVnaXN0ZXIgQVBJIGNsaWVudBqEAVJlZ2lzdGVycyBhIG5ldyBBUEkgY2xpZW50IHVuZGVyIGFuIGV4aXN0aW5nIHJlc291cmNlIHVzaW5nIGR5bmFtaWMgY2xpZW50IHJlZ2lzdHJhdGlvbi4gUmV0dXJucyB0aGUgY3JlYXRlZCBjbGllbnQgYW5kIGl0cyBzZWNyZXRzLkqZAQoDMjAxEpEBCl5DbGllbnQgcmVnaXN0ZXJlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgY2xpZW50IGRldGFpbHMgYW5kIHBsYWluIHNlY3JldCAoYXZhaWxhYmxlIG9ubHkgb25jZSkuEi8KLRorLnNjYWxla2l0LnYxLmNsaWVudHMuUmVnaXN0ZXJDbGllbnRSZXNwb25zZYK1GAIYAfrS5JMCCRIHUFJFVklFV4LT5JMCNToGY2xpZW50IisvYXBpL3YxL3Jlc291cmNlcy97cmVzX2lkfS9jbGllbnRzOnJlZ2lzdGVyErYFCgtDcmVhdGVTY29wZRInLnNjYWxla2l0LnYxLmNsaWVudHMuQ3JlYXRlU2NvcGVSZXF1ZXN0Giguc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVTY29wZVJlc3BvbnNlItMEiAIBkkHrAxIZQ3JlYXRlIHNjb3BlIChEZXByZWNhdGVkKRqhAkRFUFJFQ0FURUQ6IFVzZSBwZXJtaXNzaW9uIG1hbmFnZW1lbnQgQVBJcyBpbnN0ZWFkLiBDcmVhdGVzIGEgbmV3IE9BdXRoIHNjb3BlIGZvciBBUEkgYXV0aG9yaXphdGlvbi4gU2NvcGVzIGRlZmluZSB0aGUgbGV2ZWwgb2YgYWNjZXNzIGdyYW50ZWQgdG8gQVBJIGNsaWVudHMuIFJlc2VydmVkIE9wZW5JRCBDb25uZWN0IHNjb3BlcyAocHJvZmlsZSwgZW1haWwsIGFkZHJlc3MsIHBob25lKSBjYW5ub3QgYmUgY3JlYXRlZCBhcyB0aGV5IGFyZSBhdXRvbWF0aWNhbGx5IG1hbmFnZWQgYnkgdGhlIHN5c3RlbS5KqQEKAzIwMRKhAQpxT0F1dGggc2NvcGUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgc2NvcGUgd2l0aCBpdHMgbmFtZSwgZGVzY3JpcHRpb24sIGFuZCBlbmFibGVkIHN0YXR1cy4SLAoqGiguc2NhbGVraXQudjEuY2xpZW50cy5DcmVhdGVTY29wZVJlc3BvbnNlgrUYAhhA+tLkkwIJEgdQUkVWSUVXgtPkkwJGOgVzY29wZVotOgVzY29wZSIkL2FwaS92MS9lbnZpcm9ubWVudHMve2Vudl9pZH0vc2NvcGVzIg4vYXBpL3YxL3Njb3BlcxLpAwoKTGlzdFNjb3BlcxImLnNjYWxla2l0LnYxLmNsaWVudHMuTGlzdFNjb3Blc1JlcXVlc3QaJy5zY2FsZWtpdC52MS5jbGllbnRzLkxpc3RTY29wZXNSZXNwb25zZSKJA5JBsgISC0xpc3Qgc2NvcGVzGn9SZXRyaWV2ZXMgYWxsIE9BdXRoIHNjb3BlcyBjb25maWd1cmVkIGZvciB0aGUgZW52aXJvbm1lbnQuIFJldHVybnMgYm90aCBjdXN0b20gc2NvcGVzIGFuZCBzeXN0ZW0tbWFuYWdlZCBPcGVuSUQgQ29ubmVjdCBzY29wZXMuSqEBCgMyMDASmQEKakxpc3Qgb2YgT0F1dGggc2NvcGVzIHJldHVybmVkIHN1Y2Nlc3NmdWxseS4gRWFjaCBzY29wZSBpbmNsdWRlcyBpdHMgbmFtZSwgZGVzY3JpcHRpb24sIGFuZCBlbmFibGVkIHN0YXR1cy4SKwopGicuc2NhbGVraXQudjEuY2xpZW50cy5MaXN0U2NvcGVzUmVzcG9uc2WCtRgCGGD60uSTAgkSB1BSRVZJRVeC0+STAjhaJhIkL2FwaS92MS9lbnZpcm9ubWVudHMve2Vudl9pZH0vc2NvcGVzEg4vYXBpL3YxL3Njb3BlcxKvBAoLVXBkYXRlU2NvcGUSJy5zY2FsZWtpdC52MS5jbGllbnRzLlVwZGF0ZVNjb3BlUmVxdWVzdBooLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlU2NvcGVSZXNwb25zZSLMA4gCAZJBjgMSGVVwZGF0ZSBzY29wZSAoRGVwcmVjYXRlZCka4AFERVBSRUNBVEVEOiAgVXNlIHBlcm1pc3Npb24gbWFuYWdlbWVudCBBUElzIGluc3RlYWQuIFVwZGF0ZXMgYW4gZXhpc3RpbmcgT0F1dGggc2NvcGUncyBkZXNjcmlwdGlvbiBhbmQgZW5hYmxlZCBzdGF0dXMuIFJlc2VydmVkIE9wZW5JRCBDb25uZWN0IHNjb3BlcyAocHJvZmlsZSwgZW1haWwsIGFkZHJlc3MsIHBob25lKSBjYW5ub3QgYmUgbW9kaWZpZWQgdGhyb3VnaCB0aGlzIGVuZHBvaW50LkqNAQoDMjAwEoUBClVPQXV0aCBzY29wZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgdXBkYXRlZCBzY29wZSB3aXRoIGFsbCBjdXJyZW50IGRldGFpbHMuEiwKKhooLnNjYWxla2l0LnYxLmNsaWVudHMuVXBkYXRlU2NvcGVSZXNwb25zZYK1GAIYQPrS5JMCCRIHUFJFVklFV4LT5JMCHDoFc2NvcGUyEy9hcGkvdjEvc2NvcGVzL3tpZH0S4AMKC0RlbGV0ZVNjb3BlEicuc2NhbGVraXQudjEuY2xpZW50cy5EZWxldGVTY29wZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkijwOIAgGSQdgCEhlEZWxldGUgc2NvcGUgKERlcHJlY2F0ZWQpGvYBREVQUkVDQVRFRDogVXNlIHBlcm1pc3Npb24gbWFuYWdlbWVudCBBUElzIGluc3RlYWQuIFBlcm1hbmVudGx5IGRlbGV0ZXMgYW4gT0F1dGggc2NvcGUgZnJvbSB0aGUgZW52aXJvbm1lbnQuIFRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSB1bmRvbmUuIFJlc2VydmVkIE9wZW5JRCBDb25uZWN0IHNjb3BlcyAocHJvZmlsZSwgZW1haWwsIGFkZHJlc3MsIHBob25lKSBjYW5ub3QgYmUgZGVsZXRlZCB0aHJvdWdoIHRoaXMgZW5kcG9pbnQuSkIKAzIwMBI7CjlPQXV0aCBzY29wZSBzdWNjZXNzZnVsbHkgZGVsZXRlZCBhbmQgbm8gbG9uZ2VyIGFjY2Vzc2libGWCtRgCGED60uSTAgkSB1BSRVZJRVeC0+STAhUqEy9hcGkvdjEvc2NvcGVzL3tpZH0SlwEKEUdldENvbnNlbnREZXRhaWxzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gi4uc2NhbGVraXQudjEuY2xpZW50cy5HZXRDb25zZW50RGV0YWlsc1Jlc3BvbnNlIjqCtRgCGAH60uSTAgkSB1BSRVZJRVeC0+STAh8SHS9hcGkvdjEvb2F1dGgvY29uc2VudC9kZXRhaWxzEsIBChFSZXZva2VVc2VyQ29uc2VudBItLnNjYWxla2l0LnYxLmNsaWVudHMuUmV2b2tlVXNlckNvbnNlbnRSZXF1ZXN0Gi4uc2NhbGVraXQudjEuY2xpZW50cy5SZXZva2VVc2VyQ29uc2VudFJlc3BvbnNlIk6CtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAjMqMS9hcGkvdjEvY2xpZW50cy97Y2xpZW50X2lkfS9jb25zZW50cy97Y29uc2VudF9pZH0S6gMKGEVuc3VyZVJlc291cmNlQ29ubmVjdGlvbhI0LnNjYWxla2l0LnYxLmNsaWVudHMuRW5zdXJlUmVzb3VyY2VDb25uZWN0aW9uUmVxdWVzdBo1LnNjYWxla2l0LnYxLmNsaWVudHMuRW5zdXJlUmVzb3VyY2VDb25uZWN0aW9uUmVzcG9uc2Ui4AKSQZECCghBUEkgQXV0aBIhR2V0IG9yIENyZWF0ZSBSZXNvdXJjZSBDb25uZWN0aW9uGlNSZXRyaWV2ZXMgYW4gZXhpc3RpbmcgcmVzb3VyY2UgY29ubmVjdGlvbiBvciBjcmVhdGVzIGEgbmV3IG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0LkqMAQoDMjAwEoQBCkJSZXR1cm5zIHRoZSBleGlzdGluZyBvciBuZXdseSBjcmVhdGVkIHJlc291cmNlIGNvbm5lY3Rpb24gZGV0YWlscy4SPgo8Gjouc2NhbGVraXQudjEuY2xpZW50cy5HZXRPckNyZWF0ZVJlc291cmNlQ29ubmVjdGlvblJlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwIwOgEqIisvYXBpL3YxL3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L2Nvbm5lY3Rpb25zGrgDkkG0AwoIQVBJIEF1dGgS/QJFbmRwb2ludHMgZm9yIG1hbmFnaW5nIEFQSSBjbGllbnQgYXBwbGljYXRpb25zLiBBUEkgY2xpZW50cyBlbmFibGUgc2VjdXJlLCBhdXRvbWF0ZWQgaW50ZXJhY3Rpb25zIGJldHdlZW4gc29mdHdhcmUgc3lzdGVtcyB3aXRob3V0IGh1bWFuIGludGVydmVudGlvbi4gRWFjaCBjbGllbnQgaXMgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBhIGBjbGllbnRfaWRgIGFuZCBjYW4gYmUgY29uZmlndXJlZCB3aXRoIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzLCByZWRpcmVjdCBVUklzLCBhbmQgc2VjdXJpdHkgcGFyYW1ldGVycy4gVXNlIHRoZXNlIGVuZHBvaW50cyB0byBjcmVhdGUsIG1hbmFnZSwgYW5kIGNvbmZpZ3VyZSBBUEkgY2xpZW50cyBmb3IgeW91ciBBUEkgY2xpZW50cy4aKBImaHR0cHM6Ly9kb2NzLnNjYWxla2l0LmNvbS9tMm0vb3ZlcnZpZXdCM1oxZ2l0aHViLmNvbS9zY2FsZWtpdC1pbmMvc2NhbGVraXQvcGtnL2dycGMvY2xpZW50c2IGcHJvdG8z", [validate_pb_1.file_buf_validate_validate, annotations_pb_1.file_google_api_annotations, field_behavior_pb_1.file_google_api_field_behavior, visibility_pb_1.file_google_api_visibility, wkt_1.file_google_protobuf_empty, wkt_1.file_google_protobuf_field_mask, wkt_1.file_google_protobuf_struct, wkt_1.file_google_protobuf_timestamp, wkt_1.file_google_protobuf_wrappers, annotations_pb_2.file_protoc_gen_openapiv2_options_annotations, options_pb_1.file_scalekit_v1_options_options]);
|
|
20
|
+
/**
|
|
21
|
+
* Describes the message scalekit.v1.clients.CreateResourceRequest.
|
|
22
|
+
* Use `create(CreateResourceRequestSchema)` to create a new message.
|
|
23
|
+
*/
|
|
24
|
+
exports.CreateResourceRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 0);
|
|
25
|
+
/**
|
|
26
|
+
* Describes the message scalekit.v1.clients.CreateResource.
|
|
27
|
+
* Use `create(CreateResourceSchema)` to create a new message.
|
|
28
|
+
*/
|
|
29
|
+
exports.CreateResourceSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 1);
|
|
30
|
+
/**
|
|
31
|
+
* Describes the message scalekit.v1.clients.ResourceClient.
|
|
32
|
+
* Use `create(ResourceClientSchema)` to create a new message.
|
|
33
|
+
*/
|
|
34
|
+
exports.ResourceClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 2);
|
|
35
|
+
/**
|
|
36
|
+
* Describes the message scalekit.v1.clients.CreateResourceResponse.
|
|
37
|
+
* Use `create(CreateResourceResponseSchema)` to create a new message.
|
|
38
|
+
*/
|
|
39
|
+
exports.CreateResourceResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 3);
|
|
40
|
+
/**
|
|
41
|
+
* Describes the message scalekit.v1.clients.GetResourceRequest.
|
|
42
|
+
* Use `create(GetResourceRequestSchema)` to create a new message.
|
|
43
|
+
*/
|
|
44
|
+
exports.GetResourceRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 4);
|
|
45
|
+
/**
|
|
46
|
+
* Describes the message scalekit.v1.clients.GetResourceResponse.
|
|
47
|
+
* Use `create(GetResourceResponseSchema)` to create a new message.
|
|
48
|
+
*/
|
|
49
|
+
exports.GetResourceResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 5);
|
|
50
|
+
/**
|
|
51
|
+
* Describes the message scalekit.v1.clients.DeleteResourceProviderRequest.
|
|
52
|
+
* Use `create(DeleteResourceProviderRequestSchema)` to create a new message.
|
|
53
|
+
*/
|
|
54
|
+
exports.DeleteResourceProviderRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 6);
|
|
55
|
+
/**
|
|
56
|
+
* Describes the message scalekit.v1.clients.DeleteResourceRequest.
|
|
57
|
+
* Use `create(DeleteResourceRequestSchema)` to create a new message.
|
|
58
|
+
*/
|
|
59
|
+
exports.DeleteResourceRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 7);
|
|
60
|
+
/**
|
|
61
|
+
* Describes the message scalekit.v1.clients.Application.
|
|
62
|
+
* Use `create(ApplicationSchema)` to create a new message.
|
|
63
|
+
*/
|
|
64
|
+
exports.ApplicationSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 8);
|
|
65
|
+
/**
|
|
66
|
+
* Describes the message scalekit.v1.clients.Resource.
|
|
67
|
+
* Use `create(ResourceSchema)` to create a new message.
|
|
68
|
+
*/
|
|
69
|
+
exports.ResourceSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 9);
|
|
70
|
+
/**
|
|
71
|
+
* Describes the message scalekit.v1.clients.RegisterClientRequest.
|
|
72
|
+
* Use `create(RegisterClientRequestSchema)` to create a new message.
|
|
73
|
+
*/
|
|
74
|
+
exports.RegisterClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 10);
|
|
75
|
+
/**
|
|
76
|
+
* Describes the message scalekit.v1.clients.RegisterClient.
|
|
77
|
+
* Use `create(RegisterClientSchema)` to create a new message.
|
|
78
|
+
*/
|
|
79
|
+
exports.RegisterClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 11);
|
|
80
|
+
/**
|
|
81
|
+
* Describes the message scalekit.v1.clients.RegisterClientResponse.
|
|
82
|
+
* Use `create(RegisterClientResponseSchema)` to create a new message.
|
|
83
|
+
*/
|
|
84
|
+
exports.RegisterClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 12);
|
|
85
|
+
/**
|
|
86
|
+
* Describes the message scalekit.v1.clients.ListResourcesRequest.
|
|
87
|
+
* Use `create(ListResourcesRequestSchema)` to create a new message.
|
|
88
|
+
*/
|
|
89
|
+
exports.ListResourcesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 13);
|
|
90
|
+
/**
|
|
91
|
+
* Describes the message scalekit.v1.clients.ListResourcesResponse.
|
|
92
|
+
* Use `create(ListResourcesResponseSchema)` to create a new message.
|
|
93
|
+
*/
|
|
94
|
+
exports.ListResourcesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 14);
|
|
95
|
+
/**
|
|
96
|
+
* Describes the message scalekit.v1.clients.UpdateResourceRequest.
|
|
97
|
+
* Use `create(UpdateResourceRequestSchema)` to create a new message.
|
|
98
|
+
*/
|
|
99
|
+
exports.UpdateResourceRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 15);
|
|
100
|
+
/**
|
|
101
|
+
* Describes the message scalekit.v1.clients.UpdateResource.
|
|
102
|
+
* Use `create(UpdateResourceSchema)` to create a new message.
|
|
103
|
+
*/
|
|
104
|
+
exports.UpdateResourceSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 16);
|
|
105
|
+
/**
|
|
106
|
+
* Describes the message scalekit.v1.clients.UpdateResourceResponse.
|
|
107
|
+
* Use `create(UpdateResourceResponseSchema)` to create a new message.
|
|
108
|
+
*/
|
|
109
|
+
exports.UpdateResourceResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 17);
|
|
110
|
+
/**
|
|
111
|
+
* Describes the message scalekit.v1.clients.CreateResourceClientRequest.
|
|
112
|
+
* Use `create(CreateResourceClientRequestSchema)` to create a new message.
|
|
113
|
+
*/
|
|
114
|
+
exports.CreateResourceClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 18);
|
|
115
|
+
/**
|
|
116
|
+
* Describes the message scalekit.v1.clients.CreateResourceClientResponse.
|
|
117
|
+
* Use `create(CreateResourceClientResponseSchema)` to create a new message.
|
|
118
|
+
*/
|
|
119
|
+
exports.CreateResourceClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 19);
|
|
120
|
+
/**
|
|
121
|
+
* Describes the message scalekit.v1.clients.UpdateResourceClientRequest.
|
|
122
|
+
* Use `create(UpdateResourceClientRequestSchema)` to create a new message.
|
|
123
|
+
*/
|
|
124
|
+
exports.UpdateResourceClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 20);
|
|
125
|
+
/**
|
|
126
|
+
* Describes the message scalekit.v1.clients.UpdateResourceClientResponse.
|
|
127
|
+
* Use `create(UpdateResourceClientResponseSchema)` to create a new message.
|
|
128
|
+
*/
|
|
129
|
+
exports.UpdateResourceClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 21);
|
|
130
|
+
/**
|
|
131
|
+
* Describes the message scalekit.v1.clients.GetResourceClientRequest.
|
|
132
|
+
* Use `create(GetResourceClientRequestSchema)` to create a new message.
|
|
133
|
+
*/
|
|
134
|
+
exports.GetResourceClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 22);
|
|
135
|
+
/**
|
|
136
|
+
* Describes the message scalekit.v1.clients.GetResourceClientResponse.
|
|
137
|
+
* Use `create(GetResourceClientResponseSchema)` to create a new message.
|
|
138
|
+
*/
|
|
139
|
+
exports.GetResourceClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 23);
|
|
140
|
+
/**
|
|
141
|
+
* Describes the message scalekit.v1.clients.ConsentedUser.
|
|
142
|
+
* Use `create(ConsentedUserSchema)` to create a new message.
|
|
143
|
+
*/
|
|
144
|
+
exports.ConsentedUserSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 24);
|
|
145
|
+
/**
|
|
146
|
+
* Describes the message scalekit.v1.clients.ListResourceUserConsentsRequest.
|
|
147
|
+
* Use `create(ListResourceUserConsentsRequestSchema)` to create a new message.
|
|
148
|
+
*/
|
|
149
|
+
exports.ListResourceUserConsentsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 25);
|
|
150
|
+
/**
|
|
151
|
+
* Describes the message scalekit.v1.clients.ListResourceUserConsentsResponse.
|
|
152
|
+
* Use `create(ListResourceUserConsentsResponseSchema)` to create a new message.
|
|
153
|
+
*/
|
|
154
|
+
exports.ListResourceUserConsentsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 26);
|
|
155
|
+
/**
|
|
156
|
+
* Describes the message scalekit.v1.clients.ResourceUserConsent.
|
|
157
|
+
* Use `create(ResourceUserConsentSchema)` to create a new message.
|
|
158
|
+
*/
|
|
159
|
+
exports.ResourceUserConsentSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 27);
|
|
160
|
+
/**
|
|
161
|
+
* Describes the message scalekit.v1.clients.ListResourceClientsRequest.
|
|
162
|
+
* Use `create(ListResourceClientsRequestSchema)` to create a new message.
|
|
163
|
+
*/
|
|
164
|
+
exports.ListResourceClientsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 28);
|
|
165
|
+
/**
|
|
166
|
+
* Describes the message scalekit.v1.clients.ListResourceClientsResponse.
|
|
167
|
+
* Use `create(ListResourceClientsResponseSchema)` to create a new message.
|
|
168
|
+
*/
|
|
169
|
+
exports.ListResourceClientsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 29);
|
|
170
|
+
/**
|
|
171
|
+
* Describes the message scalekit.v1.clients.DeleteResourceClientRequest.
|
|
172
|
+
* Use `create(DeleteResourceClientRequestSchema)` to create a new message.
|
|
173
|
+
*/
|
|
174
|
+
exports.DeleteResourceClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 30);
|
|
175
|
+
/**
|
|
176
|
+
* Describes the message scalekit.v1.clients.DeleteResourceClientResponse.
|
|
177
|
+
* Use `create(DeleteResourceClientResponseSchema)` to create a new message.
|
|
178
|
+
*/
|
|
179
|
+
exports.DeleteResourceClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 31);
|
|
180
|
+
/**
|
|
181
|
+
* Describes the message scalekit.v1.clients.CreateOrganizationClientRequest.
|
|
182
|
+
* Use `create(CreateOrganizationClientRequestSchema)` to create a new message.
|
|
183
|
+
*/
|
|
184
|
+
exports.CreateOrganizationClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 32);
|
|
185
|
+
/**
|
|
186
|
+
* Describes the message scalekit.v1.clients.OrganizationClient.
|
|
187
|
+
* Use `create(OrganizationClientSchema)` to create a new message.
|
|
188
|
+
*/
|
|
189
|
+
exports.OrganizationClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 33);
|
|
190
|
+
/**
|
|
191
|
+
* Describes the message scalekit.v1.clients.CreateOrganizationClientResponse.
|
|
192
|
+
* Use `create(CreateOrganizationClientResponseSchema)` to create a new message.
|
|
193
|
+
*/
|
|
194
|
+
exports.CreateOrganizationClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 34);
|
|
195
|
+
/**
|
|
196
|
+
* Describes the message scalekit.v1.clients.UpdateOrganizationClientRequest.
|
|
197
|
+
* Use `create(UpdateOrganizationClientRequestSchema)` to create a new message.
|
|
198
|
+
*/
|
|
199
|
+
exports.UpdateOrganizationClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 35);
|
|
200
|
+
/**
|
|
201
|
+
* Describes the message scalekit.v1.clients.UpdateOrganizationClientResponse.
|
|
202
|
+
* Use `create(UpdateOrganizationClientResponseSchema)` to create a new message.
|
|
203
|
+
*/
|
|
204
|
+
exports.UpdateOrganizationClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 36);
|
|
205
|
+
/**
|
|
206
|
+
* Describes the message scalekit.v1.clients.M2MClient.
|
|
207
|
+
* Use `create(M2MClientSchema)` to create a new message.
|
|
208
|
+
*/
|
|
209
|
+
exports.M2MClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 37);
|
|
210
|
+
/**
|
|
211
|
+
* Describes the message scalekit.v1.clients.GetOrganizationClientRequest.
|
|
212
|
+
* Use `create(GetOrganizationClientRequestSchema)` to create a new message.
|
|
213
|
+
*/
|
|
214
|
+
exports.GetOrganizationClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 38);
|
|
215
|
+
/**
|
|
216
|
+
* Describes the message scalekit.v1.clients.GetOrganizationClientResponse.
|
|
217
|
+
* Use `create(GetOrganizationClientResponseSchema)` to create a new message.
|
|
218
|
+
*/
|
|
219
|
+
exports.GetOrganizationClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 39);
|
|
220
|
+
/**
|
|
221
|
+
* Describes the message scalekit.v1.clients.CustomClaim.
|
|
222
|
+
* Use `create(CustomClaimSchema)` to create a new message.
|
|
223
|
+
*/
|
|
224
|
+
exports.CustomClaimSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 40);
|
|
225
|
+
/**
|
|
226
|
+
* Describes the message scalekit.v1.clients.CreateOrganizationClientSecretRequest.
|
|
227
|
+
* Use `create(CreateOrganizationClientSecretRequestSchema)` to create a new message.
|
|
228
|
+
*/
|
|
229
|
+
exports.CreateOrganizationClientSecretRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 41);
|
|
230
|
+
/**
|
|
231
|
+
* Describes the message scalekit.v1.clients.CreateOrganizationClientSecretResponse.
|
|
232
|
+
* Use `create(CreateOrganizationClientSecretResponseSchema)` to create a new message.
|
|
233
|
+
*/
|
|
234
|
+
exports.CreateOrganizationClientSecretResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 42);
|
|
235
|
+
/**
|
|
236
|
+
* Describes the message scalekit.v1.clients.DeleteOrganizationClientSecretRequest.
|
|
237
|
+
* Use `create(DeleteOrganizationClientSecretRequestSchema)` to create a new message.
|
|
238
|
+
*/
|
|
239
|
+
exports.DeleteOrganizationClientSecretRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 43);
|
|
240
|
+
/**
|
|
241
|
+
* Describes the message scalekit.v1.clients.ListOrganizationClientsRequest.
|
|
242
|
+
* Use `create(ListOrganizationClientsRequestSchema)` to create a new message.
|
|
243
|
+
*/
|
|
244
|
+
exports.ListOrganizationClientsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 44);
|
|
245
|
+
/**
|
|
246
|
+
* Describes the message scalekit.v1.clients.ListOrganizationClientsResponse.
|
|
247
|
+
* Use `create(ListOrganizationClientsResponseSchema)` to create a new message.
|
|
248
|
+
*/
|
|
249
|
+
exports.ListOrganizationClientsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 45);
|
|
250
|
+
/**
|
|
251
|
+
* Describes the message scalekit.v1.clients.DeleteOrganizationClientRequest.
|
|
252
|
+
* Use `create(DeleteOrganizationClientRequestSchema)` to create a new message.
|
|
253
|
+
*/
|
|
254
|
+
exports.DeleteOrganizationClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 46);
|
|
255
|
+
/**
|
|
256
|
+
* Describes the message scalekit.v1.clients.GetClientRequest.
|
|
257
|
+
* Use `create(GetClientRequestSchema)` to create a new message.
|
|
258
|
+
*/
|
|
259
|
+
exports.GetClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 47);
|
|
260
|
+
/**
|
|
261
|
+
* Describes the message scalekit.v1.clients.GetClientResponse.
|
|
262
|
+
* Use `create(GetClientResponseSchema)` to create a new message.
|
|
263
|
+
*/
|
|
264
|
+
exports.GetClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 48);
|
|
265
|
+
/**
|
|
266
|
+
* Describes the message scalekit.v1.clients.ListClientsRequest.
|
|
267
|
+
* Use `create(ListClientsRequestSchema)` to create a new message.
|
|
268
|
+
*/
|
|
269
|
+
exports.ListClientsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 49);
|
|
270
|
+
/**
|
|
271
|
+
* Describes the message scalekit.v1.clients.ListClientsRequest.Filter.
|
|
272
|
+
* Use `create(ListClientsRequest_FilterSchema)` to create a new message.
|
|
273
|
+
*/
|
|
274
|
+
exports.ListClientsRequest_FilterSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 49, 0);
|
|
275
|
+
/**
|
|
276
|
+
* Describes the message scalekit.v1.clients.ListClientsResponse.
|
|
277
|
+
* Use `create(ListClientsResponseSchema)` to create a new message.
|
|
278
|
+
*/
|
|
279
|
+
exports.ListClientsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 50);
|
|
280
|
+
/**
|
|
281
|
+
* Describes the message scalekit.v1.clients.CreateClientRequest.
|
|
282
|
+
* Use `create(CreateClientRequestSchema)` to create a new message.
|
|
283
|
+
*/
|
|
284
|
+
exports.CreateClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 51);
|
|
285
|
+
/**
|
|
286
|
+
* Describes the message scalekit.v1.clients.CreateClient.
|
|
287
|
+
* Use `create(CreateClientSchema)` to create a new message.
|
|
288
|
+
*/
|
|
289
|
+
exports.CreateClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 52);
|
|
290
|
+
/**
|
|
291
|
+
* Describes the message scalekit.v1.clients.CreateClientResponse.
|
|
292
|
+
* Use `create(CreateClientResponseSchema)` to create a new message.
|
|
293
|
+
*/
|
|
294
|
+
exports.CreateClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 53);
|
|
295
|
+
/**
|
|
296
|
+
* Describes the message scalekit.v1.clients.UpdateClientRequest.
|
|
297
|
+
* Use `create(UpdateClientRequestSchema)` to create a new message.
|
|
298
|
+
*/
|
|
299
|
+
exports.UpdateClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 54);
|
|
300
|
+
/**
|
|
301
|
+
* Describes the message scalekit.v1.clients.UpdateClient.
|
|
302
|
+
* Use `create(UpdateClientSchema)` to create a new message.
|
|
303
|
+
*/
|
|
304
|
+
exports.UpdateClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 55);
|
|
305
|
+
/**
|
|
306
|
+
* Describes the message scalekit.v1.clients.UpdateClientResponse.
|
|
307
|
+
* Use `create(UpdateClientResponseSchema)` to create a new message.
|
|
308
|
+
*/
|
|
309
|
+
exports.UpdateClientResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 56);
|
|
310
|
+
/**
|
|
311
|
+
* Describes the message scalekit.v1.clients.CreateClientSecretRequest.
|
|
312
|
+
* Use `create(CreateClientSecretRequestSchema)` to create a new message.
|
|
313
|
+
*/
|
|
314
|
+
exports.CreateClientSecretRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 57);
|
|
315
|
+
/**
|
|
316
|
+
* Describes the message scalekit.v1.clients.CreateClientSecretResponse.
|
|
317
|
+
* Use `create(CreateClientSecretResponseSchema)` to create a new message.
|
|
318
|
+
*/
|
|
319
|
+
exports.CreateClientSecretResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 58);
|
|
320
|
+
/**
|
|
321
|
+
* Describes the message scalekit.v1.clients.UpdateClientSecretRequest.
|
|
322
|
+
* Use `create(UpdateClientSecretRequestSchema)` to create a new message.
|
|
323
|
+
*/
|
|
324
|
+
exports.UpdateClientSecretRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 59);
|
|
325
|
+
/**
|
|
326
|
+
* Describes the message scalekit.v1.clients.UpdateClientSecret.
|
|
327
|
+
* Use `create(UpdateClientSecretSchema)` to create a new message.
|
|
328
|
+
*/
|
|
329
|
+
exports.UpdateClientSecretSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 60);
|
|
330
|
+
/**
|
|
331
|
+
* Describes the message scalekit.v1.clients.UpdateClientSecretResponse.
|
|
332
|
+
* Use `create(UpdateClientSecretResponseSchema)` to create a new message.
|
|
333
|
+
*/
|
|
334
|
+
exports.UpdateClientSecretResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 61);
|
|
335
|
+
/**
|
|
336
|
+
* Describes the message scalekit.v1.clients.DeleteClientRequest.
|
|
337
|
+
* Use `create(DeleteClientRequestSchema)` to create a new message.
|
|
338
|
+
*/
|
|
339
|
+
exports.DeleteClientRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 62);
|
|
340
|
+
/**
|
|
341
|
+
* Describes the message scalekit.v1.clients.DeleteClientSecretRequest.
|
|
342
|
+
* Use `create(DeleteClientSecretRequestSchema)` to create a new message.
|
|
343
|
+
*/
|
|
344
|
+
exports.DeleteClientSecretRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 63);
|
|
345
|
+
/**
|
|
346
|
+
* Describes the message scalekit.v1.clients.Client.
|
|
347
|
+
* Use `create(ClientSchema)` to create a new message.
|
|
348
|
+
*/
|
|
349
|
+
exports.ClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 64);
|
|
350
|
+
/**
|
|
351
|
+
* Describes the message scalekit.v1.clients.ClientSecret.
|
|
352
|
+
* Use `create(ClientSecretSchema)` to create a new message.
|
|
353
|
+
*/
|
|
354
|
+
exports.ClientSecretSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 65);
|
|
355
|
+
/**
|
|
356
|
+
* Describes the message scalekit.v1.clients.Scope.
|
|
357
|
+
* Use `create(ScopeSchema)` to create a new message.
|
|
358
|
+
*/
|
|
359
|
+
exports.ScopeSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 66);
|
|
360
|
+
/**
|
|
361
|
+
* Describes the message scalekit.v1.clients.CreateScope.
|
|
362
|
+
* Use `create(CreateScopeSchema)` to create a new message.
|
|
363
|
+
*/
|
|
364
|
+
exports.CreateScopeSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 67);
|
|
365
|
+
/**
|
|
366
|
+
* Describes the message scalekit.v1.clients.CreateScopeRequest.
|
|
367
|
+
* Use `create(CreateScopeRequestSchema)` to create a new message.
|
|
368
|
+
*/
|
|
369
|
+
exports.CreateScopeRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 68);
|
|
370
|
+
/**
|
|
371
|
+
* Describes the message scalekit.v1.clients.CreateScopeResponse.
|
|
372
|
+
* Use `create(CreateScopeResponseSchema)` to create a new message.
|
|
373
|
+
*/
|
|
374
|
+
exports.CreateScopeResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 69);
|
|
375
|
+
/**
|
|
376
|
+
* Describes the message scalekit.v1.clients.ListScopesRequest.
|
|
377
|
+
* Use `create(ListScopesRequestSchema)` to create a new message.
|
|
378
|
+
*/
|
|
379
|
+
exports.ListScopesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 70);
|
|
380
|
+
/**
|
|
381
|
+
* Describes the message scalekit.v1.clients.ListScopesResponse.
|
|
382
|
+
* Use `create(ListScopesResponseSchema)` to create a new message.
|
|
383
|
+
*/
|
|
384
|
+
exports.ListScopesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 71);
|
|
385
|
+
/**
|
|
386
|
+
* Describes the message scalekit.v1.clients.UpdateScopeRequest.
|
|
387
|
+
* Use `create(UpdateScopeRequestSchema)` to create a new message.
|
|
388
|
+
*/
|
|
389
|
+
exports.UpdateScopeRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 72);
|
|
390
|
+
/**
|
|
391
|
+
* Describes the message scalekit.v1.clients.UpdateScope.
|
|
392
|
+
* Use `create(UpdateScopeSchema)` to create a new message.
|
|
393
|
+
*/
|
|
394
|
+
exports.UpdateScopeSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 73);
|
|
395
|
+
/**
|
|
396
|
+
* Describes the message scalekit.v1.clients.UpdateScopeResponse.
|
|
397
|
+
* Use `create(UpdateScopeResponseSchema)` to create a new message.
|
|
398
|
+
*/
|
|
399
|
+
exports.UpdateScopeResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 74);
|
|
400
|
+
/**
|
|
401
|
+
* Describes the message scalekit.v1.clients.DeleteScopeRequest.
|
|
402
|
+
* Use `create(DeleteScopeRequestSchema)` to create a new message.
|
|
403
|
+
*/
|
|
404
|
+
exports.DeleteScopeRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 75);
|
|
405
|
+
/**
|
|
406
|
+
* Describes the message scalekit.v1.clients.GetConsentDetailsResponse.
|
|
407
|
+
* Use `create(GetConsentDetailsResponseSchema)` to create a new message.
|
|
408
|
+
*/
|
|
409
|
+
exports.GetConsentDetailsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 76);
|
|
410
|
+
/**
|
|
411
|
+
* Describes the message scalekit.v1.clients.ConsentClient.
|
|
412
|
+
* Use `create(ConsentClientSchema)` to create a new message.
|
|
413
|
+
*/
|
|
414
|
+
exports.ConsentClientSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 77);
|
|
415
|
+
/**
|
|
416
|
+
* Describes the message scalekit.v1.clients.ConsentScope.
|
|
417
|
+
* Use `create(ConsentScopeSchema)` to create a new message.
|
|
418
|
+
*/
|
|
419
|
+
exports.ConsentScopeSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 78);
|
|
420
|
+
/**
|
|
421
|
+
* Describes the message scalekit.v1.clients.User.
|
|
422
|
+
* Use `create(UserSchema)` to create a new message.
|
|
423
|
+
*/
|
|
424
|
+
exports.UserSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 79);
|
|
425
|
+
/**
|
|
426
|
+
* Describes the message scalekit.v1.clients.RevokeUserConsentRequest.
|
|
427
|
+
* Use `create(RevokeUserConsentRequestSchema)` to create a new message.
|
|
428
|
+
*/
|
|
429
|
+
exports.RevokeUserConsentRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 80);
|
|
430
|
+
/**
|
|
431
|
+
* Describes the message scalekit.v1.clients.RevokeUserConsentResponse.
|
|
432
|
+
* Use `create(RevokeUserConsentResponseSchema)` to create a new message.
|
|
433
|
+
*/
|
|
434
|
+
exports.RevokeUserConsentResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 81);
|
|
435
|
+
/**
|
|
436
|
+
* Describes the message scalekit.v1.clients.EnsureResourceConnectionRequest.
|
|
437
|
+
* Use `create(EnsureResourceConnectionRequestSchema)` to create a new message.
|
|
438
|
+
*/
|
|
439
|
+
exports.EnsureResourceConnectionRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 82);
|
|
440
|
+
/**
|
|
441
|
+
* Describes the message scalekit.v1.clients.EnsureResourceConnectionResponse.
|
|
442
|
+
* Use `create(EnsureResourceConnectionResponseSchema)` to create a new message.
|
|
443
|
+
*/
|
|
444
|
+
exports.EnsureResourceConnectionResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 83);
|
|
445
|
+
/**
|
|
446
|
+
* Describes the message scalekit.v1.clients.ResourceConnection.
|
|
447
|
+
* Use `create(ResourceConnectionSchema)` to create a new message.
|
|
448
|
+
*/
|
|
449
|
+
exports.ResourceConnectionSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 84);
|
|
450
|
+
/**
|
|
451
|
+
* Describes the message scalekit.v1.clients.ResourceCustomConnectionSettings.
|
|
452
|
+
* Use `create(ResourceCustomConnectionSettingsSchema)` to create a new message.
|
|
453
|
+
*/
|
|
454
|
+
exports.ResourceCustomConnectionSettingsSchema = (0, codegenv2_1.messageDesc)(exports.file_scalekit_v1_clients_clients, 85);
|
|
455
|
+
/**
|
|
456
|
+
* @generated from enum scalekit.v1.clients.ResourceType
|
|
457
|
+
*/
|
|
458
|
+
var ResourceType;
|
|
459
|
+
(function (ResourceType) {
|
|
460
|
+
/**
|
|
461
|
+
* @generated from enum value: RESOURCE_TYPE_UNSPECIFIED = 0;
|
|
462
|
+
*/
|
|
463
|
+
ResourceType[ResourceType["RESOURCE_TYPE_UNSPECIFIED"] = 0] = "RESOURCE_TYPE_UNSPECIFIED";
|
|
464
|
+
/**
|
|
465
|
+
* Web resource
|
|
466
|
+
*
|
|
467
|
+
* @generated from enum value: WEB = 1;
|
|
468
|
+
*/
|
|
469
|
+
ResourceType[ResourceType["WEB"] = 1] = "WEB";
|
|
470
|
+
/**
|
|
471
|
+
* Mobile resource
|
|
472
|
+
*
|
|
473
|
+
* @generated from enum value: MOBILE = 2;
|
|
474
|
+
*/
|
|
475
|
+
ResourceType[ResourceType["MOBILE"] = 2] = "MOBILE";
|
|
476
|
+
/**
|
|
477
|
+
* Desktop resource
|
|
478
|
+
*
|
|
479
|
+
* @generated from enum value: DESKTOP = 3;
|
|
480
|
+
*/
|
|
481
|
+
ResourceType[ResourceType["DESKTOP"] = 3] = "DESKTOP";
|
|
482
|
+
/**
|
|
483
|
+
* Server resource OR Microservices
|
|
484
|
+
*
|
|
485
|
+
* @generated from enum value: SERVER = 4;
|
|
486
|
+
*/
|
|
487
|
+
ResourceType[ResourceType["SERVER"] = 4] = "SERVER";
|
|
488
|
+
/**
|
|
489
|
+
* Model Context Protocol Server
|
|
490
|
+
*
|
|
491
|
+
* @generated from enum value: MCP_SERVER = 5;
|
|
492
|
+
*/
|
|
493
|
+
ResourceType[ResourceType["MCP_SERVER"] = 5] = "MCP_SERVER";
|
|
494
|
+
})(ResourceType || (exports.ResourceType = ResourceType = {}));
|
|
495
|
+
/**
|
|
496
|
+
* Describes the enum scalekit.v1.clients.ResourceType.
|
|
497
|
+
*/
|
|
498
|
+
exports.ResourceTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_scalekit_v1_clients_clients, 0);
|
|
499
|
+
/**
|
|
500
|
+
* ClientSecretStatus indicates whether a client secret can be used for authentication.
|
|
501
|
+
* ACTIVE secrets can be used for authentication while INACTIVE secrets cannot.
|
|
502
|
+
*
|
|
503
|
+
* @generated from enum scalekit.v1.clients.ClientSecretStatus
|
|
504
|
+
*/
|
|
505
|
+
var ClientSecretStatus;
|
|
506
|
+
(function (ClientSecretStatus) {
|
|
507
|
+
/**
|
|
508
|
+
* The secret is active and can be used for authentication
|
|
509
|
+
*
|
|
510
|
+
* @generated from enum value: ACTIVE = 0;
|
|
511
|
+
*/
|
|
512
|
+
ClientSecretStatus[ClientSecretStatus["ACTIVE"] = 0] = "ACTIVE";
|
|
513
|
+
/**
|
|
514
|
+
* The secret is inactive and cannot be used for authentication
|
|
515
|
+
*
|
|
516
|
+
* @generated from enum value: INACTIVE = 1;
|
|
517
|
+
*/
|
|
518
|
+
ClientSecretStatus[ClientSecretStatus["INACTIVE"] = 1] = "INACTIVE";
|
|
519
|
+
})(ClientSecretStatus || (exports.ClientSecretStatus = ClientSecretStatus = {}));
|
|
520
|
+
/**
|
|
521
|
+
* Describes the enum scalekit.v1.clients.ClientSecretStatus.
|
|
522
|
+
*/
|
|
523
|
+
exports.ClientSecretStatusSchema = (0, codegenv2_1.enumDesc)(exports.file_scalekit_v1_clients_clients, 1);
|
|
524
|
+
/**
|
|
525
|
+
* @generated from enum scalekit.v1.clients.ResourceConnectionType
|
|
526
|
+
*/
|
|
527
|
+
var ResourceConnectionType;
|
|
528
|
+
(function (ResourceConnectionType) {
|
|
529
|
+
/**
|
|
530
|
+
* @generated from enum value: INVALID = 0;
|
|
531
|
+
*/
|
|
532
|
+
ResourceConnectionType[ResourceConnectionType["INVALID"] = 0] = "INVALID";
|
|
533
|
+
/**
|
|
534
|
+
* @generated from enum value: CUSTOM = 1;
|
|
535
|
+
*/
|
|
536
|
+
ResourceConnectionType[ResourceConnectionType["CUSTOM"] = 1] = "CUSTOM";
|
|
537
|
+
})(ResourceConnectionType || (exports.ResourceConnectionType = ResourceConnectionType = {}));
|
|
538
|
+
/**
|
|
539
|
+
* Describes the enum scalekit.v1.clients.ResourceConnectionType.
|
|
540
|
+
*/
|
|
541
|
+
exports.ResourceConnectionTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_scalekit_v1_clients_clients, 2);
|
|
542
|
+
/**
|
|
543
|
+
* @generated from service scalekit.v1.clients.ClientService
|
|
544
|
+
*/
|
|
545
|
+
exports.ClientService = (0, codegenv2_1.serviceDesc)(exports.file_scalekit_v1_clients_clients, 0);
|
|
546
|
+
//# sourceMappingURL=clients_pb.js.map
|