@effect-aws/client-iam 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +82 -1
- package/lib/Errors.d.ts +4 -6
- package/lib/Errors.js +34 -28
- package/lib/IAMClientInstanceConfig.d.ts +1 -3
- package/lib/IAMClientInstanceConfig.js +12 -38
- package/lib/IAMService.d.ts +338 -170
- package/lib/IAMService.js +12 -6
- package/lib/esm/Errors.js +32 -3
- package/lib/esm/IAMClientInstanceConfig.js +2 -5
- package/lib/esm/IAMService.js +12 -7
- package/package.json +12 -14
- package/vitest.config.ts +3 -0
package/lib/esm/IAMService.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import { IAMServiceException, AddClientIDToOpenIDConnectProviderCommand, AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachRolePolicyCommand, AttachUserPolicyCommand, ChangePasswordCommand, CreateAccessKeyCommand, CreateAccountAliasCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreateOpenIDConnectProviderCommand, CreatePolicyCommand, CreatePolicyVersionCommand, CreateRoleCommand, CreateSAMLProviderCommand, CreateServiceLinkedRoleCommand, CreateServiceSpecificCredentialCommand, CreateUserCommand, CreateVirtualMFADeviceCommand, DeactivateMFADeviceCommand, DeleteAccessKeyCommand, DeleteAccountAliasCommand, DeleteAccountPasswordPolicyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeleteOpenIDConnectProviderCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DeleteRoleCommand, DeleteRolePermissionsBoundaryCommand, DeleteRolePolicyCommand, DeleteSAMLProviderCommand, DeleteServerCertificateCommand, DeleteServiceLinkedRoleCommand, DeleteServiceSpecificCredentialCommand, DeleteSigningCertificateCommand, DeleteSSHPublicKeyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DeleteVirtualMFADeviceCommand, DetachGroupPolicyCommand, DetachRolePolicyCommand, DetachUserPolicyCommand, EnableMFADeviceCommand, GenerateCredentialReportCommand, GenerateOrganizationsAccessReportCommand, GenerateServiceLastAccessedDetailsCommand, GetAccessKeyLastUsedCommand, GetAccountAuthorizationDetailsCommand, GetAccountPasswordPolicyCommand, GetAccountSummaryCommand, GetContextKeysForCustomPolicyCommand, GetContextKeysForPrincipalPolicyCommand, GetCredentialReportCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetLoginProfileCommand, GetMFADeviceCommand, GetOpenIDConnectProviderCommand, GetOrganizationsAccessReportCommand, GetPolicyCommand, GetPolicyVersionCommand, GetRoleCommand, GetRolePolicyCommand, GetSAMLProviderCommand, GetServerCertificateCommand, GetServiceLastAccessedDetailsCommand, GetServiceLastAccessedDetailsWithEntitiesCommand, GetServiceLinkedRoleDeletionStatusCommand, GetSSHPublicKeyCommand, GetUserCommand, GetUserPolicyCommand, ListAccessKeysCommand, ListAccountAliasesCommand, ListAttachedGroupPoliciesCommand, ListAttachedRolePoliciesCommand, ListAttachedUserPoliciesCommand, ListEntitiesForPolicyCommand, ListGroupPoliciesCommand, ListGroupsCommand, ListGroupsForUserCommand, ListInstanceProfilesCommand, ListInstanceProfilesForRoleCommand, ListInstanceProfileTagsCommand, ListMFADevicesCommand, ListMFADeviceTagsCommand, ListOpenIDConnectProvidersCommand, ListOpenIDConnectProviderTagsCommand, ListPoliciesCommand, ListPoliciesGrantingServiceAccessCommand, ListPolicyTagsCommand, ListPolicyVersionsCommand, ListRolePoliciesCommand, ListRolesCommand, ListRoleTagsCommand, ListSAMLProvidersCommand, ListSAMLProviderTagsCommand, ListServerCertificatesCommand, ListServerCertificateTagsCommand, ListServiceSpecificCredentialsCommand, ListSigningCertificatesCommand, ListSSHPublicKeysCommand, ListUserPoliciesCommand, ListUsersCommand, ListUserTagsCommand, ListVirtualMFADevicesCommand, PutGroupPolicyCommand, PutRolePermissionsBoundaryCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveClientIDFromOpenIDConnectProviderCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, ResetServiceSpecificCredentialCommand, ResyncMFADeviceCommand, SetDefaultPolicyVersionCommand, SetSecurityTokenServicePreferencesCommand, SimulateCustomPolicyCommand, SimulatePrincipalPolicyCommand, TagInstanceProfileCommand, TagMFADeviceCommand, TagOpenIDConnectProviderCommand, TagPolicyCommand, TagRoleCommand, TagSAMLProviderCommand, TagServerCertificateCommand, TagUserCommand, UntagInstanceProfileCommand, UntagMFADeviceCommand, UntagOpenIDConnectProviderCommand, UntagPolicyCommand, UntagRoleCommand, UntagSAMLProviderCommand, UntagServerCertificateCommand, UntagUserCommand, UpdateAccessKeyCommand, UpdateAccountPasswordPolicyCommand, UpdateAssumeRolePolicyCommand, UpdateGroupCommand, UpdateLoginProfileCommand, UpdateOpenIDConnectProviderThumbprintCommand, UpdateRoleCommand, UpdateRoleDescriptionCommand, UpdateSAMLProviderCommand, UpdateServerCertificateCommand, UpdateServiceSpecificCredentialCommand, UpdateSigningCertificateCommand, UpdateSSHPublicKeyCommand, UpdateUserCommand, UploadServerCertificateCommand, UploadSigningCertificateCommand, UploadSSHPublicKeyCommand, } from "@aws-sdk/client-iam";
|
|
5
|
-
import {
|
|
6
|
-
import { SdkError, } from "./Errors";
|
|
5
|
+
import { Data, Effect, Layer, Record } from "effect";
|
|
6
|
+
import { AllServiceErrors, SdkError, } from "./Errors";
|
|
7
7
|
import { IAMClientInstance, IAMClientInstanceLayer } from "./IAMClientInstance";
|
|
8
8
|
import { DefaultIAMClientConfigLayer } from "./IAMClientInstanceConfig";
|
|
9
9
|
const commands = {
|
|
@@ -169,9 +169,10 @@ const commands = {
|
|
|
169
169
|
};
|
|
170
170
|
/**
|
|
171
171
|
* @since 1.0.0
|
|
172
|
-
* @category
|
|
172
|
+
* @category models
|
|
173
173
|
*/
|
|
174
|
-
export
|
|
174
|
+
export class IAMService extends Effect.Tag("@effect-aws/client-iam/IAMService")() {
|
|
175
|
+
}
|
|
175
176
|
/**
|
|
176
177
|
* @since 1.0.0
|
|
177
178
|
* @category constructors
|
|
@@ -181,9 +182,13 @@ export const makeIAMService = Effect.gen(function* (_) {
|
|
|
181
182
|
return Record.toEntries(commands).reduce((acc, [command]) => {
|
|
182
183
|
const CommandCtor = commands[command];
|
|
183
184
|
const methodImpl = (args, options) => Effect.tryPromise({
|
|
184
|
-
try: () => client.send(new CommandCtor(args),
|
|
185
|
+
try: (abortSignal) => client.send(new CommandCtor(args), {
|
|
186
|
+
...(options !== null && options !== void 0 ? options : {}),
|
|
187
|
+
abortSignal,
|
|
188
|
+
}),
|
|
185
189
|
catch: (e) => {
|
|
186
|
-
if (e instanceof IAMServiceException
|
|
190
|
+
if (e instanceof IAMServiceException &&
|
|
191
|
+
AllServiceErrors.includes(e.name)) {
|
|
187
192
|
const ServiceException = Data.tagged(e.name);
|
|
188
193
|
return ServiceException({
|
|
189
194
|
...e,
|
|
@@ -221,4 +226,4 @@ export const IAMServiceLayer = BaseIAMServiceLayer.pipe(Layer.provide(IAMClientI
|
|
|
221
226
|
* @category layers
|
|
222
227
|
*/
|
|
223
228
|
export const DefaultIAMServiceLayer = IAMServiceLayer.pipe(Layer.provide(DefaultIAMClientConfigLayer));
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix5Q0FBeUMsRUFHekMsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixxQkFBcUIsRUFHckIsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUd6QixrQkFBa0IsRUFHbEIsNEJBQTRCLEVBRzVCLHlCQUF5QixFQUd6QixrQ0FBa0MsRUFHbEMsbUJBQW1CLEVBR25CLDBCQUEwQixFQUcxQixpQkFBaUIsRUFHakIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixzQ0FBc0MsRUFHdEMsaUJBQWlCLEVBR2pCLDZCQUE2QixFQUc3QiwwQkFBMEIsRUFHMUIsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUd6QixrQ0FBa0MsRUFHbEMsa0JBQWtCLEVBR2xCLHdCQUF3QixFQUd4Qiw0QkFBNEIsRUFHNUIseUJBQXlCLEVBR3pCLGtDQUFrQyxFQUdsQyxtQkFBbUIsRUFHbkIsMEJBQTBCLEVBRzFCLGlCQUFpQixFQUdqQixvQ0FBb0MsRUFHcEMsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6Qiw4QkFBOEIsRUFHOUIsOEJBQThCLEVBRzlCLHNDQUFzQyxFQUd0QywrQkFBK0IsRUFHL0IseUJBQXlCLEVBR3pCLGlCQUFpQixFQUdqQixvQ0FBb0MsRUFHcEMsdUJBQXVCLEVBR3ZCLDZCQUE2QixFQUc3Qix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsK0JBQStCLEVBRy9CLHdDQUF3QyxFQUd4Qyx5Q0FBeUMsRUFHekMsMkJBQTJCLEVBRzNCLHFDQUFxQyxFQUdyQywrQkFBK0IsRUFHL0Isd0JBQXdCLEVBR3hCLG9DQUFvQyxFQUdwQyx1Q0FBdUMs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RSxDQUFDO29CQUN2QixPQUFPLFFBQVEsQ0FBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWUsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRTVFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIElBTVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFVzZXJUb0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENoYW5nZVBhc3N3b3JkQ29tbWFuZCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEVuYWJsZU1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0TG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgR2V0TUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIEdldFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVDb21tYW5kLFxuICB0eXBlIEdldFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgR2V0U1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJDb21tYW5kLFxuICB0eXBlIEdldFVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlckNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2Nlc3NLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2Vyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2VyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFJlc3luY01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3luY01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kLFxuICB0eXBlIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgVGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1BvbGljeUNvbW1hbmQsXG4gIHR5cGUgVGFnUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1JvbGVDb21tYW5kLFxuICB0eXBlIFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1VzZXJDb21tYW5kLFxuICB0eXBlIFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUm9sZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnVXNlckNvbW1hbmQsXG4gIHR5cGUgVW50YWdVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUmVjb3JkLCBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgSUFNU2VydmljZUVycm9yLFxuICBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnRFeHBpcmVkRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RQcmVzZW50RXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RSZWFkeUVycm9yLFxuICBEZWxldGVDb25mbGljdEVycm9yLFxuICBEdXBsaWNhdGVDZXJ0aWZpY2F0ZUVycm9yLFxuICBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFcnJvcixcbiAgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yLFxuICBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yLFxuICBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3IsXG4gIEludmFsaWRDZXJ0aWZpY2F0ZUVycm9yLFxuICBJbnZhbGlkSW5wdXRFcnJvcixcbiAgSW52YWxpZFB1YmxpY0tleUVycm9yLFxuICBJbnZhbGlkVXNlclR5cGVFcnJvcixcbiAgS2V5UGFpck1pc21hdGNoRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvcixcbiAgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvcixcbiAgTm9TdWNoRW50aXR5RXJyb3IsXG4gIFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3IsXG4gIFBvbGljeUV2YWx1YXRpb25FcnJvcixcbiAgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yLFxuICBSZXBvcnRHZW5lcmF0aW9uTGltaXRFeGNlZWRlZEVycm9yLFxuICBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3IsXG4gIFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IElBTUNsaWVudEluc3RhbmNlLCBJQU1DbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRJQU1DbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0lBTUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgQWRkVXNlclRvR3JvdXBDb21tYW5kLFxuICBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmQsXG4gIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZCxcbiAgQ2hhbmdlUGFzc3dvcmRDb21tYW5kLFxuICBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICBDcmVhdGVHcm91cENvbW1hbmQsXG4gIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICBDcmVhdGVSb2xlQ29tbWFuZCxcbiAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlR3JvdXBDb21tYW5kLFxuICBEZWxldGVHcm91cFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICBEZWxldGVSb2xlQ29tbWFuZCxcbiAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBEZWxldGVSb2xlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kLFxuICBEZWxldGVVc2VyUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIERldGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICBFbmFibGVNRkFEZXZpY2VDb21tYW5kLFxuICBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kLFxuICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kLFxuICBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmQsXG4gIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZCxcbiAgR2V0R3JvdXBDb21tYW5kLFxuICBHZXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIEdldExvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIEdldE1GQURldmljZUNvbW1hbmQsXG4gIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgR2V0Um9sZUNvbW1hbmQsXG4gIEdldFJvbGVQb2xpY3lDb21tYW5kLFxuICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZCxcbiAgR2V0U1NIUHVibGljS2V5Q29tbWFuZCxcbiAgR2V0VXNlckNvbW1hbmQsXG4gIEdldFVzZXJQb2xpY3lDb21tYW5kLFxuICBMaXN0QWNjZXNzS2V5c0NvbW1hbmQsXG4gIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kLFxuICBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kLFxuICBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kLFxuICBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RHcm91cHNDb21tYW5kLFxuICBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kLFxuICBMaXN0TUZBRGV2aWNlc0NvbW1hbmQsXG4gIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZCxcbiAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kLFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIExpc3RQb2xpY3lUYWdzQ29tbWFuZCxcbiAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RSb2xlc0NvbW1hbmQsXG4gIExpc3RSb2xlVGFnc0NvbW1hbmQsXG4gIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZCxcbiAgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kLFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmQsXG4gIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmQsXG4gIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kLFxuICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFVzZXJzQ29tbWFuZCxcbiAgTGlzdFVzZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZCxcbiAgUHV0R3JvdXBQb2xpY3lDb21tYW5kLFxuICBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIFB1dFJvbGVQb2xpY3lDb21tYW5kLFxuICBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIFB1dFVzZXJQb2xpY3lDb21tYW5kLFxuICBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kLFxuICBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBSZXN5bmNNRkFEZXZpY2VDb21tYW5kLFxuICBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kLFxuICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmQsXG4gIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgVGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgVGFnUG9saWN5Q29tbWFuZCxcbiAgVGFnUm9sZUNvbW1hbmQsXG4gIFRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVGFnVXNlckNvbW1hbmQsXG4gIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgVW50YWdNRkFEZXZpY2VDb21tYW5kLFxuICBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFVudGFnUG9saWN5Q29tbWFuZCxcbiAgVW50YWdSb2xlQ29tbWFuZCxcbiAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVW50YWdVc2VyQ29tbWFuZCxcbiAgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZCxcbiAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZCxcbiAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmQsXG4gIFVwZGF0ZUdyb3VwQ29tbWFuZCxcbiAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmQsXG4gIFVwZGF0ZVJvbGVDb21tYW5kLFxuICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kLFxuICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBVcGRhdGVVc2VyQ29tbWFuZCxcbiAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kLFxufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IHR5cGUgSUFNU2VydmljZSA9IHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVXNlclRvR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkVXNlclRvR3JvdXA6IChcbiAgICBhcmdzOiBBZGRVc2VyVG9Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRVc2VyVG9Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdHRhY2hVc2VyUG9saWN5OiAoXG4gICAgYXJnczogQXR0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2hhbmdlUGFzc3dvcmRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlUGFzc3dvcmQ6IChcbiAgICBhcmdzOiBDaGFuZ2VQYXNzd29yZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlclR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWNjZXNzS2V5OiAoXG4gICAgYXJnczogQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBY2NvdW50QWxpYXM6IChcbiAgICBhcmdzOiBDcmVhdGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVQb2xpY3k6IChcbiAgICBhcmdzOiBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJvbGU6IChcbiAgICBhcmdzOiBDcmVhdGVSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmljZUxpbmtlZFJvbGU6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVXNlcjogKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVWaXJ0dWFsTUZBRGV2aWNlOiAoXG4gICAgYXJnczogQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhY3RpdmF0ZU1GQURldmljZTogKFxuICAgIGFyZ3M6IERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudEFsaWFzOiAoXG4gICAgYXJnczogRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUxvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUm9sZTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmljZUxpbmtlZFJvbGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlOiAoXG4gICAgYXJnczogRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyOiAoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVZpcnR1YWxNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRldGFjaEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXRhY2hSb2xlUG9saWN5OiAoXG4gICAgYXJnczogRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRldGFjaFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERldGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU1GQURldmljZTogKFxuICAgIGFyZ3M6IEVuYWJsZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0OiAoXG4gICAgYXJnczogR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnQ6IChcbiAgICBhcmdzOiBHZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFJlcG9ydEdlbmVyYXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzOiAoXG4gICAgYXJnczogR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjZXNzS2V5TGFzdFVzZWQ6IChcbiAgICBhcmdzOiBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsczogKFxuICAgIGFyZ3M6IEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjb3VudFBhc3N3b3JkUG9saWN5OiAoXG4gICAgYXJnczogR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjb3VudFN1bW1hcnk6IChcbiAgICBhcmdzOiBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5OiAoXG4gICAgYXJnczogR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Q3JlZGVudGlhbFJlcG9ydDogKFxuICAgIGFyZ3M6IEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0RXhwaXJlZEVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0Tm90UHJlc2VudEVycm9yXG4gICAgfCBDcmVkZW50aWFsUmVwb3J0Tm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRHcm91cDogKFxuICAgIGFyZ3M6IEdldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IEdldEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0SW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldExvZ2luUHJvZmlsZTogKFxuICAgIGFyZ3M6IEdldExvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBHZXRNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0OiAoXG4gICAgYXJnczogR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Um9sZTogKFxuICAgIGFyZ3M6IEdldFJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Um9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRSb2xlUG9saWN5OiAoXG4gICAgYXJnczogR2V0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogR2V0U0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHM6IChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzOiAoXG4gICAgYXJnczogR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXM6IChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBHZXRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0U1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0VXNlcjogKFxuICAgIGFyZ3M6IEdldFVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXNlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRVc2VyUG9saWN5OiAoXG4gICAgYXJnczogR2V0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjZXNzS2V5c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QWNjZXNzS2V5czogKFxuICAgIGFyZ3M6IExpc3RBY2Nlc3NLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2Nlc3NLZXlzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEFjY291bnRBbGlhc2VzOiAoXG4gICAgYXJnczogTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBdHRhY2hlZFJvbGVQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QXR0YWNoZWRVc2VyUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEVudGl0aWVzRm9yUG9saWN5OiAoXG4gICAgYXJnczogTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3VwUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3VwUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0R3JvdXBzOiAoXG4gICAgYXJnczogTGlzdEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEdyb3Vwc0ZvclVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEdyb3Vwc0ZvclVzZXI6IChcbiAgICBhcmdzOiBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEluc3RhbmNlUHJvZmlsZXM6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGU6IChcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0SW5zdGFuY2VQcm9maWxlVGFnczogKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TUZBRGV2aWNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0TUZBRGV2aWNlczogKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNRkFEZXZpY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0TUZBRGV2aWNlVGFnczogKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyczogKFxuICAgIGFyZ3M6IExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzOiAoXG4gICAgYXJnczogTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY3lUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY3lUYWdzOiAoXG4gICAgYXJnczogTGlzdFBvbGljeVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljeVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWN5VmVyc2lvbnM6IChcbiAgICBhcmdzOiBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RSb2xlUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RSb2xlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0Um9sZXM6IChcbiAgICBhcmdzOiBMaXN0Um9sZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFJvbGVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RSb2xlVGFnczogKFxuICAgIGFyZ3M6IExpc3RSb2xlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Um9sZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTQU1MUHJvdmlkZXJzOiAoXG4gICAgYXJnczogTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U0FNTFByb3ZpZGVyVGFnczogKFxuICAgIGFyZ3M6IExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXM6IChcbiAgICBhcmdzOiBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHM6IChcbiAgICBhcmdzOiBMaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTaWduaW5nQ2VydGlmaWNhdGVzOiAoXG4gICAgYXJnczogTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTU0hQdWJsaWNLZXlzOiAoXG4gICAgYXJnczogTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VXNlclBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVzZXJzOiAoXG4gICAgYXJnczogTGlzdFVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2VyVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VXNlclRhZ3M6IChcbiAgICBhcmdzOiBMaXN0VXNlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFVzZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFZpcnR1YWxNRkFEZXZpY2VzOiAoXG4gICAgYXJnczogTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0R3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBQdXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0Um9sZVBvbGljeTogKFxuICAgIGFyZ3M6IFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeTogKFxuICAgIGFyZ3M6IFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0VXNlclBvbGljeTogKFxuICAgIGFyZ3M6IFB1dFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlVXNlckZyb21Hcm91cDogKFxuICAgIGFyZ3M6IFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3luY01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXN5bmNNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBSZXN5bmNNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNldERlZmF1bHRQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzOiAoXG4gICAgYXJnczogU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2ltdWxhdGVDdXN0b21Qb2xpY3k6IChcbiAgICBhcmdzOiBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IFBvbGljeUV2YWx1YXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzaW11bGF0ZVByaW5jaXBhbFBvbGljeTogKFxuICAgIGFyZ3M6IFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5RXZhbHVhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ01GQURldmljZTogKFxuICAgIGFyZ3M6IFRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1BvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdQb2xpY3k6IChcbiAgICBhcmdzOiBUYWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdSb2xlOiAoXG4gICAgYXJnczogVGFnUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1NBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdVc2VyOiAoXG4gICAgYXJnczogVGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ01GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ01GQURldmljZTogKFxuICAgIGFyZ3M6IFVudGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyOiAoXG4gICAgYXJnczogVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdQb2xpY3k6IChcbiAgICBhcmdzOiBVbnRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1JvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdSb2xlOiAoXG4gICAgYXJnczogVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1NlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1VzZXI6IChcbiAgICBhcmdzOiBVbnRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUFjY2Vzc0tleTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5OiAoXG4gICAgYXJnczogVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlQXNzdW1lUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVHcm91cDogKFxuICAgIGFyZ3M6IFVwZGF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlTG9naW5Qcm9maWxlOiAoXG4gICAgYXJnczogVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludDogKFxuICAgIGFyZ3M6IFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVSb2xlOiAoXG4gICAgYXJnczogVXBkYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVSb2xlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlUm9sZURlc2NyaXB0aW9uOiAoXG4gICAgYXJnczogVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNBTUxQcm92aWRlcjogKFxuICAgIGFyZ3M6IFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTaWduaW5nQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVVc2VyOiAoXG4gICAgYXJnczogVXBkYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZFNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBLZXlQYWlyTWlzbWF0Y2hFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRTaWduaW5nQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkU1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFcnJvclxuICAgIHwgSW52YWxpZFB1YmxpY0tleUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yXG4gID47XG59O1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IElBTVNlcnZpY2UgPSBDb250ZXh0LkdlbmVyaWNUYWc8SUFNU2VydmljZT4oXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWlhbS9JQU1TZXJ2aWNlXCIsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUlBTVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhJQU1DbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9uczogYW55KSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6ICgpID0+IGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwgb3B0aW9ucyA/PyB7fSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgSUFNU2VydmljZUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248SUFNU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgSUFNU2VydmljZTtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUlBTVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChJQU1TZXJ2aWNlLCBtYWtlSUFNU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1TZXJ2aWNlTGF5ZXIgPSBCYXNlSUFNU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoSUFNQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdElBTVNlcnZpY2VMYXllciA9IElBTVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRJQU1DbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix5Q0FBeUMsRUFHekMsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixxQkFBcUIsRUFHckIsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUd6QixrQkFBa0IsRUFHbEIsNEJBQTRCLEVBRzVCLHlCQUF5QixFQUd6QixrQ0FBa0MsRUFHbEMsbUJBQW1CLEVBR25CLDBCQUEwQixFQUcxQixpQkFBaUIsRUFHakIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixzQ0FBc0MsRUFHdEMsaUJBQWlCLEVBR2pCLDZCQUE2QixFQUc3QiwwQkFBMEIsRUFHMUIsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUd6QixrQ0FBa0MsRUFHbEMsa0JBQWtCLEVBR2xCLHdCQUF3QixFQUd4Qiw0QkFBNEIsRUFHNUIseUJBQXlCLEVBR3pCLGtDQUFrQyxFQUdsQyxtQkFBbUIsRUFHbkIsMEJBQTBCLEVBRzFCLGlCQUFpQixFQUdqQixvQ0FBb0MsRUFHcEMsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6Qiw4QkFBOEIsRUFHOUIsOEJBQThCLEVBRzlCLHNDQUFzQyxFQUd0QywrQkFBK0IsRUFHL0IseUJBQXlCLEVBR3pCLGlCQUFpQixFQUdqQixvQ0FBb0MsRUFHcEMsdUJBQXVCLEVBR3ZCLDZCQUE2QixFQUc3Qix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsK0JBQStCLEVBRy9CLHdDQUF3QyxFQUd4Qyx5Q0FBeUMsRUFHekMsMkJBQTJCLEVBRzNCLHFDQUFxQyxFQUdyQywrQkFBK0IsRUFHL0Isd0JBQXdCLEVBR3hCLG9DQUFvQyxFQUdwQyx1Q0FBdUMs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bmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIElBTVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFVzZXJUb0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENoYW5nZVBhc3N3b3JkQ29tbWFuZCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEVuYWJsZU1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0TG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgR2V0TUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIEdldFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVDb21tYW5kLFxuICB0eXBlIEdldFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgR2V0U1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJDb21tYW5kLFxuICB0eXBlIEdldFVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlckNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2Nlc3NLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2Vyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2VyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFJlc3luY01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3luY01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kLFxuICB0eXBlIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgVGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1BvbGljeUNvbW1hbmQsXG4gIHR5cGUgVGFnUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1JvbGVDb21tYW5kLFxuICB0eXBlIFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1VzZXJDb21tYW5kLFxuICB0eXBlIFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUm9sZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnVXNlckNvbW1hbmQsXG4gIHR5cGUgVW50YWdVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtaWFtXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnRFeHBpcmVkRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RQcmVzZW50RXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RSZWFkeUVycm9yLFxuICBEZWxldGVDb25mbGljdEVycm9yLFxuICBEdXBsaWNhdGVDZXJ0aWZpY2F0ZUVycm9yLFxuICBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFcnJvcixcbiAgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yLFxuICBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yLFxuICBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3IsXG4gIEludmFsaWRDZXJ0aWZpY2F0ZUVycm9yLFxuICBJbnZhbGlkSW5wdXRFcnJvcixcbiAgSW52YWxpZFB1YmxpY0tleUVycm9yLFxuICBJbnZhbGlkVXNlclR5cGVFcnJvcixcbiAgS2V5UGFpck1pc21hdGNoRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvcixcbiAgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvcixcbiAgTm9TdWNoRW50aXR5RXJyb3IsXG4gIE9wZW5JZElkcENvbW11bmljYXRpb25FcnJvcixcbiAgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvcixcbiAgUG9saWN5RXZhbHVhdGlvbkVycm9yLFxuICBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3IsXG4gIFJlcG9ydEdlbmVyYXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gIFNlcnZpY2VOb3RTdXBwb3J0ZWRFcnJvcixcbiAgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gIFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgSUFNQ2xpZW50SW5zdGFuY2UsIElBTUNsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9JQU1DbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBBZGRVc2VyVG9Hcm91cENvbW1hbmQsXG4gIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICBDaGFuZ2VQYXNzd29yZENvbW1hbmQsXG4gIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIENyZWF0ZVJvbGVDb21tYW5kLFxuICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kLFxuICBEZWxldGVBY2Nlc3NLZXlDb21tYW5kLFxuICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBEZWxldGVHcm91cENvbW1hbmQsXG4gIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgRGVsZXRlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZVJvbGVDb21tYW5kLFxuICBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kLFxuICBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kLFxuICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgRGV0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIEVuYWJsZU1GQURldmljZUNvbW1hbmQsXG4gIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmQsXG4gIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmQsXG4gIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZCxcbiAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kLFxuICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICBHZXRHcm91cENvbW1hbmQsXG4gIEdldEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgR2V0TUZBRGV2aWNlQ29tbWFuZCxcbiAgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIEdldFBvbGljeVZlcnNpb25Db21tYW5kLFxuICBHZXRSb2xlQ29tbWFuZCxcbiAgR2V0Um9sZVBvbGljeUNvbW1hbmQsXG4gIEdldFNBTUxQcm92aWRlckNvbW1hbmQsXG4gIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmQsXG4gIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kLFxuICBHZXRTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBHZXRVc2VyQ29tbWFuZCxcbiAgR2V0VXNlclBvbGljeUNvbW1hbmQsXG4gIExpc3RBY2Nlc3NLZXlzQ29tbWFuZCxcbiAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmQsXG4gIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEdyb3Vwc0NvbW1hbmQsXG4gIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmQsXG4gIExpc3RNRkFEZXZpY2VzQ29tbWFuZCxcbiAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kLFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgTGlzdFBvbGljeVRhZ3NDb21tYW5kLFxuICBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kLFxuICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFJvbGVzQ29tbWFuZCxcbiAgTGlzdFJvbGVUYWdzQ29tbWFuZCxcbiAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kLFxuICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZCxcbiAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZCxcbiAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmQsXG4gIExpc3RVc2VyUG9saWNpZXNDb21tYW5kLFxuICBMaXN0VXNlcnNDb21tYW5kLFxuICBMaXN0VXNlclRhZ3NDb21tYW5kLFxuICBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kLFxuICBQdXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgUHV0Um9sZVBvbGljeUNvbW1hbmQsXG4gIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgUHV0VXNlclBvbGljeUNvbW1hbmQsXG4gIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmQsXG4gIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIFJlc3luY01GQURldmljZUNvbW1hbmQsXG4gIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmQsXG4gIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBUYWdNRkFEZXZpY2VDb21tYW5kLFxuICBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBUYWdQb2xpY3lDb21tYW5kLFxuICBUYWdSb2xlQ29tbWFuZCxcbiAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBUYWdVc2VyQ29tbWFuZCxcbiAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBVbnRhZ01GQURldmljZUNvbW1hbmQsXG4gIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgVW50YWdQb2xpY3lDb21tYW5kLFxuICBVbnRhZ1JvbGVDb21tYW5kLFxuICBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVbnRhZ1VzZXJDb21tYW5kLFxuICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZCxcbiAgVXBkYXRlR3JvdXBDb21tYW5kLFxuICBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZCxcbiAgVXBkYXRlUm9sZUNvbW1hbmQsXG4gIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIFVwZGF0ZVVzZXJDb21tYW5kLFxuICBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgSUFNU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIGFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXIoXG4gICAgYXJnczogQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBhZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGUoXG4gICAgYXJnczogQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFVzZXJUb0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGFkZFVzZXJUb0dyb3VwKFxuICAgIGFyZ3M6IEFkZFVzZXJUb0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVXNlclRvR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGF0dGFjaEdyb3VwUG9saWN5KFxuICAgIGFyZ3M6IEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBhdHRhY2hSb2xlUG9saWN5KFxuICAgIGFyZ3M6IEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGF0dGFjaFVzZXJQb2xpY3koXG4gICAgYXJnczogQXR0YWNoVXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2hhbmdlUGFzc3dvcmRDb21tYW5kfVxuICAgKi9cbiAgY2hhbmdlUGFzc3dvcmQoXG4gICAgYXJnczogQ2hhbmdlUGFzc3dvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgSW52YWxpZFVzZXJUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFjY2Vzc0tleShcbiAgICBhcmdzOiBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBY2NvdW50QWxpYXMoXG4gICAgYXJnczogQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlSW5zdGFuY2VQcm9maWxlKFxuICAgIGFyZ3M6IENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ2luUHJvZmlsZShcbiAgICBhcmdzOiBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyKFxuICAgIGFyZ3M6IENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZW5JZElkcENvbW11bmljYXRpb25FcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUG9saWN5KFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQb2xpY3lWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVJvbGUoXG4gICAgYXJnczogQ3JlYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTQU1MUHJvdmlkZXIoXG4gICAgYXJnczogQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTZXJ2aWNlTGlua2VkUm9sZShcbiAgICBhcmdzOiBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWwoXG4gICAgYXJnczogQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVVc2VyKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVWaXJ0dWFsTUZBRGV2aWNlKFxuICAgIGFyZ3M6IENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIGRlYWN0aXZhdGVNRkFEZXZpY2UoXG4gICAgYXJnczogRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2Nlc3NLZXlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWNjZXNzS2V5KFxuICAgIGFyZ3M6IERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjY291bnRBbGlhcyhcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlR3JvdXAoXG4gICAgYXJnczogRGVsZXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHcm91cFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5zdGFuY2VQcm9maWxlKFxuICAgIGFyZ3M6IERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9naW5Qcm9maWxlKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyKFxuICAgIGFyZ3M6IERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQb2xpY3lWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJvbGUoXG4gICAgYXJnczogRGVsZXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnkoXG4gICAgYXJnczogRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJvbGVQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTQU1MUHJvdmlkZXIoXG4gICAgYXJnczogRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZShcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbChcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlKFxuICAgIGFyZ3M6IERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTU0hQdWJsaWNLZXkoXG4gICAgYXJnczogRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVXNlcihcbiAgICBhcmdzOiBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5KFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVXNlclBvbGljeShcbiAgICBhcmdzOiBEZWxldGVVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVWaXJ0dWFsTUZBRGV2aWNlKFxuICAgIGFyZ3M6IERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGV0YWNoR3JvdXBQb2xpY3koXG4gICAgYXJnczogRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZXRhY2hSb2xlUG9saWN5KFxuICAgIGFyZ3M6IERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoVXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZXRhY2hVc2VyUG9saWN5KFxuICAgIGFyZ3M6IERldGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlTUZBRGV2aWNlKFxuICAgIGFyZ3M6IEVuYWJsZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgZ2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0KFxuICAgIGFyZ3M6IEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZU9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnQoXG4gICAgYXJnczogR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlcG9ydEdlbmVyYXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzKFxuICAgIGFyZ3M6IEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjZXNzS2V5TGFzdFVzZWQoXG4gICAgYXJnczogR2V0QWNjZXNzS2V5TGFzdFVzZWRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIGdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlscyhcbiAgICBhcmdzOiBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjb3VudFBhc3N3b3JkUG9saWN5KFxuICAgIGFyZ3M6IEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjb3VudFN1bW1hcnkoXG4gICAgYXJnczogR2V0QWNjb3VudFN1bW1hcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5KFxuICAgIGFyZ3M6IEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3koXG4gICAgYXJnczogR2V0Q29udGV4dEtleXNGb3JQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q3JlZGVudGlhbFJlcG9ydChcbiAgICBhcmdzOiBHZXRDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydEV4cGlyZWRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFByZXNlbnRFcnJvclxuICAgIHwgQ3JlZGVudGlhbFJlcG9ydE5vdFJlYWR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZ2V0R3JvdXAoXG4gICAgYXJnczogR2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0R3JvdXBQb2xpY3koXG4gICAgYXJnczogR2V0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGdldEluc3RhbmNlUHJvZmlsZShcbiAgICBhcmdzOiBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dpblByb2ZpbGUoXG4gICAgYXJnczogR2V0TG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0TUZBRGV2aWNlKFxuICAgIGFyZ3M6IEdldE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIGdldE9wZW5JRENvbm5lY3RQcm92aWRlcihcbiAgICBhcmdzOiBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmR9XG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0KFxuICAgIGFyZ3M6IEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRQb2xpY3koXG4gICAgYXJnczogR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0UG9saWN5VmVyc2lvbihcbiAgICBhcmdzOiBHZXRQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSb2xlQ29tbWFuZH1cbiAgICovXG4gIGdldFJvbGUoXG4gICAgYXJnczogR2V0Um9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJvbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0Um9sZVBvbGljeShcbiAgICBhcmdzOiBHZXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIGdldFNBTUxQcm92aWRlcihcbiAgICBhcmdzOiBHZXRTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgZ2V0U2VydmVyQ2VydGlmaWNhdGUoXG4gICAgYXJnczogR2V0U2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHMoXG4gICAgYXJnczogR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZH1cbiAgICovXG4gIGdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzKFxuICAgIGFyZ3M6IEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGlua2VkUm9sZURlbGV0aW9uU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXMoXG4gICAgYXJnczogR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIGdldFNTSFB1YmxpY0tleShcbiAgICBhcmdzOiBHZXRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVzZXJDb21tYW5kfVxuICAgKi9cbiAgZ2V0VXNlcihcbiAgICBhcmdzOiBHZXRVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXNlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRVc2VyUG9saWN5KFxuICAgIGFyZ3M6IEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVc2VyUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjZXNzS2V5c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWNjZXNzS2V5cyhcbiAgICBhcmdzOiBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2Nlc3NLZXlzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjY291bnRBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llcyhcbiAgICBhcmdzOiBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEF0dGFjaGVkVXNlclBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgbGlzdEVudGl0aWVzRm9yUG9saWN5KFxuICAgIGFyZ3M6IExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0R3JvdXBQb2xpY2llcyhcbiAgICBhcmdzOiBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RHcm91cHMoXG4gICAgYXJnczogTGlzdEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RHcm91cHNDb21tYW5kT3V0cHV0LCBTZGtFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmR9XG4gICAqL1xuICBsaXN0R3JvdXBzRm9yVXNlcihcbiAgICBhcmdzOiBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5zdGFuY2VQcm9maWxlcyhcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZShcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbnN0YW5jZVByb2ZpbGVUYWdzKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNRkFEZXZpY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNRkFEZXZpY2VzKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1GQURldmljZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNRkFEZXZpY2VUYWdzKFxuICAgIGFyZ3M6IExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnMoXG4gICAgYXJnczogTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzKFxuICAgIGFyZ3M6IExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQb2xpY2llcyhcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LCBTZGtFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY3lUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQb2xpY3lUYWdzKFxuICAgIGFyZ3M6IExpc3RQb2xpY3lUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljeVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQb2xpY3lWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Um9sZVBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFJvbGVzKFxuICAgIGFyZ3M6IExpc3RSb2xlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RSb2xlc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlVGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Um9sZVRhZ3MoXG4gICAgYXJnczogTGlzdFJvbGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFJvbGVUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U0FNTFByb3ZpZGVycyhcbiAgICBhcmdzOiBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFNBTUxQcm92aWRlclRhZ3MoXG4gICAgYXJnczogTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXMoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3MoXG4gICAgYXJnczogTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgYXJnczogTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTaWduaW5nQ2VydGlmaWNhdGVzKFxuICAgIGFyZ3M6IExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTU0hQdWJsaWNLZXlzKFxuICAgIGFyZ3M6IExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VXNlclBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VXNlclBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFVzZXJzKFxuICAgIGFyZ3M6IExpc3RVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RVc2Vyc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2VyVGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VXNlclRhZ3MoXG4gICAgYXJnczogTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFVzZXJUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZpcnR1YWxNRkFEZXZpY2VzKFxuICAgIGFyZ3M6IExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0R3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0R3JvdXBQb2xpY3koXG4gICAgYXJnczogUHV0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeShcbiAgICBhcmdzOiBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0Um9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSb2xlUG9saWN5KFxuICAgIGFyZ3M6IFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSb2xlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmR9XG4gICAqL1xuICBwdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeShcbiAgICBhcmdzOiBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFVzZXJQb2xpY3koXG4gICAgYXJnczogUHV0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlcihcbiAgICBhcmdzOiBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGUoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZW1vdmVVc2VyRnJvbUdyb3VwKFxuICAgIGFyZ3M6IFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVVc2VyRnJvbUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsKFxuICAgIGFyZ3M6IFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXN5bmNNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVzeW5jTUZBRGV2aWNlKFxuICAgIGFyZ3M6IFJlc3luY01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc3luY01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkQXV0aGVudGljYXRpb25Db2RlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgc2V0RGVmYXVsdFBvbGljeVZlcnNpb24oXG4gICAgYXJnczogU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmR9XG4gICAqL1xuICBzZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzKFxuICAgIGFyZ3M6IFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgc2ltdWxhdGVDdXN0b21Qb2xpY3koXG4gICAgYXJnczogU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IFBvbGljeUV2YWx1YXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBzaW11bGF0ZVByaW5jaXBhbFBvbGljeShcbiAgICBhcmdzOiBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBQb2xpY3lFdmFsdWF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHRhZ0luc3RhbmNlUHJvZmlsZShcbiAgICBhcmdzOiBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ01GQURldmljZShcbiAgICBhcmdzOiBUYWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHRhZ09wZW5JRENvbm5lY3RQcm92aWRlcihcbiAgICBhcmdzOiBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHRhZ1BvbGljeShcbiAgICBhcmdzOiBUYWdQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUm9sZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSb2xlKFxuICAgIGFyZ3M6IFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1NBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICB0YWdTQU1MUHJvdmlkZXIoXG4gICAgYXJnczogVGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1NlcnZlckNlcnRpZmljYXRlKFxuICAgIGFyZ3M6IFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnVXNlckNvbW1hbmR9XG4gICAqL1xuICB0YWdVc2VyKFxuICAgIGFyZ3M6IFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnSW5zdGFuY2VQcm9maWxlKFxuICAgIGFyZ3M6IFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnTUZBRGV2aWNlKFxuICAgIGFyZ3M6IFVudGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyKFxuICAgIGFyZ3M6IFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHVudGFnUG9saWN5KFxuICAgIGFyZ3M6IFVudGFnUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUm9sZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1JvbGUoXG4gICAgYXJnczogVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSb2xlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHVudGFnU0FNTFByb3ZpZGVyKFxuICAgIGFyZ3M6IFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgdW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZShcbiAgICBhcmdzOiBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdVc2VyQ29tbWFuZH1cbiAgICovXG4gIHVudGFnVXNlcihcbiAgICBhcmdzOiBVbnRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1VzZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFjY2Vzc0tleShcbiAgICBhcmdzOiBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3koXG4gICAgYXJnczogVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQXNzdW1lUm9sZVBvbGljeShcbiAgICBhcmdzOiBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlR3JvdXAoXG4gICAgYXJnczogVXBkYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVMb2dpblByb2ZpbGUoXG4gICAgYXJnczogVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludChcbiAgICBhcmdzOiBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVJvbGUoXG4gICAgYXJnczogVXBkYXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVJvbGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVJvbGVEZXNjcmlwdGlvbihcbiAgICBhcmdzOiBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNBTUxQcm92aWRlcihcbiAgICBhcmdzOiBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNlcnZlckNlcnRpZmljYXRlKFxuICAgIGFyZ3M6IFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWwoXG4gICAgYXJnczogVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZShcbiAgICBhcmdzOiBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTU0hQdWJsaWNLZXkoXG4gICAgYXJnczogVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlVXNlcihcbiAgICBhcmdzOiBVcGRhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgdXBsb2FkU2VydmVyQ2VydGlmaWNhdGUoXG4gICAgYXJnczogVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBLZXlQYWlyTWlzbWF0Y2hFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICB1cGxvYWRTaWduaW5nQ2VydGlmaWNhdGUoXG4gICAgYXJnczogVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZUNlcnRpZmljYXRlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZENlcnRpZmljYXRlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHVwbG9hZFNTSFB1YmxpY0tleShcbiAgICBhcmdzOiBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IER1cGxpY2F0ZVNTSFB1YmxpY0tleUVycm9yXG4gICAgfCBJbnZhbGlkUHVibGljS2V5RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIElBTVNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFwiQGVmZmVjdC1hd3MvY2xpZW50LWlhbS9JQU1TZXJ2aWNlXCIpPFxuICBJQU1TZXJ2aWNlLFxuICBJQU1TZXJ2aWNlJFxuPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlSUFNU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKElBTUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgSUFNU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxJQU1TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBJQU1TZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUlBTVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChJQU1TZXJ2aWNlLCBtYWtlSUFNU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1TZXJ2aWNlTGF5ZXIgPSBCYXNlSUFNU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoSUFNQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdElBTVNlcnZpY2VMYXllciA9IElBTVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRJQU1DbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|