@effect-aws/client-iam 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultIAMServiceLayer = exports.IAMServiceLayer = exports.BaseIAMServiceLayer = exports.makeIAMService = exports.IAMService = void 0;
4
+ const client_iam_1 = require("@aws-sdk/client-iam");
5
+ const effect_1 = require("effect");
6
+ const Errors_1 = require("./Errors");
7
+ const IAMClientInstance_1 = require("./IAMClientInstance");
8
+ const IAMClientInstanceConfig_1 = require("./IAMClientInstanceConfig");
9
+ const commands = {
10
+ AddClientIDToOpenIDConnectProviderCommand: client_iam_1.AddClientIDToOpenIDConnectProviderCommand,
11
+ AddRoleToInstanceProfileCommand: client_iam_1.AddRoleToInstanceProfileCommand,
12
+ AddUserToGroupCommand: client_iam_1.AddUserToGroupCommand,
13
+ AttachGroupPolicyCommand: client_iam_1.AttachGroupPolicyCommand,
14
+ AttachRolePolicyCommand: client_iam_1.AttachRolePolicyCommand,
15
+ AttachUserPolicyCommand: client_iam_1.AttachUserPolicyCommand,
16
+ ChangePasswordCommand: client_iam_1.ChangePasswordCommand,
17
+ CreateAccessKeyCommand: client_iam_1.CreateAccessKeyCommand,
18
+ CreateAccountAliasCommand: client_iam_1.CreateAccountAliasCommand,
19
+ CreateGroupCommand: client_iam_1.CreateGroupCommand,
20
+ CreateInstanceProfileCommand: client_iam_1.CreateInstanceProfileCommand,
21
+ CreateLoginProfileCommand: client_iam_1.CreateLoginProfileCommand,
22
+ CreateOpenIDConnectProviderCommand: client_iam_1.CreateOpenIDConnectProviderCommand,
23
+ CreatePolicyCommand: client_iam_1.CreatePolicyCommand,
24
+ CreatePolicyVersionCommand: client_iam_1.CreatePolicyVersionCommand,
25
+ CreateRoleCommand: client_iam_1.CreateRoleCommand,
26
+ CreateSAMLProviderCommand: client_iam_1.CreateSAMLProviderCommand,
27
+ CreateServiceLinkedRoleCommand: client_iam_1.CreateServiceLinkedRoleCommand,
28
+ CreateServiceSpecificCredentialCommand: client_iam_1.CreateServiceSpecificCredentialCommand,
29
+ CreateUserCommand: client_iam_1.CreateUserCommand,
30
+ CreateVirtualMFADeviceCommand: client_iam_1.CreateVirtualMFADeviceCommand,
31
+ DeactivateMFADeviceCommand: client_iam_1.DeactivateMFADeviceCommand,
32
+ DeleteAccessKeyCommand: client_iam_1.DeleteAccessKeyCommand,
33
+ DeleteAccountAliasCommand: client_iam_1.DeleteAccountAliasCommand,
34
+ DeleteAccountPasswordPolicyCommand: client_iam_1.DeleteAccountPasswordPolicyCommand,
35
+ DeleteGroupCommand: client_iam_1.DeleteGroupCommand,
36
+ DeleteGroupPolicyCommand: client_iam_1.DeleteGroupPolicyCommand,
37
+ DeleteInstanceProfileCommand: client_iam_1.DeleteInstanceProfileCommand,
38
+ DeleteLoginProfileCommand: client_iam_1.DeleteLoginProfileCommand,
39
+ DeleteOpenIDConnectProviderCommand: client_iam_1.DeleteOpenIDConnectProviderCommand,
40
+ DeletePolicyCommand: client_iam_1.DeletePolicyCommand,
41
+ DeletePolicyVersionCommand: client_iam_1.DeletePolicyVersionCommand,
42
+ DeleteRoleCommand: client_iam_1.DeleteRoleCommand,
43
+ DeleteRolePermissionsBoundaryCommand: client_iam_1.DeleteRolePermissionsBoundaryCommand,
44
+ DeleteRolePolicyCommand: client_iam_1.DeleteRolePolicyCommand,
45
+ DeleteSAMLProviderCommand: client_iam_1.DeleteSAMLProviderCommand,
46
+ DeleteServerCertificateCommand: client_iam_1.DeleteServerCertificateCommand,
47
+ DeleteServiceLinkedRoleCommand: client_iam_1.DeleteServiceLinkedRoleCommand,
48
+ DeleteServiceSpecificCredentialCommand: client_iam_1.DeleteServiceSpecificCredentialCommand,
49
+ DeleteSigningCertificateCommand: client_iam_1.DeleteSigningCertificateCommand,
50
+ DeleteSSHPublicKeyCommand: client_iam_1.DeleteSSHPublicKeyCommand,
51
+ DeleteUserCommand: client_iam_1.DeleteUserCommand,
52
+ DeleteUserPermissionsBoundaryCommand: client_iam_1.DeleteUserPermissionsBoundaryCommand,
53
+ DeleteUserPolicyCommand: client_iam_1.DeleteUserPolicyCommand,
54
+ DeleteVirtualMFADeviceCommand: client_iam_1.DeleteVirtualMFADeviceCommand,
55
+ DetachGroupPolicyCommand: client_iam_1.DetachGroupPolicyCommand,
56
+ DetachRolePolicyCommand: client_iam_1.DetachRolePolicyCommand,
57
+ DetachUserPolicyCommand: client_iam_1.DetachUserPolicyCommand,
58
+ EnableMFADeviceCommand: client_iam_1.EnableMFADeviceCommand,
59
+ GenerateCredentialReportCommand: client_iam_1.GenerateCredentialReportCommand,
60
+ GenerateOrganizationsAccessReportCommand: client_iam_1.GenerateOrganizationsAccessReportCommand,
61
+ GenerateServiceLastAccessedDetailsCommand: client_iam_1.GenerateServiceLastAccessedDetailsCommand,
62
+ GetAccessKeyLastUsedCommand: client_iam_1.GetAccessKeyLastUsedCommand,
63
+ GetAccountAuthorizationDetailsCommand: client_iam_1.GetAccountAuthorizationDetailsCommand,
64
+ GetAccountPasswordPolicyCommand: client_iam_1.GetAccountPasswordPolicyCommand,
65
+ GetAccountSummaryCommand: client_iam_1.GetAccountSummaryCommand,
66
+ GetContextKeysForCustomPolicyCommand: client_iam_1.GetContextKeysForCustomPolicyCommand,
67
+ GetContextKeysForPrincipalPolicyCommand: client_iam_1.GetContextKeysForPrincipalPolicyCommand,
68
+ GetCredentialReportCommand: client_iam_1.GetCredentialReportCommand,
69
+ GetGroupCommand: client_iam_1.GetGroupCommand,
70
+ GetGroupPolicyCommand: client_iam_1.GetGroupPolicyCommand,
71
+ GetInstanceProfileCommand: client_iam_1.GetInstanceProfileCommand,
72
+ GetLoginProfileCommand: client_iam_1.GetLoginProfileCommand,
73
+ GetMFADeviceCommand: client_iam_1.GetMFADeviceCommand,
74
+ GetOpenIDConnectProviderCommand: client_iam_1.GetOpenIDConnectProviderCommand,
75
+ GetOrganizationsAccessReportCommand: client_iam_1.GetOrganizationsAccessReportCommand,
76
+ GetPolicyCommand: client_iam_1.GetPolicyCommand,
77
+ GetPolicyVersionCommand: client_iam_1.GetPolicyVersionCommand,
78
+ GetRoleCommand: client_iam_1.GetRoleCommand,
79
+ GetRolePolicyCommand: client_iam_1.GetRolePolicyCommand,
80
+ GetSAMLProviderCommand: client_iam_1.GetSAMLProviderCommand,
81
+ GetServerCertificateCommand: client_iam_1.GetServerCertificateCommand,
82
+ GetServiceLastAccessedDetailsCommand: client_iam_1.GetServiceLastAccessedDetailsCommand,
83
+ GetServiceLastAccessedDetailsWithEntitiesCommand: client_iam_1.GetServiceLastAccessedDetailsWithEntitiesCommand,
84
+ GetServiceLinkedRoleDeletionStatusCommand: client_iam_1.GetServiceLinkedRoleDeletionStatusCommand,
85
+ GetSSHPublicKeyCommand: client_iam_1.GetSSHPublicKeyCommand,
86
+ GetUserCommand: client_iam_1.GetUserCommand,
87
+ GetUserPolicyCommand: client_iam_1.GetUserPolicyCommand,
88
+ ListAccessKeysCommand: client_iam_1.ListAccessKeysCommand,
89
+ ListAccountAliasesCommand: client_iam_1.ListAccountAliasesCommand,
90
+ ListAttachedGroupPoliciesCommand: client_iam_1.ListAttachedGroupPoliciesCommand,
91
+ ListAttachedRolePoliciesCommand: client_iam_1.ListAttachedRolePoliciesCommand,
92
+ ListAttachedUserPoliciesCommand: client_iam_1.ListAttachedUserPoliciesCommand,
93
+ ListEntitiesForPolicyCommand: client_iam_1.ListEntitiesForPolicyCommand,
94
+ ListGroupPoliciesCommand: client_iam_1.ListGroupPoliciesCommand,
95
+ ListGroupsCommand: client_iam_1.ListGroupsCommand,
96
+ ListGroupsForUserCommand: client_iam_1.ListGroupsForUserCommand,
97
+ ListInstanceProfilesCommand: client_iam_1.ListInstanceProfilesCommand,
98
+ ListInstanceProfilesForRoleCommand: client_iam_1.ListInstanceProfilesForRoleCommand,
99
+ ListInstanceProfileTagsCommand: client_iam_1.ListInstanceProfileTagsCommand,
100
+ ListMFADevicesCommand: client_iam_1.ListMFADevicesCommand,
101
+ ListMFADeviceTagsCommand: client_iam_1.ListMFADeviceTagsCommand,
102
+ ListOpenIDConnectProvidersCommand: client_iam_1.ListOpenIDConnectProvidersCommand,
103
+ ListOpenIDConnectProviderTagsCommand: client_iam_1.ListOpenIDConnectProviderTagsCommand,
104
+ ListPoliciesCommand: client_iam_1.ListPoliciesCommand,
105
+ ListPoliciesGrantingServiceAccessCommand: client_iam_1.ListPoliciesGrantingServiceAccessCommand,
106
+ ListPolicyTagsCommand: client_iam_1.ListPolicyTagsCommand,
107
+ ListPolicyVersionsCommand: client_iam_1.ListPolicyVersionsCommand,
108
+ ListRolePoliciesCommand: client_iam_1.ListRolePoliciesCommand,
109
+ ListRolesCommand: client_iam_1.ListRolesCommand,
110
+ ListRoleTagsCommand: client_iam_1.ListRoleTagsCommand,
111
+ ListSAMLProvidersCommand: client_iam_1.ListSAMLProvidersCommand,
112
+ ListSAMLProviderTagsCommand: client_iam_1.ListSAMLProviderTagsCommand,
113
+ ListServerCertificatesCommand: client_iam_1.ListServerCertificatesCommand,
114
+ ListServerCertificateTagsCommand: client_iam_1.ListServerCertificateTagsCommand,
115
+ ListServiceSpecificCredentialsCommand: client_iam_1.ListServiceSpecificCredentialsCommand,
116
+ ListSigningCertificatesCommand: client_iam_1.ListSigningCertificatesCommand,
117
+ ListSSHPublicKeysCommand: client_iam_1.ListSSHPublicKeysCommand,
118
+ ListUserPoliciesCommand: client_iam_1.ListUserPoliciesCommand,
119
+ ListUsersCommand: client_iam_1.ListUsersCommand,
120
+ ListUserTagsCommand: client_iam_1.ListUserTagsCommand,
121
+ ListVirtualMFADevicesCommand: client_iam_1.ListVirtualMFADevicesCommand,
122
+ PutGroupPolicyCommand: client_iam_1.PutGroupPolicyCommand,
123
+ PutRolePermissionsBoundaryCommand: client_iam_1.PutRolePermissionsBoundaryCommand,
124
+ PutRolePolicyCommand: client_iam_1.PutRolePolicyCommand,
125
+ PutUserPermissionsBoundaryCommand: client_iam_1.PutUserPermissionsBoundaryCommand,
126
+ PutUserPolicyCommand: client_iam_1.PutUserPolicyCommand,
127
+ RemoveClientIDFromOpenIDConnectProviderCommand: client_iam_1.RemoveClientIDFromOpenIDConnectProviderCommand,
128
+ RemoveRoleFromInstanceProfileCommand: client_iam_1.RemoveRoleFromInstanceProfileCommand,
129
+ RemoveUserFromGroupCommand: client_iam_1.RemoveUserFromGroupCommand,
130
+ ResetServiceSpecificCredentialCommand: client_iam_1.ResetServiceSpecificCredentialCommand,
131
+ ResyncMFADeviceCommand: client_iam_1.ResyncMFADeviceCommand,
132
+ SetDefaultPolicyVersionCommand: client_iam_1.SetDefaultPolicyVersionCommand,
133
+ SetSecurityTokenServicePreferencesCommand: client_iam_1.SetSecurityTokenServicePreferencesCommand,
134
+ SimulateCustomPolicyCommand: client_iam_1.SimulateCustomPolicyCommand,
135
+ SimulatePrincipalPolicyCommand: client_iam_1.SimulatePrincipalPolicyCommand,
136
+ TagInstanceProfileCommand: client_iam_1.TagInstanceProfileCommand,
137
+ TagMFADeviceCommand: client_iam_1.TagMFADeviceCommand,
138
+ TagOpenIDConnectProviderCommand: client_iam_1.TagOpenIDConnectProviderCommand,
139
+ TagPolicyCommand: client_iam_1.TagPolicyCommand,
140
+ TagRoleCommand: client_iam_1.TagRoleCommand,
141
+ TagSAMLProviderCommand: client_iam_1.TagSAMLProviderCommand,
142
+ TagServerCertificateCommand: client_iam_1.TagServerCertificateCommand,
143
+ TagUserCommand: client_iam_1.TagUserCommand,
144
+ UntagInstanceProfileCommand: client_iam_1.UntagInstanceProfileCommand,
145
+ UntagMFADeviceCommand: client_iam_1.UntagMFADeviceCommand,
146
+ UntagOpenIDConnectProviderCommand: client_iam_1.UntagOpenIDConnectProviderCommand,
147
+ UntagPolicyCommand: client_iam_1.UntagPolicyCommand,
148
+ UntagRoleCommand: client_iam_1.UntagRoleCommand,
149
+ UntagSAMLProviderCommand: client_iam_1.UntagSAMLProviderCommand,
150
+ UntagServerCertificateCommand: client_iam_1.UntagServerCertificateCommand,
151
+ UntagUserCommand: client_iam_1.UntagUserCommand,
152
+ UpdateAccessKeyCommand: client_iam_1.UpdateAccessKeyCommand,
153
+ UpdateAccountPasswordPolicyCommand: client_iam_1.UpdateAccountPasswordPolicyCommand,
154
+ UpdateAssumeRolePolicyCommand: client_iam_1.UpdateAssumeRolePolicyCommand,
155
+ UpdateGroupCommand: client_iam_1.UpdateGroupCommand,
156
+ UpdateLoginProfileCommand: client_iam_1.UpdateLoginProfileCommand,
157
+ UpdateOpenIDConnectProviderThumbprintCommand: client_iam_1.UpdateOpenIDConnectProviderThumbprintCommand,
158
+ UpdateRoleCommand: client_iam_1.UpdateRoleCommand,
159
+ UpdateRoleDescriptionCommand: client_iam_1.UpdateRoleDescriptionCommand,
160
+ UpdateSAMLProviderCommand: client_iam_1.UpdateSAMLProviderCommand,
161
+ UpdateServerCertificateCommand: client_iam_1.UpdateServerCertificateCommand,
162
+ UpdateServiceSpecificCredentialCommand: client_iam_1.UpdateServiceSpecificCredentialCommand,
163
+ UpdateSigningCertificateCommand: client_iam_1.UpdateSigningCertificateCommand,
164
+ UpdateSSHPublicKeyCommand: client_iam_1.UpdateSSHPublicKeyCommand,
165
+ UpdateUserCommand: client_iam_1.UpdateUserCommand,
166
+ UploadServerCertificateCommand: client_iam_1.UploadServerCertificateCommand,
167
+ UploadSigningCertificateCommand: client_iam_1.UploadSigningCertificateCommand,
168
+ UploadSSHPublicKeyCommand: client_iam_1.UploadSSHPublicKeyCommand,
169
+ };
170
+ /**
171
+ * @since 1.0.0
172
+ * @category tags
173
+ */
174
+ exports.IAMService = effect_1.Context.Tag(Symbol.for("@effect-aws/client-iam/IAMService"));
175
+ /**
176
+ * @since 1.0.0
177
+ * @category constructors
178
+ */
179
+ exports.makeIAMService = effect_1.Effect.gen(function* (_) {
180
+ const client = yield* _(IAMClientInstance_1.IAMClientInstance);
181
+ return effect_1.ReadonlyRecord.toEntries(commands).reduce((acc, [command]) => {
182
+ const CommandCtor = commands[command];
183
+ const methodImpl = (args, options) => effect_1.Effect.tryPromise({
184
+ try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
185
+ catch: (e) => {
186
+ if (e instanceof client_iam_1.IAMServiceException) {
187
+ const ServiceException = effect_1.Data.tagged(e.name);
188
+ return ServiceException({
189
+ ...e,
190
+ message: e.message,
191
+ stack: e.stack,
192
+ });
193
+ }
194
+ if (e instanceof Error) {
195
+ return (0, Errors_1.SdkError)({
196
+ ...e,
197
+ name: "SdkError",
198
+ message: e.message,
199
+ stack: e.stack,
200
+ });
201
+ }
202
+ throw e;
203
+ },
204
+ });
205
+ const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
206
+ return { ...acc, [methodName]: methodImpl };
207
+ }, {});
208
+ });
209
+ /**
210
+ * @since 1.0.0
211
+ * @category layers
212
+ */
213
+ exports.BaseIAMServiceLayer = effect_1.Layer.effect(exports.IAMService, exports.makeIAMService);
214
+ /**
215
+ * @since 1.0.0
216
+ * @category layers
217
+ */
218
+ exports.IAMServiceLayer = exports.BaseIAMServiceLayer.pipe(effect_1.Layer.provide(IAMClientInstance_1.IAMClientInstanceLayer));
219
+ /**
220
+ * @since 1.0.0
221
+ * @category layers
222
+ */
223
+ exports.DefaultIAMServiceLayer = exports.IAMServiceLayer.pipe(effect_1.Layer.provide(IAMClientInstanceConfig_1.DefaultIAMClientConfigLayer));
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQStkNkI7QUFFN0IsbUNBQXNFO0FBQ3RFLHFDQStCa0I7QUFDbEIsMkRBQWdGO0FBQ2hGLHVFQUF3RTtBQUV4RSxNQUFNLFFBQVEsR0FBRztJQUNmLHlDQUF5QyxFQUF6QyxzREFBeUM7SUFDekMsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsNEJBQTRCLEVBQTVCLHlDQUE0QjtJQUM1Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQiwwQkFBMEIsRUFBMUIsdUNBQTBCO0lBQzFCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6Qiw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHNDQUFzQyxFQUF0QyxtREFBc0M7SUFDdEMsaUJBQWlCLEVBQWpCLDhCQUFpQjtJQUNqQiw2QkFBNkIsRUFBN0IsMENBQTZCO0lBQzdCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLDRCQUE0QixFQUE1Qix5Q0FBNEI7SUFDNUIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6QixrQ0FBa0MsRUFBbEMsK0NBQWtDO0lBQ2xDLG1CQUFtQixFQUFuQixnQ0FBbUI7SUFDbkIsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLG9DQUFvQyxFQUFwQyxpREFBb0M7SUFDcEMsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5QixzQ0FBc0MsRUFBdEMsbURBQXNDO0lBQ3RDLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6QixpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLG9DQUFvQyxFQUFwQyxpREFBb0M7SUFDcEMsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qiw2QkFBNkIsRUFBN0IsMENBQTZCO0lBQzdCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQix3Q0FBd0MsRUFBeEMscURBQXdDO0lBQ3hDLHlDQUF5QyxFQUF6QyxzREFBeUM7SUFDekMsMkJBQTJCLEVBQTNCLHdDQUEyQjtJQUMzQixxQ0FBcUMsRUFBckMsa0RBQXFDO0lBQ3JDLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0Isd0JBQXdCLEVBQXhCLHFDQUF3QjtJQUN4QixvQ0FBb0MsRUFBcEMsaURBQW9DO0lBQ3BDLHVDQUF1QyxFQUF2QyxvREFBdUM7SUFDdkMsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixlQUFlLEVBQWYsNEJBQWU7SUFDZixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0QixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsbUNBQW1DLEVBQW5DLGdEQUFtQztJQUNuQyxnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsY0FBYyxFQUFkLDJCQUFjO0lBQ2Qsb0JBQW9CLEVBQXBCLGlDQUFvQjtJQUNwQixzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0Isb0NBQW9DLEVBQXBDLGlEQUFvQztJQUNwQyxnREFBZ0QsRUFBaEQsNkRBQWdEO0lBQ2hELHlDQUF5QyxFQUF6QyxzREFBeUM7SUFDekMsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0QixjQUFjLEVBQWQsMkJBQWM7SUFDZCxvQkFBb0IsRUFBcEIsaUNBQW9CO0lBQ3BCLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQiw0QkFBNEIsRUFBNUIseUNBQTRCO0lBQzVCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsaUJBQWlCLEVBQWpCLDhCQUFpQjtJQUNqQix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0Isa0NBQWtDLEVBQWxDLCtDQUFrQztJQUNsQyw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIsd0JBQXdCLEVBQXhCLHFDQUF3QjtJQUN4QixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLG9DQUFvQyxFQUFwQyxpREFBb0M7SUFDcEMsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQix3Q0FBd0MsRUFBeEMscURBQXdDO0lBQ3hDLHFCQUFxQixFQUFyQixrQ0FBcUI7SUFDckIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6Qix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLGdCQUFnQixFQUFoQiw2QkFBZ0I7SUFDaEIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IsNkJBQTZCLEVBQTdCLDBDQUE2QjtJQUM3QixnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLHFDQUFxQyxFQUFyQyxrREFBcUM7SUFDckMsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsZ0JBQWdCLEVBQWhCLDZCQUFnQjtJQUNoQixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLDRCQUE0QixFQUE1Qix5Q0FBNEI7SUFDNUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsaUNBQWlDLEVBQWpDLDhDQUFpQztJQUNqQyxvQkFBb0IsRUFBcEIsaUNBQW9CO0lBQ3BCLDhDQUE4QyxFQUE5QywyREFBOEM7SUFDOUMsb0NBQW9DLEVBQXBDLGlEQUFvQztJQUNwQywwQkFBMEIsRUFBMUIsdUNBQTBCO0lBQzFCLHFDQUFxQyxFQUFyQyxrREFBcUM7SUFDckMsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qiw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHlDQUF5QyxFQUF6QyxzREFBeUM7SUFDekMsMkJBQTJCLEVBQTNCLHdDQUEyQjtJQUMzQiw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQiwrQkFBK0IsRUFBL0IsNENBQStCO0lBQy9CLGdCQUFnQixFQUFoQiw2QkFBZ0I7SUFDaEIsY0FBYyxFQUFkLDJCQUFjO0lBQ2Qsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0QiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLGNBQWMsRUFBZCwyQkFBYztJQUNkLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsZ0JBQWdCLEVBQWhCLDZCQUFnQjtJQUNoQix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLDZCQUE2QixFQUE3QiwwQ0FBNkI7SUFDN0IsZ0JBQWdCLEVBQWhCLDZCQUFnQjtJQUNoQixzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsNkJBQTZCLEVBQTdCLDBDQUE2QjtJQUM3QixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsNENBQTRDLEVBQTVDLHlEQUE0QztJQUM1QyxpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLDRCQUE0QixFQUE1Qix5Q0FBNEI7SUFDNUIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6Qiw4QkFBOEIsRUFBOUIsMkNBQThCO0lBQzlCLHNDQUFzQyxFQUF0QyxtREFBc0M7SUFDdEMsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsNENBQStCO0lBQy9CLHlCQUF5QixFQUF6QixzQ0FBeUI7Q0FDMUIsQ0FBQztBQXU1RUY7OztHQUdHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsZ0JBQU8sQ0FBQyxHQUFHLENBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FDaEQsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQWlCLENBQUMsQ0FBQztJQUUzQyxPQUFPLHVCQUFjLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLE9BQVksRUFBRSxFQUFFLENBQzdDLGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDO1lBQzVELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxZQUFZLGdDQUFtQixFQUFFO29CQUNwQyxNQUFNLGdCQUFnQixHQUFHLGFBQUksQ0FBQyxNQUFNLENBRWxDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFVixPQUFPLGdCQUFnQixDQUFDO3dCQUN0QixHQUFHLENBQUM7d0JBQ0osT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRTtvQkFDdEIsT0FBTyxJQUFBLGlCQUFRLEVBQUM7d0JBQ2QsR0FBRyxDQUFDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdEUsVUFBVSxFQUNWLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBZSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFVLEVBQUUsc0JBQWMsQ0FBQyxDQUFDO0FBRTVFOzs7R0FHRztBQUNVLFFBQUEsZUFBZSxHQUFHLDJCQUFtQixDQUFDLElBQUksQ0FDckQsY0FBSyxDQUFDLE9BQU8sQ0FBQywwQ0FBc0IsQ0FBQyxDQUN0QyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyx1QkFBZSxDQUFDLElBQUksQ0FDeEQsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxREFBMkIsQ0FBQyxDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFNU2VydmljZUV4Y2VwdGlvbixcbiAgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQWRkVXNlclRvR3JvdXBDb21tYW5kLFxuICB0eXBlIEFkZFVzZXJUb0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFVzZXJUb0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQXR0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQ2hhbmdlUGFzc3dvcmRDb21tYW5kLFxuICB0eXBlIENoYW5nZVBhc3N3b3JkQ29tbWFuZElucHV0LFxuICB0eXBlIENoYW5nZVBhc3N3b3JkQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGV0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kLFxuICB0eXBlIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kLFxuICB0eXBlIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2V0R3JvdXBDb21tYW5kLFxuICB0eXBlIEdldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgR2V0R3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBHZXRNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0Um9sZUNvbW1hbmQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSb2xlQ29tbWFuZE91dHB1dCxcbiAgR2V0Um9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBHZXRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgR2V0VXNlckNvbW1hbmQsXG4gIHR5cGUgR2V0VXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVc2VyQ29tbWFuZE91dHB1dCxcbiAgR2V0VXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY2Vzc0tleXNDb21tYW5kLFxuICB0eXBlIExpc3RBY2Nlc3NLZXlzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY2Nlc3NLZXlzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1GQURldmljZXNDb21tYW5kLFxuICB0eXBlIExpc3RNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNRkFEZXZpY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljeVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY3lUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY3lUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9sZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJvbGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9sZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kLFxuICB0eXBlIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VXNlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFVzZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VXNlclRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZE91dHB1dCxcbiAgUHV0R3JvdXBQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgUHV0Um9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICB0eXBlIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgUHV0VXNlclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgdHlwZSBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBSZXN5bmNNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmQsXG4gIHR5cGUgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZE91dHB1dCxcbiAgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICB0eXBlIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBUYWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVGFnUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBUYWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVGFnUm9sZUNvbW1hbmQsXG4gIHR5cGUgVGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBUYWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVGFnVXNlckNvbW1hbmQsXG4gIHR5cGUgVGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIFVudGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVudGFnUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVW50YWdSb2xlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdVc2VyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlR3JvdXBDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUm9sZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1pYW1cIjtcbmltcG9ydCB7IHR5cGUgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCBSZWFkb25seVJlY29yZCwgRGF0YSB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydEV4cGlyZWRFcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFcnJvcixcbiAgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3IsXG4gIERlbGV0ZUNvbmZsaWN0RXJyb3IsXG4gIER1cGxpY2F0ZUNlcnRpZmljYXRlRXJyb3IsXG4gIER1cGxpY2F0ZVNTSFB1YmxpY0tleUVycm9yLFxuICBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3IsXG4gIElBTVNlcnZpY2VFcnJvcixcbiAgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yLFxuICBJbnZhbGlkQ2VydGlmaWNhdGVFcnJvcixcbiAgSW52YWxpZElucHV0RXJyb3IsXG4gIEludmFsaWRQdWJsaWNLZXlFcnJvcixcbiAgSW52YWxpZFVzZXJUeXBlRXJyb3IsXG4gIEtleVBhaXJNaXNtYXRjaEVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3IsXG4gIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3IsXG4gIE5vU3VjaEVudGl0eUVycm9yLFxuICBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yLFxuICBQb2xpY3lFdmFsdWF0aW9uRXJyb3IsXG4gIFBvbGljeU5vdEF0dGFjaGFibGVFcnJvcixcbiAgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gIFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxuICBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgVW5yZWNvZ25pemVkUHVibGljS2V5RW5jb2RpbmdFcnJvcixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBJQU1DbGllbnRJbnN0YW5jZSwgSUFNQ2xpZW50SW5zdGFuY2VMYXllciB9IGZyb20gXCIuL0lBTUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0SUFNQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9JQU1DbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIEFkZFVzZXJUb0dyb3VwQ29tbWFuZCxcbiAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgQXR0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIENoYW5nZVBhc3N3b3JkQ29tbWFuZCxcbiAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlR3JvdXBDb21tYW5kLFxuICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBDcmVhdGVQb2xpY3lDb21tYW5kLFxuICBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgQ3JlYXRlUm9sZUNvbW1hbmQsXG4gIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmQsXG4gIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZUdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kLFxuICBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlUm9sZUNvbW1hbmQsXG4gIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIERldGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZCxcbiAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZCxcbiAgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZCxcbiAgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kLFxuICBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIEdldEdyb3VwQ29tbWFuZCxcbiAgR2V0R3JvdXBQb2xpY3lDb21tYW5kLFxuICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBHZXRMb2dpblByb2ZpbGVDb21tYW5kLFxuICBHZXRNRkFEZXZpY2VDb21tYW5kLFxuICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIEdldFJvbGVDb21tYW5kLFxuICBHZXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZCxcbiAgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmQsXG4gIEdldFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIEdldFVzZXJDb21tYW5kLFxuICBHZXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgTGlzdEFjY2Vzc0tleXNDb21tYW5kLFxuICBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZCxcbiAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICBMaXN0R3JvdXBzQ29tbWFuZCxcbiAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZCxcbiAgTGlzdE1GQURldmljZXNDb21tYW5kLFxuICBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kLFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kLFxuICBMaXN0UG9saWN5VGFnc0NvbW1hbmQsXG4gIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RSb2xlUG9saWNpZXNDb21tYW5kLFxuICBMaXN0Um9sZXNDb21tYW5kLFxuICBMaXN0Um9sZVRhZ3NDb21tYW5kLFxuICBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmQsXG4gIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kLFxuICBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kLFxuICBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmQsXG4gIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZCxcbiAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RVc2Vyc0NvbW1hbmQsXG4gIExpc3RVc2VyVGFnc0NvbW1hbmQsXG4gIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmQsXG4gIFB1dEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBQdXRSb2xlUG9saWN5Q29tbWFuZCxcbiAgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBQdXRVc2VyUG9saWN5Q29tbWFuZCxcbiAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZCxcbiAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZCxcbiAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kLFxuICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZCxcbiAgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kLFxuICBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFRhZ01GQURldmljZUNvbW1hbmQsXG4gIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFRhZ1BvbGljeUNvbW1hbmQsXG4gIFRhZ1JvbGVDb21tYW5kLFxuICBUYWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFRhZ1VzZXJDb21tYW5kLFxuICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFVudGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBVbnRhZ1BvbGljeUNvbW1hbmQsXG4gIFVudGFnUm9sZUNvbW1hbmQsXG4gIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVudGFnVXNlckNvbW1hbmQsXG4gIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kLFxuICBVcGRhdGVHcm91cENvbW1hbmQsXG4gIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kLFxuICBVcGRhdGVSb2xlQ29tbWFuZCxcbiAgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZCxcbiAgVXBkYXRlVXNlckNvbW1hbmQsXG4gIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZCxcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCB0eXBlIElBTVNlcnZpY2UgPSB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFVzZXJUb0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGFkZFVzZXJUb0dyb3VwOiAoXG4gICAgYXJnczogQWRkVXNlclRvR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEFkZFVzZXJUb0dyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hSb2xlUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNoVXNlclBvbGljeTogKFxuICAgIGFyZ3M6IEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENoYW5nZVBhc3N3b3JkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVBhc3N3b3JkOiAoXG4gICAgYXJnczogQ2hhbmdlUGFzc3dvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlclR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWNjb3VudEFsaWFzOiAoXG4gICAgYXJnczogQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUdyb3VwOiAoXG4gICAgYXJnczogQ3JlYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUG9saWN5OiAoXG4gICAgYXJnczogQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVSb2xlOiAoXG4gICAgYXJnczogQ3JlYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlOiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgICBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVVzZXI6IChcbiAgICBhcmdzOiBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVmlydHVhbE1GQURldmljZTogKFxuICAgIGFyZ3M6IENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlYWN0aXZhdGVNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVBY2Nlc3NLZXk6IChcbiAgICBhcmdzOiBEZWxldGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRBbGlhczogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGU6IChcbiAgICBhcmdzOiBEZWxldGVSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBEZWxldGVSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlOiAoXG4gICAgYXJnczogRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVXNlcjogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVWaXJ0dWFsTUZBRGV2aWNlOiAoXG4gICAgYXJnczogRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IERldGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWNoUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hVc2VyUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERldGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZU1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBlbmFibGVNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBFbmFibGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydDogKFxuICAgIGFyZ3M6IEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0OiAoXG4gICAgYXJnczogR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgICBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsczogKFxuICAgIGFyZ3M6IEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY2Vzc0tleUxhc3RVc2VkOiAoXG4gICAgYXJnczogR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IsXG4gICAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHM6IChcbiAgICBhcmdzOiBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRTdW1tYXJ5OiAoXG4gICAgYXJnczogR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeTogKFxuICAgIGFyZ3M6IEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IsXG4gICAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5OiAoXG4gICAgYXJnczogR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENyZWRlbnRpYWxSZXBvcnQ6IChcbiAgICBhcmdzOiBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydEV4cGlyZWRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0R3JvdXA6IChcbiAgICBhcmdzOiBHZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0R3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBHZXRMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0TUZBRGV2aWNlOiAoXG4gICAgYXJnczogR2V0TUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydDogKFxuICAgIGFyZ3M6IEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0UG9saWN5OiAoXG4gICAgYXJnczogR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFJvbGU6IChcbiAgICBhcmdzOiBHZXRSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Um9sZVBvbGljeTogKFxuICAgIGFyZ3M6IEdldFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IEdldFNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllczogKFxuICAgIGFyZ3M6IEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogR2V0U1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG4gICAgR2V0U1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFVzZXI6IChcbiAgICBhcmdzOiBHZXRVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0VXNlclBvbGljeTogKFxuICAgIGFyZ3M6IEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0VXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY2Vzc0tleXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEFjY2Vzc0tleXM6IChcbiAgICBhcmdzOiBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QWNjZXNzS2V5c0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBY2NvdW50QWxpYXNlczogKFxuICAgIGFyZ3M6IExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QXR0YWNoZWRSb2xlUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEF0dGFjaGVkVXNlclBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RFbnRpdGllc0ZvclBvbGljeTogKFxuICAgIGFyZ3M6IExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RHcm91cFBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3VwczogKFxuICAgIGFyZ3M6IExpc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RHcm91cHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RHcm91cHNGb3JVc2VyOiAoXG4gICAgYXJnczogTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RJbnN0YW5jZVByb2ZpbGVzOiAoXG4gICAgYXJnczogTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlOiAoXG4gICAgYXJnczogTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1GQURldmljZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE1GQURldmljZXM6IChcbiAgICBhcmdzOiBMaXN0TUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0TUZBRGV2aWNlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE1GQURldmljZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnM6IChcbiAgICBhcmdzOiBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzOiAoXG4gICAgYXJnczogTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2VzczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWN5VGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWN5VGFnczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY3lUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY3lUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljeVZlcnNpb25zOiAoXG4gICAgYXJnczogTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZVBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFJvbGVzOiAoXG4gICAgYXJnczogTGlzdFJvbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0Um9sZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0Um9sZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFJvbGVUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U0FNTFByb3ZpZGVyczogKFxuICAgIGFyZ3M6IExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNBTUxQcm92aWRlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmVyQ2VydGlmaWNhdGVzOiAoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzOiAoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzOiAoXG4gICAgYXJnczogTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3IsXG4gICAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2lnbmluZ0NlcnRpZmljYXRlczogKFxuICAgIGFyZ3M6IExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U1NIUHVibGljS2V5czogKFxuICAgIGFyZ3M6IExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2VyUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RVc2VyczogKFxuICAgIGFyZ3M6IExpc3RVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFVzZXJzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJUYWdzOiAoXG4gICAgYXJnczogTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RVc2VyVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RWaXJ0dWFsTUZBRGV2aWNlczogKFxuICAgIGFyZ3M6IExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvcixcbiAgICBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogUHV0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFB1dEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBQdXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVVzZXJGcm9tR3JvdXA6IChcbiAgICBhcmdzOiBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXN5bmNNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzeW5jTUZBRGV2aWNlOiAoXG4gICAgYXJnczogUmVzeW5jTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzZXREZWZhdWx0UG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlczogKFxuICAgIGFyZ3M6IFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNpbXVsYXRlQ3VzdG9tUG9saWN5OiAoXG4gICAgYXJnczogU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IFBvbGljeUV2YWx1YXRpb25FcnJvcixcbiAgICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2ltdWxhdGVQcmluY2lwYWxQb2xpY3k6IChcbiAgICBhcmdzOiBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5RXZhbHVhdGlvbkVycm9yLFxuICAgIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBUYWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ01GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUG9saWN5OiAoXG4gICAgYXJnczogVGFnUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1JvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnUm9sZTogKFxuICAgIGFyZ3M6IFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1JvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1NBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBUYWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1VzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnVXNlcjogKFxuICAgIGFyZ3M6IFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1VzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBVbnRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ09wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnUG9saWN5OiAoXG4gICAgYXJnczogVW50YWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnUm9sZTogKFxuICAgIGFyZ3M6IFVudGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1NBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1VzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdVc2VyOiAoXG4gICAgYXJnczogVW50YWdVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ1VzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVBY2Nlc3NLZXk6IChcbiAgICBhcmdzOiBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFzc3VtZVJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlR3JvdXA6IChcbiAgICBhcmdzOiBVcGRhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnQ6IChcbiAgICBhcmdzOiBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlUm9sZTogKFxuICAgIGFyZ3M6IFVwZGF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVJvbGVEZXNjcmlwdGlvbjogKFxuICAgIGFyZ3M6IFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlVXNlcjogKFxuICAgIGFyZ3M6IFVwZGF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBLZXlQYWlyTWlzbWF0Y2hFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZFNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IER1cGxpY2F0ZVNTSFB1YmxpY0tleUVycm9yXG4gICAgfCBJbnZhbGlkUHVibGljS2V5RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG4gICAgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1TZXJ2aWNlID0gQ29udGV4dC5UYWc8SUFNU2VydmljZT4oXG4gIFN5bWJvbC5mb3IoXCJAZWZmZWN0LWF3cy9jbGllbnQtaWFtL0lBTVNlcnZpY2VcIiksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUlBTVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhJQU1DbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlYWRvbmx5UmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBJQU1TZXJ2aWNlRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxJQU1TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBJQU1TZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlSUFNU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KElBTVNlcnZpY2UsIG1ha2VJQU1TZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IElBTVNlcnZpY2VMYXllciA9IEJhc2VJQU1TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShJQU1DbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0SUFNU2VydmljZUxheWVyID0gSUFNU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import * as Data from "effect/Data";
2
+ export const IAMServiceError = Data.tagged("IAMServiceError");
3
+ export const SdkError = Data.tagged("SdkError");
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkEsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUM7QUFzRHBDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uLFxuICBDcmVkZW50aWFsUmVwb3J0RXhwaXJlZEV4Y2VwdGlvbixcbiAgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFeGNlcHRpb24sXG4gIENyZWRlbnRpYWxSZXBvcnROb3RSZWFkeUV4Y2VwdGlvbixcbiAgRGVsZXRlQ29uZmxpY3RFeGNlcHRpb24sXG4gIER1cGxpY2F0ZUNlcnRpZmljYXRlRXhjZXB0aW9uLFxuICBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFeGNlcHRpb24sXG4gIEVudGl0eUFscmVhZHlFeGlzdHNFeGNlcHRpb24sXG4gIEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXhjZXB0aW9uLFxuICBJQU1TZXJ2aWNlRXhjZXB0aW9uLFxuICBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXhjZXB0aW9uLFxuICBJbnZhbGlkQ2VydGlmaWNhdGVFeGNlcHRpb24sXG4gIEludmFsaWRJbnB1dEV4Y2VwdGlvbixcbiAgSW52YWxpZFB1YmxpY0tleUV4Y2VwdGlvbixcbiAgSW52YWxpZFVzZXJUeXBlRXhjZXB0aW9uLFxuICBLZXlQYWlyTWlzbWF0Y2hFeGNlcHRpb24sXG4gIExpbWl0RXhjZWVkZWRFeGNlcHRpb24sXG4gIE1hbGZvcm1lZENlcnRpZmljYXRlRXhjZXB0aW9uLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbixcbiAgTm9TdWNoRW50aXR5RXhjZXB0aW9uLFxuICBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkV4Y2VwdGlvbixcbiAgUG9saWN5RXZhbHVhdGlvbkV4Y2VwdGlvbixcbiAgUG9saWN5Tm90QXR0YWNoYWJsZUV4Y2VwdGlvbixcbiAgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFeGNlcHRpb24sXG4gIFNlcnZpY2VGYWlsdXJlRXhjZXB0aW9uLFxuICBTZXJ2aWNlTm90U3VwcG9ydGVkRXhjZXB0aW9uLFxuICBVbm1vZGlmaWFibGVFbnRpdHlFeGNlcHRpb24sXG4gIFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXhjZXB0aW9uLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWlhbVwiO1xuaW1wb3J0ICogYXMgRGF0YSBmcm9tIFwiZWZmZWN0L0RhdGFcIjtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IERhdGEuQ2FzZSAmXG4gIFQgJiB7IHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdIH07XG5cbmV4cG9ydCB0eXBlIEludmFsaWRJbnB1dEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRJbnB1dEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBMaW1pdEV4Y2VlZGVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248TGltaXRFeGNlZWRlZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBOb1N1Y2hFbnRpdHlFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxOb1N1Y2hFbnRpdHlFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgU2VydmljZUZhaWx1cmVFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxTZXJ2aWNlRmFpbHVyZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248RW50aXR5QWxyZWFkeUV4aXN0c0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBVbm1vZGlmaWFibGVFbnRpdHlFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxVbm1vZGlmaWFibGVFbnRpdHlFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFBvbGljeU5vdEF0dGFjaGFibGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkVXNlclR5cGVFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkVXNlclR5cGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxQYXNzd29yZFBvbGljeVZpb2xhdGlvbkV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTZXJ2aWNlTm90U3VwcG9ydGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIERlbGV0ZUNvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RGVsZXRlQ29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgUmVwb3J0R2VuZXJhdGlvbkxpbWl0RXhjZWVkZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxSZXBvcnRHZW5lcmF0aW9uTGltaXRFeGNlZWRlZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBDcmVkZW50aWFsUmVwb3J0RXhwaXJlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPENyZWRlbnRpYWxSZXBvcnRFeHBpcmVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENyZWRlbnRpYWxSZXBvcnROb3RQcmVzZW50RXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248VW5yZWNvZ25pemVkUHVibGljS2V5RW5jb2RpbmdFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgUG9saWN5RXZhbHVhdGlvbkVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFBvbGljeUV2YWx1YXRpb25FeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgS2V5UGFpck1pc21hdGNoRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248S2V5UGFpck1pc21hdGNoRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIE1hbGZvcm1lZENlcnRpZmljYXRlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248TWFsZm9ybWVkQ2VydGlmaWNhdGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgRHVwbGljYXRlQ2VydGlmaWNhdGVFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxEdXBsaWNhdGVDZXJ0aWZpY2F0ZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkQ2VydGlmaWNhdGVFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkQ2VydGlmaWNhdGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgRHVwbGljYXRlU1NIUHVibGljS2V5RXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248RHVwbGljYXRlU1NIUHVibGljS2V5RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRQdWJsaWNLZXlFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkUHVibGljS2V5RXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgSUFNU2VydmljZUVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFxuICBJQU1TZXJ2aWNlRXhjZXB0aW9uICYgeyBuYW1lOiBcIklBTVNlcnZpY2VFcnJvclwiIH1cbj47XG5leHBvcnQgY29uc3QgSUFNU2VydmljZUVycm9yID0gRGF0YS50YWdnZWQ8SUFNU2VydmljZUVycm9yPihcIklBTVNlcnZpY2VFcnJvclwiKTtcbmV4cG9ydCB0eXBlIFNka0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEVycm9yICYgeyBuYW1lOiBcIlNka0Vycm9yXCIgfT47XG5leHBvcnQgY29uc3QgU2RrRXJyb3IgPSBEYXRhLnRhZ2dlZDxTZGtFcnJvcj4oXCJTZGtFcnJvclwiKTtcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { IAMClient } from "@aws-sdk/client-iam";
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import { DefaultIAMClientConfigLayer, IAMClientInstanceConfig, } from "./IAMClientInstanceConfig";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category tags
9
+ */
10
+ export const IAMClientInstance = Context.Tag(Symbol.for("@effect-aws/client-iam/IAMClientInstance"));
11
+ /**
12
+ * @since 1.0.0
13
+ * @category constructors
14
+ */
15
+ export const makeIAMClientInstance = Effect.map(IAMClientInstanceConfig, (config) => new IAMClient(config));
16
+ /**
17
+ * @since 1.0.0
18
+ * @category layers
19
+ */
20
+ export const IAMClientInstanceLayer = Layer.effect(IAMClientInstance, makeIAMClientInstance);
21
+ /**
22
+ * @since 1.0.0
23
+ * @category layers
24
+ */
25
+ export const DefaultIAMClientInstanceLayer = IAMClientInstanceLayer.pipe(Layer.provide(DefaultIAMClientConfigLayer));
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSUFNQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix1QkFBdUIsR0FDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQVVuQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQ3ZELENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUM3Qyx1QkFBdUIsRUFDdkIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUNsQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDaEQsaUJBQWlCLEVBQ2pCLHFCQUFxQixDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUN0RSxLQUFLLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQU1DbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWlhbVwiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyLFxuICBJQU1DbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCB0eXBlIElBTUNsaWVudEluc3RhbmNlID0ge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1DbGllbnRJbnN0YW5jZSA9IENvbnRleHQuVGFnPElBTUNsaWVudEluc3RhbmNlLCBJQU1DbGllbnQ+KFxuICBTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWlhbS9JQU1DbGllbnRJbnN0YW5jZVwiKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlSUFNQ2xpZW50SW5zdGFuY2UgPSBFZmZlY3QubWFwKFxuICBJQU1DbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IElBTUNsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IElBTUNsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIElBTUNsaWVudEluc3RhbmNlLFxuICBtYWtlSUFNQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdElBTUNsaWVudEluc3RhbmNlTGF5ZXIgPSBJQU1DbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Runtime from "effect/Runtime";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category tags
8
+ */
9
+ export const IAMClientInstanceConfig = Context.Tag(Symbol.for("@effect-aws/client-iam/IAMClientInstanceConfig"));
10
+ /**
11
+ * @since 1.0.0
12
+ * @category constructors
13
+ */
14
+ export const makeDefaultIAMClientInstanceConfig = Effect.gen(function* (_) {
15
+ const runtime = yield* _(Effect.runtime());
16
+ const runSync = Runtime.runSync(runtime);
17
+ return {
18
+ logger: {
19
+ info(m) {
20
+ Effect.logInfo(m).pipe(runSync);
21
+ },
22
+ warn(m) {
23
+ Effect.logWarning(m).pipe(runSync);
24
+ },
25
+ error(m) {
26
+ Effect.logError(m).pipe(runSync);
27
+ },
28
+ debug(m) {
29
+ Effect.logDebug(m).pipe(runSync);
30
+ },
31
+ trace(m) {
32
+ Effect.logTrace(m).pipe(runSync);
33
+ },
34
+ },
35
+ };
36
+ });
37
+ /**
38
+ * @since 1.0.0
39
+ * @category layers
40
+ */
41
+ export const DefaultIAMClientConfigLayer = Layer.effect(IAMClientInstanceConfig, makeDefaultIAMClientInstanceConfig);
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSUFNQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBVTFDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBR2hELE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxDQUFDO0FBRWhFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUkzQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNyRCx1QkFBdUIsRUFDdkIsa0NBQWtDLENBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElBTUNsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtaWFtXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQU1DbGllbnRJbnN0YW5jZUNvbmZpZyB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgSUFNQ2xpZW50SW5zdGFuY2VDb25maWcgPSBDb250ZXh0LlRhZzxcbiAgSUFNQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIElBTUNsaWVudENvbmZpZ1xuPihTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWlhbS9JQU1DbGllbnRJbnN0YW5jZUNvbmZpZ1wiKSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVmYXVsdElBTUNsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PFxuICBuZXZlcixcbiAgbmV2ZXIsXG4gIElBTUNsaWVudENvbmZpZ1xuPiA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IHJ1bnRpbWUgPSB5aWVsZCogXyhFZmZlY3QucnVudGltZTxuZXZlcj4oKSk7XG4gIGNvbnN0IHJ1blN5bmMgPSBSdW50aW1lLnJ1blN5bmMocnVudGltZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dnZXI6IHtcbiAgICAgIGluZm8obSkge1xuICAgICAgICBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgfSxcbiAgICAgIHdhcm4obSkge1xuICAgICAgICBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgfSxcbiAgICAgIGVycm9yKG0pIHtcbiAgICAgICAgRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICB9LFxuICAgICAgZGVidWcobSkge1xuICAgICAgICBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKTtcbiAgICAgIH0sXG4gICAgICB0cmFjZShtKSB7XG4gICAgICAgIEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0SUFNQ2xpZW50Q29uZmlnTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIElBTUNsaWVudEluc3RhbmNlQ29uZmlnLFxuICBtYWtlRGVmYXVsdElBTUNsaWVudEluc3RhbmNlQ29uZmlnLFxuKTtcbiJdfQ==