@gemeentenijmegen/webapp 1.1.2 → 1.1.4
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/.jsii +14 -14
- package/assets/webapp/auth/auth.lambda/index.js +4 -7
- package/assets/webapp/login/login.lambda/index.js +4 -7
- package/lib/webapp/Criticality.js +1 -1
- package/lib/webapp/Webapp.js +1 -1
- package/lib/webapp/Webpage.js +1 -1
- package/lib/webapp/util/Files.js +1 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/index.js +498 -347
- package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/runtimeConfig.js +10 -8
- package/node_modules/@aws-sdk/client-dynamodb/dist-es/DynamoDBClient.js +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/models_0.js +88 -66
- package/node_modules/@aws-sdk/client-dynamodb/dist-es/protocols/Aws_json1_0.js +15 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-es/runtimeConfig.js +10 -8
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/DynamoDBClient.d.ts +18 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateTableCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteItemCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteTableCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContinuousBackupsCommand.d.ts +2 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTableCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutItemCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableFromBackupCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableToPointInTimeCommand.d.ts +2 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContinuousBackupsCommand.d.ts +3 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateItemCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTableCommand.d.ts +2 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/models_0.d.ts +208 -59
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/runtimeConfig.browser.d.ts +2 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/runtimeConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/runtimeConfig.native.d.ts +3 -2
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/DynamoDBClient.d.ts +1 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/models_0.d.ts +20 -0
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/runtimeConfig.browser.d.ts +6 -3
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/runtimeConfig.d.ts +10 -7
- package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/runtimeConfig.native.d.ts +21 -8
- package/node_modules/@aws-sdk/client-dynamodb/package.json +43 -45
- package/node_modules/@aws-sdk/client-s3/README.md +24 -0
- package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +936 -516
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js +16 -11
- package/node_modules/@aws-sdk/client-s3/dist-es/S3.js +6 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataTableConfigurationCommand.js +31 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataTableConfigurationCommand.js +26 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataTableConfigurationCommand.js +28 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js +3 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js +25 -28
- package/node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js +23 -10
- package/node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js +250 -29
- package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js +16 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +21 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/S3Client.d.ts +23 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +11 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +7 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +6 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +134 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +8 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +3 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +3 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +95 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +63 -53
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +27 -26
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +111 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +7 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +25 -22
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +3 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +6 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +2 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +2 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +6 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +7 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +6 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +9 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +5 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +5 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +43 -38
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +7 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +5 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts +3 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +761 -576
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +541 -79
- package/node_modules/@aws-sdk/client-s3/dist-types/protocols/Aws_restXml.d.ts +27 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.browser.d.ts +2 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.native.d.ts +6 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +69 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3Client.d.ts +19 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +47 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +47 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetBucketMetadataTableConfigurationCommand.d.ts +51 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketCorsCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketEncryptionCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketInventoryConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketLifecycleConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketLoggingCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketMetricsConfigurationCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/index.d.ts +3 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +78 -69
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_1.d.ts +86 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/protocols/Aws_restXml.d.ts +36 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.browser.d.ts +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.d.ts +10 -7
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.native.d.ts +30 -11
- package/node_modules/@aws-sdk/client-s3/package.json +60 -62
- package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +193 -139
- package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-secrets-manager/dist-es/SecretsManagerClient.js +1 -0
- package/node_modules/@aws-sdk/client-secrets-manager/dist-es/models/models_0.js +36 -24
- package/node_modules/@aws-sdk/client-secrets-manager/dist-es/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/SecretsManagerClient.d.ts +18 -0
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.browser.d.ts +2 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.native.d.ts +3 -2
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/SecretsManagerClient.d.ts +1 -0
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.browser.d.ts +6 -3
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.d.ts +10 -7
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.native.d.ts +21 -8
- package/node_modules/@aws-sdk/client-secrets-manager/package.json +41 -43
- package/node_modules/@aws-sdk/client-ssm/README.md +5 -4
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +1529 -1117
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-ssm/dist-es/SSMClient.js +1 -0
- package/node_modules/@aws-sdk/client-ssm/dist-es/models/models_0.js +211 -146
- package/node_modules/@aws-sdk/client-ssm/dist-es/models/models_1.js +108 -80
- package/node_modules/@aws-sdk/client-ssm/dist-es/models/models_2.js +64 -44
- package/node_modules/@aws-sdk/client-ssm/dist-es/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-ssm/dist-types/SSM.d.ts +5 -4
- package/node_modules/@aws-sdk/client-ssm/dist-types/SSMClient.d.ts +23 -4
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/AssociateOpsItemRelatedItemCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateActivationCommand.d.ts +2 -2
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateAssociationCommand.d.ts +6 -6
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DisassociateOpsItemRelatedItemCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetCalendarStateCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDeployablePatchSnapshotForInstanceCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetExecutionPreviewCommand.d.ts +29 -0
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParametersByPathCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListAssociationsCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesCommand.d.ts +52 -0
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesSummaryCommand.d.ts +43 -0
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsItemRelatedItemsCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartExecutionPreviewCommand.d.ts +16 -0
- package/node_modules/@aws-sdk/client-ssm/dist-types/index.d.ts +5 -4
- package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_0.d.ts +7 -9
- package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_1.d.ts +12 -13
- package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_2.d.ts +20 -9
- package/node_modules/@aws-sdk/client-ssm/dist-types/runtimeConfig.browser.d.ts +2 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/runtimeConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/client-ssm/dist-types/runtimeConfig.native.d.ts +3 -2
- package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/SSMClient.d.ts +1 -0
- package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/runtimeConfig.browser.d.ts +6 -3
- package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/runtimeConfig.d.ts +10 -7
- package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/runtimeConfig.native.d.ts +21 -8
- package/node_modules/@aws-sdk/client-ssm/package.json +42 -44
- package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +57 -42
- package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-es/models/models_0.js +8 -8
- package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js +8 -6
- package/node_modules/@aws-sdk/client-sso/dist-types/SSOClient.d.ts +18 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.native.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/SSOClient.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.native.d.ts +16 -5
- package/node_modules/@aws-sdk/client-sso/package.json +40 -40
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +29 -32
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +3 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +10 -9
- package/node_modules/@aws-sdk/core/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +2 -3
- package/node_modules/@aws-sdk/credential-provider-env/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-http/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +41 -28
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +11 -2
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js +14 -11
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js +2 -0
- package/node_modules/@aws-sdk/credential-provider-ini/dist-types/fromIni.d.ts +10 -3
- package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveSsoCredentials.d.ts +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/fromIni.d.ts +5 -7
- package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveSsoCredentials.d.ts +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +19 -19
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +12 -19
- package/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js +1 -1
- package/node_modules/@aws-sdk/credential-provider-node/package.json +16 -16
- package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +10 -6
- package/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js +4 -2
- package/node_modules/@aws-sdk/credential-provider-process/dist-types/fromProcess.d.ts +2 -3
- package/node_modules/@aws-sdk/credential-provider-process/dist-types/ts3.4/fromProcess.d.ts +5 -3
- package/node_modules/@aws-sdk/credential-provider-process/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +11 -6
- package/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js +6 -2
- package/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js +2 -1
- package/node_modules/@aws-sdk/credential-provider-sso/dist-types/fromSSO.d.ts +2 -3
- package/node_modules/@aws-sdk/credential-provider-sso/dist-types/resolveSSOCredentials.d.ts +1 -1
- package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/fromSSO.d.ts +5 -3
- package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/resolveSSOCredentials.d.ts +1 -0
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +6 -3
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js +6 -3
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-types/fromWebToken.d.ts +3 -3
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-types/ts3.4/fromWebToken.d.ts +5 -6
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +9 -11
- package/node_modules/@aws-sdk/endpoint-cache/dist-cjs/index.js +5 -3
- package/node_modules/@aws-sdk/endpoint-cache/dist-es/EndpointCache.js +1 -0
- package/node_modules/@aws-sdk/endpoint-cache/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-types/bucketHostnameUtils.d.ts +1 -1
- package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +9 -9
- package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +8 -8
- package/node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js +1 -2
- package/node_modules/@aws-sdk/middleware-expect-continue/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getCrc32ChecksumAlgorithmFunction.js +1 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +132 -40
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js +2 -2
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/crc64-nvme-crt-container.js +3 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsInputMiddleware.js +37 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js +22 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js +2 -12
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js +9 -5
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.js +1 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js +2 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeaderWithPrefix.js +9 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js +1 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js +26 -7
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js +2 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js +13 -2
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/configuration.d.ts +10 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/constants.d.ts +5 -5
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/crc64-nvme-crt-container.d.ts +13 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/flexibleChecksumsInputMiddleware.d.ts +19 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/flexibleChecksumsMiddleware.d.ts +12 -2
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/getChecksumAlgorithmForRequest.d.ts +6 -2
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/getFlexibleChecksumsPlugin.d.ts +2 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/hasHeaderWithPrefix.d.ts +6 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/index.d.ts +1 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/configuration.d.ts +7 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/constants.d.ts +2 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/crc64-nvme-crt-container.d.ts +4 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/flexibleChecksumsInputMiddleware.d.ts +10 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/flexibleChecksumsMiddleware.d.ts +4 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/getChecksumAlgorithmForRequest.d.ts +4 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/getFlexibleChecksumsPlugin.d.ts +2 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/hasHeaderWithPrefix.d.ts +5 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/validateChecksumFromResponse.d.ts +3 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/validateChecksumFromResponse.d.ts +3 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +19 -20
- package/node_modules/@aws-sdk/middleware-host-header/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/middleware-location-constraint/package.json +5 -5
- package/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js +2 -3
- package/node_modules/@aws-sdk/middleware-logger/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +34 -38
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js +3 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js +3 -0
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js +3 -1
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js +0 -1
- package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +16 -16
- package/node_modules/@aws-sdk/middleware-ssec/package.json +5 -5
- package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +13 -17
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +9 -9
- package/node_modules/@aws-sdk/nested-clients/README.md +13 -0
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/auth/httpAuthSchemeProvider.js +0 -8
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +879 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/runtimeConfig.browser.js +1 -2
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/runtimeConfig.js +9 -9
- package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/STSClient.js +1 -0
- package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/auth/httpAuthSchemeProvider.js +0 -4
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +952 -0
- package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/runtimeConfig.browser.js +1 -1
- package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/runtimeConfig.js +10 -10
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +9 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/SSOOIDCClient.js +1 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/auth/httpAuthSchemeProvider.js +0 -8
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js +1 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/models/models_0.js +56 -99
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/protocols/Aws_restJson1.js +2 -174
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/runtimeConfig.browser.js +1 -2
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/runtimeConfig.js +9 -9
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +11 -0
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/STSClient.js +1 -0
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/auth/httpAuthSchemeProvider.js +0 -4
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js +2 -0
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/defaultStsRoleAssumers.js +6 -4
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/extensionConfiguration.js +1 -0
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/models/models_0.js +30 -62
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/protocols/Aws_query.js +10 -420
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/runtimeConfig.browser.js +1 -1
- package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/runtimeConfig.js +10 -10
- package/node_modules/@aws-sdk/nested-clients/dist-types/index.d.ts +7 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/SSOOIDC.d.ts +0 -21
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/SSOOIDCClient.d.ts +21 -12
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/commands/CreateTokenCommand.d.ts +3 -50
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/models_0.d.ts +396 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/protocols/Aws_restJson1.d.ts +11 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +27 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/STSClient.d.ts +20 -9
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/commands/AssumeRoleCommand.d.ts +0 -47
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -34
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/index.d.ts +2 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/defaultStsRoleAssumers.d.ts +2 -2
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/models/models_0.d.ts +19 -634
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/protocols/Aws_query.d.ts +20 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/runtimeConfig.browser.d.ts +2 -1
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/runtimeConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/runtimeConfig.native.d.ts +3 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDC.d.ts +22 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/SSOOIDCClient.d.ts +3 -24
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/commands/CreateTokenCommand.d.ts +5 -9
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commands/index.d.ts +1 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/models/models_0.d.ts +6 -99
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/protocols/Aws_restJson1.d.ts +17 -0
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/runtimeConfig.browser.d.ts +1 -3
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/runtimeConfig.d.ts +1 -7
- package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/runtimeConfig.native.d.ts +16 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STS.d.ts +39 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/STSClient.d.ts +3 -44
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/index.d.ts +2 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/defaultStsRoleAssumers.d.ts +2 -2
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/models/models_0.d.ts +10 -105
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/protocols/Aws_query.d.ts +29 -0
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/runtimeConfig.browser.d.ts +6 -3
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/runtimeConfig.d.ts +4 -7
- package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/runtimeConfig.native.d.ts +21 -8
- package/node_modules/@aws-sdk/nested-clients/package.json +115 -0
- package/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +7 -0
- package/node_modules/@aws-sdk/nested-clients/sso-oidc.js +5 -0
- package/node_modules/@aws-sdk/nested-clients/sts.d.ts +7 -0
- package/node_modules/@aws-sdk/nested-clients/sts.js +5 -0
- package/node_modules/@aws-sdk/region-config-resolver/package.json +8 -8
- package/node_modules/@aws-sdk/s3-request-presigner/dist-cjs/index.js +10 -9
- package/node_modules/@aws-sdk/s3-request-presigner/dist-es/presigner.js +1 -0
- package/node_modules/@aws-sdk/s3-request-presigner/package.json +13 -13
- package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +7 -3
- package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js +3 -0
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +8 -8
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +25 -17
- package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +12 -3
- package/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +3 -3
- package/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +6 -8
- package/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +6 -2
- package/node_modules/@aws-sdk/token-providers/dist-types/fromStatic.d.ts +1 -0
- package/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +3 -1
- package/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +4 -3
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +8 -3
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +6 -2
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +5 -1
- package/node_modules/@aws-sdk/token-providers/package.json +9 -11
- package/node_modules/@aws-sdk/types/dist-cjs/index.js +0 -1
- package/node_modules/@aws-sdk/types/dist-types/credentials.d.ts +1 -0
- package/node_modules/@aws-sdk/types/dist-types/identity/AwsCredentialIdentity.d.ts +56 -2
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/credentials.d.ts +1 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/identity/AwsCredentialIdentity.d.ts +22 -1
- package/node_modules/@aws-sdk/types/package.json +4 -4
- package/node_modules/@aws-sdk/util-arn-parser/package.json +4 -4
- package/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +6 -0
- package/node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/partitions.json +6 -0
- package/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json +6 -0
- package/node_modules/@aws-sdk/util-endpoints/package.json +6 -6
- package/node_modules/@aws-sdk/util-format-url/package.json +6 -6
- package/node_modules/@aws-sdk/util-locate-window/package.json +4 -4
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +4 -4
- package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +4 -4
- package/node_modules/@aws-sdk/util-user-agent-node/dist-es/nodeAppIdConfigOptions.js +3 -2
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/nodeAppIdConfigOptions.d.ts +1 -1
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/nodeAppIdConfigOptions.d.ts +1 -1
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +8 -8
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +9 -7
- package/node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js +3 -1
- package/node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js +1 -0
- package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/.jsii +92 -46
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/README.md +3 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/lib/index.js +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/.jsii +128 -67
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/alb-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/alb-helper.js +7 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-defaults.js +7 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/apigateway-helper.js +7 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-defaults.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.js +6 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudwatch-log-group-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudwatch-log-group-helper.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cognito-defaults.js +4 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cognito-helper.js +6 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-helper.js +5 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/elasticache-defaults.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/elasticache-helper.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/elasticsearch-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/elasticsearch-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/eventbridge-helper.d.ts +2 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/eventbridge-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/events-rule-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/fargate-defaults.js +6 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/fargate-helper.js +6 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-database-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-database-helper.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-job-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-job-helper.js +7 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-table-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/glue-table-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/iot-topic-rule-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-helper.js +5 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-analytics-helper.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-firehose-s3-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kinesis-streams-helper.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kms-helper.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/lambda-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/lambda-event-source-mapping-defaults.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/lambda-helper.js +6 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/mediastore-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/mediastore-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/opensearch-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/opensearch-helper.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/override-warning-service.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/pipes-defaults.d.ts +1 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/pipes-defaults.js +13 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/pipes-helper.d.ts +10 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/pipes-helper.js +62 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/s3-bucket-defaults.js +3 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/s3-bucket-helper.js +7 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sagemaker-defaults.js +5 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sagemaker-helper.js +8 -9
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/secretsmanager-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/security-group-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sns-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-defaults.js +3 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-helper.d.ts +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-helper.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/ssm-string-parameter-helper.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/step-function-defaults.js +2 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/step-function-helper.js +5 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/utils.js +19 -19
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-defaults.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-helper.js +6 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/waf-defaults.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/waf-helper.js +3 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/websocket-api-helper.js +4 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/package.json +4 -4
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/lambda/index.js +13 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/lambda-test/index.js +13 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/pipes-helper.test.js +93 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/test-helper.js +16 -16
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +7 -7
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/cdk.out +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/integ.json +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json +9 -9
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json +8 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddbdeployFunctionWithExistingVpcIntegDefaultTestDeployAssertEE08E38E.assets.json +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json +8 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json +84 -78
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +21 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/cdk.out +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/integ.json +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json +9 -9
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json +8 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddbdeployFunctionWithVpcIntegDefaultTestDeployAssert0AB8275C.assets.json +1 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json +8 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json +64 -58
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda/index.js +13 -0
- package/node_modules/@gemeentenijmegen/apiclient/lib/index.d.ts +10 -8
- package/node_modules/@gemeentenijmegen/apiclient/lib/index.js +23 -27
- package/node_modules/@gemeentenijmegen/apiclient/package.json +16 -14
- package/node_modules/@gemeentenijmegen/apigateway-http/package.json +10 -9
- package/node_modules/@gemeentenijmegen/session/package.json +9 -8
- package/node_modules/@gemeentenijmegen/utils/package.json +12 -11
- package/node_modules/@smithy/abort-controller/dist-cjs/index.js +8 -6
- package/node_modules/@smithy/abort-controller/package.json +3 -3
- package/node_modules/@smithy/chunked-blob-reader/package.json +6 -2
- package/node_modules/@smithy/chunked-blob-reader-native/package.json +7 -3
- package/node_modules/@smithy/config-resolver/dist-cjs/index.js +8 -12
- package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveCustomEndpointsConfig.d.ts +3 -0
- package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig.d.ts +4 -1
- package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/resolveCustomEndpointsConfig.d.ts +3 -0
- package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/resolveEndpointsConfig.d.ts +4 -1
- package/node_modules/@smithy/config-resolver/package.json +6 -6
- package/node_modules/@smithy/core/dist-cjs/index.js +34 -22
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +2 -4
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1 -1
- package/node_modules/@smithy/core/dist-es/pagination/createPaginator.js +9 -6
- package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-types.d.ts +1 -0
- package/node_modules/@smithy/core/package.json +11 -11
- package/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +10 -11
- package/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +1 -0
- package/node_modules/@smithy/credential-provider-imds/package.json +7 -7
- package/node_modules/@smithy/eventstream-codec/dist-cjs/index.js +28 -21
- package/node_modules/@smithy/eventstream-codec/package.json +8 -5
- package/node_modules/@smithy/eventstream-serde-browser/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/eventstream-serde-browser/package.json +4 -4
- package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/EventStreamSerdeConfig.d.ts +3 -0
- package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/ts3.4/EventStreamSerdeConfig.d.ts +3 -0
- package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +3 -3
- package/node_modules/@smithy/eventstream-serde-node/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/eventstream-serde-node/package.json +5 -5
- package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/eventstream-serde-universal/package.json +6 -6
- package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +37 -10
- package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +27 -1
- package/node_modules/@smithy/fetch-http-handler/dist-types/fetch-http-handler.d.ts +6 -4
- package/node_modules/@smithy/fetch-http-handler/dist-types/ts3.4/fetch-http-handler.d.ts +6 -4
- package/node_modules/@smithy/fetch-http-handler/package.json +9 -6
- package/node_modules/@smithy/hash-blob-browser/package.json +8 -5
- package/node_modules/@smithy/hash-node/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/hash-node/package.json +6 -6
- package/node_modules/@smithy/hash-stream-node/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/hash-stream-node/dist-types/HashCalculator.d.ts +1 -0
- package/node_modules/@smithy/hash-stream-node/package.json +6 -6
- package/node_modules/@smithy/invalid-dependency/package.json +5 -2
- package/node_modules/@smithy/is-array-buffer/package.json +5 -4
- package/node_modules/@smithy/md5-js/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/md5-js/package.json +9 -6
- package/node_modules/@smithy/middleware-content-length/package.json +4 -4
- package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +10 -9
- package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +3 -0
- package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +4 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts +4 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/types.d.ts +8 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/types.d.ts +8 -1
- package/node_modules/@smithy/middleware-endpoint/package.json +10 -10
- package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +18 -17
- package/node_modules/@smithy/middleware-retry/dist-types/AdaptiveRetryStrategy.d.ts +2 -0
- package/node_modules/@smithy/middleware-retry/dist-types/StandardRetryStrategy.d.ts +3 -0
- package/node_modules/@smithy/middleware-retry/dist-types/configurations.d.ts +21 -0
- package/node_modules/@smithy/middleware-retry/dist-types/defaultRetryQuota.d.ts +6 -0
- package/node_modules/@smithy/middleware-retry/dist-types/delayDecider.d.ts +1 -0
- package/node_modules/@smithy/middleware-retry/dist-types/omitRetryHeadersMiddleware.d.ts +9 -0
- package/node_modules/@smithy/middleware-retry/dist-types/retryDecider.d.ts +1 -0
- package/node_modules/@smithy/middleware-retry/dist-types/retryMiddleware.d.ts +12 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/AdaptiveRetryStrategy.d.ts +2 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/StandardRetryStrategy.d.ts +3 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/configurations.d.ts +21 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/defaultRetryQuota.d.ts +6 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/delayDecider.d.ts +1 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/omitRetryHeadersMiddleware.d.ts +9 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/retryDecider.d.ts +1 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/retryMiddleware.d.ts +12 -0
- package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/types.d.ts +12 -0
- package/node_modules/@smithy/middleware-retry/dist-types/types.d.ts +12 -0
- package/node_modules/@smithy/middleware-retry/package.json +10 -10
- package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +11 -4
- package/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js +12 -2
- package/node_modules/@smithy/middleware-serde/package.json +4 -4
- package/node_modules/@smithy/middleware-stack/dist-cjs/index.js +4 -12
- package/node_modules/@smithy/middleware-stack/dist-types/MiddlewareStack.d.ts +3 -0
- package/node_modules/@smithy/middleware-stack/dist-types/ts3.4/MiddlewareStack.d.ts +3 -0
- package/node_modules/@smithy/middleware-stack/package.json +3 -3
- package/node_modules/@smithy/node-config-provider/dist-types/configLoader.d.ts +9 -0
- package/node_modules/@smithy/node-config-provider/dist-types/fromSharedConfigFiles.d.ts +7 -0
- package/node_modules/@smithy/node-config-provider/dist-types/fromStatic.d.ts +6 -0
- package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/configLoader.d.ts +9 -0
- package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/fromSharedConfigFiles.d.ts +7 -0
- package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/fromStatic.d.ts +6 -0
- package/node_modules/@smithy/node-config-provider/package.json +6 -6
- package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +57 -48
- package/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +11 -3
- package/node_modules/@smithy/node-http-handler/dist-es/timing.js +2 -2
- package/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +11 -8
- package/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +8 -0
- package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +3 -0
- package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +6 -1
- package/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +1 -0
- package/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +2 -0
- package/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +2 -0
- package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +2 -0
- package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +1 -0
- package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +4 -0
- package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +1 -0
- package/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +2 -2
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +8 -0
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +3 -0
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +6 -1
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +4 -0
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +2 -2
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +1 -1
- package/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +1 -1
- package/node_modules/@smithy/node-http-handler/package.json +8 -8
- package/node_modules/@smithy/property-provider/dist-cjs/index.js +16 -14
- package/node_modules/@smithy/property-provider/package.json +3 -3
- package/node_modules/@smithy/protocol-http/dist-cjs/index.js +16 -12
- package/node_modules/@smithy/protocol-http/dist-types/httpHandler.d.ts +0 -2
- package/node_modules/@smithy/protocol-http/dist-types/httpRequest.d.ts +3 -1
- package/node_modules/@smithy/protocol-http/dist-types/httpResponse.d.ts +13 -0
- package/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpHandler.d.ts +0 -2
- package/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpRequest.d.ts +3 -1
- package/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpResponse.d.ts +13 -0
- package/node_modules/@smithy/protocol-http/package.json +3 -3
- package/node_modules/@smithy/querystring-builder/package.json +4 -4
- package/node_modules/@smithy/querystring-parser/package.json +3 -3
- package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +4 -14
- package/node_modules/@smithy/service-error-classification/dist-es/index.js +3 -2
- package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +1 -1
- package/node_modules/@smithy/service-error-classification/dist-types/ts3.4/index.d.ts +1 -1
- package/node_modules/@smithy/service-error-classification/package.json +3 -3
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/getProfileName.d.ts +10 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFilepath.d.ts +1 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFromFile.d.ts +2 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +10 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSsoSessionData.d.ts +7 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/parseKnownFiles.d.ts +3 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getProfileName.d.ts +10 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFilepath.d.ts +1 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFromFile.d.ts +2 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +10 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSsoSessionData.d.ts +7 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/parseKnownFiles.d.ts +3 -0
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/types.d.ts +6 -3
- package/node_modules/@smithy/shared-ini-file-loader/dist-types/types.d.ts +6 -3
- package/node_modules/@smithy/shared-ini-file-loader/package.json +4 -4
- package/node_modules/@smithy/signature-v4/dist-cjs/index.js +16 -14
- package/node_modules/@smithy/signature-v4/dist-types/SignatureV4.d.ts +9 -0
- package/node_modules/@smithy/signature-v4/dist-types/credentialDerivation.d.ts +13 -9
- package/node_modules/@smithy/signature-v4/dist-types/getCanonicalHeaders.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/getCanonicalQuery.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/getPayloadHash.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/moveHeadersToQuery.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/prepareRequest.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/SignatureV4.d.ts +9 -0
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/credentialDerivation.d.ts +13 -9
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/getCanonicalHeaders.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/getCanonicalQuery.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/getPayloadHash.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/moveHeadersToQuery.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/dist-types/ts3.4/prepareRequest.d.ts +1 -1
- package/node_modules/@smithy/signature-v4/package.json +9 -9
- package/node_modules/@smithy/smithy-client/dist-cjs/index.js +76 -56
- package/node_modules/@smithy/smithy-client/dist-es/exceptions.js +25 -1
- package/node_modules/@smithy/smithy-client/dist-es/lazy-json.js +21 -30
- package/node_modules/@smithy/smithy-client/dist-types/exceptions.d.ts +8 -0
- package/node_modules/@smithy/smithy-client/dist-types/extensions/retry.d.ts +3 -0
- package/node_modules/@smithy/smithy-client/dist-types/lazy-json.d.ts +37 -15
- package/node_modules/@smithy/smithy-client/dist-types/ser-utils.d.ts +1 -0
- package/node_modules/@smithy/smithy-client/dist-types/ts3.4/exceptions.d.ts +8 -0
- package/node_modules/@smithy/smithy-client/dist-types/ts3.4/extensions/retry.d.ts +3 -0
- package/node_modules/@smithy/smithy-client/dist-types/ts3.4/lazy-json.d.ts +37 -15
- package/node_modules/@smithy/smithy-client/dist-types/ts3.4/ser-utils.d.ts +1 -0
- package/node_modules/@smithy/smithy-client/package.json +10 -10
- package/node_modules/@smithy/types/dist-types/blob/blob-payload-input-types.d.ts +2 -0
- package/node_modules/@smithy/types/dist-types/client.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/connection/config.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/connection/manager.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/connection/pool.d.ts +8 -0
- package/node_modules/@smithy/types/dist-types/encode.d.ts +12 -0
- package/node_modules/@smithy/types/dist-types/endpoints/EndpointRuleObject.d.ts +12 -0
- package/node_modules/@smithy/types/dist-types/endpoints/ErrorRuleObject.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/endpoints/RuleSetObject.d.ts +9 -0
- package/node_modules/@smithy/types/dist-types/endpoints/TreeRuleObject.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/endpoints/shared.d.ts +30 -0
- package/node_modules/@smithy/types/dist-types/eventStream.d.ts +31 -2
- package/node_modules/@smithy/types/dist-types/extensions/checksum.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +3 -2
- package/node_modules/@smithy/types/dist-types/http.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/pagination.d.ts +8 -1
- package/node_modules/@smithy/types/dist-types/serde.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/shapes.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-payload-input-types.d.ts +2 -1
- package/node_modules/@smithy/types/dist-types/transfer.d.ts +8 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/blob/blob-payload-input-types.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/client.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/connection/config.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/connection/manager.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/connection/pool.d.ts +8 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/encode.d.ts +12 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/endpoints/EndpointRuleObject.d.ts +12 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/endpoints/ErrorRuleObject.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/endpoints/RuleSetObject.d.ts +9 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/endpoints/TreeRuleObject.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/endpoints/shared.d.ts +30 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/eventStream.d.ts +31 -2
- package/node_modules/@smithy/types/dist-types/ts3.4/extensions/checksum.d.ts +3 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +3 -2
- package/node_modules/@smithy/types/dist-types/ts3.4/http.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/pagination.d.ts +7 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/serde.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/shapes.d.ts +1 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/streaming-payload/streaming-blob-payload-input-types.d.ts +1 -1
- package/node_modules/@smithy/types/dist-types/ts3.4/transfer.d.ts +8 -0
- package/node_modules/@smithy/types/package.json +2 -2
- package/node_modules/@smithy/url-parser/package.json +6 -3
- package/node_modules/@smithy/util-base64/package.json +8 -7
- package/node_modules/@smithy/util-body-length-browser/package.json +7 -3
- package/node_modules/@smithy/util-body-length-node/package.json +6 -5
- package/node_modules/@smithy/util-buffer-from/package.json +7 -6
- package/node_modules/@smithy/util-config-provider/package.json +6 -5
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +7 -7
- package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js +2 -2
- package/node_modules/@smithy/util-defaults-mode-node/package.json +10 -10
- package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +13 -15
- package/node_modules/@smithy/util-endpoints/package.json +5 -5
- package/node_modules/@smithy/util-hex-encoding/package.json +5 -4
- package/node_modules/@smithy/util-middleware/package.json +4 -4
- package/node_modules/@smithy/util-retry/dist-cjs/index.js +27 -21
- package/node_modules/@smithy/util-retry/package.json +5 -5
- package/node_modules/@smithy/util-stream/dist-cjs/index.js +4 -3
- package/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js +1 -1
- package/node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.js +1 -1
- package/node_modules/@smithy/util-stream/dist-types/checksum/ChecksumStream.d.ts +1 -0
- package/node_modules/@smithy/util-stream/dist-types/headStream.d.ts +1 -1
- package/node_modules/@smithy/util-stream/dist-types/splitStream.d.ts +2 -1
- package/node_modules/@smithy/util-stream/dist-types/ts3.4/headStream.d.ts +1 -1
- package/node_modules/@smithy/util-stream/dist-types/ts3.4/splitStream.d.ts +2 -1
- package/node_modules/@smithy/util-stream/package.json +11 -11
- package/node_modules/@smithy/util-uri-escape/package.json +5 -4
- package/node_modules/@smithy/util-utf8/package.json +6 -5
- package/node_modules/@smithy/util-waiter/dist-cjs/index.js +34 -9
- package/node_modules/@smithy/util-waiter/dist-es/poller.js +30 -4
- package/node_modules/@smithy/util-waiter/dist-es/utils/validate.js +3 -3
- package/node_modules/@smithy/util-waiter/dist-types/ts3.4/waiter.d.ts +5 -0
- package/node_modules/@smithy/util-waiter/dist-types/waiter.d.ts +5 -0
- package/node_modules/@smithy/util-waiter/package.json +4 -4
- package/node_modules/@types/aws-lambda/README.md +1 -1
- package/node_modules/@types/aws-lambda/index.d.ts +1 -0
- package/node_modules/@types/aws-lambda/package.json +4 -3
- package/node_modules/@types/aws-lambda/trigger/guard-duty-event-notification.d.ts +36 -0
- package/node_modules/axios/CHANGELOG.md +49 -0
- package/node_modules/axios/README.md +20 -8
- package/node_modules/axios/dist/axios.js +34 -63
- package/node_modules/axios/dist/axios.js.map +1 -1
- package/node_modules/axios/dist/axios.min.js +1 -1
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +40 -71
- package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
- package/node_modules/axios/dist/esm/axios.js +40 -71
- package/node_modules/axios/dist/esm/axios.js.map +1 -1
- package/node_modules/axios/dist/esm/axios.min.js +1 -1
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +45 -75
- package/node_modules/axios/dist/node/axios.cjs.map +1 -1
- package/node_modules/axios/index.d.cts +5 -1
- package/node_modules/axios/index.d.ts +8 -1
- package/node_modules/axios/lib/adapters/http.js +4 -4
- package/node_modules/axios/lib/core/Axios.js +7 -2
- package/node_modules/axios/lib/core/mergeConfig.js +5 -5
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/buildURL.js +7 -1
- package/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
- package/node_modules/axios/lib/helpers/isURLSameOrigin.js +12 -65
- package/node_modules/axios/lib/helpers/validator.js +8 -0
- package/node_modules/axios/package.json +3 -3
- package/node_modules/dotenv/CHANGELOG.md +15 -2
- package/node_modules/dotenv/README.md +37 -114
- package/node_modules/dotenv/package.json +5 -9
- package/node_modules/openid-client/lib/helpers/client.js +1 -4
- package/node_modules/openid-client/package.json +3 -3
- package/package.json +25 -24
- package/node_modules/@aws-sdk/client-sso-oidc/LICENSE +0 -201
- package/node_modules/@aws-sdk/client-sso-oidc/README.md +0 -274
- package/node_modules/@aws-sdk/client-sso-oidc/dist-cjs/index.js +0 -1052
- package/node_modules/@aws-sdk/client-sso-oidc/dist-es/SSOOIDC.js +0 -15
- package/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/CreateTokenWithIAMCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/RegisterClientCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/StartDeviceAuthorizationCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sso-oidc/dist-es/commands/index.js +0 -4
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/CreateTokenWithIAMCommand.d.ts +0 -257
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/RegisterClientCommand.d.ts +0 -143
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/StartDeviceAuthorizationCommand.d.ts +0 -123
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/commands/index.d.ts +0 -4
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/models/models_0.d.ts +0 -795
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/protocols/Aws_restJson1.d.ts +0 -38
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/SSOOIDC.d.ts +0 -73
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/commands/CreateTokenWithIAMCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/commands/RegisterClientCommand.d.ts +0 -50
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/commands/StartDeviceAuthorizationCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/commands/index.d.ts +0 -4
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +0 -53
- package/node_modules/@aws-sdk/client-sso-oidc/package.json +0 -102
- package/node_modules/@aws-sdk/client-sts/LICENSE +0 -201
- package/node_modules/@aws-sdk/client-sts/README.md +0 -281
- package/node_modules/@aws-sdk/client-sts/dist-cjs/index.js +0 -1535
- package/node_modules/@aws-sdk/client-sts/dist-es/STS.js +0 -25
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js +0 -22
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js +0 -22
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js +0 -22
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js +0 -23
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/index.js +0 -9
- package/node_modules/@aws-sdk/client-sts/dist-types/STS.d.ts +0 -78
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithSAMLCommand.d.ts +0 -294
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRootCommand.d.ts +0 -129
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/DecodeAuthorizationMessageCommand.d.ts +0 -127
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetAccessKeyInfoCommand.d.ts +0 -87
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetCallerIdentityCommand.d.ts +0 -128
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetFederationTokenCommand.d.ts +0 -242
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetSessionTokenCommand.d.ts +0 -166
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/index.d.ts +0 -9
- package/node_modules/@aws-sdk/client-sts/dist-types/protocols/Aws_query.d.ts +0 -83
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STS.d.ts +0 -160
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/AssumeRoleWithSAMLCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/AssumeRootCommand.d.ts +0 -47
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/DecodeAuthorizationMessageCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/GetAccessKeyInfoCommand.d.ts +0 -50
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/GetCallerIdentityCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/GetFederationTokenCommand.d.ts +0 -51
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/GetSessionTokenCommand.d.ts +0 -50
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/index.d.ts +0 -9
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/protocols/Aws_query.d.ts +0 -113
- package/node_modules/@aws-sdk/client-sts/package.json +0 -102
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/streams/create-read-stream-on-buffer.browser.js +0 -7
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/streams/create-read-stream-on-buffer.js +0 -11
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.browser.js +0 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.js +0 -7
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/streams/create-read-stream-on-buffer.browser.d.ts +0 -4
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/streams/create-read-stream-on-buffer.d.ts +0 -6
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/streams/create-read-stream-on-buffer.browser.d.ts +0 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/streams/create-read-stream-on-buffer.d.ts +0 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/.jsii +0 -7543
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/.jsii.tabl.json.gz +0 -0
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/.warnings.jsii.js +0 -217
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/LICENSE +0 -201
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/NOTICE +0 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/README.md +0 -560
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/awslint.json +0 -13
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/api-call-base.d.ts +0 -129
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/api-call-base.js +0 -56
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/assertions.d.ts +0 -36
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/assertions.js +0 -50
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/common.d.ts +0 -115
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/common.js +0 -157
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/http-call.d.ts +0 -22
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/http-call.js +0 -92
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/index.d.ts +0 -9
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/index.js +0 -26
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/match.d.ts +0 -42
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/match.js +0 -43
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/private/deploy-assert.d.ts +0 -43
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/private/deploy-assert.js +0 -98
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/private/hash.d.ts +0 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/private/hash.js +0 -12
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/index.d.ts +0 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/index.js +0 -19
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/assertion.d.ts +0 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/assertion.js +0 -144
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/base.d.ts +0 -30
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/base.js +0 -134
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/http.d.ts +0 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/http.js +0 -32
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/index.d.ts +0 -14
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/index.js +0 -171
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/sdk.d.ts +0 -9
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/sdk.js +0 -41
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/types.d.ts +0 -235
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/types.js +0 -43
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/utils.d.ts +0 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler/utils.js +0 -52
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/lambda-handler.bundle/index.js +0 -31704
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/provider.d.ts +0 -89
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/providers/provider.js +0 -232
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/sdk.d.ts +0 -149
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/sdk.js +0 -218
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/types.d.ts +0 -82
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/types.js +0 -3
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/waiter-state-machine.d.ts +0 -74
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/assertions/waiter-state-machine.js +0 -144
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/index.d.ts +0 -2
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/index.js +0 -19
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/manifest-synthesizer.d.ts +0 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/manifest-synthesizer.js +0 -33
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/manifest-writer.d.ts +0 -5
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/manifest-writer.js +0 -28
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/test-case.d.ts +0 -107
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/lib/test-case.js +0 -146
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/package.json +0 -139
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/rosetta/_generated.ts-fixture +0 -6
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-cdk/integ-tests-alpha/rosetta/default.ts-fixture +0 -31
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +0 -1
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.0c3255e93ffe7a906c7422e9f0e9cc4c7fd86ee996ee3bb302e2f134b38463c8/index.js +0 -8
- package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +0 -1
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/endpoint/endpointResolver.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/endpoint/ruleset.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/runtimeConfig.native.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-cjs → nested-clients/dist-cjs/submodules/sso-oidc}/runtimeConfig.shared.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/auth/httpAuthExtensionConfiguration.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/endpoint/EndpointParameters.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/endpoint/endpointResolver.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/endpoint/ruleset.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/runtimeConfig.native.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/runtimeConfig.shared.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-cjs → nested-clients/dist-cjs/submodules/sts}/runtimeExtensions.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es/extensionConfiguration.js → nested-clients/dist-es/index.js} +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/auth/httpAuthExtensionConfiguration.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/commands/CreateTokenCommand.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/endpoint/EndpointParameters.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/endpoint/endpointResolver.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/endpoint/ruleset.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sso-oidc}/extensionConfiguration.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/index.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/models/SSOOIDCServiceException.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/models/index.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/runtimeConfig.native.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/runtimeConfig.shared.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-es → nested-clients/dist-es/submodules/sso-oidc}/runtimeExtensions.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/auth/httpAuthExtensionConfiguration.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/commands/AssumeRoleCommand.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/commands/AssumeRoleWithWebIdentityCommand.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/defaultRoleAssumers.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/endpoint/EndpointParameters.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/endpoint/endpointResolver.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/endpoint/ruleset.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/index.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/models/STSServiceException.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/models/index.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/runtimeConfig.native.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/runtimeConfig.shared.js +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-es → nested-clients/dist-es/submodules/sts}/runtimeExtensions.js +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/auth/httpAuthExtensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/auth/httpAuthSchemeProvider.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/endpoint/EndpointParameters.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/endpoint/endpointResolver.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/endpoint/ruleset.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/extensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/models/SSOOIDCServiceException.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/models/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/runtimeConfig.shared.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types → nested-clients/dist-types/submodules/sso-oidc}/runtimeExtensions.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/auth/httpAuthExtensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/auth/httpAuthSchemeProvider.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/defaultRoleAssumers.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/endpoint/EndpointParameters.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/endpoint/endpointResolver.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/submodules/sts}/endpoint/ruleset.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/extensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/models/STSServiceException.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/submodules/sts}/models/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/runtimeConfig.shared.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/submodules/sts}/runtimeExtensions.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/auth/httpAuthExtensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/auth/httpAuthSchemeProvider.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/endpoint/EndpointParameters.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/endpoint/endpointResolver.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/endpoint/ruleset.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/extensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/models/SSOOIDCServiceException.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/models/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/runtimeConfig.shared.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sso-oidc/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/runtimeExtensions.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/auth/httpAuthExtensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/auth/httpAuthSchemeProvider.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/commands/AssumeRoleCommand.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/defaultRoleAssumers.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/endpoint/EndpointParameters.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/endpoint/endpointResolver.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/endpoint/ruleset.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/extensionConfiguration.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/models/STSServiceException.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/models/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/runtimeConfig.shared.d.ts +0 -0
- /package/node_modules/@aws-sdk/{client-sts/dist-types/ts3.4 → nested-clients/dist-types/ts3.4/submodules/sts}/runtimeExtensions.d.ts +0 -0
- /package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/{asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a → asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200}/index.js +0 -0
- /package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/{asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a → asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200}/index.js +0 -0
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const sqs_helper_1 = require("../lib/sqs-helper");
|
|
16
16
|
const step_function_helper_1 = require("../lib/step-function-helper");
|
|
17
|
+
const dynamodb_table_helper_1 = require("../lib/dynamodb-table-helper");
|
|
17
18
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
18
19
|
const defaults = require("../");
|
|
19
20
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
@@ -50,6 +51,78 @@ test('Create an SQS Source with overrides', () => {
|
|
|
50
51
|
// best we can do here, confirm values when we instantiate the actual pipe
|
|
51
52
|
expect(sqsSource.sourcePolicy.statementCount).toEqual(1);
|
|
52
53
|
});
|
|
54
|
+
test('Create a default DDB Streams Source', () => {
|
|
55
|
+
// Stack
|
|
56
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
57
|
+
const buildTableResponse = (0, dynamodb_table_helper_1.buildDynamoDBTableWithStream)(stack, {});
|
|
58
|
+
const tableSource = defaults.CreateDynamoDBStreamsSource(stack, {
|
|
59
|
+
table: buildTableResponse.tableObject
|
|
60
|
+
});
|
|
61
|
+
expect(tableSource.sourceArn).toEqual(buildTableResponse.tableObject?.tableStreamArn);
|
|
62
|
+
expect(Object.keys(tableSource.sourceParameters).length).toEqual(1);
|
|
63
|
+
expect(tableSource.sourcePolicy.statementCount).toEqual(2);
|
|
64
|
+
expect(tableSource.dlq).toBeDefined();
|
|
65
|
+
const streamParamters = tableSource.sourceParameters.dynamoDbStreamParameters;
|
|
66
|
+
expect(streamParamters.deadLetterConfig).toBeDefined();
|
|
67
|
+
});
|
|
68
|
+
test('Confirm that we use custom DLQ props', () => {
|
|
69
|
+
const queueName = 'something-unique-asdf';
|
|
70
|
+
// Stack
|
|
71
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
72
|
+
const buildTableResponse = (0, dynamodb_table_helper_1.buildDynamoDBTableWithStream)(stack, {});
|
|
73
|
+
defaults.CreateDynamoDBStreamsSource(stack, {
|
|
74
|
+
table: buildTableResponse.tableObject,
|
|
75
|
+
sqsDlqQueueProps: {
|
|
76
|
+
queueName,
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
80
|
+
template.hasResourceProperties("AWS::SQS::Queue", {
|
|
81
|
+
QueueName: queueName
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
test('Create DDB Streams Source with no DLQ', () => {
|
|
85
|
+
// Stack
|
|
86
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
87
|
+
const buildTableResponse = (0, dynamodb_table_helper_1.buildDynamoDBTableWithStream)(stack, {});
|
|
88
|
+
const tableSource = defaults.CreateDynamoDBStreamsSource(stack, {
|
|
89
|
+
table: buildTableResponse.tableObject,
|
|
90
|
+
deploySqsDlqQueue: false
|
|
91
|
+
});
|
|
92
|
+
expect(tableSource.sourceArn).toEqual(buildTableResponse.tableObject?.tableStreamArn);
|
|
93
|
+
expect(Object.keys(tableSource.sourceParameters).length).toEqual(1);
|
|
94
|
+
expect(tableSource.sourcePolicy.statementCount).toEqual(1);
|
|
95
|
+
expect(tableSource.dlq).toBeUndefined();
|
|
96
|
+
const streamParamters = tableSource.sourceParameters.dynamoDbStreamParameters;
|
|
97
|
+
expect(streamParamters.maximumRetryAttempts).toBeUndefined();
|
|
98
|
+
expect(streamParamters.deadLetterConfig).toBeUndefined();
|
|
99
|
+
expect(streamParamters.startingPosition).toBeDefined();
|
|
100
|
+
});
|
|
101
|
+
test('Create an DDB Streams Source with overrides', () => {
|
|
102
|
+
const batchSizeValue = 4642;
|
|
103
|
+
// Stack
|
|
104
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
105
|
+
const buildTableResponse = (0, dynamodb_table_helper_1.buildDynamoDBTableWithStream)(stack, {});
|
|
106
|
+
const tableSource = defaults.CreateDynamoDBStreamsSource(stack, {
|
|
107
|
+
table: buildTableResponse.tableObject,
|
|
108
|
+
clientProps: {
|
|
109
|
+
dynamoDbStreamParameters: {
|
|
110
|
+
startingPosition: 'LATEST',
|
|
111
|
+
batchSize: batchSizeValue
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
expect(tableSource.sourceArn).toEqual(buildTableResponse.tableObject?.tableStreamArn);
|
|
116
|
+
// Because sqsQueueParameters type include 'IResolvable |', we need to extract the property this way
|
|
117
|
+
const batchSizeProp = tableSource.sourceParameters.dynamoDbStreamParameters.batchSize;
|
|
118
|
+
expect(batchSizeProp).toEqual(batchSizeValue);
|
|
119
|
+
// best we can do here, confirm values when we instantiate the actual pipe
|
|
120
|
+
expect(tableSource.sourcePolicy.statementCount).toEqual(2);
|
|
121
|
+
const streamParamters = tableSource.sourceParameters.dynamoDbStreamParameters;
|
|
122
|
+
expect(streamParamters.maximumRetryAttempts).toEqual(3);
|
|
123
|
+
expect(streamParamters.deadLetterConfig).toBeDefined();
|
|
124
|
+
expect(streamParamters.startingPosition).toBeDefined();
|
|
125
|
+
});
|
|
53
126
|
test('Create a default Step Functions Target', () => {
|
|
54
127
|
// Stack
|
|
55
128
|
const stack = new aws_cdk_lib_1.Stack();
|
|
@@ -89,6 +162,25 @@ test('Create a Step Functions Target with overrides', () => {
|
|
|
89
162
|
// best we can do here, confirm values when we instantiate the actual pipe
|
|
90
163
|
expect(stateMachineTarget.targetPolicy.statementCount).toEqual(1);
|
|
91
164
|
});
|
|
165
|
+
test('Check for error when DLQ is off but max constraint set', () => {
|
|
166
|
+
// Stack
|
|
167
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
168
|
+
const buildTableResponse = (0, dynamodb_table_helper_1.buildDynamoDBTableWithStream)(stack, {});
|
|
169
|
+
const app = () => {
|
|
170
|
+
defaults.CreateDynamoDBStreamsSource(stack, {
|
|
171
|
+
clientProps: {
|
|
172
|
+
dynamoDbStreamParameters: {
|
|
173
|
+
startingPosition: 'LATEST',
|
|
174
|
+
maximumRecordAgeInSeconds: 100
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
table: buildTableResponse.tableObject,
|
|
178
|
+
deploySqsDlqQueue: false
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
// Assertion
|
|
182
|
+
expect(app).toThrowError('ERROR - retry and record age constraints cannot be specified with no DLQ\n');
|
|
183
|
+
});
|
|
92
184
|
// =================================
|
|
93
185
|
// Test pipe creation
|
|
94
186
|
// =================================
|
|
@@ -692,4 +784,4 @@ function CheckLogGroup(template) {
|
|
|
692
784
|
},
|
|
693
785
|
});
|
|
694
786
|
}
|
|
695
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsa0RBQStDO0FBQy9DLHNFQUFnRTtBQUNoRSw2Q0FBb0M7QUFDcEMsZ0NBQWdDO0FBRWhDLGlEQUFpRDtBQUVqRCx5Q0FBeUM7QUFDekMsdURBQXlEO0FBQ3pELG1EQUFxRDtBQUVyRCxvQ0FBb0M7QUFDcEMsc0NBQXNDO0FBQ3RDLG9DQUFvQztBQUVwQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLGtCQUFrQixHQUFHLElBQUEsdUJBQVUsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSwwRUFBMEU7SUFDMUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtJQUMvQyxR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cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGJ1aWxkUXVldWUgfSBmcm9tIFwiLi4vbGliL3Nxcy1oZWxwZXJcIjtcbmltcG9ydCB7IGJ1aWxkU3RhdGVNYWNoaW5lIH0gZnJvbSBcIi4uL2xpYi9zdGVwLWZ1bmN0aW9uLWhlbHBlclwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJy4uLyc7XG5pbXBvcnQgKiBhcyBwaXBlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcGlwZXMnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRlc3Qgc291cmNlcyBhbmQgdGFyZ2V0cyBnZW5lcmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBTUVMgU291cmNlJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc3RhY2ssICd0ZXN0LXF1ZXVlJywge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlKTtcblxuICBleHBlY3Qoc3FzU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm4pO1xuICBleHBlY3QoT2JqZWN0LmtleXMoc3FzU291cmNlLnNvdXJjZVBhcmFtZXRlcnMpLmxlbmd0aCkudG9FcXVhbCgwKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHNxc1NvdXJjZS5zb3VyY2VQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG4gIFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGFuIFNRUyBTb3VyY2Ugd2l0aCBvdmVycmlkZXMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRRdWV1ZVJlc3BvbnNlID0gYnVpbGRRdWV1ZShzdGFjaywgJ3Rlc3QtcXVldWUnLCB7fSk7XG4gIGNvbnN0IHNxc1NvdXJjZSA9IGRlZmF1bHRzLkNyZWF0ZVNxc1NvdXJjZShidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUsIHtcbiAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgIGJhdGNoU2l6ZTogMTIzLFxuICAgIH0sXG4gIH0pO1xuXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlQXJuKS50b0VxdWFsKGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZS5xdWV1ZUFybik7XG4gIC8vIEJlY2F1c2Ugc3FzUXVldWVQYXJhbWV0ZXJzIHR5cGUgaW5jbHVkZSAnSVJlc29sdmFibGUgfCcsIHdlIG5lZWQgdG8gZXh0cmFjdCB0aGUgcHJvcGVydHkgdGhpcyB3YXlcbiAgY29uc3QgYmF0Y2hTaXplUHJvcCA9XG4gICAgKHNxc1NvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzLnNxc1F1ZXVlUGFyYW1ldGVycyBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VTcXNRdWV1ZVBhcmFtZXRlcnNQcm9wZXJ0eSkhLmJhdGNoU2l6ZTtcbiAgZXhwZWN0KGJhdGNoU2l6ZVByb3ApLnRvRXF1YWwoMTIzKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHNxc1NvdXJjZS5zb3VyY2VQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBTdGVwIEZ1bmN0aW9ucyBUYXJnZXQnLCAoKSA9PiB7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd0ZXN0LXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICdzdHViLXN0YXRlLW1hY2hpbmUnKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnRklSRV9BTkRfRk9SR0VUJyk7XG4gIGV4cGVjdChPYmplY3Qua2V5cyhzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAvLyBiZXN0IHdlIGNhbiBkbyBoZXJlLCBjb25maXJtIHZhbHVlcyB3aGVuIHdlIGluc3RhbnRpYXRlIHRoZSBhY3R1YWwgcGlwZVxuICBleHBlY3Qoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgxKTtcbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIFN0ZXAgRnVuY3Rpb25zIFRhcmdldCB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzdGFjaywgJ3Rlc3Qtc3RhdGUtbWFjaGluZScsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3N0dWItc3RhdGUtbWFjaGluZScpXG4gICAgfVxuICB9KTtcbiAgY29uc3Qgc3RhdGVNYWNoaW5lVGFyZ2V0ID0gZGVmYXVsdHMuQ3JlYXRlU3RhdGVNYWNoaW5lVGFyZ2V0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lLCB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnUkVRVUVTVF9SRVNQT05TRScpO1xuICBleHBlY3QoT2JqZWN0LmtleXMoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBhcmFtZXRlcnMpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG59KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZXN0IHBpcGUgY3JlYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50ZXN0KCdDcmVhdGUgYSBkZWZhdWx0IHBpcGUnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2FsbGRlZmF1bHQnO1xuICBjb25zdCBwaXBlSWQgPSAnZGVmYXVsdHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHt9XG4gIH0pO1xuXG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcbn0pO1xuXG50ZXN0KCdDcmVhdGUgYSBwaXBlIHdpdGggb3ZlcnJpZGVzJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdvdmVycmlkZXN0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ292ZXJyaWRlc3BpcGUnO1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHRlc3REZXNjcmlwdGlvbiA9ICd0ZXN0LWRlc2NyaXB0aW9uJztcbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiB0ZXN0RGVzY3JpcHRpb25cbiAgICB9XG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBUaGUgZGVzY3JpcHRpb24gaXMgdW5pcXVlIHRvIHRoaXMgdGVzdCwgc28gY2hlY2sgaXQgaGVyZVxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgRGVzY3JpcHRpb246IHRlc3REZXNjcmlwdGlvblxuICB9KTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBhIGZpbHRlcicsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnZmlsdGVydGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdmaWx0ZXJwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHRlc3RGaWx0ZXJQYXR0ZXJuID0gYHtcbiAgICBcImJvZHlcIjoge1xuICAgICAgXCJzdGF0ZVwiOiBbXCJvcGVuXCJdXG4gICAgfVxuICB9YDtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBjbGllbnRQcm9wczoge1xuICAgICAgc291cmNlUGFyYW1ldGVyczoge1xuICAgICAgICBmaWx0ZXJDcml0ZXJpYToge1xuICAgICAgICAgIGZpbHRlcnM6IFt7IHBhdHRlcm46IHRlc3RGaWx0ZXJQYXR0ZXJuIH1dLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBTb3VyY2VQYXJhbWV0ZXJzIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3QsIHNvIGNoZWNrIGl0IGhlcmVcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIFNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgIEZpbHRlckNyaXRlcmlhOiB7XG4gICAgICAgIEZpbHRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBQYXR0ZXJuOiB0ZXN0RmlsdGVyUGF0dGVyblxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgcGlwZSB3aXRoIExhbWJkYSBmdW5jdGlvbiBlbnJpY2htZW50JywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdsYW1iZGFlbnJpY2h0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ2xhbWJkYWVucmljaHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgZW5yaWNobWVudEZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ2VucmljaG1lbnQtZnVuY3Rpb24nLCB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhLXRlc3RgKSxcbiAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgfSk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgZW5yaWNobWVudEZ1bmN0aW9uXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuXG4gIC8vIEVucmljaG1lbnQgaXMgdW5pcXVlIHRvIHRoaXMgdGVzdCBzbyBjaGVjayBpdCBoZXJlXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBFbnJpY2htZW50OiB7XG4gICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdlbnJpY2htZW50ZnVuY3Rpb24uKicpLFxuICAgICAgICBcIkFyblwiXG4gICAgICBdXG4gICAgfSxcbiAgfSk7XG4gIC8vIFRoaXMgY2hlY2tzIGZvciBldmVyeXRoaW5nIGJ1dCBlbnJpY2htZW50XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgLy8gVGhpcyBjaGVja3MgZm9yIGVucmljaG1lbnQgcGVybWlzc2lvbnNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OklBTTo6UG9saWN5Jywge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnZW5yaWNobWVudGZ1bmN0aW9uLionKSxcbiAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY3lOYW1lOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBlbnJpY2htZW50cG9saWN5JHtwaXBlSWR9LipgKSxcbiAgICBSb2xlczogW1xuICAgICAge1xuICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFBpcGVSb2xlJHtwaXBlSWR9LipgKVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgcGlwZSB3aXRoIHN0YXRlIG1hY2hpbmUgZW5yaWNobWVudCcsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnc21lbnJpY2h0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ3NtZW5yaWNocGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBlbnJpY2htZW50U3RhdGVNYWNoaW5lID0gZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZShzdGFjaywgJ3N0YXRlLW1hY2hpbmUtZW5yaWNobWVudCcpO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGVucmljaG1lbnRTdGF0ZU1hY2hpbmVcbiAgfSk7XG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBMb29rIGZvciBhZGRpdGlvbmFsIGVucmljaG1lbnQgcGVybWlzaW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUaGlzIHdvbid0IHJ1biBpZiB3ZSBhY3R1YWxseSBsYXVuY2hlZCBpdCBhcyB0aGUgZW5yaWNobWVudFN0YXRlTWFjaGluZSBpcyBub3QgRVhQUkVTU1xuICAgICAgICAgIEFjdGlvbjogXCJzdGF0ZXM6U3RhcnRTeW5jRXhlY3V0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnc3RhdGVtYWNoaW5lZW5yaWNobWVudC4qJyksXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICB9LFxuICAgIFBvbGljeU5hbWU6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYGVucmljaG1lbnRwb2xpY3kke3BpcGVJZH0uKmApLFxuICAgIFJvbGVzOiBbXG4gICAgICB7XG4gICAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgUGlwZVJvbGUke3BpcGVJZH0uKmApXG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIEVucmljaG1lbnQ6IHtcbiAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChcInN0YXRlbWFjaGluZWVucmljaG1lbnQuKlwiKVxuICAgIH0sXG4gIH0pO1xufSk7XG5cbnRlc3QoJ1Byb3ZpZGUgcmVwbGFjZW1lbnQgTG9nQ29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnbG9nY29uZmlndGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdsb2djb25maWdwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IGN1c3RvbUxvZ0NvbmZpZ3VyYXRpb246IHBpcGVzLkNmblBpcGUuUGlwZUxvZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSA9IHtcbiAgICBzM0xvZ0Rlc3RpbmF0aW9uOiB7XG4gICAgICBidWNrZXROYW1lOiBuZXcgczMuQnVja2V0KHN0YWNrLCAndGVzdCcpLmJ1Y2tldE5hbWUsXG4gICAgfSxcbiAgICBsZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUlxuICB9O1xuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBjbGllbnRQcm9wczoge1xuICAgICAgbG9nQ29uZmlndXJhdGlvbjogY3VzdG9tTG9nQ29uZmlndXJhdGlvblxuICAgIH1cbiAgfSk7XG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgQ2hlY2tQaXBlU291cmNlQW5kVGFyZ2V0KHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIExldmVsOiBcIkVSUk9SXCIsXG4gICAgICBTM0xvZ0Rlc3RpbmF0aW9uOiB7XG4gICAgICAgIEJ1Y2tldE5hbWU6IHtcbiAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoXCJ0ZXN0LipcIilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbn0pO1xuXG50ZXN0KCdPdmVycmlkZSB0aGUgZGVmYXVsdCBsb2cgbGV2ZWwnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2xvZ2xldmVsdHRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnbG9nbGV2ZWxwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGxvZ0xldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gTGV2ZWwgaXMgdW5pcXVlIHRvIHRoaXMgdGVzdFxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgTG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuRVJST1IsXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdUZXN0IG5vIGxvZ2dpbmcnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ25vbG9ncyc7XG4gIGNvbnN0IHBpcGVJZCA9ICd0ZXN0cGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5PRkZcbiAgfSk7XG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgLy8gT25lIGxvZyBncm91cCBmb3IgdGhlIHN0YXRlIG1hY2hpbmUsIG5vbmUgZm9yIHRoZSBwaXBlXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpMb2dzOjpMb2dHcm91cCcsIDEpO1xufSk7XG5cbnRlc3QoJ092ZXJyaWRlIGEgc3Vic2V0IG9mIFNRUyBzb3VyY2UgcGFyYW10ZXJzJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdzcmNwYXJhbXRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnc3JjcGFyYW1waXBlJztcbiAgY29uc3QgdGVzdEJhdGNoU2l6ZSA9IDc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBjbGllbnRQcm9wczoge1xuICAgICAgc291cmNlUGFyYW1ldGVyczoge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBiYXRjaFNpemU6IHRlc3RCYXRjaFNpemUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIFNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgIFNxc1F1ZXVlUGFyYW1ldGVyczoge1xuICAgICAgICBCYXRjaFNpemU6IHRlc3RCYXRjaFNpemVcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdQcm92aWRlIHBpcGVMb2dQcm9wcycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAncGlwZWxvZ3Byb3BzdGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdwaXBlbG9ncHJvcHNwaXBlJztcbiAgLy8gV2hpbGUgdGhpcyBpcyBhbiBlbnVtIHdlIG5lZWQgdG8gdXNlLCBpbiB0aGUgdGVtcGxhdGVcbiAgLy8gaXQgaXMgY29udmVydGVkIHRvIGRheXMsIGluIHRoaXMgY2FzZSAxMjBcbiAgY29uc3QgdGVzdFJldGVudGlvbiA9IFJldGVudGlvbkRheXMuRk9VUl9NT05USFM7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBwaXBlTG9nUHJvcHM6IHtcbiAgICAgIHJldGVudGlvbjogdGVzdFJldGVudGlvblxuICAgIH1cbiAgfSk7XG5cbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuICBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlLCBwaXBlSWQpO1xuXG4gIC8vIExvb2sgZm9yIGFkZGl0aW9uYWwgcHJvcGVydHkgd2UgcGFzc2VkIGluIHBpcGVMb2dQcm9wc1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCB7XG4gICAgUmV0ZW50aW9uSW5EYXlzOiAxMjAsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBzb3VyY2UgaW4gQ2ZuUHJvcHMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLnNvdXJjZUFyblxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcHJvdmlkaW5nIHRhcmdldCBpbiBDZm5Qcm9wcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQudGFyZ2V0QXJuLFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcHJvdmlkaW5nIGEgcm9sZUFybicsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIHJvbGVBcm46IFwic29tZS1hcm5cIixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBlbnJpY2htZW50JywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgZW5yaWNobWVudDogXCJmdW5jdGlvbkFyblwiLFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gbG9nIGxldmVsIGFuZCBsb2cgY29uZmlndXJhdGlvbiBhcmUgYm90aCBwcm92aWRlZCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGxvZ0xldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SLFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbjogeyBzb21lOiBcIm9iamVjdFwiIH0sXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgbG9nTGV2ZWwgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwaXBlTG9nUHJvcHMgYW5kIGxvZyBjb25maWd1cmF0aW9uIGFyZSBib3RoIHByb3ZpZGVkJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgcGlwZUxvZ1Byb3BzOiB7IGxvZ0dyb3VwTmFtZTogXCJhbnl2YWx1ZVwiIH0sXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBsb2dDb25maWd1cmF0aW9uOiB7IHNvbWU6IFwib2JqZWN0XCIgfSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBwaXBlTG9nUHJvcHMgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBlbnJpY2htZW50RnVuY3Rpb24gYW5kIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgYXJlIGJvdGggcHJvdmlkZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBlbnJpY2htZW50RnVuY3Rpb246IHsgcGxhY2U6IFwiaG9sZGVyXCIgfSBhcyB1bmtub3duIGFzIGxhbWJkYS5GdW5jdGlvbixcbiAgICAgIGVucmljaG1lbnRTdGF0ZU1hY2hpbmU6IHsgcGxhY2U6IFwiaG9sZGVyXCIgfSBhcyB1bmtub3duIGFzIHNmbi5TdGF0ZU1hY2hpbmVcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBPbmx5IG9uZSBvZiBlbnJpY2htZW50RnVuY3Rpb24gb3IgZW5yaWNobWVudFN0YXRlTWFjaGluZSBjYW4gYmUgcHJvdmlkZWQnKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwaXBlTG9nUHJvcHMgYW5kIGxvZyBsZXZlbCBpcyBzZXQgdG8gT0ZGJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgbG9nTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuT0ZGLFxuICAgICAgcGlwZUxvZ1Byb3BzOiB7IGxvZ0dyb3VwTmFtZTogXCJhbnl2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgcGlwZUxvZ1Byb3BzIGFuZCBsb2cgbGV2ZWwgT0ZGJyk7XG59KTtcblxudGVzdCgnVGVzdCBhbGwgb2YgQ2hlY2tQaXBlc1Byb3BzJywgKCkgPT4ge1xuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ2hlY2tQaXBlc1Byb3BzKHtcbiAgICAgIHBpcGVzUHJvcHM6IHsgc291cmNlOiBcInZhbHVlXCIgfSxcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRG8gbm90IHNldCBzb3VyY2UgaW4gcGlwZXNQcm9wcy4gSXQgaXMgc2V0IGJ5IHRoZSBjb25zdHJ1Y3QuXFxuJyk7XG5cbiAgY29uc3QgYXBwVHdvID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrUGlwZXNQcm9wcyh7XG4gICAgICBwaXBlc1Byb3BzOiB7IHRhcmdldDogXCJ2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwVHdvKS50b1Rocm93RXJyb3IoJ0RvIG5vdCBzZXQgdGFyZ2V0IGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0LlxcbicpO1xuXG59KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTaGFyZWQgc2V0dXAgZnVuY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbnRlcmZhY2UgUHJlcmVxdWlzaXRlcyB7XG4gIHNvdXJjZTogZGVmYXVsdHMuQ3JlYXRlU291cmNlUmVzcG9uc2UsXG4gIHRhcmdldDogZGVmYXVsdHMuQ3JlYXRlVGFyZ2V0UmVzcG9uc2UsXG59XG5cbmZ1bmN0aW9uIENyZWF0ZVByZXJlcXVpc2l0ZXMoc2NvcGU6IFN0YWNrLCBpZDogc3RyaW5nKTogUHJlcmVxdWlzaXRlcyB7XG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc2NvcGUsIGAke2lkfS1zb3VyY2UtcXVldWVgLCB7fSk7XG4gIGNvbnN0IHNxc1NvdXJjZSA9IGRlZmF1bHRzLkNyZWF0ZVNxc1NvdXJjZShidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzY29wZSwgYCR7aWR9LXRhcmdldC1zdGF0ZS1tYWNoaW5lYCwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHNjb3BlLCBgJHtpZH0tc3RlcHNgKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSwge1xuICAgIHN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnM6IHtcbiAgICAgIGludm9jYXRpb25UeXBlOiAnUkVRVUVTVF9SRVNQT05TRSdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNvdXJjZTogc3FzU291cmNlLFxuICAgIHRhcmdldDogc3RhdGVNYWNoaW5lVGFyZ2V0XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2hhcmVkIGZ1bmN0aW9ucyB0aGF0IGNoZWNrIGRlZmF1bHQgc2V0dGluZ3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlOiBkZWZhdWx0cy5CdWlsZFBpcGVzUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXM6IFByZXJlcXVpc2l0ZXMpIHtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocGlwZVJlc3BvbnNlLnBpcGUuc291cmNlKS50b0VxdWFsKHByZXJlcXVpc2l0ZXMuc291cmNlLnNvdXJjZUFybik7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZS50YXJnZXQpLnRvRXF1YWwocHJlcmVxdWlzaXRlcy50YXJnZXQudGFyZ2V0QXJuKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlUm9sZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlUm9sZS5ub2RlKS50b0JlRGVmaW5lZCgpO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZTogVGVtcGxhdGUsXG4gIHBpcGVJZDogc3RyaW5nLFxuICBwcmVyZXF1aXNpdGVJZDogc3RyaW5nXG4pIHtcbiAgQ2hlY2tQaXBlU291cmNlQW5kVGFyZ2V0KHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZUxvZ0NvbmZpZ3VyYXRpb24odGVtcGxhdGUsIHBpcGVJZCk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZTogVGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIFNvdXJjZToge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgJHtwcmVyZXF1aXNpdGVJZH1zb3VyY2VxdWV1ZS4qYCksXG4gICAgICAgIFwiQXJuXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFRhcmdldDoge1xuICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBTdGF0ZU1hY2hpbmUke3ByZXJlcXVpc2l0ZUlkfXRhcmdldHN0YXRlbWFjaGluZS4qYCksXG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZUxvZ0NvbmZpZ3VyYXRpb24odGVtcGxhdGU6IFRlbXBsYXRlLCBwaXBlSWQ6IHN0cmluZykge1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgTG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgQ2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICBMb2dHcm91cEFybjoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBMb2dHcm91cCR7cGlwZUlkfS4qYCksXG4gICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZTogVGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OklBTTo6Um9sZScsIHtcbiAgICBBc3N1bWVSb2xlUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBcInN0czpBc3N1bWVSb2xlXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUHJpbmNpcGFsOiB7XG4gICAgICAgICAgICBTZXJ2aWNlOiBcInBpcGVzLmFtYXpvbmF3cy5jb21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY2llczogW1xuICAgICAge1xuICAgICAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICAgICAgICAgIFwic3FzOkRlbGV0ZU1lc3NhZ2VcIixcbiAgICAgICAgICAgICAgICBcInNxczpHZXRRdWV1ZUF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgJHtwcmVyZXF1aXNpdGVJZH1zb3VyY2VxdWV1ZS4qYCksXG4gICAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgICAgICB9LFxuICAgICAgICBQb2xpY3lOYW1lOiBcInNvdXJjZVBvbGljeVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBY3Rpb246IFwic3RhdGVzOlN0YXJ0RXhlY3V0aW9uXCIsXG4gICAgICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgU3RhdGVNYWNoaW5lJHtwcmVyZXF1aXNpdGVJZH10YXJnZXRzdGF0ZW1hY2hpbmUuKmApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFBvbGljeU5hbWU6IFwidGFyZ2V0UG9saWN5XCJcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlOiBUZW1wbGF0ZSkge1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCB7XG4gICAgTG9nR3JvdXBOYW1lOiB7XG4gICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgXCJcIixcbiAgICAgICAgW1xuICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ1xcL2F3c1xcL3ZlbmRlZGxvZ3NcXC9waXBlc1xcL2NvbnN0cnVjdHMnKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIkZuOjpTZWxlY3RcIjogW1xuICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICBNYXRjaC5hbnlWYWx1ZSgpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICBdXG4gICAgfSxcbiAgfSk7XG59Il19
|
|
787
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsa0RBQStDO0FBQy9DLHNFQUFnRTtBQUNoRSx3RUFBNEU7QUFDNUUsNkNBQW9DO0FBQ3BDLGdDQUFnQztBQUVoQyxpREFBaUQ7QUFFakQseUNBQXlDO0FBQ3pDLHVEQUF5RDtBQUN6RCxtREFBcUQ7QUFFckQsb0NBQW9DO0FBQ3BDLHNDQUFzQztBQUN0QyxvQ0FBb0M7QUFFcEMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxFQUFFLENBQUM7SUFFMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFVLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsMEVBQTBFO0lBQzFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxHQUFH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RTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFO2dDQUNOLG9CQUFvQjtnQ0FDcEIsbUJBQW1CO2dDQUNuQix3QkFBd0I7NkJBQ3pCOzRCQUNELE1BQU0sRUFBRSxPQUFPOzRCQUNmLFFBQVEsRUFBRTtnQ0FDUixZQUFZLEVBQUU7b0NBQ1osa0JBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGNBQWMsZUFBZSxDQUFDO29DQUN4RCxLQUFLO2lDQUNOOzZCQUNGO3lCQUNGO3FCQUNGO29CQUNELE9BQU8sRUFBRSxZQUFZO2lCQUN0QjtnQkFDRCxVQUFVLEVBQUUsY0FBYzthQUMzQjtZQUNEO2dCQUNFLGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFLHVCQUF1Qjs0QkFDL0IsTUFBTSxFQUFFLE9BQU87NEJBQ2YsUUFBUSxFQUFFO2dDQUNSLEdBQUcsRUFBRSxrQkFBSyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsY0FBYyxzQkFBc0IsQ0FBQzs2QkFDakY7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLFlBQVk7aUJBQ3RCO2dCQUNELFVBQVUsRUFBRSxjQUFjO2FBQzNCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBa0I7SUFDdkMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixFQUFFO1FBQ3BELFlBQVksRUFBRTtZQUNaLFVBQVUsRUFBRTtnQkFDVixFQUFFO2dCQUNGO29CQUNFLGtCQUFLLENBQUMsZ0JBQWdCLENBQUMsc0NBQXNDLENBQUM7b0JBQzlEO3dCQUNFLFlBQVksRUFBRTs0QkFDWixDQUFDOzRCQUNELGtCQUFLLENBQUMsUUFBUSxFQUFFO3lCQUNqQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgYnVpbGRRdWV1ZSB9IGZyb20gXCIuLi9saWIvc3FzLWhlbHBlclwiO1xuaW1wb3J0IHsgYnVpbGRTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiLi4vbGliL3N0ZXAtZnVuY3Rpb24taGVscGVyXCI7XG5pbXBvcnQgeyBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtIH0gZnJvbSBcIi4uL2xpYi9keW5hbW9kYi10YWJsZS1oZWxwZXJcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZXN0IHNvdXJjZXMgYW5kIHRhcmdldHMgZ2VuZXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgU1FTIFNvdXJjZScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBidWlsZFF1ZXVlKHN0YWNrLCAndGVzdC1xdWV1ZScsIHt9KTtcbiAgY29uc3Qgc3FzU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlU3FzU291cmNlKGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZSk7XG5cbiAgZXhwZWN0KHNxc1NvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLnF1ZXVlQXJuKTtcbiAgZXhwZWN0KE9iamVjdC5rZXlzKHNxc1NvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBTUVMgU291cmNlIHdpdGggb3ZlcnJpZGVzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc3RhY2ssICd0ZXN0LXF1ZXVlJywge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLCB7XG4gICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICBiYXRjaFNpemU6IDEyMyxcbiAgICB9LFxuICB9KTtcblxuICBleHBlY3Qoc3FzU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm4pO1xuICAvLyBCZWNhdXNlIHNxc1F1ZXVlUGFyYW1ldGVycyB0eXBlIGluY2x1ZGUgJ0lSZXNvbHZhYmxlIHwnLCB3ZSBuZWVkIHRvIGV4dHJhY3QgdGhlIHByb3BlcnR5IHRoaXMgd2F5XG4gIGNvbnN0IGJhdGNoU2l6ZVByb3AgPVxuICAgIChzcXNTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5zcXNRdWV1ZVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlU3FzUXVldWVQYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKDEyMyk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgRERCIFN0cmVhbXMgU291cmNlJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcbiAgY29uc3QgdGFibGVTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0IVxuICB9KTtcblxuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlQXJuKS50b0VxdWFsKGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdD8udGFibGVTdHJlYW1Bcm4pO1xuICBleHBlY3QoT2JqZWN0LmtleXModGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDIpO1xuICBleHBlY3QodGFibGVTb3VyY2UuZGxxKS50b0JlRGVmaW5lZCgpO1xuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gdGhhdCB3ZSB1c2UgY3VzdG9tIERMUSBwcm9wcycsICgpID0+IHtcbiAgY29uc3QgcXVldWVOYW1lID0gJ3NvbWV0aGluZy11bmlxdWUtYXNkZic7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRUYWJsZVJlc3BvbnNlID0gYnVpbGREeW5hbW9EQlRhYmxlV2l0aFN0cmVhbShzdGFjaywge30pO1xuICBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0ISxcbiAgICBzcXNEbHFRdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWUsXG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgUXVldWVOYW1lOiBxdWV1ZU5hbWVcbiAgfSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIEREQiBTdHJlYW1zIFNvdXJjZSB3aXRoIG5vIERMUScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gIH0pO1xuXG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0Py50YWJsZVN0cmVhbUFybik7XG4gIGV4cGVjdChPYmplY3Qua2V5cyh0YWJsZVNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5kbHEpLnRvQmVVbmRlZmluZWQoKTtcbiAgY29uc3Qgc3RyZWFtUGFyYW10ZXJzID0gKHRhYmxlU291cmNlLnNvdXJjZVBhcmFtZXRlcnMuZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzISBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMubWF4aW11bVJldHJ5QXR0ZW1wdHMpLnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMuc3RhcnRpbmdQb3NpdGlvbikudG9CZURlZmluZWQoKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBEREIgU3RyZWFtcyBTb3VyY2Ugd2l0aCBvdmVycmlkZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGJhdGNoU2l6ZVZhbHVlID0gNDY0MjtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGR5bmFtb0RiU3RyZWFtUGFyYW1ldGVyczoge1xuICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgYmF0Y2hTaXplOiBiYXRjaFNpemVWYWx1ZVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3Q/LnRhYmxlU3RyZWFtQXJuKTtcbiAgLy8gQmVjYXVzZSBzcXNRdWV1ZVBhcmFtZXRlcnMgdHlwZSBpbmNsdWRlICdJUmVzb2x2YWJsZSB8Jywgd2UgbmVlZCB0byBleHRyYWN0IHRoZSBwcm9wZXJ0eSB0aGlzIHdheVxuICBjb25zdCBiYXRjaFNpemVQcm9wID1cbiAgICAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlRHluYW1vREJTdHJlYW1QYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKGJhdGNoU2l6ZVZhbHVlKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZVBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgyKTtcblxuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5tYXhpbXVtUmV0cnlBdHRlbXB0cykudG9FcXVhbCgzKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3Qoc3RyZWFtUGFyYW10ZXJzLnN0YXJ0aW5nUG9zaXRpb24pLnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBTdGVwIEZ1bmN0aW9ucyBUYXJnZXQnLCAoKSA9PiB7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd0ZXN0LXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICdzdHViLXN0YXRlLW1hY2hpbmUnKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnRklSRV9BTkRfRk9SR0VUJyk7XG4gIGV4cGVjdChPYmplY3Qua2V5cyhzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAvLyBiZXN0IHdlIGNhbiBkbyBoZXJlLCBjb25maXJtIHZhbHVlcyB3aGVuIHdlIGluc3RhbnRpYXRlIHRoZSBhY3R1YWwgcGlwZVxuICBleHBlY3Qoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgxKTtcbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIFN0ZXAgRnVuY3Rpb25zIFRhcmdldCB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzdGFjaywgJ3Rlc3Qtc3RhdGUtbWFjaGluZScsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3N0dWItc3RhdGUtbWFjaGluZScpXG4gICAgfVxuICB9KTtcbiAgY29uc3Qgc3RhdGVNYWNoaW5lVGFyZ2V0ID0gZGVmYXVsdHMuQ3JlYXRlU3RhdGVNYWNoaW5lVGFyZ2V0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lLCB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnUkVRVUVTVF9SRVNQT05TRScpO1xuICBleHBlY3QoT2JqZWN0LmtleXMoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBhcmFtZXRlcnMpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gRExRIGlzIG9mZiBidXQgbWF4IGNvbnN0cmFpbnQgc2V0JywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBkeW5hbW9EYlN0cmVhbVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgICBtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzOiAxMDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlOiBidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3QhLFxuICAgICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gcmV0cnkgYW5kIHJlY29yZCBhZ2UgY29uc3RyYWludHMgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG5vIERMUVxcbicpO1xufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGVzdCBwaXBlIGNyZWF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBwaXBlJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdhbGxkZWZhdWx0JztcbiAgY29uc3QgcGlwZUlkID0gJ2RlZmF1bHRwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7fVxuICB9KTtcblxuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgcGlwZSB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnb3ZlcnJpZGVzdGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdvdmVycmlkZXNwaXBlJztcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RGVzY3JpcHRpb24gPSAndGVzdC1kZXNjcmlwdGlvbic7XG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogdGVzdERlc2NyaXB0aW9uXG4gICAgfVxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gVGhlIGRlc2NyaXB0aW9uIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3QsIHNvIGNoZWNrIGl0IGhlcmVcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIERlc2NyaXB0aW9uOiB0ZXN0RGVzY3JpcHRpb25cbiAgfSk7XG5cbn0pO1xuXG50ZXN0KCdDcmVhdGUgYSBwaXBlIHdpdGggYSBmaWx0ZXInLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2ZpbHRlcnRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnZmlsdGVycGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RmlsdGVyUGF0dGVybiA9IGB7XG4gICAgXCJib2R5XCI6IHtcbiAgICAgIFwic3RhdGVcIjogW1wib3BlblwiXVxuICAgIH1cbiAgfWA7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIHNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgZmlsdGVyQ3JpdGVyaWE6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBbeyBwYXR0ZXJuOiB0ZXN0RmlsdGVyUGF0dGVybiB9XSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gU291cmNlUGFyYW1ldGVycyBpcyB1bmlxdWUgdG8gdGhpcyB0ZXN0LCBzbyBjaGVjayBpdCBoZXJlXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2VQYXJhbWV0ZXJzOiB7XG4gICAgICBGaWx0ZXJDcml0ZXJpYToge1xuICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgUGF0dGVybjogdGVzdEZpbHRlclBhdHRlcm5cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBMYW1iZGEgZnVuY3Rpb24gZW5yaWNobWVudCcsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnbGFtYmRhZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdsYW1iZGFlbnJpY2hwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IGVucmljaG1lbnRGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdlbnJpY2htZW50LWZ1bmN0aW9uJywge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYS10ZXN0YCksXG4gICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gIH0pO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGVucmljaG1lbnRGdW5jdGlvblxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBFbnJpY2htZW50IGlzIHVuaXF1ZSB0byB0aGlzIHRlc3Qgc28gY2hlY2sgaXQgaGVyZVxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgRW5yaWNobWVudDoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnZW5yaWNobWVudGZ1bmN0aW9uLionKSxcbiAgICAgICAgXCJBcm5cIlxuICAgICAgXVxuICAgIH0sXG4gIH0pO1xuICAvLyBUaGlzIGNoZWNrcyBmb3IgZXZlcnl0aGluZyBidXQgZW5yaWNobWVudFxuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIC8vIFRoaXMgY2hlY2tzIGZvciBlbnJpY2htZW50IHBlcm1pc3Npb25zXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ2VucmljaG1lbnRmdW5jdGlvbi4qJyksXG4gICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gICAgUG9saWN5TmFtZTogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgZW5yaWNobWVudHBvbGljeSR7cGlwZUlkfS4qYCksXG4gICAgUm9sZXM6IFtcbiAgICAgIHtcbiAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBQaXBlUm9sZSR7cGlwZUlkfS4qYClcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBzdGF0ZSBtYWNoaW5lIGVucmljaG1lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ3NtZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdzbWVucmljaHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgZW5yaWNobWVudFN0YXRlTWFjaGluZSA9IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmUoc3RhY2ssICdzdGF0ZS1tYWNoaW5lLWVucmljaG1lbnQnKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBlbnJpY2htZW50U3RhdGVNYWNoaW5lXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gTG9vayBmb3IgYWRkaXRpb25hbCBlbnJpY2htZW50IHBlcm1pc2lvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhpcyB3b24ndCBydW4gaWYgd2UgYWN0dWFsbHkgbGF1bmNoZWQgaXQgYXMgdGhlIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgaXMgbm90IEVYUFJFU1NcbiAgICAgICAgICBBY3Rpb246IFwic3RhdGVzOlN0YXJ0U3luY0V4ZWN1dGlvblwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ3N0YXRlbWFjaGluZWVucmljaG1lbnQuKicpLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY3lOYW1lOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBlbnJpY2htZW50cG9saWN5JHtwaXBlSWR9LipgKSxcbiAgICBSb2xlczogW1xuICAgICAge1xuICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFBpcGVSb2xlJHtwaXBlSWR9LipgKVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBFbnJpY2htZW50OiB7XG4gICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoXCJzdGF0ZW1hY2hpbmVlbnJpY2htZW50LipcIilcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdQcm92aWRlIHJlcGxhY2VtZW50IExvZ0NvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2xvZ2NvbmZpZ3Rlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnbG9nY29uZmlncGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBjdXN0b21Mb2dDb25maWd1cmF0aW9uOiBwaXBlcy5DZm5QaXBlLlBpcGVMb2dDb25maWd1cmF0aW9uUHJvcGVydHkgPSB7XG4gICAgczNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgYnVja2V0TmFtZTogbmV3IHMzLkJ1Y2tldChzdGFjaywgJ3Rlc3QnKS5idWNrZXROYW1lLFxuICAgIH0sXG4gICAgbGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuRVJST1JcbiAgfTtcbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IGN1c3RvbUxvZ0NvbmZpZ3VyYXRpb25cbiAgICB9XG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBMb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICBMZXZlbDogXCJFUlJPUlwiLFxuICAgICAgUzNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICBCdWNrZXROYW1lOiB7XG4gICAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKFwidGVzdC4qXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG59KTtcblxudGVzdCgnT3ZlcnJpZGUgdGhlIGRlZmF1bHQgbG9nIGxldmVsJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdsb2dsZXZlbHR0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ2xvZ2xldmVscGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUlxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuXG4gIC8vIExldmVsIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3RcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIExldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SLFxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnVGVzdCBubyBsb2dnaW5nJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdub2xvZ3MnO1xuICBjb25zdCBwaXBlSWQgPSAndGVzdHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgbG9nTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuT0ZGXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVTb3VyY2VBbmRUYXJnZXQodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIC8vIE9uZSBsb2cgZ3JvdXAgZm9yIHRoZSBzdGF0ZSBtYWNoaW5lLCBub25lIGZvciB0aGUgcGlwZVxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCAxKTtcbn0pO1xuXG50ZXN0KCdPdmVycmlkZSBhIHN1YnNldCBvZiBTUVMgc291cmNlIHBhcmFtdGVycycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnc3JjcGFyYW10ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ3NyY3BhcmFtcGlwZSc7XG4gIGNvbnN0IHRlc3RCYXRjaFNpemUgPSA3O1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIHNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgYmF0Y2hTaXplOiB0ZXN0QmF0Y2hTaXplLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2VQYXJhbWV0ZXJzOiB7XG4gICAgICBTcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgQmF0Y2hTaXplOiB0ZXN0QmF0Y2hTaXplXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnUHJvdmlkZSBwaXBlTG9nUHJvcHMnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ3BpcGVsb2dwcm9wc3Rlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAncGlwZWxvZ3Byb3BzcGlwZSc7XG4gIC8vIFdoaWxlIHRoaXMgaXMgYW4gZW51bSB3ZSBuZWVkIHRvIHVzZSwgaW4gdGhlIHRlbXBsYXRlXG4gIC8vIGl0IGlzIGNvbnZlcnRlZCB0byBkYXlzLCBpbiB0aGlzIGNhc2UgMTIwXG4gIGNvbnN0IHRlc3RSZXRlbnRpb24gPSBSZXRlbnRpb25EYXlzLkZPVVJfTU9OVEhTO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgcGlwZUxvZ1Byb3BzOiB7XG4gICAgICByZXRlbnRpb246IHRlc3RSZXRlbnRpb25cbiAgICB9XG4gIH0pO1xuXG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcbiAgQ2hlY2tQaXBlTG9nQ29uZmlndXJhdGlvbih0ZW1wbGF0ZSwgcGlwZUlkKTtcblxuICAvLyBMb29rIGZvciBhZGRpdGlvbmFsIHByb3BlcnR5IHdlIHBhc3NlZCBpbiBwaXBlTG9nUHJvcHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywge1xuICAgIFJldGVudGlvbkluRGF5czogMTIwLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwcm92aWRpbmcgc291cmNlIGluIENmblByb3BzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZS5zb3VyY2VBcm5cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyB0YXJnZXQgaW4gQ2ZuUHJvcHMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LnRhcmdldEFybixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBhIHJvbGVBcm4nLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICByb2xlQXJuOiBcInNvbWUtYXJuXCIsXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgc291cmNlLCB0YXJnZXQsIHJvbGVBcm4sIG9yIGVucmljaG1lbnQnKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwcm92aWRpbmcgZW5yaWNobWVudCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIGVucmljaG1lbnQ6IFwiZnVuY3Rpb25Bcm5cIixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIGxvZyBsZXZlbCBhbmQgbG9nIGNvbmZpZ3VyYXRpb24gYXJlIGJvdGggcHJvdmlkZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUixcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IHsgc29tZTogXCJvYmplY3RcIiB9LFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IGxvZ0xldmVsIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcGlwZUxvZ1Byb3BzIGFuZCBsb2cgY29uZmlndXJhdGlvbiBhcmUgYm90aCBwcm92aWRlZCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIHBpcGVMb2dQcm9wczogeyBsb2dHcm91cE5hbWU6IFwiYW55dmFsdWVcIiB9LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbjogeyBzb21lOiBcIm9iamVjdFwiIH0sXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgcGlwZUxvZ1Byb3BzIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gZW5yaWNobWVudEZ1bmN0aW9uIGFuZCBlbnJpY2htZW50U3RhdGVNYWNoaW5lIGFyZSBib3RoIHByb3ZpZGVkJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgZW5yaWNobWVudEZ1bmN0aW9uOiB7IHBsYWNlOiBcImhvbGRlclwiIH0gYXMgdW5rbm93biBhcyBsYW1iZGEuRnVuY3Rpb24sXG4gICAgICBlbnJpY2htZW50U3RhdGVNYWNoaW5lOiB7IHBsYWNlOiBcImhvbGRlclwiIH0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gT25seSBvbmUgb2YgZW5yaWNobWVudEZ1bmN0aW9uIG9yIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgY2FuIGJlIHByb3ZpZGVkJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcGlwZUxvZ1Byb3BzIGFuZCBsb2cgbGV2ZWwgaXMgc2V0IHRvIE9GRicsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGxvZ0xldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLk9GRixcbiAgICAgIHBpcGVMb2dQcm9wczogeyBsb2dHcm91cE5hbWU6IFwiYW55dmFsdWVcIiB9LFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nIGxldmVsIE9GRicpO1xufSk7XG5cbnRlc3QoJ1Rlc3QgYWxsIG9mIENoZWNrUGlwZXNQcm9wcycsICgpID0+IHtcbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrUGlwZXNQcm9wcyh7XG4gICAgICBwaXBlc1Byb3BzOiB7IHNvdXJjZTogXCJ2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0RvIG5vdCBzZXQgc291cmNlIGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0LlxcbicpO1xuXG4gIGNvbnN0IGFwcFR3byA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1BpcGVzUHJvcHMoe1xuICAgICAgcGlwZXNQcm9wczogeyB0YXJnZXQ6IFwidmFsdWVcIiB9LFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcFR3bykudG9UaHJvd0Vycm9yKCdEbyBub3Qgc2V0IHRhcmdldCBpbiBwaXBlc1Byb3BzLiBJdCBpcyBzZXQgYnkgdGhlIGNvbnN0cnVjdC5cXG4nKTtcblxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2hhcmVkIHNldHVwIGZ1bmN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaW50ZXJmYWNlIFByZXJlcXVpc2l0ZXMge1xuICBzb3VyY2U6IGRlZmF1bHRzLkNyZWF0ZVNvdXJjZVJlc3BvbnNlLFxuICB0YXJnZXQ6IGRlZmF1bHRzLkNyZWF0ZVRhcmdldFJlc3BvbnNlLFxufVxuXG5mdW5jdGlvbiBDcmVhdGVQcmVyZXF1aXNpdGVzKHNjb3BlOiBTdGFjaywgaWQ6IHN0cmluZyk6IFByZXJlcXVpc2l0ZXMge1xuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBidWlsZFF1ZXVlKHNjb3BlLCBgJHtpZH0tc291cmNlLXF1ZXVlYCwge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc2NvcGUsIGAke2lkfS10YXJnZXQtc3RhdGUtbWFjaGluZWAsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzY29wZSwgYCR7aWR9LXN0ZXBzYClcbiAgICB9XG4gIH0pO1xuICBjb25zdCBzdGF0ZU1hY2hpbmVUYXJnZXQgPSBkZWZhdWx0cy5DcmVhdGVTdGF0ZU1hY2hpbmVUYXJnZXQoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUsIHtcbiAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICBpbnZvY2F0aW9uVHlwZTogJ1JFUVVFU1RfUkVTUE9OU0UnXG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBzb3VyY2U6IHNxc1NvdXJjZSxcbiAgICB0YXJnZXQ6IHN0YXRlTWFjaGluZVRhcmdldFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNoYXJlZCBmdW5jdGlvbnMgdGhhdCBjaGVjayBkZWZhdWx0IHNldHRpbmdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZTogZGVmYXVsdHMuQnVpbGRQaXBlc1Jlc3BvbnNlLCBwcmVyZXF1aXNpdGVzOiBQcmVyZXF1aXNpdGVzKSB7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlLnNvdXJjZSkudG9FcXVhbChwcmVyZXF1aXNpdGVzLnNvdXJjZS5zb3VyY2VBcm4pO1xuICBleHBlY3QocGlwZVJlc3BvbnNlLnBpcGUudGFyZ2V0KS50b0VxdWFsKHByZXJlcXVpc2l0ZXMudGFyZ2V0LnRhcmdldEFybik7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZVJvbGUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZVJvbGUubm9kZSkudG9CZURlZmluZWQoKTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGU6IFRlbXBsYXRlLFxuICBwaXBlSWQ6IHN0cmluZyxcbiAgcHJlcmVxdWlzaXRlSWQ6IHN0cmluZ1xuKSB7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlLCBwaXBlSWQpO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVTb3VyY2VBbmRUYXJnZXQodGVtcGxhdGU6IFRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZDogc3RyaW5nKSB7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2U6IHtcbiAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYCR7cHJlcmVxdWlzaXRlSWR9c291cmNlcXVldWUuKmApLFxuICAgICAgICBcIkFyblwiXG4gICAgICBdXG4gICAgfSxcbiAgICBUYXJnZXQ6IHtcbiAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgU3RhdGVNYWNoaW5lJHtwcmVyZXF1aXNpdGVJZH10YXJnZXRzdGF0ZW1hY2hpbmUuKmApLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlOiBUZW1wbGF0ZSwgcGlwZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIENsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgTG9nR3JvdXBBcm46IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgTG9nR3JvdXAke3BpcGVJZH0uKmApLFxuICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZVJvbGUodGVtcGxhdGU6IFRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZDogc3RyaW5nKSB7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlJvbGUnLCB7XG4gICAgQXNzdW1lUm9sZVBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzdHM6QXNzdW1lUm9sZVwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgU2VydmljZTogXCJwaXBlcy5hbWF6b25hd3MuY29tXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gICAgUG9saWNpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgXCJzcXM6UmVjZWl2ZU1lc3NhZ2VcIixcbiAgICAgICAgICAgICAgICBcInNxczpEZWxldGVNZXNzYWdlXCIsXG4gICAgICAgICAgICAgICAgXCJzcXM6R2V0UXVldWVBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYCR7cHJlcmVxdWlzaXRlSWR9c291cmNlcXVldWUuKmApLFxuICAgICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICAgICAgfSxcbiAgICAgICAgUG9saWN5TmFtZTogXCJzb3VyY2VQb2xpY3lcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBcInN0YXRlczpTdGFydEV4ZWN1dGlvblwiLFxuICAgICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFN0YXRlTWFjaGluZSR7cHJlcmVxdWlzaXRlSWR9dGFyZ2V0c3RhdGVtYWNoaW5lLipgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgICAgICB9LFxuICAgICAgICBQb2xpY3lOYW1lOiBcInRhcmdldFBvbGljeVwiXG4gICAgICB9XG4gICAgXVxuICB9KTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZTogVGVtcGxhdGUpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywge1xuICAgIExvZ0dyb3VwTmFtZToge1xuICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFtcbiAgICAgICAgICBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdcXC9hd3NcXC92ZW5kZWRsb2dzXFwvcGlwZXNcXC9jb25zdHJ1Y3RzJyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJGbjo6U2VsZWN0XCI6IFtcbiAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgTWF0Y2guYW55VmFsdWUoKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgXVxuICAgIH0sXG4gIH0pO1xufSJdfQ==
|