p6-cdk-s3-protector 0.0.49 → 0.0.51

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.
Files changed (2000) hide show
  1. package/.jsii +68 -10
  2. package/README.md +1 -1
  3. package/lib/p6cdks3protector.js +1 -1
  4. package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +2 -7
  5. package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +2 -7
  6. package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +3 -4
  7. package/node_modules/@aws/lambda-invoke-store/package.json +2 -1
  8. package/node_modules/@aws-sdk/client-s3/README.md +13 -107
  9. package/node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js +8 -9
  10. package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js +1 -1
  11. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +2959 -9401
  12. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.browser.js +3 -4
  13. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js +7 -12
  14. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js +7 -5
  15. package/node_modules/@aws-sdk/client-s3/dist-es/S3.js +4 -0
  16. package/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js +2 -2
  17. package/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js +8 -9
  18. package/node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js +6 -3
  19. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js +2 -2
  20. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js +2 -2
  21. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js +2 -2
  22. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataConfigurationCommand.js +3 -3
  23. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataTableConfigurationCommand.js +3 -3
  24. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js +2 -2
  25. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js +6 -3
  26. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js +2 -2
  27. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js +2 -2
  28. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js +2 -2
  29. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js +2 -2
  30. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js +2 -2
  31. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js +2 -2
  32. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js +2 -2
  33. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataConfigurationCommand.js +2 -2
  34. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataTableConfigurationCommand.js +2 -2
  35. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js +2 -2
  36. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js +2 -2
  37. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js +2 -2
  38. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js +2 -2
  39. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js +2 -2
  40. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js +2 -2
  41. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js +6 -3
  42. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js +6 -3
  43. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js +3 -3
  44. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js +2 -2
  45. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAbacCommand.js +23 -0
  46. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js +6 -3
  47. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js +6 -3
  48. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js +6 -3
  49. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js +6 -3
  50. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js +6 -3
  51. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js +6 -3
  52. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js +6 -3
  53. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
  54. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js +6 -3
  55. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js +6 -3
  56. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataConfigurationCommand.js +6 -3
  57. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataTableConfigurationCommand.js +6 -3
  58. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js +6 -3
  59. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js +6 -3
  60. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js +6 -3
  61. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js +6 -3
  62. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js +6 -3
  63. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js +6 -3
  64. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js +6 -3
  65. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js +6 -3
  66. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js +6 -3
  67. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js +6 -3
  68. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js +6 -3
  69. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js +2 -2
  70. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js +4 -4
  71. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js +6 -3
  72. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js +6 -3
  73. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js +6 -3
  74. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js +6 -3
  75. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js +2 -2
  76. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
  77. package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js +6 -3
  78. package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js +2 -2
  79. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js +6 -3
  80. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js +6 -3
  81. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js +6 -3
  82. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js +6 -3
  83. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js +6 -3
  84. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListDirectoryBucketsCommand.js +6 -3
  85. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js +6 -3
  86. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js +6 -3
  87. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js +6 -3
  88. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js +6 -3
  89. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js +2 -2
  90. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAbacCommand.js +26 -0
  91. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js +3 -3
  92. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js +3 -3
  93. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js +2 -2
  94. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js +3 -3
  95. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js +3 -3
  96. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js +2 -2
  97. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js +2 -2
  98. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +3 -3
  99. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js +3 -3
  100. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js +2 -2
  101. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js +2 -2
  102. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js +3 -3
  103. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js +3 -3
  104. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js +3 -3
  105. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js +3 -3
  106. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js +3 -3
  107. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js +3 -3
  108. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js +3 -3
  109. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js +3 -3
  110. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js +3 -3
  111. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js +3 -3
  112. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js +3 -3
  113. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js +3 -3
  114. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js +3 -3
  115. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js +3 -3
  116. package/node_modules/@aws-sdk/client-s3/dist-es/commands/RenameObjectCommand.js +6 -3
  117. package/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js +3 -3
  118. package/node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js +2 -2
  119. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.js +3 -3
  120. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataJournalTableConfigurationCommand.js +3 -3
  121. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js +3 -3
  122. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js +2 -2
  123. package/node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js +2 -2
  124. package/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js +2 -0
  125. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js +2 -0
  126. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js +1 -1
  127. package/node_modules/@aws-sdk/client-s3/dist-es/index.js +5 -1
  128. package/node_modules/@aws-sdk/client-s3/dist-es/models/enums.js +399 -0
  129. package/node_modules/@aws-sdk/client-s3/dist-es/models/errors.js +173 -0
  130. package/node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js +1 -436
  131. package/node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js +1 -126
  132. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js +3 -4
  133. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js +8 -13
  134. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js +7 -5
  135. package/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js +1714 -8795
  136. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js +1 -1
  137. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js +1 -1
  138. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js +1 -1
  139. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js +1 -1
  140. package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +15 -1
  141. package/node_modules/@aws-sdk/client-s3/dist-types/S3Client.d.ts +16 -23
  142. package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  143. package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthSchemeProvider.d.ts +1 -1
  144. package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +3 -3
  145. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +3 -3
  146. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +9 -9
  147. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +4 -9
  148. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataConfigurationCommand.d.ts +3 -3
  149. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +3 -3
  150. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +4 -4
  151. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +3 -3
  152. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketAnalyticsConfigurationCommand.d.ts +3 -3
  153. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
  154. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCorsCommand.d.ts +3 -3
  155. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +3 -3
  156. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  157. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketInventoryConfigurationCommand.d.ts +3 -3
  158. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +3 -3
  159. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataConfigurationCommand.d.ts +3 -3
  160. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +3 -3
  161. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetricsConfigurationCommand.d.ts +3 -3
  162. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketOwnershipControlsCommand.d.ts +3 -3
  163. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -3
  164. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -3
  165. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +5 -4
  166. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketWebsiteCommand.d.ts +3 -3
  167. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +11 -6
  168. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectTaggingCommand.d.ts +3 -3
  169. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +8 -3
  170. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +9 -7
  171. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAbacCommand.d.ts +77 -0
  172. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAccelerateConfigurationCommand.d.ts +3 -3
  173. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAclCommand.d.ts +4 -11
  174. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAnalyticsConfigurationCommand.d.ts +3 -3
  175. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketCorsCommand.d.ts +3 -3
  176. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +10 -5
  177. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  178. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketInventoryConfigurationCommand.d.ts +4 -4
  179. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -3
  180. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLocationCommand.d.ts +3 -3
  181. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLoggingCommand.d.ts +4 -11
  182. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataConfigurationCommand.d.ts +3 -3
  183. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +3 -3
  184. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetricsConfigurationCommand.d.ts +3 -3
  185. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +3 -3
  186. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +3 -3
  187. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +4 -4
  188. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyStatusCommand.d.ts +3 -3
  189. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketReplicationCommand.d.ts +4 -4
  190. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketRequestPaymentCommand.d.ts +3 -3
  191. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +5 -4
  192. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
  193. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketWebsiteCommand.d.ts +3 -3
  194. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAclCommand.d.ts +4 -11
  195. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +4 -4
  196. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +4 -4
  197. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLegalHoldCommand.d.ts +3 -3
  198. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLockConfigurationCommand.d.ts +3 -3
  199. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectRetentionCommand.d.ts +3 -3
  200. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTaggingCommand.d.ts +3 -3
  201. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTorrentCommand.d.ts +3 -3
  202. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetPublicAccessBlockCommand.d.ts +17 -12
  203. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +3 -3
  204. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +4 -4
  205. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketAnalyticsConfigurationsCommand.d.ts +3 -3
  206. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +3 -3
  207. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketInventoryConfigurationsCommand.d.ts +4 -4
  208. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketMetricsConfigurationsCommand.d.ts +3 -3
  209. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketsCommand.d.ts +4 -11
  210. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +3 -3
  211. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +5 -12
  212. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +4 -11
  213. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +5 -12
  214. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +5 -12
  215. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +5 -12
  216. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAbacCommand.d.ts +78 -0
  217. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +3 -3
  218. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +3 -3
  219. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAnalyticsConfigurationCommand.d.ts +3 -3
  220. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +3 -3
  221. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +9 -4
  222. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  223. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +4 -4
  224. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
  225. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +3 -3
  226. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +3 -3
  227. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +3 -3
  228. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +3 -3
  229. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
  230. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +4 -4
  231. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +3 -3
  232. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +4 -4
  233. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -3
  234. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +3 -3
  235. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +3 -3
  236. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +4 -4
  237. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +3 -3
  238. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +3 -3
  239. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +3 -3
  240. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +3 -3
  241. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +10 -8
  242. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RenameObjectCommand.d.ts +3 -3
  243. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +5 -4
  244. package/node_modules/@aws-sdk/client-s3/dist-types/commands/SelectObjectContentCommand.d.ts +3 -3
  245. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.d.ts +3 -3
  246. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataJournalTableConfigurationCommand.d.ts +3 -3
  247. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +6 -3
  248. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +6 -3
  249. package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +3 -3
  250. package/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts +2 -0
  251. package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/EndpointParameters.d.ts +16 -1
  252. package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/endpointResolver.d.ts +5 -2
  253. package/node_modules/@aws-sdk/client-s3/dist-types/extensionConfiguration.d.ts +4 -4
  254. package/node_modules/@aws-sdk/client-s3/dist-types/index.d.ts +5 -1
  255. package/node_modules/@aws-sdk/client-s3/dist-types/models/S3ServiceException.d.ts +1 -1
  256. package/node_modules/@aws-sdk/client-s3/dist-types/models/enums.d.ts +975 -0
  257. package/node_modules/@aws-sdk/client-s3/dist-types/models/errors.d.ts +207 -0
  258. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +3686 -1016
  259. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +3 -3790
  260. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/Interfaces.d.ts +1 -1
  261. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListBucketsPaginator.d.ts +1 -1
  262. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListDirectoryBucketsPaginator.d.ts +1 -1
  263. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListObjectsV2Paginator.d.ts +1 -1
  264. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListPartsPaginator.d.ts +1 -1
  265. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.browser.d.ts +10 -3
  266. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.d.ts +10 -3
  267. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.native.d.ts +10 -3
  268. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.shared.d.ts +6 -2
  269. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeExtensions.d.ts +1 -1
  270. package/node_modules/@aws-sdk/client-s3/dist-types/schemas/schemas_0.d.ts +451 -494
  271. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +34 -0
  272. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3Client.d.ts +18 -10
  273. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  274. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +3 -3
  275. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetBucketAbacCommand.d.ts +47 -0
  276. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectCommand.d.ts +1 -1
  277. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectTorrentCommand.d.ts +1 -1
  278. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/ListObjectVersionsCommand.d.ts +1 -1
  279. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/ListObjectsCommand.d.ts +1 -1
  280. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/ListObjectsV2Command.d.ts +1 -1
  281. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/ListPartsCommand.d.ts +1 -1
  282. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAbacCommand.d.ts +45 -0
  283. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAccelerateConfigurationCommand.d.ts +1 -1
  284. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAclCommand.d.ts +1 -1
  285. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAnalyticsConfigurationCommand.d.ts +1 -1
  286. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketCorsCommand.d.ts +1 -1
  287. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketEncryptionCommand.d.ts +1 -1
  288. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +1 -1
  289. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketInventoryConfigurationCommand.d.ts +1 -1
  290. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketLifecycleConfigurationCommand.d.ts +1 -1
  291. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketLoggingCommand.d.ts +1 -1
  292. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketMetricsConfigurationCommand.d.ts +1 -1
  293. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketNotificationConfigurationCommand.d.ts +1 -1
  294. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketOwnershipControlsCommand.d.ts +1 -1
  295. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketPolicyCommand.d.ts +1 -1
  296. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketReplicationCommand.d.ts +1 -1
  297. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketRequestPaymentCommand.d.ts +1 -1
  298. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketTaggingCommand.d.ts +1 -1
  299. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketVersioningCommand.d.ts +1 -1
  300. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketWebsiteCommand.d.ts +1 -1
  301. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectAclCommand.d.ts +1 -1
  302. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectCommand.d.ts +1 -1
  303. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectLegalHoldCommand.d.ts +1 -1
  304. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectLockConfigurationCommand.d.ts +1 -1
  305. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectRetentionCommand.d.ts +1 -1
  306. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutObjectTaggingCommand.d.ts +1 -1
  307. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutPublicAccessBlockCommand.d.ts +1 -1
  308. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/RenameObjectCommand.d.ts +1 -1
  309. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/RestoreObjectCommand.d.ts +2 -1
  310. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/index.d.ts +2 -0
  311. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +6 -0
  312. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/index.d.ts +5 -1
  313. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/S3ServiceException.d.ts +1 -1
  314. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/enums.d.ts +523 -0
  315. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/errors.d.ts +87 -0
  316. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +603 -487
  317. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_1.d.ts +14 -657
  318. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.browser.d.ts +15 -7
  319. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.d.ts +15 -7
  320. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.native.d.ts +15 -7
  321. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
  322. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/schemas/schemas_0.d.ts +451 -495
  323. package/node_modules/@aws-sdk/client-s3/package.json +53 -52
  324. package/node_modules/@aws-sdk/client-s3-control/README.md +1 -102
  325. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/auth/httpAuthSchemeProvider.js +3 -4
  326. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/index.js +2605 -4776
  327. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.browser.js +3 -4
  328. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.js +5 -8
  329. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.shared.js +7 -5
  330. package/node_modules/@aws-sdk/client-s3-control/dist-es/S3ControlClient.js +2 -2
  331. package/node_modules/@aws-sdk/client-s3-control/dist-es/auth/httpAuthSchemeProvider.js +3 -4
  332. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/AssociateAccessGrantsIdentityCenterCommand.js +2 -2
  333. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantCommand.js +2 -2
  334. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsInstanceCommand.js +2 -2
  335. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsLocationCommand.js +2 -2
  336. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointCommand.js +6 -3
  337. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointForObjectLambdaCommand.js +6 -3
  338. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateBucketCommand.js +2 -2
  339. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateJobCommand.js +6 -3
  340. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateMultiRegionAccessPointCommand.js +2 -2
  341. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateStorageLensGroupCommand.js +6 -3
  342. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantCommand.js +2 -2
  343. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceCommand.js +2 -2
  344. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  345. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsLocationCommand.js +2 -2
  346. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointCommand.js +6 -3
  347. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointForObjectLambdaCommand.js +6 -3
  348. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyCommand.js +6 -3
  349. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyForObjectLambdaCommand.js +6 -3
  350. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointScopeCommand.js +6 -3
  351. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketCommand.js +6 -3
  352. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketLifecycleConfigurationCommand.js +6 -3
  353. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketPolicyCommand.js +6 -3
  354. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketReplicationCommand.js +6 -3
  355. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketTaggingCommand.js +6 -3
  356. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteJobTaggingCommand.js +6 -3
  357. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteMultiRegionAccessPointCommand.js +2 -2
  358. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeletePublicAccessBlockCommand.js +6 -3
  359. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationCommand.js +6 -3
  360. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationTaggingCommand.js +6 -3
  361. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensGroupCommand.js +6 -3
  362. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeJobCommand.js +6 -3
  363. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeMultiRegionAccessPointOperationCommand.js +2 -2
  364. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DissociateAccessGrantsIdentityCenterCommand.js +2 -2
  365. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantCommand.js +2 -2
  366. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceCommand.js +2 -2
  367. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceForPrefixCommand.js +2 -2
  368. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  369. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsLocationCommand.js +2 -2
  370. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointCommand.js +6 -3
  371. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointConfigurationForObjectLambdaCommand.js +6 -3
  372. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointForObjectLambdaCommand.js +6 -3
  373. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyCommand.js +6 -3
  374. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyForObjectLambdaCommand.js +6 -3
  375. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusCommand.js +6 -3
  376. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.js +6 -3
  377. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointScopeCommand.js +6 -3
  378. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketCommand.js +6 -3
  379. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
  380. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketPolicyCommand.js +6 -3
  381. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketReplicationCommand.js +6 -3
  382. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketTaggingCommand.js +6 -3
  383. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketVersioningCommand.js +6 -3
  384. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetDataAccessCommand.js +2 -2
  385. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetJobTaggingCommand.js +6 -3
  386. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointCommand.js +2 -2
  387. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyCommand.js +2 -2
  388. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyStatusCommand.js +2 -2
  389. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointRoutesCommand.js +2 -2
  390. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
  391. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationCommand.js +6 -3
  392. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationTaggingCommand.js +6 -3
  393. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensGroupCommand.js +6 -3
  394. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsCommand.js +2 -2
  395. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsInstancesCommand.js +2 -2
  396. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsLocationsCommand.js +2 -2
  397. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsCommand.js +6 -3
  398. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForDirectoryBucketsCommand.js +6 -3
  399. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForObjectLambdaCommand.js +6 -3
  400. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListCallerAccessGrantsCommand.js +2 -2
  401. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListJobsCommand.js +6 -3
  402. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListMultiRegionAccessPointsCommand.js +2 -2
  403. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListRegionalBucketsCommand.js +6 -3
  404. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensConfigurationsCommand.js +6 -3
  405. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensGroupsCommand.js +6 -3
  406. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListTagsForResourceCommand.js +6 -3
  407. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  408. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointConfigurationForObjectLambdaCommand.js +6 -3
  409. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyCommand.js +6 -3
  410. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyForObjectLambdaCommand.js +6 -3
  411. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointScopeCommand.js +6 -3
  412. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +2 -2
  413. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketPolicyCommand.js +2 -2
  414. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketReplicationCommand.js +2 -2
  415. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketTaggingCommand.js +2 -2
  416. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketVersioningCommand.js +2 -2
  417. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutJobTaggingCommand.js +6 -3
  418. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutMultiRegionAccessPointPolicyCommand.js +2 -2
  419. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutPublicAccessBlockCommand.js +6 -3
  420. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationCommand.js +6 -3
  421. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationTaggingCommand.js +6 -3
  422. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/SubmitMultiRegionAccessPointRoutesCommand.js +2 -2
  423. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/TagResourceCommand.js +6 -3
  424. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UntagResourceCommand.js +6 -3
  425. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateAccessGrantsLocationCommand.js +2 -2
  426. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobPriorityCommand.js +6 -3
  427. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobStatusCommand.js +6 -3
  428. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateStorageLensGroupCommand.js +6 -3
  429. package/node_modules/@aws-sdk/client-s3-control/dist-es/index.js +5 -1
  430. package/node_modules/@aws-sdk/client-s3-control/dist-es/models/enums.js +281 -0
  431. package/node_modules/@aws-sdk/client-s3-control/dist-es/models/errors.js +165 -0
  432. package/node_modules/@aws-sdk/client-s3-control/dist-es/models/models_0.js +1 -370
  433. package/node_modules/@aws-sdk/client-s3-control/dist-es/models/models_1.js +1 -77
  434. package/node_modules/@aws-sdk/client-s3-control/dist-es/pagination/index.js +2 -2
  435. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.browser.js +3 -4
  436. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.js +6 -9
  437. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.shared.js +7 -5
  438. package/node_modules/@aws-sdk/client-s3-control/dist-es/schemas/schemas_0.js +1552 -4315
  439. package/node_modules/@aws-sdk/client-s3-control/dist-types/S3Control.d.ts +1 -1
  440. package/node_modules/@aws-sdk/client-s3-control/dist-types/S3ControlClient.d.ts +11 -20
  441. package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  442. package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  443. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/AssociateAccessGrantsIdentityCenterCommand.d.ts +6 -16
  444. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantCommand.d.ts +6 -15
  445. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsInstanceCommand.d.ts +6 -14
  446. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsLocationCommand.d.ts +7 -17
  447. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointCommand.d.ts +3 -6
  448. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointForObjectLambdaCommand.d.ts +3 -6
  449. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateBucketCommand.d.ts +3 -3
  450. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateJobCommand.d.ts +5 -9
  451. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateMultiRegionAccessPointCommand.d.ts +4 -8
  452. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateStorageLensGroupCommand.d.ts +3 -6
  453. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantCommand.d.ts +5 -10
  454. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceCommand.d.ts +5 -13
  455. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.d.ts +5 -11
  456. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsLocationCommand.d.ts +5 -13
  457. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointCommand.d.ts +3 -6
  458. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointForObjectLambdaCommand.d.ts +3 -6
  459. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyCommand.d.ts +3 -6
  460. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  461. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointScopeCommand.d.ts +7 -11
  462. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
  463. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketLifecycleConfigurationCommand.d.ts +3 -6
  464. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -6
  465. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -6
  466. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketTaggingCommand.d.ts +3 -6
  467. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteJobTaggingCommand.d.ts +8 -10
  468. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteMultiRegionAccessPointCommand.d.ts +3 -6
  469. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +8 -7
  470. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationCommand.d.ts +3 -6
  471. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationTaggingCommand.d.ts +3 -6
  472. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensGroupCommand.d.ts +3 -6
  473. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeJobCommand.d.ts +4 -8
  474. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeMultiRegionAccessPointOperationCommand.d.ts +4 -8
  475. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DissociateAccessGrantsIdentityCenterCommand.d.ts +5 -10
  476. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantCommand.d.ts +4 -8
  477. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceCommand.d.ts +4 -8
  478. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceForPrefixCommand.d.ts +6 -11
  479. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
  480. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsLocationCommand.d.ts +4 -8
  481. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointCommand.d.ts +3 -6
  482. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
  483. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointForObjectLambdaCommand.d.ts +3 -6
  484. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyCommand.d.ts +3 -6
  485. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  486. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusCommand.d.ts +3 -6
  487. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.d.ts +3 -6
  488. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointScopeCommand.d.ts +6 -9
  489. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketCommand.d.ts +3 -6
  490. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -6
  491. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketPolicyCommand.d.ts +3 -6
  492. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketReplicationCommand.d.ts +3 -3
  493. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketTaggingCommand.d.ts +3 -3
  494. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
  495. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetDataAccessCommand.d.ts +6 -15
  496. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetJobTaggingCommand.d.ts +8 -9
  497. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointCommand.d.ts +3 -6
  498. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyCommand.d.ts +3 -6
  499. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyStatusCommand.d.ts +3 -6
  500. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointRoutesCommand.d.ts +3 -6
  501. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetPublicAccessBlockCommand.d.ts +6 -8
  502. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationCommand.d.ts +43 -6
  503. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationTaggingCommand.d.ts +3 -6
  504. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensGroupCommand.d.ts +3 -6
  505. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsCommand.d.ts +4 -8
  506. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsInstancesCommand.d.ts +5 -11
  507. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsLocationsCommand.d.ts +4 -8
  508. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsCommand.d.ts +3 -6
  509. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForDirectoryBucketsCommand.d.ts +5 -10
  510. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForObjectLambdaCommand.d.ts +3 -7
  511. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListCallerAccessGrantsCommand.d.ts +5 -18
  512. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListJobsCommand.d.ts +6 -8
  513. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListMultiRegionAccessPointsCommand.d.ts +3 -6
  514. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListRegionalBucketsCommand.d.ts +3 -6
  515. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensConfigurationsCommand.d.ts +3 -6
  516. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensGroupsCommand.d.ts +3 -6
  517. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListTagsForResourceCommand.d.ts +13 -17
  518. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
  519. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
  520. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyCommand.d.ts +3 -6
  521. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  522. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointScopeCommand.d.ts +6 -13
  523. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
  524. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
  525. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketReplicationCommand.d.ts +3 -3
  526. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketTaggingCommand.d.ts +3 -3
  527. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -6
  528. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutJobTaggingCommand.d.ts +7 -9
  529. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutMultiRegionAccessPointPolicyCommand.d.ts +3 -6
  530. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutPublicAccessBlockCommand.d.ts +8 -7
  531. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationCommand.d.ts +43 -6
  532. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationTaggingCommand.d.ts +3 -6
  533. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/SubmitMultiRegionAccessPointRoutesCommand.d.ts +3 -6
  534. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/TagResourceCommand.d.ts +10 -33
  535. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UntagResourceCommand.d.ts +12 -16
  536. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateAccessGrantsLocationCommand.d.ts +4 -8
  537. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobPriorityCommand.d.ts +6 -8
  538. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobStatusCommand.d.ts +6 -7
  539. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateStorageLensGroupCommand.d.ts +3 -6
  540. package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  541. package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/endpointResolver.d.ts +5 -2
  542. package/node_modules/@aws-sdk/client-s3-control/dist-types/extensionConfiguration.d.ts +4 -4
  543. package/node_modules/@aws-sdk/client-s3-control/dist-types/index.d.ts +5 -1
  544. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/S3ControlServiceException.d.ts +1 -1
  545. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/enums.d.ts +689 -0
  546. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/errors.d.ts +160 -0
  547. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_0.d.ts +1408 -1265
  548. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_1.d.ts +2 -1217
  549. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/Interfaces.d.ts +1 -1
  550. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsInstancesPaginator.d.ts +1 -1
  551. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsLocationsPaginator.d.ts +1 -1
  552. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsPaginator.d.ts +1 -1
  553. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForDirectoryBucketsPaginator.d.ts +1 -1
  554. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForObjectLambdaPaginator.d.ts +1 -1
  555. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsPaginator.d.ts +1 -1
  556. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListCallerAccessGrantsPaginator.d.ts +1 -1
  557. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListJobsPaginator.d.ts +1 -1
  558. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListMultiRegionAccessPointsPaginator.d.ts +1 -1
  559. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListRegionalBucketsPaginator.d.ts +1 -1
  560. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensConfigurationsPaginator.d.ts +1 -1
  561. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensGroupsPaginator.d.ts +1 -1
  562. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/index.d.ts +2 -2
  563. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.browser.d.ts +7 -3
  564. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.d.ts +7 -3
  565. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.native.d.ts +7 -3
  566. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.shared.d.ts +6 -2
  567. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeExtensions.d.ts +1 -1
  568. package/node_modules/@aws-sdk/client-s3-control/dist-types/schemas/schemas_0.d.ts +413 -460
  569. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/S3ControlClient.d.ts +3 -7
  570. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  571. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListAccessPointsForObjectLambdaCommand.d.ts +4 -2
  572. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListCallerAccessGrantsCommand.d.ts +1 -1
  573. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListJobsCommand.d.ts +1 -1
  574. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListMultiRegionAccessPointsCommand.d.ts +1 -1
  575. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListRegionalBucketsCommand.d.ts +1 -1
  576. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListStorageLensConfigurationsCommand.d.ts +1 -1
  577. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListStorageLensGroupsCommand.d.ts +1 -1
  578. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/ListTagsForResourceCommand.d.ts +1 -1
  579. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutAccessGrantsInstanceResourcePolicyCommand.d.ts +1 -1
  580. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutAccessPointConfigurationForObjectLambdaCommand.d.ts +1 -1
  581. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutAccessPointPolicyCommand.d.ts +1 -1
  582. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutAccessPointPolicyForObjectLambdaCommand.d.ts +1 -1
  583. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutAccessPointScopeCommand.d.ts +1 -1
  584. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutBucketLifecycleConfigurationCommand.d.ts +1 -1
  585. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutBucketPolicyCommand.d.ts +1 -1
  586. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutBucketReplicationCommand.d.ts +1 -1
  587. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutBucketTaggingCommand.d.ts +1 -1
  588. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutBucketVersioningCommand.d.ts +1 -1
  589. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutJobTaggingCommand.d.ts +1 -1
  590. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutMultiRegionAccessPointPolicyCommand.d.ts +1 -1
  591. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutPublicAccessBlockCommand.d.ts +1 -1
  592. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutStorageLensConfigurationCommand.d.ts +1 -1
  593. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/PutStorageLensConfigurationTaggingCommand.d.ts +1 -1
  594. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/SubmitMultiRegionAccessPointRoutesCommand.d.ts +1 -1
  595. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/TagResourceCommand.d.ts +1 -1
  596. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UntagResourceCommand.d.ts +1 -1
  597. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateAccessGrantsLocationCommand.d.ts +1 -1
  598. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateJobPriorityCommand.d.ts +1 -1
  599. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateJobStatusCommand.d.ts +2 -4
  600. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/index.d.ts +5 -1
  601. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/S3ControlServiceException.d.ts +1 -1
  602. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/enums.d.ts +371 -0
  603. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/errors.d.ts +95 -0
  604. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_0.d.ts +315 -412
  605. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_1.d.ts +2 -320
  606. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/pagination/index.d.ts +2 -2
  607. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -7
  608. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.d.ts +9 -7
  609. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -7
  610. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
  611. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/schemas/schemas_0.d.ts +413 -461
  612. package/node_modules/@aws-sdk/client-s3-control/package.json +43 -42
  613. package/node_modules/@aws-sdk/client-sso/README.md +1 -9
  614. package/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js +27 -20
  615. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +105 -199
  616. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.browser.js +3 -4
  617. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js +5 -8
  618. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js +6 -1
  619. package/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js +2 -2
  620. package/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js +27 -20
  621. package/node_modules/@aws-sdk/client-sso/dist-es/commands/GetRoleCredentialsCommand.js +2 -2
  622. package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountRolesCommand.js +2 -2
  623. package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountsCommand.js +2 -2
  624. package/node_modules/@aws-sdk/client-sso/dist-es/commands/LogoutCommand.js +2 -2
  625. package/node_modules/@aws-sdk/client-sso/dist-es/index.js +3 -1
  626. package/node_modules/@aws-sdk/client-sso/dist-es/models/errors.js +49 -0
  627. package/node_modules/@aws-sdk/client-sso/dist-es/models/models_0.js +1 -49
  628. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.browser.js +3 -4
  629. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js +6 -9
  630. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.shared.js +6 -1
  631. package/node_modules/@aws-sdk/client-sso/dist-es/schemas/schemas_0.js +73 -186
  632. package/node_modules/@aws-sdk/client-sso/dist-types/SSO.d.ts +1 -1
  633. package/node_modules/@aws-sdk/client-sso/dist-types/SSOClient.d.ts +10 -19
  634. package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  635. package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  636. package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +3 -3
  637. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +3 -3
  638. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +3 -3
  639. package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +3 -3
  640. package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  641. package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/endpointResolver.d.ts +5 -2
  642. package/node_modules/@aws-sdk/client-sso/dist-types/extensionConfiguration.d.ts +4 -4
  643. package/node_modules/@aws-sdk/client-sso/dist-types/index.d.ts +3 -1
  644. package/node_modules/@aws-sdk/client-sso/dist-types/models/SSOServiceException.d.ts +1 -1
  645. package/node_modules/@aws-sdk/client-sso/dist-types/models/errors.d.ts +53 -0
  646. package/node_modules/@aws-sdk/client-sso/dist-types/models/models_0.d.ts +0 -53
  647. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/Interfaces.d.ts +1 -1
  648. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountRolesPaginator.d.ts +1 -1
  649. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountsPaginator.d.ts +1 -1
  650. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.browser.d.ts +7 -3
  651. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.d.ts +7 -3
  652. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.native.d.ts +7 -3
  653. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.shared.d.ts +8 -3
  654. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeExtensions.d.ts +1 -1
  655. package/node_modules/@aws-sdk/client-sso/dist-types/schemas/schemas_0.d.ts +20 -26
  656. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/SSOClient.d.ts +2 -6
  657. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  658. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/index.d.ts +3 -1
  659. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/SSOServiceException.d.ts +1 -1
  660. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/errors.d.ts +30 -0
  661. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/models_0.d.ts +0 -30
  662. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
  663. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
  664. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
  665. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
  666. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/schemas/schemas_0.d.ts +19 -27
  667. package/node_modules/@aws-sdk/client-sso/package.json +37 -36
  668. package/node_modules/@aws-sdk/client-sts/README.md +7 -15
  669. package/node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthSchemeProvider.js +15 -12
  670. package/node_modules/@aws-sdk/client-sts/dist-cjs/index.js +360 -287
  671. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.browser.js +3 -4
  672. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js +6 -10
  673. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js +7 -6
  674. package/node_modules/@aws-sdk/client-sts/dist-es/STS.js +2 -0
  675. package/node_modules/@aws-sdk/client-sts/dist-es/STSClient.js +2 -2
  676. package/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthSchemeProvider.js +15 -12
  677. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleCommand.js +2 -2
  678. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js +2 -2
  679. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithWebIdentityCommand.js +2 -2
  680. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js +2 -2
  681. package/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js +2 -2
  682. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js +2 -2
  683. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js +2 -2
  684. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetDelegatedAccessTokenCommand.js +2 -2
  685. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js +2 -2
  686. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js +2 -2
  687. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetWebIdentityTokenCommand.js +16 -0
  688. package/node_modules/@aws-sdk/client-sts/dist-es/commands/index.js +1 -0
  689. package/node_modules/@aws-sdk/client-sts/dist-es/defaultStsRoleAssumers.js +3 -2
  690. package/node_modules/@aws-sdk/client-sts/dist-es/index.js +3 -1
  691. package/node_modules/@aws-sdk/client-sts/dist-es/models/errors.js +145 -0
  692. package/node_modules/@aws-sdk/client-sts/dist-es/models/models_0.js +1 -109
  693. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.browser.js +3 -4
  694. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.js +7 -11
  695. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.shared.js +7 -6
  696. package/node_modules/@aws-sdk/client-sts/dist-es/schemas/schemas_0.js +220 -252
  697. package/node_modules/@aws-sdk/client-sts/dist-types/STS.d.ts +8 -1
  698. package/node_modules/@aws-sdk/client-sts/dist-types/STSClient.d.ts +13 -21
  699. package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  700. package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  701. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleCommand.d.ts +5 -6
  702. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithSAMLCommand.d.ts +5 -6
  703. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithWebIdentityCommand.d.ts +5 -6
  704. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRootCommand.d.ts +5 -6
  705. package/node_modules/@aws-sdk/client-sts/dist-types/commands/DecodeAuthorizationMessageCommand.d.ts +3 -3
  706. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetAccessKeyInfoCommand.d.ts +3 -3
  707. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetCallerIdentityCommand.d.ts +3 -3
  708. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetDelegatedAccessTokenCommand.d.ts +22 -8
  709. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetFederationTokenCommand.d.ts +5 -6
  710. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetSessionTokenCommand.d.ts +5 -6
  711. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetWebIdentityTokenCommand.d.ts +98 -0
  712. package/node_modules/@aws-sdk/client-sts/dist-types/commands/index.d.ts +1 -0
  713. package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  714. package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/endpointResolver.d.ts +5 -2
  715. package/node_modules/@aws-sdk/client-sts/dist-types/extensionConfiguration.d.ts +4 -4
  716. package/node_modules/@aws-sdk/client-sts/dist-types/index.d.ts +3 -1
  717. package/node_modules/@aws-sdk/client-sts/dist-types/models/STSServiceException.d.ts +1 -1
  718. package/node_modules/@aws-sdk/client-sts/dist-types/models/errors.d.ts +172 -0
  719. package/node_modules/@aws-sdk/client-sts/dist-types/models/models_0.d.ts +61 -137
  720. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.browser.d.ts +7 -3
  721. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.d.ts +8 -4
  722. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.native.d.ts +7 -3
  723. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.shared.d.ts +8 -3
  724. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeExtensions.d.ts +1 -1
  725. package/node_modules/@aws-sdk/client-sts/dist-types/schemas/schemas_0.d.ts +53 -55
  726. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STS.d.ts +17 -0
  727. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STSClient.d.ts +11 -9
  728. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  729. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +1 -1
  730. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/GetWebIdentityTokenCommand.d.ts +51 -0
  731. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/commands/index.d.ts +1 -0
  732. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/index.d.ts +3 -1
  733. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/STSServiceException.d.ts +1 -1
  734. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/errors.d.ts +101 -0
  735. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/models_0.d.ts +10 -71
  736. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
  737. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
  738. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
  739. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
  740. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/schemas/schemas_0.d.ts +52 -56
  741. package/node_modules/@aws-sdk/client-sts/package.json +39 -36
  742. package/node_modules/@aws-sdk/core/LICENSE +201 -0
  743. package/node_modules/@aws-sdk/core/dist-cjs/index.js +317 -116
  744. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +3 -3
  745. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +9 -1
  746. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +305 -112
  747. package/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +3 -3
  748. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +9 -1
  749. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +20 -3
  750. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +23 -0
  751. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +11 -3
  752. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +2 -1
  753. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +2 -1
  754. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +14 -11
  755. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +42 -26
  756. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +83 -53
  757. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +11 -1
  758. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
  759. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +28 -2
  760. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/structIterator.js +40 -0
  761. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +13 -4
  762. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +12 -0
  763. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +18 -1
  764. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +6 -0
  765. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  766. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -1
  767. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -1
  768. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -1
  769. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  770. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +12 -3
  771. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/structIterator.d.ts +27 -0
  772. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  773. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +4 -0
  774. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +9 -0
  775. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -0
  776. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -0
  777. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -0
  778. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  779. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +9 -3
  780. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/structIterator.d.ts +12 -0
  781. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  782. package/node_modules/@aws-sdk/core/package.json +14 -14
  783. package/node_modules/@aws-sdk/crc64-nvme/README.md +61 -0
  784. package/node_modules/@aws-sdk/crc64-nvme/dist-cjs/index.js +101 -0
  785. package/node_modules/@aws-sdk/crc64-nvme/dist-es/Crc64Nvme.js +92 -0
  786. package/node_modules/@aws-sdk/crc64-nvme/dist-es/index.js +2 -0
  787. package/node_modules/@aws-sdk/crc64-nvme/dist-types/Crc64Nvme.d.ts +24 -0
  788. package/node_modules/@aws-sdk/crc64-nvme/dist-types/index.d.ts +2 -0
  789. package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/Crc64Nvme.d.ts +9 -0
  790. package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/index.d.ts +2 -0
  791. package/node_modules/@aws-sdk/crc64-nvme/package.json +50 -0
  792. package/node_modules/@aws-sdk/credential-provider-env/package.json +63 -0
  793. package/node_modules/@aws-sdk/credential-provider-http/package.json +70 -0
  794. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +224 -0
  795. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +9 -0
  796. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js +80 -0
  797. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveLoginCredentials.js +12 -0
  798. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js +32 -0
  799. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js +25 -0
  800. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js +16 -0
  801. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/fromIni.d.ts +55 -0
  802. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveAssumeRoleCredentials.d.ts +48 -0
  803. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveLoginCredentials.d.ts +11 -0
  804. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveProfileData.d.ts +19 -0
  805. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveSsoCredentials.d.ts +13 -0
  806. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveWebIdentityCredentials.d.ts +19 -0
  807. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/fromIni.d.ts +28 -0
  808. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +30 -0
  809. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveLoginCredentials.d.ts +9 -0
  810. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveProfileData.d.ts +12 -0
  811. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveSsoCredentials.d.ts +11 -0
  812. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveWebIdentityCredentials.d.ts +16 -0
  813. package/node_modules/@aws-sdk/credential-provider-ini/package.json +74 -0
  814. package/node_modules/@aws-sdk/credential-provider-login/README.md +7 -0
  815. package/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +286 -0
  816. package/node_modules/@aws-sdk/credential-provider-login/dist-es/LoginCredentialsFetcher.js +262 -0
  817. package/node_modules/@aws-sdk/credential-provider-login/dist-es/fromLoginCredentials.js +21 -0
  818. package/node_modules/@aws-sdk/credential-provider-login/dist-es/index.js +2 -0
  819. package/node_modules/@aws-sdk/credential-provider-login/dist-types/LoginCredentialsFetcher.d.ts +42 -0
  820. package/node_modules/@aws-sdk/credential-provider-login/dist-types/fromLoginCredentials.d.ts +7 -0
  821. package/node_modules/@aws-sdk/credential-provider-login/dist-types/index.d.ts +8 -0
  822. package/node_modules/@aws-sdk/credential-provider-login/dist-types/ts3.4/LoginCredentialsFetcher.d.ts +24 -0
  823. package/node_modules/@aws-sdk/credential-provider-login/dist-types/ts3.4/fromLoginCredentials.d.ts +5 -0
  824. package/node_modules/@aws-sdk/credential-provider-login/dist-types/ts3.4/index.d.ts +2 -0
  825. package/node_modules/@aws-sdk/credential-provider-login/dist-types/ts3.4/types.d.ts +39 -0
  826. package/node_modules/@aws-sdk/credential-provider-login/dist-types/types.d.ts +59 -0
  827. package/node_modules/@aws-sdk/credential-provider-login/package.json +68 -0
  828. package/node_modules/@aws-sdk/credential-provider-node/package.json +15 -15
  829. package/node_modules/@aws-sdk/credential-provider-process/package.json +64 -0
  830. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +192 -0
  831. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js +83 -0
  832. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js +90 -0
  833. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/fromSSO.d.ts +69 -0
  834. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/resolveSSOCredentials.d.ts +6 -0
  835. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/fromSSO.d.ts +24 -0
  836. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/resolveSSOCredentials.d.ts +18 -0
  837. package/node_modules/@aws-sdk/credential-provider-sso/package.json +66 -0
  838. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +73 -0
  839. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +9 -9
  840. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +7 -7
  841. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +29 -21
  842. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js +25 -9
  843. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js +0 -1
  844. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js +2 -6
  845. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/index.d.ts +0 -1
  846. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/index.d.ts +0 -1
  847. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +13 -12
  848. package/node_modules/@aws-sdk/middleware-host-header/package.json +7 -7
  849. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +6 -6
  850. package/node_modules/@aws-sdk/middleware-logger/package.json +6 -6
  851. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +8 -8
  852. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +2 -2
  853. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +15 -15
  854. package/node_modules/@aws-sdk/middleware-sdk-s3-control/dist-cjs/index.js +1 -1
  855. package/node_modules/@aws-sdk/middleware-sdk-s3-control/package.json +12 -12
  856. package/node_modules/@aws-sdk/middleware-ssec/package.json +6 -6
  857. package/node_modules/@aws-sdk/middleware-user-agent/package.json +10 -10
  858. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/auth/httpAuthSchemeProvider.js +56 -0
  859. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/ruleset.js +7 -0
  860. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +344 -0
  861. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.browser.js +39 -0
  862. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.js +53 -0
  863. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.shared.js +47 -0
  864. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +499 -0
  865. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.browser.js +38 -0
  866. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js +53 -0
  867. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js +47 -0
  868. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +480 -0
  869. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.browser.js +39 -0
  870. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +67 -0
  871. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +48 -0
  872. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/Signin.js +9 -0
  873. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +50 -0
  874. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthSchemeProvider.js +50 -0
  875. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +16 -0
  876. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/index.js +1 -0
  877. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/EndpointParameters.js +13 -0
  878. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/ruleset.js +4 -0
  879. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +8 -0
  880. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +8 -0
  881. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/enums.js +8 -0
  882. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +57 -0
  883. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.browser.js +34 -0
  884. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +48 -0
  885. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +43 -0
  886. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js +114 -0
  887. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +50 -0
  888. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +16 -0
  889. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +8 -0
  890. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/enums.js +9 -0
  891. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +181 -0
  892. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +33 -0
  893. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +48 -0
  894. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +43 -0
  895. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +133 -0
  896. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +50 -0
  897. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +16 -0
  898. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +16 -0
  899. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +107 -0
  900. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +8 -0
  901. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +34 -0
  902. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +62 -0
  903. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +44 -0
  904. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +186 -0
  905. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/Signin.d.ts +18 -0
  906. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +189 -0
  907. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +29 -0
  908. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthSchemeProvider.d.ts +75 -0
  909. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +157 -0
  910. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/index.d.ts +1 -0
  911. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/EndpointParameters.d.ts +50 -0
  912. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/endpointResolver.d.ts +8 -0
  913. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/extensionConfiguration.d.ts +9 -0
  914. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/index.d.ts +17 -0
  915. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +14 -0
  916. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/enums.d.ts +34 -0
  917. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +102 -0
  918. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/models_0.d.ts +142 -0
  919. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +63 -0
  920. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +63 -0
  921. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +62 -0
  922. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +38 -0
  923. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeExtensions.d.ts +17 -0
  924. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/schemas/schemas_0.d.ts +12 -0
  925. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +55 -0
  926. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +220 -0
  927. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +29 -0
  928. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +75 -0
  929. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +176 -0
  930. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +50 -0
  931. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/endpointResolver.d.ts +8 -0
  932. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/extensionConfiguration.d.ts +9 -0
  933. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +54 -0
  934. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +14 -0
  935. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/enums.d.ts +25 -0
  936. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +279 -0
  937. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/models_0.d.ts +109 -0
  938. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +62 -0
  939. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +62 -0
  940. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +61 -0
  941. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +38 -0
  942. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeExtensions.d.ts +17 -0
  943. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/schemas/schemas_0.d.ts +16 -0
  944. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +27 -0
  945. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +192 -0
  946. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +29 -0
  947. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +85 -0
  948. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +270 -0
  949. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +290 -0
  950. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/EndpointParameters.d.ts +56 -0
  951. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/endpointResolver.d.ts +8 -0
  952. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/extensionConfiguration.d.ts +9 -0
  953. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +19 -0
  954. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +14 -0
  955. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +107 -0
  956. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/models_0.d.ts +588 -0
  957. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +64 -0
  958. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +62 -0
  959. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +63 -0
  960. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +38 -0
  961. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeExtensions.d.ts +17 -0
  962. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/schemas/schemas_0.d.ts +20 -0
  963. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/Signin.d.ts +22 -0
  964. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/SigninClient.d.ts +123 -0
  965. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +32 -0
  966. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/auth/httpAuthSchemeProvider.d.ts +47 -0
  967. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +47 -0
  968. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commands/index.d.ts +1 -0
  969. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/EndpointParameters.d.ts +51 -0
  970. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/extensionConfiguration.d.ts +9 -0
  971. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/index.d.ts +11 -0
  972. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +9 -0
  973. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/enums.d.ts +10 -0
  974. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +35 -0
  975. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/models_0.d.ts +26 -0
  976. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +125 -0
  977. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +118 -0
  978. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +129 -0
  979. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +58 -0
  980. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeExtensions.d.ts +11 -0
  981. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/schemas/schemas_0.d.ts +16 -0
  982. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDCClient.d.ts +121 -0
  983. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +32 -0
  984. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +11 -0
  985. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +9 -0
  986. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/enums.d.ts +13 -0
  987. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +105 -0
  988. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/models_0.d.ts +18 -0
  989. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +120 -0
  990. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +115 -0
  991. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +124 -0
  992. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +58 -0
  993. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/schemas/schemas_0.d.ts +20 -0
  994. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STSClient.d.ts +128 -0
  995. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +32 -0
  996. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +57 -0
  997. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +11 -0
  998. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +9 -0
  999. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +54 -0
  1000. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/models_0.d.ts +59 -0
  1001. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +129 -0
  1002. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +111 -0
  1003. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +133 -0
  1004. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +58 -0
  1005. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/schemas/schemas_0.d.ts +24 -0
  1006. package/node_modules/@aws-sdk/nested-clients/package.json +127 -0
  1007. package/node_modules/@aws-sdk/nested-clients/signin.d.ts +7 -0
  1008. package/node_modules/@aws-sdk/nested-clients/signin.js +5 -0
  1009. package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +1 -1
  1010. package/node_modules/@aws-sdk/region-config-resolver/package.json +8 -8
  1011. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +9 -9
  1012. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +6 -13
  1013. package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +2 -9
  1014. package/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +2 -2
  1015. package/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +2 -2
  1016. package/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +1 -1
  1017. package/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +3 -2
  1018. package/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +2 -1
  1019. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +1 -1
  1020. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +3 -1
  1021. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +3 -1
  1022. package/node_modules/@aws-sdk/token-providers/package.json +10 -10
  1023. package/node_modules/@aws-sdk/types/dist-types/feature-ids.d.ts +2 -0
  1024. package/node_modules/@aws-sdk/types/dist-types/ts3.4/feature-ids.d.ts +2 -0
  1025. package/node_modules/@aws-sdk/types/package.json +5 -5
  1026. package/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js +24 -61
  1027. package/node_modules/@aws-sdk/util-arn-parser/dist-types/index.d.ts +9 -0
  1028. package/node_modules/@aws-sdk/util-arn-parser/package.json +4 -4
  1029. package/node_modules/@aws-sdk/util-endpoints/package.json +8 -8
  1030. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +6 -6
  1031. package/node_modules/@aws-sdk/util-user-agent-node/package.json +8 -8
  1032. package/node_modules/@aws-sdk/xml-builder/package.json +5 -5
  1033. package/node_modules/@smithy/abort-controller/package.json +2 -2
  1034. package/node_modules/@smithy/config-resolver/package.json +5 -5
  1035. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -7
  1036. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +0 -1
  1037. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +9 -0
  1038. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +11 -2
  1039. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +33 -6
  1040. package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +0 -1
  1041. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +0 -1
  1042. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +6 -0
  1043. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -0
  1044. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -0
  1045. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +8 -2
  1046. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpBindingProtocol.d.ts +6 -2
  1047. package/node_modules/@smithy/core/dist-types/submodules/protocols/SerdeContext.d.ts +10 -2
  1048. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
  1049. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpBindingProtocol.d.ts +6 -2
  1050. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/SerdeContext.d.ts +10 -2
  1051. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
  1052. package/node_modules/@smithy/core/package.json +11 -9
  1053. package/node_modules/@smithy/credential-provider-imds/package.json +70 -0
  1054. package/node_modules/@smithy/eventstream-codec/package.json +2 -2
  1055. package/node_modules/@smithy/eventstream-serde-browser/package.json +3 -3
  1056. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +2 -2
  1057. package/node_modules/@smithy/eventstream-serde-node/package.json +3 -3
  1058. package/node_modules/@smithy/eventstream-serde-universal/package.json +3 -3
  1059. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  1060. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  1061. package/node_modules/@smithy/hash-node/package.json +2 -2
  1062. package/node_modules/@smithy/hash-stream-node/package.json +2 -2
  1063. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  1064. package/node_modules/@smithy/md5-js/package.json +2 -2
  1065. package/node_modules/@smithy/middleware-apply-body-checksum/package.json +3 -3
  1066. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  1067. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +11 -3
  1068. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js +10 -2
  1069. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +1 -1
  1070. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/createConfigValueProvider.d.ts +2 -1
  1071. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/adaptors/createConfigValueProvider.d.ts +2 -1
  1072. package/node_modules/@smithy/middleware-endpoint/package.json +9 -9
  1073. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  1074. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +3 -0
  1075. package/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js +3 -0
  1076. package/node_modules/@smithy/middleware-serde/package.json +3 -3
  1077. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  1078. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  1079. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  1080. package/node_modules/@smithy/property-provider/package.json +61 -0
  1081. package/node_modules/@smithy/protocol-http/package.json +2 -2
  1082. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  1083. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  1084. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  1085. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  1086. package/node_modules/@smithy/signature-v4/package.json +4 -4
  1087. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +6 -0
  1088. package/node_modules/@smithy/smithy-client/dist-es/client.js +6 -0
  1089. package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +33 -7
  1090. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/client.d.ts +33 -7
  1091. package/node_modules/@smithy/smithy-client/package.json +8 -8
  1092. package/node_modules/@smithy/types/dist-types/schema/schema-deprecated.d.ts +7 -0
  1093. package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +6 -0
  1094. package/node_modules/@smithy/types/dist-types/schema/static-schemas.d.ts +16 -1
  1095. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema-deprecated.d.ts +7 -0
  1096. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +6 -0
  1097. package/node_modules/@smithy/types/dist-types/ts3.4/schema/static-schemas.d.ts +16 -1
  1098. package/node_modules/@smithy/types/package.json +1 -1
  1099. package/node_modules/@smithy/url-parser/package.json +3 -3
  1100. package/node_modules/@smithy/util-defaults-mode-browser/package.json +5 -5
  1101. package/node_modules/@smithy/util-defaults-mode-node/package.json +8 -8
  1102. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  1103. package/node_modules/@smithy/util-middleware/package.json +2 -2
  1104. package/node_modules/@smithy/util-retry/package.json +3 -3
  1105. package/node_modules/@smithy/util-stream/package.json +4 -4
  1106. package/node_modules/@smithy/util-waiter/package.json +3 -3
  1107. package/node_modules/aws-sdk/README.md +16 -195
  1108. package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +756 -346
  1109. package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +3758 -2938
  1110. package/node_modules/aws-sdk/dist/aws-sdk.js +5 -5
  1111. package/node_modules/aws-sdk/dist/aws-sdk.min.js +5 -5
  1112. package/node_modules/aws-sdk/lib/core.js +1 -1
  1113. package/node_modules/aws-sdk/lib/maintenance_mode_message.js +2 -2
  1114. package/node_modules/aws-sdk/package.json +1 -1
  1115. package/node_modules/cdk-iam-floyd/README.md +4 -4
  1116. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.d.ts +46 -0
  1117. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.js +93 -1
  1118. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.d.ts +46 -0
  1119. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.js +47 -1
  1120. package/node_modules/cdk-iam-floyd/lib/generated/index.d.ts +11 -3
  1121. package/node_modules/cdk-iam-floyd/lib/generated/index.js +33 -17
  1122. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.d.ts +6 -0
  1123. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.js +7 -1
  1124. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.d.ts +43 -0
  1125. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.js +56 -1
  1126. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.d.ts +127 -0
  1127. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.js +168 -3
  1128. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.d.ts +55 -0
  1129. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.js +73 -1
  1130. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.d.ts +359 -0
  1131. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.js +478 -1
  1132. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.d.ts +125 -0
  1133. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.js +166 -0
  1134. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.d.ts +28 -14
  1135. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.js +31 -15
  1136. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.d.ts +71 -0
  1137. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.js +88 -3
  1138. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.d.ts +8 -0
  1139. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.js +12 -1
  1140. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.d.ts +160 -0
  1141. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.js +210 -1
  1142. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.d.ts +10 -2
  1143. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.js +14 -3
  1144. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.d.ts +8 -0
  1145. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.js +12 -1
  1146. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.d.ts +149 -0
  1147. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.js +201 -2
  1148. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.d.ts +143 -0
  1149. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.js +184 -2
  1150. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.d.ts +274 -0
  1151. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.js +365 -0
  1152. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.d.ts +866 -13
  1153. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.js +1034 -9
  1154. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.d.ts +8 -0
  1155. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.js +12 -1
  1156. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.d.ts +8 -0
  1157. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.js +12 -1
  1158. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.d.ts +32 -0
  1159. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.js +39 -1
  1160. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.d.ts +12 -0
  1161. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.js +19 -1
  1162. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.d.ts +469 -0
  1163. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.js +630 -0
  1164. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.d.ts +37 -1
  1165. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.js +46 -2
  1166. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.d.ts +16 -0
  1167. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.js +23 -1
  1168. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.d.ts +30 -0
  1169. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.js +37 -1
  1170. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.d.ts +64 -0
  1171. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.js +90 -2
  1172. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.d.ts +74 -0
  1173. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.js +87 -1
  1174. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.d.ts +64 -0
  1175. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.js +82 -1
  1176. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.d.ts +357 -31
  1177. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.js +450 -39
  1178. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.d.ts +17 -1
  1179. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.js +21 -2
  1180. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.d.ts +24 -0
  1181. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.js +34 -1
  1182. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.d.ts +2 -0
  1183. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.js +3 -1
  1184. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.d.ts +0 -11
  1185. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.js +1 -14
  1186. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.d.ts +180 -0
  1187. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.js +224 -1
  1188. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.d.ts +159 -1
  1189. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.js +173 -2
  1190. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.d.ts +78 -0
  1191. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.js +101 -3
  1192. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.d.ts +16 -0
  1193. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.js +24 -2
  1194. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.d.ts +16 -0
  1195. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.js +23 -1
  1196. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.d.ts +192 -3
  1197. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.js +251 -4
  1198. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.d.ts +141 -3
  1199. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.js +183 -5
  1200. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.d.ts +40 -2
  1201. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.js +50 -3
  1202. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.d.ts +48 -0
  1203. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.js +67 -1
  1204. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.d.ts +41 -0
  1205. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.js +62 -0
  1206. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.d.ts +40 -0
  1207. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.js +59 -2
  1208. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.d.ts +125 -0
  1209. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.js +152 -3
  1210. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.d.ts +1800 -0
  1211. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.js +2202 -0
  1212. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.d.ts +47 -1
  1213. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.js +57 -1
  1214. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.d.ts +91 -0
  1215. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.js +127 -0
  1216. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.d.ts +23 -1
  1217. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.js +28 -2
  1218. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.d.ts +8 -0
  1219. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.js +28 -17
  1220. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.d.ts +8 -0
  1221. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.js +14 -1
  1222. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.d.ts +8 -0
  1223. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.js +12 -1
  1224. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.d.ts +551 -0
  1225. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.js +727 -0
  1226. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.d.ts +76 -1
  1227. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.js +85 -2
  1228. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.d.ts +216 -33
  1229. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.js +262 -35
  1230. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.d.ts +211 -0
  1231. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.js +231 -1
  1232. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.d.ts +83 -0
  1233. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.js +107 -1
  1234. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcp.d.ts +41 -0
  1235. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcp.js +60 -0
  1236. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.d.ts +81 -0
  1237. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.js +88 -1
  1238. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.d.ts +624 -0
  1239. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.js +840 -0
  1240. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.d.ts +16 -0
  1241. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.js +23 -1
  1242. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.d.ts +17 -0
  1243. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.js +24 -1
  1244. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.d.ts +6 -0
  1245. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.js +11 -2
  1246. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.d.ts +168 -0
  1247. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.js +232 -0
  1248. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.d.ts +18 -2
  1249. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.js +27 -3
  1250. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.d.ts +76 -12
  1251. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.js +101 -13
  1252. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.d.ts +281 -0
  1253. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.js +373 -0
  1254. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.d.ts +4 -0
  1255. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.js +5 -1
  1256. package/node_modules/cdk-iam-floyd/package.json +5 -5
  1257. package/node_modules/winston/README.md +10 -8
  1258. package/node_modules/winston/dist/winston/logger.js +1 -0
  1259. package/node_modules/winston/dist/winston/profiler.js +0 -1
  1260. package/node_modules/winston/dist/winston/transports/file.js +87 -50
  1261. package/node_modules/winston/lib/winston/logger.js +1 -0
  1262. package/node_modules/winston/lib/winston/profiler.js +1 -1
  1263. package/node_modules/winston/lib/winston/transports/file.js +32 -0
  1264. package/node_modules/winston/package.json +72 -72
  1265. package/package.json +27 -27
  1266. package/node-v24.9.0-linux-x64.tar.xz +0 -0
  1267. package/node_modules/@aws-sdk/client-s3/dist-es/models/index.js +0 -2
  1268. package/node_modules/@aws-sdk/client-s3/dist-types/models/index.d.ts +0 -2
  1269. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/index.d.ts +0 -2
  1270. package/node_modules/@aws-sdk/client-s3-control/dist-es/models/index.js +0 -2
  1271. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/index.d.ts +0 -2
  1272. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/index.d.ts +0 -2
  1273. package/node_modules/@aws-sdk/client-sso/dist-es/models/index.js +0 -1
  1274. package/node_modules/@aws-sdk/client-sso/dist-types/models/index.d.ts +0 -1
  1275. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/index.d.ts +0 -1
  1276. package/node_modules/@aws-sdk/client-sts/dist-es/models/index.js +0 -1
  1277. package/node_modules/@aws-sdk/client-sts/dist-types/models/index.d.ts +0 -1
  1278. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/index.d.ts +0 -1
  1279. package/node_modules/@aws-sdk/core/node_modules/@smithy/property-provider/package.json +0 -61
  1280. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-env/package.json +0 -63
  1281. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-http/package.json +0 -70
  1282. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +0 -211
  1283. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +0 -16
  1284. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js +0 -79
  1285. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js +0 -28
  1286. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js +0 -23
  1287. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js +0 -14
  1288. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/fromIni.d.ts +0 -55
  1289. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveAssumeRoleCredentials.d.ts +0 -48
  1290. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveProfileData.d.ts +0 -18
  1291. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveSsoCredentials.d.ts +0 -12
  1292. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveWebIdentityCredentials.d.ts +0 -18
  1293. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/fromIni.d.ts +0 -24
  1294. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +0 -28
  1295. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveProfileData.d.ts +0 -10
  1296. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveSsoCredentials.d.ts +0 -9
  1297. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveWebIdentityCredentials.d.ts +0 -14
  1298. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/package.json +0 -73
  1299. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-process/package.json +0 -64
  1300. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +0 -190
  1301. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js +0 -81
  1302. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js +0 -90
  1303. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-types/fromSSO.d.ts +0 -68
  1304. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-types/resolveSSOCredentials.d.ts +0 -6
  1305. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/fromSSO.d.ts +0 -22
  1306. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/resolveSSOCredentials.d.ts +0 -17
  1307. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/package.json +0 -66
  1308. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity/package.json +0 -73
  1309. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +0 -560
  1310. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.browser.js +0 -38
  1311. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js +0 -54
  1312. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js +0 -42
  1313. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +0 -488
  1314. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.browser.js +0 -39
  1315. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +0 -68
  1316. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +0 -47
  1317. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +0 -50
  1318. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +0 -16
  1319. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +0 -5
  1320. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/index.js +0 -1
  1321. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js +0 -190
  1322. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +0 -33
  1323. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +0 -49
  1324. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +0 -38
  1325. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +0 -211
  1326. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +0 -50
  1327. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +0 -16
  1328. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +0 -16
  1329. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +0 -106
  1330. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +0 -6
  1331. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/index.js +0 -1
  1332. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +0 -34
  1333. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +0 -63
  1334. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +0 -43
  1335. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +0 -214
  1336. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +0 -55
  1337. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +0 -229
  1338. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +0 -29
  1339. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +0 -75
  1340. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +0 -176
  1341. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +0 -38
  1342. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/endpointResolver.d.ts +0 -5
  1343. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/extensionConfiguration.d.ts +0 -9
  1344. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +0 -51
  1345. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +0 -14
  1346. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/index.d.ts +0 -1
  1347. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/models_0.d.ts +0 -412
  1348. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +0 -58
  1349. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +0 -58
  1350. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +0 -57
  1351. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +0 -33
  1352. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeExtensions.d.ts +0 -17
  1353. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/schemas/schemas_0.d.ts +0 -23
  1354. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +0 -27
  1355. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +0 -201
  1356. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +0 -29
  1357. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +0 -85
  1358. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +0 -271
  1359. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -291
  1360. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/EndpointParameters.d.ts +0 -44
  1361. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/endpointResolver.d.ts +0 -5
  1362. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/extensionConfiguration.d.ts +0 -9
  1363. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +0 -17
  1364. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +0 -14
  1365. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/index.d.ts +0 -1
  1366. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/models_0.d.ts +0 -696
  1367. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +0 -60
  1368. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +0 -58
  1369. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +0 -59
  1370. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +0 -33
  1371. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeExtensions.d.ts +0 -17
  1372. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/schemas/schemas_0.d.ts +0 -26
  1373. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDCClient.d.ts +0 -125
  1374. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +0 -32
  1375. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +0 -8
  1376. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +0 -9
  1377. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/index.d.ts +0 -1
  1378. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/models_0.d.ts +0 -132
  1379. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +0 -116
  1380. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +0 -111
  1381. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +0 -120
  1382. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +0 -53
  1383. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/schemas/schemas_0.d.ts +0 -28
  1384. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STSClient.d.ts +0 -132
  1385. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +0 -32
  1386. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +0 -57
  1387. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +0 -9
  1388. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +0 -9
  1389. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/index.d.ts +0 -1
  1390. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/models_0.d.ts +0 -113
  1391. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +0 -125
  1392. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +0 -107
  1393. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +0 -129
  1394. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +0 -53
  1395. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/schemas/schemas_0.d.ts +0 -32
  1396. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/nested-clients/package.json +0 -116
  1397. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/credential-provider-imds/package.json +0 -70
  1398. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/README.md +0 -10
  1399. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1400. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1401. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1402. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1403. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1404. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1405. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1406. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1407. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1408. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1409. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1410. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1411. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1412. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1413. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1414. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1415. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1416. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1417. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1418. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1419. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1420. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1421. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/package.json +0 -61
  1422. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/README.md +0 -13
  1423. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +0 -2
  1424. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +0 -56
  1425. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js +0 -7
  1426. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +0 -560
  1427. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.browser.js +0 -38
  1428. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js +0 -54
  1429. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js +0 -42
  1430. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js +0 -54
  1431. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js +0 -43
  1432. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js +0 -62
  1433. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js +0 -19
  1434. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js +0 -18
  1435. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js +0 -7
  1436. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +0 -488
  1437. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.browser.js +0 -39
  1438. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +0 -68
  1439. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.native.js +0 -15
  1440. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +0 -47
  1441. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js +0 -13
  1442. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +0 -9
  1443. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +0 -50
  1444. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +0 -50
  1445. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +0 -16
  1446. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js +0 -1
  1447. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js +0 -13
  1448. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/ruleset.js +0 -4
  1449. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +0 -5
  1450. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +0 -8
  1451. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/index.js +0 -1
  1452. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js +0 -190
  1453. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +0 -33
  1454. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +0 -49
  1455. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +0 -38
  1456. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +0 -211
  1457. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +0 -11
  1458. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +0 -50
  1459. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthExtensionConfiguration.js +0 -38
  1460. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +0 -55
  1461. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +0 -16
  1462. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +0 -16
  1463. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js +0 -2
  1464. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultRoleAssumers.js +0 -22
  1465. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +0 -106
  1466. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js +0 -15
  1467. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js +0 -14
  1468. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/ruleset.js +0 -4
  1469. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +0 -6
  1470. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +0 -8
  1471. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/index.js +0 -1
  1472. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js +0 -85
  1473. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +0 -34
  1474. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +0 -63
  1475. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.native.js +0 -11
  1476. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +0 -43
  1477. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js +0 -9
  1478. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +0 -214
  1479. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/index.d.ts +0 -7
  1480. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +0 -55
  1481. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +0 -229
  1482. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +0 -29
  1483. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +0 -75
  1484. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +0 -176
  1485. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/index.d.ts +0 -1
  1486. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +0 -38
  1487. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/endpointResolver.d.ts +0 -5
  1488. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/extensionConfiguration.d.ts +0 -9
  1489. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +0 -51
  1490. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +0 -14
  1491. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/index.d.ts +0 -1
  1492. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/models_0.d.ts +0 -412
  1493. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +0 -58
  1494. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +0 -58
  1495. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +0 -57
  1496. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +0 -33
  1497. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeExtensions.d.ts +0 -17
  1498. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/schemas/schemas_0.d.ts +0 -23
  1499. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +0 -27
  1500. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +0 -201
  1501. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +0 -29
  1502. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +0 -85
  1503. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +0 -271
  1504. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -291
  1505. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/index.d.ts +0 -2
  1506. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/defaultRoleAssumers.d.ts +0 -23
  1507. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/defaultStsRoleAssumers.d.ts +0 -43
  1508. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/EndpointParameters.d.ts +0 -44
  1509. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/endpointResolver.d.ts +0 -5
  1510. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/extensionConfiguration.d.ts +0 -9
  1511. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +0 -17
  1512. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +0 -14
  1513. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/index.d.ts +0 -1
  1514. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/models_0.d.ts +0 -696
  1515. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +0 -60
  1516. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +0 -58
  1517. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +0 -59
  1518. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +0 -33
  1519. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeExtensions.d.ts +0 -17
  1520. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/schemas/schemas_0.d.ts +0 -26
  1521. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDC.d.ts +0 -22
  1522. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDCClient.d.ts +0 -125
  1523. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +0 -32
  1524. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +0 -47
  1525. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +0 -43
  1526. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commands/index.d.ts +0 -1
  1527. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +0 -51
  1528. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -2
  1529. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/extensionConfiguration.d.ts +0 -9
  1530. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +0 -8
  1531. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +0 -9
  1532. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/index.d.ts +0 -1
  1533. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/models_0.d.ts +0 -132
  1534. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +0 -116
  1535. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +0 -111
  1536. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +0 -120
  1537. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +0 -53
  1538. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeExtensions.d.ts +0 -11
  1539. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/schemas/schemas_0.d.ts +0 -28
  1540. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STS.d.ts +0 -39
  1541. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STSClient.d.ts +0 -132
  1542. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +0 -32
  1543. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +0 -57
  1544. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleCommand.d.ts +0 -47
  1545. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -51
  1546. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/index.d.ts +0 -2
  1547. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/defaultRoleAssumers.d.ts +0 -19
  1548. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/defaultStsRoleAssumers.d.ts +0 -33
  1549. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/EndpointParameters.d.ts +0 -57
  1550. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/endpointResolver.d.ts +0 -8
  1551. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/ruleset.d.ts +0 -2
  1552. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/extensionConfiguration.d.ts +0 -9
  1553. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +0 -9
  1554. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +0 -9
  1555. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/index.d.ts +0 -1
  1556. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/models_0.d.ts +0 -113
  1557. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +0 -125
  1558. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +0 -107
  1559. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +0 -129
  1560. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +0 -53
  1561. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeExtensions.d.ts +0 -11
  1562. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/schemas/schemas_0.d.ts +0 -32
  1563. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/package.json +0 -116
  1564. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +0 -7
  1565. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/sso-oidc.js +0 -5
  1566. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/sts.d.ts +0 -7
  1567. package/node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/nested-clients/sts.js +0 -5
  1568. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/LICENSE +0 -201
  1569. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/README.md +0 -10
  1570. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1571. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1572. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1573. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1574. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1575. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1576. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1577. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1578. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1579. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1580. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1581. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1582. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1583. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1584. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1585. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1586. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1587. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1588. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1589. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1590. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1591. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1592. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/package.json +0 -61
  1593. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/LICENSE +0 -201
  1594. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/README.md +0 -10
  1595. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1596. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1597. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1598. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1599. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1600. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1601. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1602. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1603. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1604. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1605. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1606. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1607. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1608. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1609. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1610. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1611. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1612. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1613. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1614. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1615. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1616. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1617. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/package.json +0 -61
  1618. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/LICENSE +0 -201
  1619. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/README.md +0 -10
  1620. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1621. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1622. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1623. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1624. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1625. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1626. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1627. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1628. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1629. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1630. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1631. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1632. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1633. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1634. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1635. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1636. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1637. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1638. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1639. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1640. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1641. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1642. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/package.json +0 -61
  1643. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/LICENSE +0 -201
  1644. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/README.md +0 -11
  1645. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +0 -372
  1646. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js +0 -5
  1647. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -7
  1648. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js +0 -5
  1649. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -8
  1650. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -10
  1651. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -77
  1652. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -134
  1653. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/index.js +0 -7
  1654. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -13
  1655. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -3
  1656. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -36
  1657. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +0 -2
  1658. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -7
  1659. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -17
  1660. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -19
  1661. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -25
  1662. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -7
  1663. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -13
  1664. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -7
  1665. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -13
  1666. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -12
  1667. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -21
  1668. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -10
  1669. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/index.d.ts +0 -28
  1670. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -19
  1671. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -40
  1672. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -6
  1673. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -8
  1674. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -10
  1675. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -7
  1676. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -13
  1677. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -7
  1678. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -13
  1679. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -12
  1680. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -21
  1681. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -10
  1682. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -28
  1683. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -19
  1684. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -40
  1685. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -6
  1686. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -8
  1687. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -10
  1688. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -7
  1689. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
  1690. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -21
  1691. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -16
  1692. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/types.d.ts +0 -7
  1693. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
  1694. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -21
  1695. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -16
  1696. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/package.json +0 -70
  1697. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/LICENSE +0 -201
  1698. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/README.md +0 -10
  1699. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1700. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1701. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1702. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1703. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1704. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1705. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1706. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1707. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1708. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1709. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1710. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1711. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1712. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1713. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1714. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1715. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1716. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1717. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1718. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1719. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1720. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1721. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/package.json +0 -61
  1722. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.d.ts +0 -277
  1723. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.js +0 -357
  1724. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.d.ts +0 -686
  1725. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.js +0 -840
  1726. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.d.ts +0 -41
  1727. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.js +0 -60
  1728. /package/node_modules/@aws-sdk/{core/node_modules/@smithy/property-provider → crc64-nvme}/LICENSE +0 -0
  1729. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-es/crc64-nvme-crt-container.js +0 -0
  1730. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/crc64-nvme-crt-container.d.ts +0 -0
  1731. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/ts3.4/crc64-nvme-crt-container.d.ts +0 -0
  1732. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/LICENSE +0 -0
  1733. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/README.md +0 -0
  1734. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-cjs/index.js +0 -0
  1735. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/fromEnv.js +0 -0
  1736. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/index.js +0 -0
  1737. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/fromEnv.d.ts +0 -0
  1738. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/index.d.ts +0 -0
  1739. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/fromEnv.d.ts +0 -0
  1740. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/index.d.ts +0 -0
  1741. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/README.md +0 -0
  1742. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/checkUrl.js +0 -0
  1743. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.browser.js +0 -0
  1744. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.js +0 -0
  1745. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttpTypes.js +0 -0
  1746. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/requestHelpers.js +0 -0
  1747. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/retry-wrapper.js +0 -0
  1748. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.browser.js +0 -0
  1749. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.js +0 -0
  1750. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/checkUrl.js +0 -0
  1751. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.browser.js +0 -0
  1752. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.js +0 -0
  1753. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttpTypes.js +0 -0
  1754. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/requestHelpers.js +0 -0
  1755. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/retry-wrapper.js +0 -0
  1756. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.browser.js +0 -0
  1757. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.js +0 -0
  1758. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/checkUrl.d.ts +0 -0
  1759. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.browser.d.ts +0 -0
  1760. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.d.ts +0 -0
  1761. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttpTypes.d.ts +0 -0
  1762. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/requestHelpers.d.ts +0 -0
  1763. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/retry-wrapper.d.ts +0 -0
  1764. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.browser.d.ts +0 -0
  1765. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.d.ts +0 -0
  1766. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/checkUrl.d.ts +0 -0
  1767. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.browser.d.ts +0 -0
  1768. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.d.ts +0 -0
  1769. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttpTypes.d.ts +0 -0
  1770. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/requestHelpers.d.ts +0 -0
  1771. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/retry-wrapper.d.ts +0 -0
  1772. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.browser.d.ts +0 -0
  1773. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.d.ts +0 -0
  1774. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/LICENSE +0 -0
  1775. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/README.md +0 -0
  1776. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/index.js +0 -0
  1777. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveCredentialSource.js +0 -0
  1778. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveProcessCredentials.js +0 -0
  1779. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveStaticCredentials.js +0 -0
  1780. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/index.d.ts +0 -0
  1781. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveCredentialSource.d.ts +0 -0
  1782. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveProcessCredentials.d.ts +0 -0
  1783. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveStaticCredentials.d.ts +0 -0
  1784. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/index.d.ts +0 -0
  1785. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveCredentialSource.d.ts +0 -0
  1786. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
  1787. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveStaticCredentials.d.ts +0 -0
  1788. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-login}/dist-es/types.js +0 -0
  1789. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/LICENSE +0 -0
  1790. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/README.md +0 -0
  1791. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-cjs/index.js +0 -0
  1792. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/ProcessCredentials.js +0 -0
  1793. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/fromProcess.js +0 -0
  1794. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/getValidatedProcessCredentials.js +0 -0
  1795. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/index.js +0 -0
  1796. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/resolveProcessCredentials.js +0 -0
  1797. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ProcessCredentials.d.ts +0 -0
  1798. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/fromProcess.d.ts +0 -0
  1799. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/getValidatedProcessCredentials.d.ts +0 -0
  1800. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/index.d.ts +0 -0
  1801. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/resolveProcessCredentials.d.ts +0 -0
  1802. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/ProcessCredentials.d.ts +0 -0
  1803. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/fromProcess.d.ts +0 -0
  1804. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/getValidatedProcessCredentials.d.ts +0 -0
  1805. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/index.d.ts +0 -0
  1806. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
  1807. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/LICENSE +0 -0
  1808. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/README.md +0 -0
  1809. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-cjs/loadSso-CVy8iqsZ.js +0 -0
  1810. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/index.js +0 -0
  1811. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/isSsoProfile.js +0 -0
  1812. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/loadSso.js +0 -0
  1813. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@smithy/credential-provider-imds → credential-provider-sso}/dist-es/types.js +0 -0
  1814. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/validateSsoProfile.js +0 -0
  1815. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/index.d.ts +0 -0
  1816. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/isSsoProfile.d.ts +0 -0
  1817. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/loadSso.d.ts +0 -0
  1818. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/index.d.ts +0 -0
  1819. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/isSsoProfile.d.ts +0 -0
  1820. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/loadSso.d.ts +0 -0
  1821. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/types.d.ts +0 -0
  1822. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/validateSsoProfile.d.ts +0 -0
  1823. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/types.d.ts +0 -0
  1824. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/validateSsoProfile.d.ts +0 -0
  1825. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/LICENSE +0 -0
  1826. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/README.md +0 -0
  1827. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromTokenFile.js +0 -0
  1828. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromWebToken.js +0 -0
  1829. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/index.js +0 -0
  1830. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromTokenFile.js +0 -0
  1831. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromWebToken.js +0 -0
  1832. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/index.js +0 -0
  1833. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromTokenFile.d.ts +0 -0
  1834. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromWebToken.d.ts +0 -0
  1835. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/index.d.ts +0 -0
  1836. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromTokenFile.d.ts +0 -0
  1837. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromWebToken.d.ts +0 -0
  1838. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/index.d.ts +0 -0
  1839. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/README.md +0 -0
  1840. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/index.js +0 -0
  1841. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc → nested-clients/dist-cjs/submodules/signin}/endpoint/endpointResolver.js +0 -0
  1842. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc → nested-clients/dist-cjs/submodules/signin}/runtimeConfig.native.js +0 -0
  1843. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +0 -0
  1844. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js +0 -0
  1845. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js +0 -0
  1846. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts → nested-clients/dist-cjs/submodules/sso-oidc}/runtimeConfig.native.js +0 -0
  1847. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/STSClient.js +0 -0
  1848. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js +0 -0
  1849. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js +0 -0
  1850. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/endpoint/EndpointParameters.js +0 -0
  1851. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/endpoint/endpointResolver.js +0 -0
  1852. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/endpoint/ruleset.js +0 -0
  1853. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc → nested-clients/dist-cjs/submodules/sts}/runtimeConfig.native.js +0 -0
  1854. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-cjs/submodules/sts/runtimeExtensions.js +0 -0
  1855. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/index.js +0 -0
  1856. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/signin}/auth/httpAuthExtensionConfiguration.js +0 -0
  1857. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/signin}/endpoint/endpointResolver.js +0 -0
  1858. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/signin}/extensionConfiguration.js +0 -0
  1859. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/extensionConfiguration.js → nested-clients/dist-es/submodules/signin/models/models_0.js} +0 -0
  1860. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/signin}/runtimeConfig.native.js +0 -0
  1861. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/signin}/runtimeExtensions.js +0 -0
  1862. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/SSOOIDC.js +0 -0
  1863. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts → nested-clients/dist-es/submodules/sso-oidc}/auth/httpAuthExtensionConfiguration.js +0 -0
  1864. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +0 -0
  1865. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/commands/index.js +0 -0
  1866. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js +0 -0
  1867. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js +0 -0
  1868. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/endpoint/ruleset.js +0 -0
  1869. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/extensionConfiguration.js +0 -0
  1870. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +0 -0
  1871. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/index.d.ts → nested-clients/dist-es/submodules/sso-oidc/models/models_0.js} +0 -0
  1872. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts → nested-clients/dist-es/submodules/sso-oidc}/runtimeConfig.native.js +0 -0
  1873. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts → nested-clients/dist-es/submodules/sso-oidc}/runtimeExtensions.js +0 -0
  1874. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/STS.js +0 -0
  1875. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/sts}/auth/httpAuthExtensionConfiguration.js +0 -0
  1876. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +0 -0
  1877. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/commands/index.js +0 -0
  1878. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/defaultRoleAssumers.js +0 -0
  1879. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/endpoint/EndpointParameters.js +0 -0
  1880. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/endpoint/endpointResolver.js +0 -0
  1881. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/endpoint/ruleset.js +0 -0
  1882. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/extensionConfiguration.js +0 -0
  1883. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-es/submodules/sts/models/STSServiceException.js +0 -0
  1884. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js → nested-clients/dist-es/submodules/sts/models/errors.js} +0 -0
  1885. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-es/index.js → nested-clients/dist-es/submodules/sts/models/models_0.js} +0 -0
  1886. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/sts}/runtimeConfig.native.js +0 -0
  1887. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc → nested-clients/dist-es/submodules/sts}/runtimeExtensions.js +0 -0
  1888. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/index.d.ts +0 -0
  1889. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc → nested-clients/dist-types/submodules/signin}/endpoint/ruleset.d.ts +0 -0
  1890. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/submodules/sso-oidc/commands/index.d.ts +0 -0
  1891. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts → nested-clients/dist-types/submodules/sso-oidc}/endpoint/ruleset.d.ts +0 -0
  1892. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/submodules/sts/commands/index.d.ts +0 -0
  1893. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/submodules/sts/defaultRoleAssumers.d.ts +0 -0
  1894. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/submodules/sts/defaultStsRoleAssumers.d.ts +0 -0
  1895. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc → nested-clients/dist-types/submodules/sts}/endpoint/ruleset.d.ts +0 -0
  1896. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/index.d.ts +0 -0
  1897. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc → nested-clients/dist-types/ts3.4/submodules/signin}/endpoint/endpointResolver.d.ts +0 -0
  1898. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts → nested-clients/dist-types/ts3.4/submodules/signin}/endpoint/ruleset.d.ts +0 -0
  1899. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/SSOOIDC.d.ts +0 -0
  1900. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +0 -0
  1901. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +0 -0
  1902. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/commands/index.d.ts +0 -0
  1903. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +0 -0
  1904. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts → nested-clients/dist-types/ts3.4/submodules/sso-oidc}/endpoint/endpointResolver.d.ts +0 -0
  1905. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-types → nested-clients/dist-types/ts3.4}/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -0
  1906. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/extensionConfiguration.d.ts +0 -0
  1907. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sso-oidc/runtimeExtensions.d.ts +0 -0
  1908. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/STS.d.ts +0 -0
  1909. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/commands/AssumeRoleCommand.d.ts +0 -0
  1910. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +0 -0
  1911. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/commands/index.d.ts +0 -0
  1912. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/defaultRoleAssumers.d.ts +0 -0
  1913. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/defaultStsRoleAssumers.d.ts +0 -0
  1914. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/endpoint/EndpointParameters.d.ts +0 -0
  1915. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc → nested-clients/dist-types/ts3.4/submodules/sts}/endpoint/endpointResolver.d.ts +0 -0
  1916. /package/node_modules/@aws-sdk/{token-providers/node_modules/@aws-sdk/nested-clients/dist-types → nested-clients/dist-types/ts3.4}/submodules/sts/endpoint/ruleset.d.ts +0 -0
  1917. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/extensionConfiguration.d.ts +0 -0
  1918. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/dist-types/ts3.4/submodules/sts/runtimeExtensions.d.ts +0 -0
  1919. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/sso-oidc.d.ts +0 -0
  1920. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/sso-oidc.js +0 -0
  1921. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/sts.d.ts +0 -0
  1922. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/nested-clients → nested-clients}/sts.js +0 -0
  1923. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/LICENSE +0 -0
  1924. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/README.md +0 -0
  1925. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-cjs/index.js +0 -0
  1926. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/Endpoint.js +0 -0
  1927. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -0
  1928. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointMode.js +0 -0
  1929. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -0
  1930. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -0
  1931. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -0
  1932. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -0
  1933. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/index.js +0 -0
  1934. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -0
  1935. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -0
  1936. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -0
  1937. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/index.js +0 -0
  1938. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -0
  1939. /package/node_modules/@smithy/{util-defaults-mode-node/node_modules/@smithy/credential-provider-imds → credential-provider-imds}/dist-es/types.js +0 -0
  1940. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -0
  1941. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -0
  1942. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -0
  1943. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -0
  1944. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -0
  1945. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -0
  1946. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -0
  1947. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -0
  1948. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -0
  1949. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -0
  1950. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/index.d.ts +0 -0
  1951. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -0
  1952. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -0
  1953. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -0
  1954. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -0
  1955. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -0
  1956. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -0
  1957. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -0
  1958. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -0
  1959. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -0
  1960. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -0
  1961. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -0
  1962. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -0
  1963. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -0
  1964. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -0
  1965. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -0
  1966. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -0
  1967. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -0
  1968. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -0
  1969. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -0
  1970. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
  1971. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -0
  1972. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -0
  1973. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/types.d.ts +0 -0
  1974. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
  1975. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -0
  1976. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -0
  1977. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/property-provider/LICENSE +0 -0
  1978. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/README.md +0 -0
  1979. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-cjs/index.js +0 -0
  1980. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/CredentialsProviderError.js +0 -0
  1981. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/ProviderError.js +0 -0
  1982. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/TokenProviderError.js +0 -0
  1983. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/chain.js +0 -0
  1984. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/fromStatic.js +0 -0
  1985. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/index.js +0 -0
  1986. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/memoize.js +0 -0
  1987. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/CredentialsProviderError.d.ts +0 -0
  1988. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ProviderError.d.ts +0 -0
  1989. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/TokenProviderError.d.ts +0 -0
  1990. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/chain.d.ts +0 -0
  1991. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/fromStatic.d.ts +0 -0
  1992. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/index.d.ts +0 -0
  1993. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/memoize.d.ts +0 -0
  1994. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -0
  1995. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -0
  1996. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -0
  1997. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/chain.d.ts +0 -0
  1998. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -0
  1999. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/index.d.ts +0 -0
  2000. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/memoize.d.ts +0 -0
@@ -208,6 +208,25 @@ class Dms extends shared_1.PolicyStatement {
208
208
  toCreateMigrationProject() {
209
209
  return this.to('CreateMigrationProject');
210
210
  }
211
+ /**
212
+ * Grants permission to DMS to create resources for zero-ETL integrations with self managed databases
213
+ *
214
+ * Access Level: Write
215
+ *
216
+ * Possible conditions:
217
+ * - .ifAwsResourceTag()
218
+ * - .ifAwsRequestTag()
219
+ * - .ifAwsTagKeys()
220
+ * - .ifReqTag()
221
+ *
222
+ * Dependent actions:
223
+ * - iam:PassRole
224
+ *
225
+ * https://docs.aws.amazon.com/dms/latest/APIReference/Welcome.html
226
+ */
227
+ toCreateOutboundIntegration() {
228
+ return this.to('CreateOutboundIntegration');
229
+ }
211
230
  /**
212
231
  * Grants permission to create a replication config using the provided settings
213
232
  *
@@ -1006,6 +1025,19 @@ class Dms extends shared_1.PolicyStatement {
1006
1025
  toModifyFleetAdvisorCollectorStatuses() {
1007
1026
  return this.to('ModifyFleetAdvisorCollectorStatuses');
1008
1027
  }
1028
+ /**
1029
+ * Grants permission to DMS to modify resources for zero-ETL integrations with self managed databases
1030
+ *
1031
+ * Access Level: Write
1032
+ *
1033
+ * Dependent actions:
1034
+ * - iam:PassRole
1035
+ *
1036
+ * https://docs.aws.amazon.com/dms/latest/APIReference/Welcome.html
1037
+ */
1038
+ toModifyOutboundIntegration() {
1039
+ return this.to('ModifyOutboundIntegration');
1040
+ }
1009
1041
  /**
1010
1042
  * Grants permission to modify the specified replication config
1011
1043
  *
@@ -1578,6 +1610,7 @@ class Dms extends shared_1.PolicyStatement {
1578
1610
  * - .toCreateEventSubscription()
1579
1611
  * - .toCreateInstanceProfile()
1580
1612
  * - .toCreateMigrationProject()
1613
+ * - .toCreateOutboundIntegration()
1581
1614
  * - .toCreateReplicationConfig()
1582
1615
  * - .toCreateReplicationInstance()
1583
1616
  * - .toCreateReplicationSubnetGroup()
@@ -1605,6 +1638,7 @@ class Dms extends shared_1.PolicyStatement {
1605
1638
  * - .toCreateEventSubscription()
1606
1639
  * - .toCreateInstanceProfile()
1607
1640
  * - .toCreateMigrationProject()
1641
+ * - .toCreateOutboundIntegration()
1608
1642
  * - .toCreateReplicationConfig()
1609
1643
  * - .toCreateReplicationInstance()
1610
1644
  * - .toCreateReplicationSubnetGroup()
@@ -1648,6 +1682,7 @@ class Dms extends shared_1.PolicyStatement {
1648
1682
  * - .toCreateEventSubscription()
1649
1683
  * - .toCreateInstanceProfile()
1650
1684
  * - .toCreateMigrationProject()
1685
+ * - .toCreateOutboundIntegration()
1651
1686
  * - .toCreateReplicationConfig()
1652
1687
  * - .toCreateReplicationInstance()
1653
1688
  * - .toCreateReplicationSubnetGroup()
@@ -1840,6 +1875,7 @@ class Dms extends shared_1.PolicyStatement {
1840
1875
  * - .toCreateEventSubscription()
1841
1876
  * - .toCreateInstanceProfile()
1842
1877
  * - .toCreateMigrationProject()
1878
+ * - .toCreateOutboundIntegration()
1843
1879
  * - .toCreateReplicationConfig()
1844
1880
  * - .toCreateReplicationInstance()
1845
1881
  * - .toCreateReplicationSubnetGroup()
@@ -1908,6 +1944,7 @@ class Dms extends shared_1.PolicyStatement {
1908
1944
  'CreateFleetAdvisorCollector',
1909
1945
  'CreateInstanceProfile',
1910
1946
  'CreateMigrationProject',
1947
+ 'CreateOutboundIntegration',
1911
1948
  'CreateReplicationConfig',
1912
1949
  'CreateReplicationInstance',
1913
1950
  'CreateReplicationSubnetGroup',
@@ -1934,6 +1971,7 @@ class Dms extends shared_1.PolicyStatement {
1934
1971
  'ModifyEventSubscription',
1935
1972
  'ModifyFleetAdvisorCollector',
1936
1973
  'ModifyFleetAdvisorCollectorStatuses',
1974
+ 'ModifyOutboundIntegration',
1937
1975
  'ModifyReplicationConfig',
1938
1976
  'ModifyReplicationInstance',
1939
1977
  'ModifyReplicationSubnetGroup',
@@ -2022,4 +2060,4 @@ class Dms extends shared_1.PolicyStatement {
2022
2060
  }
2023
2061
  }
2024
2062
  exports.Dms = Dms;
2025
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwrQkFBK0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwrQkFBK0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUE2QjtRQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0NBQW9DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7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Z0JBQ2hCLGdDQUFnQztnQkFDaEMsK0JBQStCO2dCQUMvQixpQ0FBaUM7Z0JBQ2pDLHlDQUF5QztnQkFDekMsNkJBQTZCO2dCQUM3Qix1QkFBdUI7Z0JBQ3ZCLCtCQUErQjtnQkFDL0IsZ0NBQWdDO2dCQUNoQyw4QkFBOEI7Z0JBQzlCLHVDQUF1QztnQkFDdkMsbUNBQW1DO2dCQUNuQyxtQ0FBbUM7Z0JBQ25DLHlCQUF5QjtnQkFDekIsOEJBQThCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLHFDQUFxQztnQkFDckMsOEJBQThCO2dCQUM5QixpQ0FBaUM7Z0JBQ2pDLG9DQUFvQztnQkFDcEMsMENBQTBDO2dCQUMxQyx1Q0FBdUM7Z0JBQ3ZDLDhDQUE4QztnQkFDOUMsMEJBQTBCO2dCQUMxQixzQkFBc0I7Z0JBQ3RCLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6Qix5QkFBeUI7Z0JBQ3pCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQixzQkFBc0I7Z0JBQ3RCLHdDQUF3QztnQkFDeEMsOEJBQThCO2dCQUM5Qiw4QkFBOEI7Z0JBQzlCLDBCQUEwQjtnQkFDMUIsdUJBQXVCO2dCQUN2QixxQkFBcUI7Z0JBQ3JCLGdCQUFnQjthQUNqQjtTQUNGLENBQUM7SUFna0JGLENBQUM7Q0FDRjtBQXZuRUQsa0JBdW5FQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZG1zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBEbXMgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdkbXMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhZGQgbWV0YWRhdGEgdGFncyB0byBETVMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgcmVwbGljYXRpb24gaW5zdGFuY2VzLCBlbmRwb2ludHMsIHNlY3VyaXR5IGdyb3VwcywgYW5kIG1pZ3JhdGlvbiB0YXNrc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9BZGRUYWdzVG9SZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BZGRUYWdzVG9SZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkVGFnc1RvUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhcHBseSBhIHBlbmRpbmcgbWFpbnRlbmFuY2UgYWN0aW9uIHRvIGEgcmVzb3VyY2UgKGZvciBleGFtcGxlLCB0byBhIHJlcGxpY2F0aW9uIGluc3RhbmNlKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIGEgZXh0ZW5zaW9uIHBhY2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0RXh0ZW5zaW9uUGFja0Fzc29jaWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZUV4dGVuc2lvblBhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Fzc29jaWF0ZUV4dGVuc2lvblBhY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCB0aGUgYW5hbHlzaXMgb2YgdXAgdG8gMjAgc291cmNlIGRhdGFiYXNlcyB0byByZWNvbW1lbmQgdGFyZ2V0IGVuZ2luZXMgZm9yIGVhY2ggc291cmNlIGRhdGFiYXNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaFN0YXJ0UmVjb21tZW5kYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0JhdGNoU3RhcnRSZWNvbW1lbmRhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0JhdGNoU3RhcnRSZWNvbW1lbmRhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSBzaW5nbGUgbWV0YWRhdGEgbW9kZWwgY29udmVyc2lvbiBvcGVyYXRpb24gdGhhdCB3YXMgc3RhcnRlZCB3aXRoIFN0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NhbmNlbE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NhbmNlbE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDYW5jZWxNZXRhZGF0YU1vZGVsQ29udmVyc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhbmNlbCBhIHNpbmdsZSBtZXRhZGF0YSBtb2RlbCBjcmVhdGlvbiBvcGVyYXRpb24gdGhhdCB3YXMgc3RhcnRlZCB3aXRoIFN0YXJ0TWV0YWRhdGFNb2RlbENyZWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DYW5jZWxNZXRhZGF0YU1vZGVsQ3JlYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsTWV0YWRhdGFNb2RlbENyZWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDYW5jZWxNZXRhZGF0YU1vZGVsQ3JlYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSBzaW5nbGUgcHJlbWlncmF0aW9uIGFzc2Vzc21lbnQgcnVuXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DYW5jZWxSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NhbmNlbFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbmNlbFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBkYXRhYmFzZSBtaWdyYXRpb24gdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZURhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZURhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gZGF0YSBwcm92aWRlciB1c2luZyB0aGUgcHJvdmlkZWQgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZSZXFUYWcoKVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVEYXRhUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRGF0YVByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVEYXRhUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gZW5kcG9pbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRW5kcG9pbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRW5kcG9pbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUVuZHBvaW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFXUyBETVMgZXZlbnQgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3IgdXNpbmcgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUZsZWV0QWR2aXNvckNvbGxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIGluc3RhbmNlIHByb2ZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlSW5zdGFuY2VQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUluc3RhbmNlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlSW5zdGFuY2VQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIG1pZ3JhdGlvbiBwcm9qZWN0IHVzaW5nIHRoZSBwcm92aWRlZCBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU1pZ3JhdGlvblByb2plY3QuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlTWlncmF0aW9uUHJvamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTWlncmF0aW9uUHJvamVjdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHJlcGxpY2F0aW9uIGNvbmZpZyB1c2luZyB0aGUgcHJvdmlkZWQgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZSZXFUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlUmVwbGljYXRpb25Db25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZXBsaWNhdGlvbiBpbnN0YW5jZSB1c2luZyB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZSZXFUYWcoKVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVJlcGxpY2F0aW9uSW5zdGFuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVJlcGxpY2F0aW9uSW5zdGFuY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZXBsaWNhdGlvbiBzdWJuZXQgZ3JvdXAgZ2l2ZW4gYSBsaXN0IG9mIHRoZSBzdWJuZXQgSURzIGluIGEgVlBDXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZXBsaWNhdGlvbiB0YXNrIHVzaW5nIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlUmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlUmVwbGljYXRpb25UYXNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgY2VydGlmaWNhdGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUNlcnRpZmljYXRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUNlcnRpZmljYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDZXJ0aWZpY2F0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rpb24gYmV0d2VlbiBhIHJlcGxpY2F0aW9uIGluc3RhbmNlIGFuZCBhbiBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ29ubmVjdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDb25uZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDb25uZWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UgbWlncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRGF0YU1pZ3JhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRGF0YU1pZ3JhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGRhdGEgcHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZURhdGFQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVEYXRhUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZURhdGFQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIERNUyBldmVudCBzdWJzY3JpcHRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVFdmVudFN1YnNjcmlwdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIEZsZWV0IEFkdmlzb3IgY29sbGVjdG9yXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVGbGVldEFkdmlzb3JDb2xsZWN0b3IuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVGbGVldEFkdmlzb3JDb2xsZWN0b3InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBGbGVldCBBZHZpc29yIGRhdGFiYXNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRmxlZXRBZHZpc29yRGF0YWJhc2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUZsZWV0QWR2aXNvckRhdGFiYXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRmxlZXRBZHZpc29yRGF0YWJhc2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UgcHJvZmlsZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlSW5zdGFuY2VQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUluc3RhbmNlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlSW5zdGFuY2VQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgbWlncmF0aW9uIHByb2plY3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZU1pZ3JhdGlvblByb2plY3QuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTWlncmF0aW9uUHJvamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTWlncmF0aW9uUHJvamVjdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0aW9uIGNvbmZpZ1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVJlcGxpY2F0aW9uQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVSZXBsaWNhdGlvbkNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0aW9uIGluc3RhbmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVSZXBsaWNhdGlvbkluc3RhbmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVJlcGxpY2F0aW9uSW5zdGFuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVJlcGxpY2F0aW9uSW5zdGFuY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGVzIGEgc3VibmV0IGdyb3VwXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCByZXBsaWNhdGlvbiB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVSZXBsaWNhdGlvblRhc2suaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUmVwbGljYXRpb25UYXNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVSZXBsaWNhdGlvblRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHJlY29yZCBvZiBhIHNpbmdsZSBwcmVtaWdyYXRpb24gYXNzZXNzbWVudCBydW5cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIG9mIHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgY3VzdG9tZXIgYWNjb3VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGluZGl2aWR1YWwgYXNzZXNzbWVudHMgdGhhdCB5b3UgY2FuIHNwZWNpZnkgZm9yIGEgbmV3IHByZW1pZ3JhdGlvbiBhc3Nlc3NtZW50IHJ1blxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFwcGxpY2FibGVJbmRpdmlkdWFsQXNzZXNzbWVudHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVBcHBsaWNhYmxlSW5kaXZpZHVhbEFzc2Vzc21lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUFwcGxpY2FibGVJbmRpdmlkdWFsQXNzZXNzbWVudHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwcm92aWRlIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNlcnRpZmljYXRlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlQ2VydGlmaWNhdGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ2VydGlmaWNhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUNlcnRpZmljYXRlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIHRoZSBzdGF0dXMgb2YgdGhlIGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1hZGUgYmV0d2VlbiB0aGUgcmVwbGljYXRpb24gaW5zdGFuY2UgYW5kIGFuIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlQ29ubmVjdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVDb25uZWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVDb25uZWN0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBETVMgU2NoZW1hIENvbnZlcnNpb24gcHJvamVjdCBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVDb252ZXJzaW9uQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVDb252ZXJzaW9uQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBkYXRhYmFzZSBtaWdyYXRpb25zIGZvciB5b3VyIGFjY291bnQgaW4gdGhlIHNwZWNpZmllZCByZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRGF0YU1pZ3JhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRGF0YU1pZ3JhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gdGhlIHBvc3NpYmxlIGVuZHBvaW50IHNldHRpbmdzIGF2YWlsYWJsZSB3aGVuIHlvdSBjcmVhdGUgYW4gZW5kcG9pbnQgZm9yIGEgc3BlY2lmaWMgZGF0YWJhc2UgZW5naW5lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRW5kcG9pbnRTZXR0aW5ncy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUVuZHBvaW50U2V0dGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRW5kcG9pbnRTZXR0aW5ncycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHlwZSBvZiBlbmRwb2ludHMgYXZhaWxhYmxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRW5kcG9pbnRUeXBlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUVuZHBvaW50VHlwZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRW5kcG9pbnRUeXBlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZW5kcG9pbnRzIGZvciB5b3VyIGFjY291bnQgaW4gdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRW5kcG9pbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRW5kcG9pbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUVuZHBvaW50cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXZhaWxhYmxlIHZlcnNpb25zIGZvciBETVMgcmVwbGljYXRpb24gaW5zdGFuY2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRW5naW5lVmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVFbmdpbmVWZXJzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVFbmdpbmVWZXJzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgY2F0ZWdvcmllcyBmb3IgYWxsIGV2ZW50IHNvdXJjZSB0eXBlcywgb3IsIGlmIHNwZWNpZmllZCwgZm9yIGEgc3BlY2lmaWVkIHNvdXJjZSB0eXBlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRXZlbnRDYXRlZ29yaWVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRXZlbnRDYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUV2ZW50Q2F0ZWdvcmllcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIHRoZSBldmVudCBzdWJzY3JpcHRpb25zIGZvciBhIGN1c3RvbWVyIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBldmVudHMgZm9yIGEgZ2l2ZW4gc291cmNlIGlkZW50aWZpZXIgYW5kIHNvdXJjZSB0eXBlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRXZlbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRXZlbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUV2ZW50cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIEZsZWV0IEFkdmlzb3IgY29sbGVjdG9ycyBpbiB5b3VyIGFjY291bnQgYmFzZWQgb24gZmlsdGVyIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmxlZXRBZHZpc29yQ29sbGVjdG9ycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUZsZWV0QWR2aXNvckNvbGxlY3RvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRmxlZXRBZHZpc29yQ29sbGVjdG9ycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIEZsZWV0IEFkdmlzb3IgZGF0YWJhc2VzIGluIHlvdXIgYWNjb3VudCBiYXNlZCBvbiBmaWx0ZXIgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVGbGVldEFkdmlzb3JEYXRhYmFzZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVGbGVldEFkdmlzb3JEYXRhYmFzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRmxlZXRBZHZpc29yRGF0YWJhc2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2YgZGVzY3JpcHRpb25zIG9mIGxhcmdlLXNjYWxlIGFzc2Vzc21lbnQgKExTQSkgYW5hbHlzZXMgcHJvZHVjZWQgYnkgeW91ciBGbGVldCBBZHZpc29yIGNvbGxlY3RvcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVGbGVldEFkdmlzb3JMc2FBbmFseXNpcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUZsZWV0QWR2aXNvckxzYUFuYWx5c2lzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUZsZWV0QWR2aXNvckxzYUFuYWx5c2lzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2YgZGVzY3JpcHRpb25zIG9mIHNjaGVtYXMgZGlzY292ZXJlZCBieSB5b3VyIEZsZWV0IEFkdmlzb3IgY29sbGVjdG9ycyBiYXNlZCBvbiBmaWx0ZXIgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFPYmplY3RTdW1tYXJ5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hT2JqZWN0U3VtbWFyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFPYmplY3RTdW1tYXJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2Ygc2NoZW1hcyBkaXNjb3ZlcmVkIGJ5IHlvdXIgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3JzIGJhc2VkIG9uIGZpbHRlciBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUZsZWV0QWR2aXNvclNjaGVtYXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUZsZWV0QWR2aXNvclNjaGVtYXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBtZXRhZGF0YSBtb2RlbCwgaW5jbHVkaW5nIGl0cyBkZWZpbml0aW9uIGFuZCBjb3JyZXNwb25kaW5nIGNvbnZlcnRlZCBvYmplY3RzIGluIHRoZSB0YXJnZXQgZGF0YWJhc2UgaWYgYXBwbGljYWJsZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZU1ldGFkYXRhTW9kZWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVNZXRhZGF0YU1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU1ldGFkYXRhTW9kZWwnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgYSBsaXN0IG9mIGNoaWxkIG1ldGFkYXRhIG1vZGVscyBmb3IgdGhlIHNwZWNpZmllZCBtZXRhZGF0YSBtb2RlbCBpbiB0aGUgZGF0YWJhc2UgaGllcmFyY2h5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENoaWxkcmVuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU1ldGFkYXRhTW9kZWxDaGlsZHJlbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIG1ldGFkYXRhIG1vZGVsIGNyZWF0aW9uIHJlcXVlc3RzIGZvciBhIG1pZ3JhdGlvbiBwcm9qZWN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENyZWF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZU1ldGFkYXRhTW9kZWxDcmVhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENyZWF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBzdGFydCBtZXRhZGF0YSBtb2RlbCBpbXBvcnQgb3BlcmF0aW9ucyBmb3IgYSBtaWdyYXRpb24gcHJvamVjdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZU1ldGFkYXRhTW9kZWxJbXBvcnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlTWV0YWRhdGFNb2RlbEltcG9ydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlTWV0YWRhdGFNb2RlbEltcG9ydHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcGxpY2F0aW9uIGluc3RhbmNlIHR5cGVzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIHNwZWNpZmllZCByZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVPcmRlcmFibGVSZXBsaWNhdGlvbkluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZU9yZGVyYWJsZVJlcGxpY2F0aW9uSW5zdGFuY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU9yZGVyYWJsZVJlcGxpY2F0aW9uSW5zdGFuY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHBlbmRpbmcgbWFpbnRlbmFuY2UgYWN0aW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBkZXNjcmlwdGlvbnMgb2YgbGltaXRhdGlvbnMgZm9yIHJlY29tbWVuZGF0aW9ucyBvZiB0YXJnZXQgQVdTIGVuZ2luZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVGbGVldEFkdmlzb3JMc2FBbmFseXNpcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlY29tbWVuZGF0aW9uTGltaXRhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVjb21tZW5kYXRpb25MaW1pdGF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIGRlc2NyaXB0aW9ucyBvZiB0YXJnZXQgZW5naW5lIHJlY29tbWVuZGF0aW9ucyBmb3IgeW91ciBzb3VyY2UgZGF0YWJhc2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVjb21tZW5kYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVjb21tZW5kYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlY29tbWVuZGF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgUmVmcmVzaFNjaGVtYXMgb3BlcmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVmcmVzaFNjaGVtYXNTdGF0dXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZWZyZXNoU2NoZW1hc1N0YXR1cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZWZyZXNoU2NoZW1hc1N0YXR1cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIHJlcGxpY2F0aW9uIGNvbmZpZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25Db25maWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlncycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFzayBsb2dzIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZVRhc2tMb2dzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZVRhc2tMb2dzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCByZXBsaWNhdGlvbiBpbnN0YW5jZXMgZm9yIHlvdXIgYWNjb3VudCBpbiB0aGUgY3VycmVudCByZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVSZXBsaWNhdGlvbkluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXBsaWNhdGlvbiBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVwbGljYXRpb25TdWJuZXRHcm91cHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIHJlcGxpY2F0aW9uIHRhYmxlIHN0YXRpc3RpY3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25UYWJsZVN0YXRpc3RpY3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25UYWJsZVN0YXRpc3RpY3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gdGhlIGxhdGVzdCB0YXNrIGFzc2Vzc21lbnQgcmVzdWx0cyBmcm9tIEFtYXpvbiBTM1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSZXN1bHRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJlc3VsdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJlc3VsdHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBwcmVtaWdyYXRpb24gYXNzZXNzbWVudCBydW5zIGJhc2VkIG9uIGZpbHRlciBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW5zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBpbmRpdmlkdWFsIGFzc2Vzc21lbnRzIGJhc2VkIG9uIGZpbHRlciBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgcmVwbGljYXRpb24gdGFza3MgZm9yIHlvdXIgYWNjb3VudCBpbiB0aGUgY3VycmVudCByZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVzY3JpYmUgcmVwbGljYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjaGVtYSBmb3IgdGhlIHNwZWNpZmllZCBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVNjaGVtYXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVTY2hlbWFzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVNjaGVtYXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gdGFibGUgc3RhdGlzdGljcyBvbiB0aGUgZGF0YWJhc2UgbWlncmF0aW9uIHRhc2ssIGluY2x1ZGluZyB0YWJsZSBuYW1lLCByb3dzIGluc2VydGVkLCByb3dzIHVwZGF0ZWQsIGFuZCByb3dzIGRlbGV0ZWRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVUYWJsZVN0YXRpc3RpY3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVUYWJsZVN0YXRpc3RpY3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlVGFibGVTdGF0aXN0aWNzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZXhwb3J0IHRoZSBzcGVjaWZpZWQgbWV0YWRhdGEgbW9kZWwgYXNzZXNzbWVudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRXhwb3J0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRXhwb3J0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0V4cG9ydE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY29udmVydCBzb3VyY2Ugc2VsZWN0aW9uIHJ1bGVzIGludG8gdGhlaXIgdGFyZ2V0IGNvdW50ZXJwYXJ0cyBmb3Igc2NoZW1hIGNvbnZlcnNpb24gb3BlcmF0aW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRUYXJnZXRTZWxlY3Rpb25SdWxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRUYXJnZXRTZWxlY3Rpb25SdWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0VGFyZ2V0U2VsZWN0aW9uUnVsZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGxvYWQgdGhlIHNwZWNpZmllZCBjZXJ0aWZpY2F0ZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0ltcG9ydENlcnRpZmljYXRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0ltcG9ydENlcnRpZmljYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdJbXBvcnRDZXJ0aWZpY2F0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBETVMgYXR0cmlidXRlcyBmb3IgYSBkYXRhIHByb3ZpZGVyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZURhdGFQcm92aWRlcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdERhdGFQcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3REYXRhUHJvdmlkZXJzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgQVdTIERNUyBhdHRyaWJ1dGVzIGZvciBhIGV4dGVuc2lvbiBwYWNrc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUV4dGVuc2lvblBhY2tBc3NvY2lhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEV4dGVuc2lvblBhY2tzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RXh0ZW5zaW9uUGFja3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgaW5zdGFuY2UgcHJvZmlsZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVJbnN0YW5jZVByb2ZpbGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RJbnN0YW5jZVByb2ZpbGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SW5zdGFuY2VQcm9maWxlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBETVMgYXR0cmlidXRlcyBmb3IgYSBtZXRhZGF0YSBtb2RlbCBhc3Nlc3NtZW50IGFjdGlvbiBpdGVtcy4gTm90ZS4gRGVzcGl0ZSB0aGlzIGFjdGlvbiByZXF1aXJlcyBTdGFydE1ldGFkYXRhTW9kZWxJbXBvcnQsIHRoZSBsYXR0ZXIgZG9lcyBub3QgY3VycmVudGx5IGF1dGhvcml6ZSB0aGUgZGVzY3JpYmVkIFNjaGVtYSBDb252ZXJzaW9uIG9wZXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gZG1zOlN0YXJ0TWV0YWRhdGFNb2RlbEltcG9ydFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnRBY3Rpb25JdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50QWN0aW9uSXRlbXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgbWV0YWRhdGEgbW9kZWwgYXNzZXNzbWVudHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldGFkYXRhTW9kZWxFeHBvcnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RNZXRhZGF0YU1vZGVsQXNzZXNzbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNZXRhZGF0YU1vZGVsQXNzZXNzbWVudHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgbWV0YWRhdGEgbW9kZWwgY29udmVyc2lvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVNZXRhZGF0YU1vZGVsQ29udmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1ldGFkYXRhTW9kZWxDb252ZXJzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE1ldGFkYXRhTW9kZWxDb252ZXJzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBETVMgYXR0cmlidXRlcyBmb3IgYSBtZXRhZGF0YSBtb2RlbCBleHBvcnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWV0YWRhdGFNb2RlbEV4cG9ydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNZXRhZGF0YU1vZGVsRXhwb3J0cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBETVMgYXR0cmlidXRlcyBmb3IgYSBtaWdyYXRpb24gcHJvamVjdHMuIE5vdGUuIERlc3BpdGUgdGhpcyBhY3Rpb24gcmVxdWlyZXMgRGVzY3JpYmVNaWdyYXRpb25Qcm9qZWN0cyBhbmQgRGVzY3JpYmVDb252ZXJzaW9uQ29uZmlndXJhdGlvbiwgYm90aCByZXF1aXJlZCBhY3Rpb25zIGRvIG5vdCBjdXJyZW50bHkgYXV0aG9yaXplIHRoZSBkZXNjcmliZWQgU2NoZW1hIENvbnZlcnNpb24gb3BlcmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBkbXM6RGVzY3JpYmVDb252ZXJzaW9uQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWlncmF0aW9uUHJvamVjdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNaWdyYXRpb25Qcm9qZWN0cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIHRhZ3MgZm9yIGFuIEFXUyBETVMgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdFRhZ3NGb3JSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VGFnc0ZvclJlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0VGFnc0ZvclJlc291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UgbWlncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeURhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vZGlmeURhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIHNwZWNpZmllZCBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUVuZHBvaW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeUVuZHBvaW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlFbmRwb2ludCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSBhbiBleGlzdGluZyBBV1MgRE1TIGV2ZW50IG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUV2ZW50U3Vic2NyaXB0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeUV2ZW50U3Vic2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlFdmVudFN1YnNjcmlwdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgdGhlIHNwZWNpZmllZCBGbGVldCBBZHZpc29yIGNvbGxlY3RvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeUZsZWV0QWR2aXNvckNvbGxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5RmxlZXRBZHZpc29yQ29sbGVjdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCBGbGVldCBBZHZpc29yIGNvbGxlY3RvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeUZsZWV0QWR2aXNvckNvbGxlY3RvclN0YXR1c2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlGbGVldEFkdmlzb3JDb2xsZWN0b3JTdGF0dXNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0aW9uIGNvbmZpZ1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeVJlcGxpY2F0aW9uQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlSZXBsaWNhdGlvbkNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgcmVwbGljYXRpb24gaW5zdGFuY2UgdG8gYXBwbHkgbmV3IHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlSZXBsaWNhdGlvbkluc3RhbmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeVJlcGxpY2F0aW9uSW5zdGFuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vZGlmeVJlcGxpY2F0aW9uSW5zdGFuY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0aW9uIHN1Ym5ldCBncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTW9kaWZ5UmVwbGljYXRpb25TdWJuZXRHcm91cC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlSZXBsaWNhdGlvblN1Ym5ldEdyb3VwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzcGVjaWZpZWQgcmVwbGljYXRpb24gdGFza1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTW9kaWZ5UmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeVJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5UmVwbGljYXRpb25UYXNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW92ZSB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0aW9uIHRhc2sgdG8gYSBkaWZmZXJlbnQgcmVwbGljYXRpb24gaW5zdGFuY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vdmVSZXBsaWNhdGlvblRhc2suaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTW92ZVJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW92ZVJlcGxpY2F0aW9uVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJlYm9vdCBhIHJlcGxpY2F0aW9uIGluc3RhbmNlLiBSZWJvb3RpbmcgcmVzdWx0cyBpbiBhIG1vbWVudGFyeSBvdXRhZ2UsIHVudGlsIHRoZSByZXBsaWNhdGlvbiBpbnN0YW5jZSBiZWNvbWVzIGF2YWlsYWJsZSBhZ2FpblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVib290UmVwbGljYXRpb25JbnN0YW5jZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWJvb3RSZXBsaWNhdGlvbkluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSZWJvb3RSZXBsaWNhdGlvbkluc3RhbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcG9wdWxhdGUgdGhlIHNjaGVtYSBmb3IgdGhlIHNwZWNpZmllZCBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVmcmVzaFNjaGVtYXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVmcmVzaFNjaGVtYXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlZnJlc2hTY2hlbWFzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmVsb2FkIHRoZSB0YXJnZXQgZGF0YWJhc2UgdGFibGUgd2l0aCB0aGUgc291cmNlIGZvciBhIHJlcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVsb2FkUmVwbGljYXRpb25UYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlbG9hZFJlcGxpY2F0aW9uVGFibGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmVsb2FkIHRoZSB0YXJnZXQgZGF0YWJhc2UgdGFibGUgd2l0aCB0aGUgc291cmNlIGRhdGFcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JlbG9hZFRhYmxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWxvYWRUYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlbG9hZFRhYmxlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJlbW92ZSBtZXRhZGF0YSB0YWdzIGZyb20gYSBETVMgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBUYWdnaW5nXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JlbW92ZVRhZ3NGcm9tUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJ1biBhIGxhcmdlLXNjYWxlIGFzc2Vzc21lbnQgKExTQSkgYW5hbHlzaXMgb24gZXZlcnkgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3IgaW4geW91ciBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SdW5GbGVldEFkdmlzb3JMc2FBbmFseXNpcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SdW5GbGVldEFkdmlzb3JMc2FBbmFseXNpcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUnVuRmxlZXRBZHZpc29yTHNhQW5hbHlzaXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCB0aGUgZGF0YWJhc2UgbWlncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnREYXRhTWlncmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydERhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhIG5ldyBhc3Nlc3NtZW50IG9mIG1ldGFkYXRhIG1vZGVsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhIG5ldyBjb252ZXJzaW9uIG9mIG1ldGFkYXRhIG1vZGVsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgc291cmNlIG1ldGFkYXRhIG1vZGVsIG9mIHRoZSBnaXZlbiB0eXBlIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0aWVzIGZvciBzY2hlbWEgY29udmVyc2lvbiBvcGVyYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1ldGFkYXRhTW9kZWxDcmVhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydE1ldGFkYXRhTW9kZWxDcmVhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRNZXRhZGF0YU1vZGVsQ3JlYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhIG5ldyBleHBvcnQgb2YgbWV0YWRhdGEgbW9kZWwgYXMgc2NyaXB0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1ldGFkYXRhTW9kZWxFeHBvcnRBc1NjcmlwdC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydE1ldGFkYXRhTW9kZWxFeHBvcnRBc1NjcmlwdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydEFzU2NyaXB0cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGV4cG9ydCBvZiBtZXRhZGF0YSBtb2RlbCB0byB0YXJnZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydFRvVGFyZ2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydFRvVGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydE1ldGFkYXRhTW9kZWxFeHBvcnRUb1RhcmdldCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGltcG9ydCBvZiBtZXRhZGF0YSBtb2RlbFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRNZXRhZGF0YU1vZGVsSW1wb3J0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbEltcG9ydCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRNZXRhZGF0YU1vZGVsSW1wb3J0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgdGhlIGFuYWx5c2lzIG9mIHlvdXIgc291cmNlIGRhdGFiYXNlIHRvIHByb3ZpZGUgcmVjb21tZW5kYXRpb25zIG9mIHRhcmdldCBlbmdpbmVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydFJlY29tbWVuZGF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFJlY29tbWVuZGF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRSZWNvbW1lbmRhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhIHJlcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRSZXBsaWNhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRSZXBsaWNhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IHRoZSByZXBsaWNhdGlvbiB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydFJlcGxpY2F0aW9uVGFzay5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRSZXBsaWNhdGlvblRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCB0aGUgcmVwbGljYXRpb24gdGFzayBhc3Nlc3NtZW50IGZvciB1bnN1cHBvcnRlZCBkYXRhIHR5cGVzIGluIHRoZSBzb3VyY2UgZGF0YWJhc2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0UmVwbGljYXRpb25UYXNrQXNzZXNzbWVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0UmVwbGljYXRpb25UYXNrQXNzZXNzbWVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IHByZW1pZ3JhdGlvbiBhc3Nlc3NtZW50IHJ1biBmb3Igb25lIG9yIG1vcmUgaW5kaXZpZHVhbCBhc3Nlc3NtZW50cyBvZiBhIG1pZ3JhdGlvbiB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0UmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RvcCB0aGUgZGF0YWJhc2UgbWlncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcERhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BEYXRhTWlncmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RvcCBhIHJlcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcFJlcGxpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdG9wUmVwbGljYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIHRoZSByZXBsaWNhdGlvbiB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdG9wUmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0b3BSZXBsaWNhdGlvblRhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BSZXBsaWNhdGlvblRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB0ZXN0IHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlIHJlcGxpY2F0aW9uIGluc3RhbmNlIGFuZCB0aGUgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVGVzdENvbm5lY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVGVzdENvbm5lY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1Rlc3RDb25uZWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgY29udmVyc2lvbiBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlDb252ZXJzaW9uQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVDb252ZXJzaW9uQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgdGhlIHNwZWNpZmllZCBkYXRhIHByb3ZpZGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlEYXRhUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlRGF0YVByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVEYXRhUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgdGhlIHNwZWNpZmllZCBpbnN0YW5jZSBwcm9maWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlJbnN0YW5jZVByb2ZpbGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlSW5zdGFuY2VQcm9maWxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVJbnN0YW5jZVByb2ZpbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgdGhlIHNwZWNpZmllZCBtaWdyYXRpb24gcHJvamVjdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTW9kaWZ5TWlncmF0aW9uUHJvamVjdC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVNaWdyYXRpb25Qcm9qZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVNaWdyYXRpb25Qcm9qZWN0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbWlncmF0ZSBETVMgc3ViY3JpcHRpb25zIHRvIEV2ZW50YnJpZGdlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVTdWJzY3JpcHRpb25zVG9FdmVudEJyaWRnZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVTdWJzY3JpcHRpb25zVG9FdmVudEJyaWRnZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlU3Vic2NyaXB0aW9uc1RvRXZlbnRCcmlkZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGxvYWQgZmlsZXMgdG8geW91ciBBbWF6b24gUzMgYnVja2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBsb2FkRmlsZU1ldGFkYXRhTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBsb2FkRmlsZU1ldGFkYXRhTGlzdCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjY2Vzc0xldmVsTGlzdDogQWNjZXNzTGV2ZWxMaXN0ID0ge1xuICAgIFRhZ2dpbmc6IFtcbiAgICAgICdBZGRUYWdzVG9SZXNvdXJjZScsXG4gICAgICAnUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZSdcbiAgICBdLFxuICAgIFdyaXRlOiBbXG4gICAgICAnQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24nLFxuICAgICAgJ0Fzc29jaWF0ZUV4dGVuc2lvblBhY2snLFxuICAgICAgJ0JhdGNoU3RhcnRSZWNvbW1lbmRhdGlvbnMnLFxuICAgICAgJ0NhbmNlbE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uJyxcbiAgICAgICdDYW5jZWxNZXRhZGF0YU1vZGVsQ3JlYXRpb24nLFxuICAgICAgJ0NhbmNlbFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nLFxuICAgICAgJ0NyZWF0ZURhdGFNaWdyYXRpb24nLFxuICAgICAgJ0NyZWF0ZURhdGFQcm92aWRlcicsXG4gICAgICAnQ3JlYXRlRW5kcG9pbnQnLFxuICAgICAgJ0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uJyxcbiAgICAgICdDcmVhdGVGbGVldEFkdmlzb3JDb2xsZWN0b3InLFxuICAgICAgJ0NyZWF0ZUluc3RhbmNlUHJvZmlsZScsXG4gICAgICAnQ3JlYXRlTWlncmF0aW9uUHJvamVjdCcsXG4gICAgICAnQ3JlYXRlUmVwbGljYXRpb25Db25maWcnLFxuICAgICAgJ0NyZWF0ZVJlcGxpY2F0aW9uSW5zdGFuY2UnLFxuICAgICAgJ0NyZWF0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAnLFxuICAgICAgJ0NyZWF0ZVJlcGxpY2F0aW9uVGFzaycsXG4gICAgICAnRGVsZXRlQ2VydGlmaWNhdGUnLFxuICAgICAgJ0RlbGV0ZUNvbm5lY3Rpb24nLFxuICAgICAgJ0RlbGV0ZURhdGFNaWdyYXRpb24nLFxuICAgICAgJ0RlbGV0ZURhdGFQcm92aWRlcicsXG4gICAgICAnRGVsZXRlRW5kcG9pbnQnLFxuICAgICAgJ0RlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uJyxcbiAgICAgICdEZWxldGVGbGVldEFkdmlzb3JDb2xsZWN0b3InLFxuICAgICAgJ0RlbGV0ZUZsZWV0QWR2aXNvckRhdGFiYXNlcycsXG4gICAgICAnRGVsZXRlSW5zdGFuY2VQcm9maWxlJyxcbiAgICAgICdEZWxldGVNaWdyYXRpb25Qcm9qZWN0JyxcbiAgICAgICdEZWxldGVSZXBsaWNhdGlvbkNvbmZpZycsXG4gICAgICAnRGVsZXRlUmVwbGljYXRpb25JbnN0YW5jZScsXG4gICAgICAnRGVsZXRlUmVwbGljYXRpb25TdWJuZXRHcm91cCcsXG4gICAgICAnRGVsZXRlUmVwbGljYXRpb25UYXNrJyxcbiAgICAgICdEZWxldGVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuJyxcbiAgICAgICdFeHBvcnRNZXRhZGF0YU1vZGVsQXNzZXNzbWVudCcsXG4gICAgICAnSW1wb3J0Q2VydGlmaWNhdGUnLFxuICAgICAgJ01vZGlmeURhdGFNaWdyYXRpb24nLFxuICAgICAgJ01vZGlmeUVuZHBvaW50JyxcbiAgICAgICdNb2RpZnlFdmVudFN1YnNjcmlwdGlvbicsXG4gICAgICAnTW9kaWZ5RmxlZXRBZHZpc29yQ29sbGVjdG9yJyxcbiAgICAgICdNb2RpZnlGbGVldEFkdmlzb3JDb2xsZWN0b3JTdGF0dXNlcycsXG4gICAgICAnTW9kaWZ5UmVwbGljYXRpb25Db25maWcnLFxuICAgICAgJ01vZGlmeVJlcGxpY2F0aW9uSW5zdGFuY2UnLFxuICAgICAgJ01vZGlmeVJlcGxpY2F0aW9uU3VibmV0R3JvdXAnLFxuICAgICAgJ01vZGlmeVJlcGxpY2F0aW9uVGFzaycsXG4gICAgICAnTW92ZVJlcGxpY2F0aW9uVGFzaycsXG4gICAgICAnUmVib290UmVwbGljYXRpb25JbnN0YW5jZScsXG4gICAgICAnUmVmcmVzaFNjaGVtYXMnLFxuICAgICAgJ1JlbG9hZFJlcGxpY2F0aW9uVGFibGVzJyxcbiAgICAgICdSZWxvYWRUYWJsZXMnLFxuICAgICAgJ1J1bkZsZWV0QWR2aXNvckxzYUFuYWx5c2lzJyxcbiAgICAgICdTdGFydERhdGFNaWdyYXRpb24nLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQnLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb24nLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbENyZWF0aW9uJyxcbiAgICAgICdTdGFydE1ldGFkYXRhTW9kZWxFeHBvcnRBc1NjcmlwdHMnLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydFRvVGFyZ2V0JyxcbiAgICAgICdTdGFydE1ldGFkYXRhTW9kZWxJbXBvcnQnLFxuICAgICAgJ1N0YXJ0UmVjb21tZW5kYXRpb25zJyxcbiAgICAgICdTdGFydFJlcGxpY2F0aW9uJyxcbiAgICAgICdTdGFydFJlcGxpY2F0aW9uVGFzaycsXG4gICAgICAnU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50JyxcbiAgICAgICdTdGFydFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nLFxuICAgICAgJ1N0b3BEYXRhTWlncmF0aW9uJyxcbiAgICAgICdTdG9wUmVwbGljYXRpb24nLFxuICAgICAgJ1N0b3BSZXBsaWNhdGlvblRhc2snLFxuICAgICAgJ1VwZGF0ZUNvbnZlcnNpb25Db25maWd1cmF0aW9uJyxcbiAgICAgICdVcGRhdGVEYXRhUHJvdmlkZXInLFxuICAgICAgJ1VwZGF0ZUluc3RhbmNlUHJvZmlsZScsXG4gICAgICAnVXBkYXRlTWlncmF0aW9uUHJvamVjdCcsXG4gICAgICAnVXBkYXRlU3Vic2NyaXB0aW9uc1RvRXZlbnRCcmlkZ2UnLFxuICAgICAgJ1VwbG9hZEZpbGVNZXRhZGF0YUxpc3QnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlcycsXG4gICAgICAnRGVzY3JpYmVBcHBsaWNhYmxlSW5kaXZpZHVhbEFzc2Vzc21lbnRzJyxcbiAgICAgICdEZXNjcmliZUNlcnRpZmljYXRlcycsXG4gICAgICAnRGVzY3JpYmVDb25uZWN0aW9ucycsXG4gICAgICAnRGVzY3JpYmVDb252ZXJzaW9uQ29uZmlndXJhdGlvbicsXG4gICAgICAnRGVzY3JpYmVEYXRhTWlncmF0aW9ucycsXG4gICAgICAnRGVzY3JpYmVFbmRwb2ludFNldHRpbmdzJyxcbiAgICAgICdEZXNjcmliZUVuZHBvaW50VHlwZXMnLFxuICAgICAgJ0Rlc2NyaWJlRW5kcG9pbnRzJyxcbiAgICAgICdEZXNjcmliZUVuZ2luZVZlcnNpb25zJyxcbiAgICAgICdEZXNjcmliZUV2ZW50Q2F0ZWdvcmllcycsXG4gICAgICAnRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnMnLFxuICAgICAgJ0Rlc2NyaWJlRXZlbnRzJyxcbiAgICAgICdEZXNjcmliZUZsZWV0QWR2aXNvckNvbGxlY3RvcnMnLFxuICAgICAgJ0Rlc2NyaWJlRmxlZXRBZHZpc29yRGF0YWJhc2VzJyxcbiAgICAgICdEZXNjcmliZUZsZWV0QWR2aXNvckxzYUFuYWx5c2lzJyxcbiAgICAgICdEZXNjcmliZUZsZWV0QWR2aXNvclNjaGVtYU9iamVjdFN1bW1hcnknLFxuICAgICAgJ0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hcycsXG4gICAgICAnRGVzY3JpYmVNZXRhZGF0YU1vZGVsJyxcbiAgICAgICdEZXNjcmliZU1ldGFkYXRhTW9kZWxDaGlsZHJlbicsXG4gICAgICAnRGVzY3JpYmVNZXRhZGF0YU1vZGVsQ3JlYXRpb25zJyxcbiAgICAgICdEZXNjcmliZU1ldGFkYXRhTW9kZWxJbXBvcnRzJyxcbiAgICAgICdEZXNjcmliZU9yZGVyYWJsZVJlcGxpY2F0aW9uSW5zdGFuY2VzJyxcbiAgICAgICdEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnMnLFxuICAgICAgJ0Rlc2NyaWJlUmVjb21tZW5kYXRpb25MaW1pdGF0aW9ucycsXG4gICAgICAnRGVzY3JpYmVSZWNvbW1lbmRhdGlvbnMnLFxuICAgICAgJ0Rlc2NyaWJlUmVmcmVzaFNjaGVtYXNTdGF0dXMnLFxuICAgICAgJ0Rlc2NyaWJlUmVwbGljYXRpb25Db25maWdzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvbkluc3RhbmNlcycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwcycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblRhYmxlU3RhdGlzdGljcycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UmVzdWx0cycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVucycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudHMnLFxuICAgICAgJ0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrcycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvbnMnLFxuICAgICAgJ0Rlc2NyaWJlU2NoZW1hcycsXG4gICAgICAnRGVzY3JpYmVUYWJsZVN0YXRpc3RpY3MnLFxuICAgICAgJ0dldFRhcmdldFNlbGVjdGlvblJ1bGVzJyxcbiAgICAgICdMaXN0RGF0YVByb3ZpZGVycycsXG4gICAgICAnTGlzdEV4dGVuc2lvblBhY2tzJyxcbiAgICAgICdMaXN0SW5zdGFuY2VQcm9maWxlcycsXG4gICAgICAnTGlzdE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50QWN0aW9uSXRlbXMnLFxuICAgICAgJ0xpc3RNZXRhZGF0YU1vZGVsQXNzZXNzbWVudHMnLFxuICAgICAgJ0xpc3RNZXRhZGF0YU1vZGVsQ29udmVyc2lvbnMnLFxuICAgICAgJ0xpc3RNZXRhZGF0YU1vZGVsRXhwb3J0cycsXG4gICAgICAnTGlzdE1pZ3JhdGlvblByb2plY3RzJyxcbiAgICAgICdMaXN0VGFnc0ZvclJlc291cmNlJyxcbiAgICAgICdUZXN0Q29ubmVjdGlvbidcbiAgICBdXG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIENlcnRpZmljYXRlIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DZXJ0aWZpY2F0ZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQ2VydFRhZygpXG4gICAqL1xuICBwdWJsaWMgb25DZXJ0aWZpY2F0ZShyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmNlcnQ6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBEYXRhUHJvdmlkZXIgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmRGF0YVByb3ZpZGVyVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkRhdGFQcm92aWRlcihyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmRhdGEtcHJvdmlkZXI6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBEYXRhTWlncmF0aW9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkRhdGFNaWdyYXRpb25UYWcoKVxuICAgKi9cbiAgcHVibGljIG9uRGF0YU1pZ3JhdGlvbihyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmRhdGEtbWlncmF0aW9uOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgRW5kcG9pbnQgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0VuZHBvaW50Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZFbmRwb2ludFRhZygpXG4gICAqL1xuICBwdWJsaWMgb25FbmRwb2ludChyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmVuZHBvaW50OiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgRXZlbnRTdWJzY3JpcHRpb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0V2ZW50U3Vic2NyaXB0aW9uLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZFc1RhZygpXG4gICAqL1xuICBwdWJsaWMgb25FdmVudFN1YnNjcmlwdGlvbihyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmVzOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgSW5zdGFuY2VQcm9maWxlIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkluc3RhbmNlUHJvZmlsZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25JbnN0YW5jZVByb2ZpbGUocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTppbnN0YW5jZS1wcm9maWxlOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgTWlncmF0aW9uUHJvamVjdCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZNaWdyYXRpb25Qcm9qZWN0VGFnKClcbiAgICovXG4gIHB1YmxpYyBvbk1pZ3JhdGlvblByb2plY3QocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTptaWdyYXRpb24tcHJvamVjdDokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFJlcGxpY2F0aW9uQ29uZmlnIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZlJlcGxpY2F0aW9uQ29uZmlnVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJlcGxpY2F0aW9uQ29uZmlnKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cmVwbGljYXRpb24tY29uZmlnOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgUmVwbGljYXRpb25JbnN0YW5jZSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVwbGljYXRpb25JbnN0YW5jZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmUmVwVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJlcGxpY2F0aW9uSW5zdGFuY2UocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpyZXA6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBSZXBsaWNhdGlvblN1Ym5ldEdyb3VwIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZXBsaWNhdGlvblN1Ym5ldEdyb3VwLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZTdWJncnBUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25TdWJuZXRHcm91cChyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnN1YmdycDokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFJlcGxpY2F0aW9uVGFzayB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZUYXNrVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJlcGxpY2F0aW9uVGFzayhyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnRhc2s6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBc3Nlc3NtZW50UnVuVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4ocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTphc3Nlc3NtZW50LXJ1bjokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudC5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmSW5kaXZpZHVhbEFzc2Vzc21lbnRUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25UYXNrSW5kaXZpZHVhbEFzc2Vzc21lbnQocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTppbmRpdmlkdWFsLWFzc2Vzc21lbnQ6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtcmVxdWVzdHRhZ1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWRkVGFnc1RvUmVzb3VyY2UoKVxuICAgKiAtIC50b0NyZWF0ZURhdGFNaWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZURhdGFQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlRW5kcG9pbnQoKVxuICAgKiAtIC50b0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uKClcbiAgICogLSAudG9DcmVhdGVJbnN0YW5jZVByb2ZpbGUoKVxuICAgKiAtIC50b0NyZWF0ZU1pZ3JhdGlvblByb2plY3QoKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uQ29uZmlnKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblRhc2soKVxuICAgKiAtIC50b0ltcG9ydENlcnRpZmljYXRlKClcbiAgICogLSAudG9SZW1vdmVUYWdzRnJvbVJlc291cmNlKClcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1JlcXVlc3RUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6UmVxdWVzdFRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGF0dGFjaGVkIHRvIHRoZSByZXNvdXJjZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtcmVzb3VyY2V0YWdcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0FkZFRhZ3NUb1Jlc291cmNlKClcbiAgICogLSAudG9DcmVhdGVEYXRhTWlncmF0aW9uKClcbiAgICogLSAudG9DcmVhdGVEYXRhUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZUVuZHBvaW50KClcbiAgICogLSAudG9DcmVhdGVFdmVudFN1YnNjcmlwdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlSW5zdGFuY2VQcm9maWxlKClcbiAgICogLSAudG9DcmVhdGVNaWdyYXRpb25Qcm9qZWN0KClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZygpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25JbnN0YW5jZSgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25TdWJuZXRHcm91cCgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25UYXNrKClcbiAgICogLSAudG9EZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncygpXG4gICAqIC0gLnRvSW1wb3J0Q2VydGlmaWNhdGUoKVxuICAgKiAtIC50b1JlbW92ZVRhZ3NGcm9tUmVzb3VyY2UoKVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIENlcnRpZmljYXRlXG4gICAqIC0gRGF0YVByb3ZpZGVyXG4gICAqIC0gRGF0YU1pZ3JhdGlvblxuICAgKiAtIEVuZHBvaW50XG4gICAqIC0gRXZlbnRTdWJzY3JpcHRpb25cbiAgICogLSBJbnN0YW5jZVByb2ZpbGVcbiAgICogLSBNaWdyYXRpb25Qcm9qZWN0XG4gICAqIC0gUmVwbGljYXRpb25Db25maWdcbiAgICogLSBSZXBsaWNhdGlvbkluc3RhbmNlXG4gICAqIC0gUmVwbGljYXRpb25TdWJuZXRHcm91cFxuICAgKiAtIFJlcGxpY2F0aW9uVGFza1xuICAgKiAtIFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW5cbiAgICogLSBSZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudFxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzUmVzb3VyY2VUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6UmVzb3VyY2VUYWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleXMgaW4gdGhlIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19jb25kaXRpb24ta2V5cy5odG1sI2NvbmRpdGlvbi1rZXlzLXRhZ2tleXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0FkZFRhZ3NUb1Jlc291cmNlKClcbiAgICogLSAudG9DcmVhdGVEYXRhTWlncmF0aW9uKClcbiAgICogLSAudG9DcmVhdGVEYXRhUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZUVuZHBvaW50KClcbiAgICogLSAudG9DcmVhdGVFdmVudFN1YnNjcmlwdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlSW5zdGFuY2VQcm9maWxlKClcbiAgICogLSAudG9DcmVhdGVNaWdyYXRpb25Qcm9qZWN0KClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZygpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25JbnN0YW5jZSgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25TdWJuZXRHcm91cCgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25UYXNrKClcbiAgICogLSAudG9EZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncygpXG4gICAqIC0gLnRvSW1wb3J0Q2VydGlmaWNhdGUoKVxuICAgKiAtIC50b1JlbW92ZVRhZ3NGcm9tUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1RhZ0tleXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpUYWdLZXlzYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIEFzc2Vzc21lbnRSdW5cbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLWRtc19hc3Nlc3NtZW50LXJ1bi10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1blxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXNzZXNzbWVudFJ1blRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGFzc2Vzc21lbnQtcnVuLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBDZXJ0aWZpY2F0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtLWRtc19jZXJ0LXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBDZXJ0aWZpY2F0ZVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQ2VydFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGNlcnQtdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIERhdGFNaWdyYXRpb25cbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLS1kbXNfZGF0YS1taWdyYXRpb24tdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIERhdGFNaWdyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkRhdGFNaWdyYXRpb25UYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBkYXRhLW1pZ3JhdGlvbi10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgRGF0YVByb3ZpZGVyXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS0tZG1zX2RwLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBEYXRhUHJvdmlkZXJcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkRhdGFQcm92aWRlclRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGRhdGEtcHJvdmlkZXItdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIEVuZHBvaW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfZW5kcG9pbnQtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIEVuZHBvaW50XG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZFbmRwb2ludFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGVuZHBvaW50LXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBFdmVudFN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX2VzLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBFdmVudFN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmRXNUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBlcy10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgSW5kaXZpZHVhbEFzc2Vzc21lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLWRtc19pbmRpdmlkdWFsLWFzc2Vzc21lbnQtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIFJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50XG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZJbmRpdmlkdWFsQXNzZXNzbWVudFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGluZGl2aWR1YWwtYXNzZXNzbWVudC10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgSW5zdGFuY2VQcm9maWxlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS0tZG1zX2lwLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBJbnN0YW5jZVByb2ZpbGVcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluc3RhbmNlUHJvZmlsZVRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGluc3RhbmNlLXByb2ZpbGUtdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIE1pZ3JhdGlvblByb2plY3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLS1kbXNfbXAtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIE1pZ3JhdGlvblByb2plY3RcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZk1pZ3JhdGlvblByb2plY3RUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBtaWdyYXRpb24tcHJvamVjdC10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgUmVwbGljYXRpb25JbnN0YW5jZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX3JlcC10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gUmVwbGljYXRpb25JbnN0YW5jZVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmUmVwVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgcmVwLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBSZXBsaWNhdGlvbkNvbmZpZ1xuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX3JlcGxpY2F0aW9uLWNvbmZpZy10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gUmVwbGljYXRpb25Db25maWdcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlJlcGxpY2F0aW9uQ29uZmlnVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgcmVwbGljYXRpb24tY29uZmlnLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSBnaXZlbiByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfcmVxLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0FkZFRhZ3NUb1Jlc291cmNlKClcbiAgICogLSAudG9DcmVhdGVEYXRhTWlncmF0aW9uKClcbiAgICogLSAudG9DcmVhdGVEYXRhUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZUVuZHBvaW50KClcbiAgICogLSAudG9DcmVhdGVFdmVudFN1YnNjcmlwdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlSW5zdGFuY2VQcm9maWxlKClcbiAgICogLSAudG9DcmVhdGVNaWdyYXRpb25Qcm9qZWN0KClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZygpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25JbnN0YW5jZSgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25TdWJuZXRHcm91cCgpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25UYXNrKClcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlJlcVRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHJlcS10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgUmVwbGljYXRpb25TdWJuZXRHcm91cFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX3N1YmdycC10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gUmVwbGljYXRpb25TdWJuZXRHcm91cFxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmU3ViZ3JwVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgc3ViZ3JwLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBSZXBsaWNhdGlvblRhc2tcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLWRtc190YXNrLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBSZXBsaWNhdGlvblRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlRhc2tUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGB0YXNrLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZG1zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19
2063
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwrQkFBK0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwrQkFBK0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUE2QjtRQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0NBQW9DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7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Z0JBQ2xDLHdCQUF3QjthQUN6QjtZQUNELElBQUksRUFBRTtnQkFDSiwyQkFBMkI7Z0JBQzNCLHlDQUF5QztnQkFDekMsc0JBQXNCO2dCQUN0QixxQkFBcUI7Z0JBQ3JCLGlDQUFpQztnQkFDakMsd0JBQXdCO2dCQUN4QiwwQkFBMEI7Z0JBQzFCLHVCQUF1QjtnQkFDdkIsbUJBQW1CO2dCQUNuQix3QkFBd0I7Z0JBQ3hCLHlCQUF5QjtnQkFDekIsNEJBQTRCO2dCQUM1QixnQkFBZ0I7Z0JBQ2hCLGdDQUFnQztnQkFDaEMsK0JBQStCO2dCQUMvQixpQ0FBaUM7Z0JBQ2pDLHlDQUF5QztnQkFDekMsNkJBQTZCO2dCQUM3Qix1QkFBdUI7Z0JBQ3ZCLCtCQUErQjtnQkFDL0IsZ0NBQWdDO2dCQUNoQyw4QkFBOEI7Z0JBQzlCLHVDQUF1QztnQkFDdkMsbUNBQW1DO2dCQUNuQyxtQ0FBbUM7Z0JBQ25DLHlCQUF5QjtnQkFDekIsOEJBQThCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLHFDQUFxQztnQkFDckMsOEJBQThCO2dCQUM5QixpQ0FBaUM7Z0JBQ2pDLG9DQUFvQztnQkFDcEMsMENBQTBDO2dCQUMxQyx1Q0FBdUM7Z0JBQ3ZDLDhDQUE4QztnQkFDOUMsMEJBQTBCO2dCQUMxQixzQkFBc0I7Z0JBQ3RCLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6Qix5QkFBeUI7Z0JBQ3pCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQixzQkFBc0I7Z0JBQ3RCLHdDQUF3QztnQkFDeEMsOEJBQThCO2dCQUM5Qiw4QkFBOEI7Z0JBQzlCLDBCQUEwQjtnQkFDMUIsdUJBQXVCO2dCQUN2QixxQkFBcUI7Z0JBQ3JCLGdCQUFnQjthQUNqQjtTQUNGLENBQUM7SUFva0JGLENBQUM7Q0FDRjtBQS9wRUQsa0JBK3BFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZG1zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBEbXMgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdkbXMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhZGQgbWV0YWRhdGEgdGFncyB0byBETVMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgcmVwbGljYXRpb24gaW5zdGFuY2VzLCBlbmRwb2ludHMsIHNlY3VyaXR5IGdyb3VwcywgYW5kIG1pZ3JhdGlvbiB0YXNrc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9BZGRUYWdzVG9SZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BZGRUYWdzVG9SZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkVGFnc1RvUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhcHBseSBhIHBlbmRpbmcgbWFpbnRlbmFuY2UgYWN0aW9uIHRvIGEgcmVzb3VyY2UgKGZvciBleGFtcGxlLCB0byBhIHJlcGxpY2F0aW9uIGluc3RhbmNlKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIGEgZXh0ZW5zaW9uIHBhY2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0RXh0ZW5zaW9uUGFja0Fzc29jaWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZUV4dGVuc2lvblBhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Fzc29jaWF0ZUV4dGVuc2lvblBhY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCB0aGUgYW5hbHlzaXMgb2YgdXAgdG8gMjAgc291cmNlIGRhdGFiYXNlcyB0byByZWNvbW1lbmQgdGFyZ2V0IGVuZ2luZXMgZm9yIGVhY2ggc291cmNlIGRhdGFiYXNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaFN0YXJ0UmVjb21tZW5kYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0JhdGNoU3RhcnRSZWNvbW1lbmRhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0JhdGNoU3RhcnRSZWNvbW1lbmRhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSBzaW5nbGUgbWV0YWRhdGEgbW9kZWwgY29udmVyc2lvbiBvcGVyYXRpb24gdGhhdCB3YXMgc3RhcnRlZCB3aXRoIFN0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NhbmNlbE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NhbmNlbE1ldGFkYXRhTW9kZWxDb252ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDYW5jZWxNZXRhZGF0YU1vZGVsQ29udmVyc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhbmNlbCBhIHNpbmdsZSBtZXRhZGF0YSBtb2RlbCBjcmVhdGlvbiBvcGVyYXRpb24gdGhhdCB3YXMgc3RhcnRlZCB3aXRoIFN0YXJ0TWV0YWRhdGFNb2RlbENyZWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DYW5jZWxNZXRhZGF0YU1vZGVsQ3JlYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsTWV0YWRhdGFNb2RlbENyZWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDYW5jZWxNZXRhZGF0YU1vZGVsQ3JlYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSBzaW5nbGUgcHJlbWlncmF0aW9uIGFzc2Vzc21lbnQgcnVuXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DYW5jZWxSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NhbmNlbFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbmNlbFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBkYXRhYmFzZSBtaWdyYXRpb24gdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZURhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZURhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gZGF0YSBwcm92aWRlciB1c2luZyB0aGUgcHJvdmlkZWQgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZSZXFUYWcoKVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVEYXRhUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRGF0YVByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVEYXRhUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gZW5kcG9pbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRW5kcG9pbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRW5kcG9pbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUVuZHBvaW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFXUyBETVMgZXZlbnQgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3IgdXNpbmcgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUZsZWV0QWR2aXNvckNvbGxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIGluc3RhbmNlIHByb2ZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlSW5zdGFuY2VQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUluc3RhbmNlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlSW5zdGFuY2VQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIG1pZ3JhdGlvbiBwcm9qZWN0IHVzaW5nIHRoZSBwcm92aWRlZCBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU1pZ3JhdGlvblByb2plY3QuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlTWlncmF0aW9uUHJvamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTWlncmF0aW9uUHJvamVjdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIERNUyB0byBjcmVhdGUgcmVzb3VyY2VzIGZvciB6ZXJvLUVUTCBpbnRlZ3JhdGlvbnMgd2l0aCBzZWxmIG1hbmFnZWQgZGF0YWJhc2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZXBsaWNhdGlvbiBjb25maWcgdXNpbmcgdGhlIHByb3ZpZGVkIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUmVwbGljYXRpb25Db25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVJlcGxpY2F0aW9uQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgcmVwbGljYXRpb24gaW5zdGFuY2UgdXNpbmcgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUmVxVGFnKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlUmVwbGljYXRpb25JbnN0YW5jZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgcmVwbGljYXRpb24gc3VibmV0IGdyb3VwIGdpdmVuIGEgbGlzdCBvZiB0aGUgc3VibmV0IElEcyBpbiBhIFZQQ1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZlJlcVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlUmVwbGljYXRpb25TdWJuZXRHcm91cC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgcmVwbGljYXRpb24gdGFzayB1c2luZyB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZSZXFUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVJlcGxpY2F0aW9uVGFzay5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVSZXBsaWNhdGlvblRhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVJlcGxpY2F0aW9uVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGNlcnRpZmljYXRlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVDZXJ0aWZpY2F0ZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDZXJ0aWZpY2F0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQ2VydGlmaWNhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBjb25uZWN0aW9uIGJldHdlZW4gYSByZXBsaWNhdGlvbiBpbnN0YW5jZSBhbmQgYW4gZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUNvbm5lY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQ29ubmVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQ29ubmVjdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIG1pZ3JhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZURhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZURhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBkYXRhIHByb3ZpZGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVEYXRhUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRGF0YVByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVEYXRhUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRW5kcG9pbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRW5kcG9pbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUVuZHBvaW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFXUyBETVMgZXZlbnQgc3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVFdmVudFN1YnNjcmlwdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFdmVudFN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRXZlbnRTdWJzY3JpcHRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBGbGVldCBBZHZpc29yIGNvbGxlY3RvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUZsZWV0QWR2aXNvckNvbGxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRmxlZXRBZHZpc29yQ29sbGVjdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgRmxlZXQgQWR2aXNvciBkYXRhYmFzZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUZsZWV0QWR2aXNvckRhdGFiYXNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVGbGVldEFkdmlzb3JEYXRhYmFzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUZsZWV0QWR2aXNvckRhdGFiYXNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlIHByb2ZpbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUluc3RhbmNlUHJvZmlsZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUluc3RhbmNlUHJvZmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIG1pZ3JhdGlvbiBwcm9qZWN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVNaWdyYXRpb25Qcm9qZWN0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU1pZ3JhdGlvblByb2plY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1pZ3JhdGlvblByb2plY3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCByZXBsaWNhdGlvbiBjb25maWdcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVSZXBsaWNhdGlvbkNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUmVwbGljYXRpb25Db25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCByZXBsaWNhdGlvbiBpbnN0YW5jZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlUmVwbGljYXRpb25JbnN0YW5jZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVSZXBsaWNhdGlvbkluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVSZXBsaWNhdGlvbkluc3RhbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlcyBhIHN1Ym5ldCBncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlUmVwbGljYXRpb25TdWJuZXRHcm91cC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBzcGVjaWZpZWQgcmVwbGljYXRpb24gdGFza1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlUmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUmVwbGljYXRpb25UYXNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSByZWNvcmQgb2YgYSBzaW5nbGUgcHJlbWlncmF0aW9uIGFzc2Vzc21lbnQgcnVuXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBvZiB0aGUgQVdTIERNUyBhdHRyaWJ1dGVzIGZvciBhIGN1c3RvbWVyIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBpbmRpdmlkdWFsIGFzc2Vzc21lbnRzIHRoYXQgeW91IGNhbiBzcGVjaWZ5IGZvciBhIG5ldyBwcmVtaWdyYXRpb24gYXNzZXNzbWVudCBydW5cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVBcHBsaWNhYmxlSW5kaXZpZHVhbEFzc2Vzc21lbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQXBwbGljYWJsZUluZGl2aWR1YWxBc3Nlc3NtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVBcHBsaWNhYmxlSW5kaXZpZHVhbEFzc2Vzc21lbnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcHJvdmlkZSBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjZXJ0aWZpY2F0ZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNlcnRpZmljYXRlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUNlcnRpZmljYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVDZXJ0aWZpY2F0ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSB0aGUgc3RhdHVzIG9mIHRoZSBjb25uZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBtYWRlIGJldHdlZW4gdGhlIHJlcGxpY2F0aW9uIGluc3RhbmNlIGFuZCBhbiBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNvbm5lY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQ29ubmVjdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgRE1TIFNjaGVtYSBDb252ZXJzaW9uIHByb2plY3QgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNvbnZlcnNpb25Db25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgZGF0YWJhc2UgbWlncmF0aW9ucyBmb3IgeW91ciBhY2NvdW50IGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZURhdGFNaWdyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZURhdGFNaWdyYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIHRoZSBwb3NzaWJsZSBlbmRwb2ludCBzZXR0aW5ncyBhdmFpbGFibGUgd2hlbiB5b3UgY3JlYXRlIGFuIGVuZHBvaW50IGZvciBhIHNwZWNpZmljIGRhdGFiYXNlIGVuZ2luZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUVuZHBvaW50U2V0dGluZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVFbmRwb2ludFNldHRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUVuZHBvaW50U2V0dGluZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHR5cGUgb2YgZW5kcG9pbnRzIGF2YWlsYWJsZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUVuZHBvaW50VHlwZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVFbmRwb2ludFR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUVuZHBvaW50VHlwZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVuZHBvaW50cyBmb3IgeW91ciBhY2NvdW50IGluIHRoZSBjdXJyZW50IHJlZ2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUVuZHBvaW50cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUVuZHBvaW50cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVFbmRwb2ludHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF2YWlsYWJsZSB2ZXJzaW9ucyBmb3IgRE1TIHJlcGxpY2F0aW9uIGluc3RhbmNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUVuZ2luZVZlcnNpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRW5naW5lVmVyc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRW5naW5lVmVyc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGNhdGVnb3JpZXMgZm9yIGFsbCBldmVudCBzb3VyY2UgdHlwZXMsIG9yLCBpZiBzcGVjaWZpZWQsIGZvciBhIHNwZWNpZmllZCBzb3VyY2UgdHlwZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUV2ZW50Q2F0ZWdvcmllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUV2ZW50Q2F0ZWdvcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVFdmVudENhdGVnb3JpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCB0aGUgZXZlbnQgc3Vic2NyaXB0aW9ucyBmb3IgYSBjdXN0b21lciBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZXZlbnRzIGZvciBhIGdpdmVuIHNvdXJjZSBpZGVudGlmaWVyIGFuZCBzb3VyY2UgdHlwZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUV2ZW50cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUV2ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVFdmVudHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBGbGVldCBBZHZpc29yIGNvbGxlY3RvcnMgaW4geW91ciBhY2NvdW50IGJhc2VkIG9uIGZpbHRlciBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUZsZWV0QWR2aXNvckNvbGxlY3RvcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVGbGVldEFkdmlzb3JDb2xsZWN0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUZsZWV0QWR2aXNvckNvbGxlY3RvcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBGbGVldCBBZHZpc29yIGRhdGFiYXNlcyBpbiB5b3VyIGFjY291bnQgYmFzZWQgb24gZmlsdGVyIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmxlZXRBZHZpc29yRGF0YWJhc2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRmxlZXRBZHZpc29yRGF0YWJhc2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUZsZWV0QWR2aXNvckRhdGFiYXNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIGRlc2NyaXB0aW9ucyBvZiBsYXJnZS1zY2FsZSBhc3Nlc3NtZW50IChMU0EpIGFuYWx5c2VzIHByb2R1Y2VkIGJ5IHlvdXIgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3JzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmxlZXRBZHZpc29yTHNhQW5hbHlzaXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVGbGVldEFkdmlzb3JMc2FBbmFseXNpcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVGbGVldEFkdmlzb3JMc2FBbmFseXNpcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIGRlc2NyaXB0aW9ucyBvZiBzY2hlbWFzIGRpc2NvdmVyZWQgYnkgeW91ciBGbGVldCBBZHZpc29yIGNvbGxlY3RvcnMgYmFzZWQgb24gZmlsdGVyIHNldHRpbmdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hT2JqZWN0U3VtbWFyeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUZsZWV0QWR2aXNvclNjaGVtYU9iamVjdFN1bW1hcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hT2JqZWN0U3VtbWFyeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIHNjaGVtYXMgZGlzY292ZXJlZCBieSB5b3VyIEZsZWV0IEFkdmlzb3IgY29sbGVjdG9ycyBiYXNlZCBvbiBmaWx0ZXIgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgbWV0YWRhdGEgbW9kZWwsIGluY2x1ZGluZyBpdHMgZGVmaW5pdGlvbiBhbmQgY29ycmVzcG9uZGluZyBjb252ZXJ0ZWQgb2JqZWN0cyBpbiB0aGUgdGFyZ2V0IGRhdGFiYXNlIGlmIGFwcGxpY2FibGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVNZXRhZGF0YU1vZGVsLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlTWV0YWRhdGFNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVNZXRhZGF0YU1vZGVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGEgbGlzdCBvZiBjaGlsZCBtZXRhZGF0YSBtb2RlbHMgZm9yIHRoZSBzcGVjaWZpZWQgbWV0YWRhdGEgbW9kZWwgaW4gdGhlIGRhdGFiYXNlIGhpZXJhcmNoeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZU1ldGFkYXRhTW9kZWxDaGlsZHJlbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZU1ldGFkYXRhTW9kZWxDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVNZXRhZGF0YU1vZGVsQ2hpbGRyZW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBtZXRhZGF0YSBtb2RlbCBjcmVhdGlvbiByZXF1ZXN0cyBmb3IgYSBtaWdyYXRpb24gcHJvamVjdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZU1ldGFkYXRhTW9kZWxDcmVhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVNZXRhZGF0YU1vZGVsQ3JlYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU1ldGFkYXRhTW9kZWxDcmVhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgc3RhcnQgbWV0YWRhdGEgbW9kZWwgaW1wb3J0IG9wZXJhdGlvbnMgZm9yIGEgbWlncmF0aW9uIHByb2plY3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVNZXRhZGF0YU1vZGVsSW1wb3J0cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZU1ldGFkYXRhTW9kZWxJbXBvcnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU1ldGFkYXRhTW9kZWxJbXBvcnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXBsaWNhdGlvbiBpbnN0YW5jZSB0eXBlcyB0aGF0IGNhbiBiZSBjcmVhdGVkIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlT3JkZXJhYmxlUmVwbGljYXRpb25JbnN0YW5jZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVPcmRlcmFibGVSZXBsaWNhdGlvbkluc3RhbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVPcmRlcmFibGVSZXBsaWNhdGlvbkluc3RhbmNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBwZW5kaW5nIG1haW50ZW5hbmNlIGFjdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2YgZGVzY3JpcHRpb25zIG9mIGxpbWl0YXRpb25zIGZvciByZWNvbW1lbmRhdGlvbnMgb2YgdGFyZ2V0IEFXUyBlbmdpbmVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmxlZXRBZHZpc29yTHNhQW5hbHlzaXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZWNvbW1lbmRhdGlvbkxpbWl0YXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlY29tbWVuZGF0aW9uTGltaXRhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBkZXNjcmlwdGlvbnMgb2YgdGFyZ2V0IGVuZ2luZSByZWNvbW1lbmRhdGlvbnMgZm9yIHlvdXIgc291cmNlIGRhdGFiYXNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlY29tbWVuZGF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlY29tbWVuZGF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZWNvbW1lbmRhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIFJlZnJlc2hTY2hlbWFzIG9wZXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlZnJlc2hTY2hlbWFzU3RhdHVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVmcmVzaFNjaGVtYXNTdGF0dXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVmcmVzaFNjaGVtYXNTdGF0dXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSByZXBsaWNhdGlvbiBjb25maWdzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlncygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhc2sgbG9ncyBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VUYXNrTG9ncygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvbkluc3RhbmNlVGFza0xvZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgcmVwbGljYXRpb24gaW5zdGFuY2VzIGZvciB5b3VyIGFjY291bnQgaW4gdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZXBsaWNhdGlvbkluc3RhbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVSZXBsaWNhdGlvbkluc3RhbmNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVwbGljYXRpb24gc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVJlcGxpY2F0aW9uU3VibmV0R3JvdXBzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUmVwbGljYXRpb25TdWJuZXRHcm91cHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25TdWJuZXRHcm91cHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSByZXBsaWNhdGlvbiB0YWJsZSBzdGF0aXN0aWNzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uVGFibGVTdGF0aXN0aWNzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uVGFibGVTdGF0aXN0aWNzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIHRoZSBsYXRlc3QgdGFzayBhc3Nlc3NtZW50IHJlc3VsdHMgZnJvbSBBbWF6b24gUzNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UmVzdWx0cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSZXN1bHRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSZXN1bHRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2YgcHJlbWlncmF0aW9uIGFzc2Vzc21lbnQgcnVucyBiYXNlZCBvbiBmaWx0ZXIgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW5zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGEgcGFnaW5hdGVkIGxpc3Qgb2YgaW5kaXZpZHVhbCBhc3Nlc3NtZW50cyBiYXNlZCBvbiBmaWx0ZXIgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrSW5kaXZpZHVhbEFzc2Vzc21lbnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHJlcGxpY2F0aW9uIHRhc2tzIGZvciB5b3VyIGFjY291bnQgaW4gdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVJlcGxpY2F0aW9uVGFza3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25UYXNrcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIHJlcGxpY2F0aW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVSZXBsaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUmVwbGljYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY2hlbWEgZm9yIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVTY2hlbWFzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlU2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVTY2hlbWFzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0dXJuIHRhYmxlIHN0YXRpc3RpY3Mgb24gdGhlIGRhdGFiYXNlIG1pZ3JhdGlvbiB0YXNrLCBpbmNsdWRpbmcgdGFibGUgbmFtZSwgcm93cyBpbnNlcnRlZCwgcm93cyB1cGRhdGVkLCBhbmQgcm93cyBkZWxldGVkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVGFibGVTdGF0aXN0aWNzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlVGFibGVTdGF0aXN0aWNzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVRhYmxlU3RhdGlzdGljcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGV4cG9ydCB0aGUgc3BlY2lmaWVkIG1ldGFkYXRhIG1vZGVsIGFzc2Vzc21lbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0V4cG9ydE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0V4cG9ydE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdFeHBvcnRNZXRhZGF0YU1vZGVsQXNzZXNzbWVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNvbnZlcnQgc291cmNlIHNlbGVjdGlvbiBydWxlcyBpbnRvIHRoZWlyIHRhcmdldCBjb3VudGVycGFydHMgZm9yIHNjaGVtYSBjb252ZXJzaW9uIG9wZXJhdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0VGFyZ2V0U2VsZWN0aW9uUnVsZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0VGFyZ2V0U2VsZWN0aW9uUnVsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFRhcmdldFNlbGVjdGlvblJ1bGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBsb2FkIHRoZSBzcGVjaWZpZWQgY2VydGlmaWNhdGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9JbXBvcnRDZXJ0aWZpY2F0ZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9JbXBvcnRDZXJ0aWZpY2F0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW1wb3J0Q2VydGlmaWNhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgZGF0YSBwcm92aWRlcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVEYXRhUHJvdmlkZXJzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3REYXRhUHJvdmlkZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RGF0YVByb3ZpZGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBETVMgYXR0cmlidXRlcyBmb3IgYSBleHRlbnNpb24gcGFja3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVFeHRlbnNpb25QYWNrQXNzb2NpYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RFeHRlbnNpb25QYWNrcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEV4dGVuc2lvblBhY2tzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgQVdTIERNUyBhdHRyaWJ1dGVzIGZvciBhIGluc3RhbmNlIHByb2ZpbGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlSW5zdGFuY2VQcm9maWxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0SW5zdGFuY2VQcm9maWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEluc3RhbmNlUHJvZmlsZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgbWV0YWRhdGEgbW9kZWwgYXNzZXNzbWVudCBhY3Rpb24gaXRlbXMuIE5vdGUuIERlc3BpdGUgdGhpcyBhY3Rpb24gcmVxdWlyZXMgU3RhcnRNZXRhZGF0YU1vZGVsSW1wb3J0LCB0aGUgbGF0dGVyIGRvZXMgbm90IGN1cnJlbnRseSBhdXRob3JpemUgdGhlIGRlc2NyaWJlZCBTY2hlbWEgQ29udmVyc2lvbiBvcGVyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGRtczpTdGFydE1ldGFkYXRhTW9kZWxJbXBvcnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50QWN0aW9uSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNZXRhZGF0YU1vZGVsQXNzZXNzbWVudEFjdGlvbkl0ZW1zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgQVdTIERNUyBhdHRyaWJ1dGVzIGZvciBhIG1ldGFkYXRhIG1vZGVsIGFzc2Vzc21lbnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRhZGF0YU1vZGVsRXhwb3J0cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgQVdTIERNUyBhdHRyaWJ1dGVzIGZvciBhIG1ldGFkYXRhIG1vZGVsIGNvbnZlcnNpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENvbnZlcnNpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RNZXRhZGF0YU1vZGVsQ29udmVyc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNZXRhZGF0YU1vZGVsQ29udmVyc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgbWV0YWRhdGEgbW9kZWwgZXhwb3J0c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1ldGFkYXRhTW9kZWxFeHBvcnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWV0YWRhdGFNb2RlbEV4cG9ydHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBV1MgRE1TIGF0dHJpYnV0ZXMgZm9yIGEgbWlncmF0aW9uIHByb2plY3RzLiBOb3RlLiBEZXNwaXRlIHRoaXMgYWN0aW9uIHJlcXVpcmVzIERlc2NyaWJlTWlncmF0aW9uUHJvamVjdHMgYW5kIERlc2NyaWJlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24sIGJvdGggcmVxdWlyZWQgYWN0aW9ucyBkbyBub3QgY3VycmVudGx5IGF1dGhvcml6ZSB0aGUgZGVzY3JpYmVkIFNjaGVtYSBDb252ZXJzaW9uIG9wZXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gZG1zOkRlc2NyaWJlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1pZ3JhdGlvblByb2plY3RzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWlncmF0aW9uUHJvamVjdHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCB0YWdzIGZvciBhbiBBV1MgRE1TIHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RUYWdzRm9yUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFRhZ3NGb3JSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFRhZ3NGb3JSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIG1pZ3JhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlEYXRhTWlncmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlEYXRhTWlncmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzcGVjaWZpZWQgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5RW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgYW4gZXhpc3RpbmcgQVdTIERNUyBldmVudCBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlFdmVudFN1YnNjcmlwdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlFdmVudFN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHRoZSBzcGVjaWZpZWQgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3JcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlGbGVldEFkdmlzb3JDb2xsZWN0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vZGlmeUZsZWV0QWR2aXNvckNvbGxlY3RvcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgRmxlZXQgQWR2aXNvciBjb2xsZWN0b3JcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlGbGVldEFkdmlzb3JDb2xsZWN0b3JTdGF0dXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5RmxlZXRBZHZpc29yQ29sbGVjdG9yU3RhdHVzZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBETVMgdG8gbW9kaWZ5IHJlc291cmNlcyBmb3IgemVyby1FVEwgaW50ZWdyYXRpb25zIHdpdGggc2VsZiBtYW5hZ2VkIGRhdGFiYXNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb2RpZnlPdXRib3VuZEludGVncmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlPdXRib3VuZEludGVncmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSBzcGVjaWZpZWQgcmVwbGljYXRpb24gY29uZmlnXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTW9kaWZ5UmVwbGljYXRpb25Db25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vZGlmeVJlcGxpY2F0aW9uQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSByZXBsaWNhdGlvbiBpbnN0YW5jZSB0byBhcHBseSBuZXcgc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeVJlcGxpY2F0aW9uSW5zdGFuY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTW9kaWZ5UmVwbGljYXRpb25JbnN0YW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW9kaWZ5UmVwbGljYXRpb25JbnN0YW5jZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgcmVwbGljYXRpb24gc3VibmV0IGdyb3VwXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlSZXBsaWNhdGlvblN1Ym5ldEdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b01vZGlmeVJlcGxpY2F0aW9uU3VibmV0R3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vZGlmeVJlcGxpY2F0aW9uU3VibmV0R3JvdXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIHNwZWNpZmllZCByZXBsaWNhdGlvbiB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlSZXBsaWNhdGlvblRhc2suaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTW9kaWZ5UmVwbGljYXRpb25UYXNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb2RpZnlSZXBsaWNhdGlvblRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb3ZlIHRoZSBzcGVjaWZpZWQgcmVwbGljYXRpb24gdGFzayB0byBhIGRpZmZlcmVudCByZXBsaWNhdGlvbiBpbnN0YW5jZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTW92ZVJlcGxpY2F0aW9uVGFzay5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Nb3ZlUmVwbGljYXRpb25UYXNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdNb3ZlUmVwbGljYXRpb25UYXNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmVib290IGEgcmVwbGljYXRpb24gaW5zdGFuY2UuIFJlYm9vdGluZyByZXN1bHRzIGluIGEgbW9tZW50YXJ5IG91dGFnZSwgdW50aWwgdGhlIHJlcGxpY2F0aW9uIGluc3RhbmNlIGJlY29tZXMgYXZhaWxhYmxlIGFnYWluXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWJvb3RSZXBsaWNhdGlvbkluc3RhbmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1JlYm9vdFJlcGxpY2F0aW9uSW5zdGFuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlYm9vdFJlcGxpY2F0aW9uSW5zdGFuY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwb3B1bGF0ZSB0aGUgc2NoZW1hIGZvciB0aGUgc3BlY2lmaWVkIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWZyZXNoU2NoZW1hcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWZyZXNoU2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVmcmVzaFNjaGVtYXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWxvYWQgdGhlIHRhcmdldCBkYXRhYmFzZSB0YWJsZSB3aXRoIHRoZSBzb3VyY2UgZm9yIGEgcmVwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWxvYWRSZXBsaWNhdGlvblRhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVsb2FkUmVwbGljYXRpb25UYWJsZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWxvYWQgdGhlIHRhcmdldCBkYXRhYmFzZSB0YWJsZSB3aXRoIHRoZSBzb3VyY2UgZGF0YVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVsb2FkVGFibGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1JlbG9hZFRhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVsb2FkVGFibGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmVtb3ZlIG1ldGFkYXRhIHRhZ3MgZnJvbSBhIERNUyByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZW1vdmVUYWdzRnJvbVJlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSZW1vdmVUYWdzRnJvbVJlc291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcnVuIGEgbGFyZ2Utc2NhbGUgYXNzZXNzbWVudCAoTFNBKSBhbmFseXNpcyBvbiBldmVyeSBGbGVldCBBZHZpc29yIGNvbGxlY3RvciBpbiB5b3VyIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1J1bkZsZWV0QWR2aXNvckxzYUFuYWx5c2lzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1J1bkZsZWV0QWR2aXNvckxzYUFuYWx5c2lzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSdW5GbGVldEFkdmlzb3JMc2FBbmFseXNpcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IHRoZSBkYXRhYmFzZSBtaWdyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydERhdGFNaWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0RGF0YU1pZ3JhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGFzc2Vzc21lbnQgb2YgbWV0YWRhdGEgbW9kZWxcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRNZXRhZGF0YU1vZGVsQXNzZXNzbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRNZXRhZGF0YU1vZGVsQXNzZXNzbWVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGNvbnZlcnNpb24gb2YgbWV0YWRhdGEgbW9kZWxcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0TWV0YWRhdGFNb2RlbENvbnZlcnNpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRNZXRhZGF0YU1vZGVsQ29udmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRNZXRhZGF0YU1vZGVsQ29udmVyc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBzb3VyY2UgbWV0YWRhdGEgbW9kZWwgb2YgdGhlIGdpdmVuIHR5cGUgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMgZm9yIHNjaGVtYSBjb252ZXJzaW9uIG9wZXJhdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0TWV0YWRhdGFNb2RlbENyZWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbENyZWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydE1ldGFkYXRhTW9kZWxDcmVhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGV4cG9ydCBvZiBtZXRhZGF0YSBtb2RlbCBhcyBzY3JpcHRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydEFzU2NyaXB0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydEFzU2NyaXB0cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRNZXRhZGF0YU1vZGVsRXhwb3J0QXNTY3JpcHRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgYSBuZXcgZXhwb3J0IG9mIG1ldGFkYXRhIG1vZGVsIHRvIHRhcmdldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRNZXRhZGF0YU1vZGVsRXhwb3J0VG9UYXJnZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRNZXRhZGF0YU1vZGVsRXhwb3J0VG9UYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydFRvVGFyZ2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgYSBuZXcgaW1wb3J0IG9mIG1ldGFkYXRhIG1vZGVsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1ldGFkYXRhTW9kZWxJbXBvcnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRNZXRhZGF0YU1vZGVsSW1wb3J0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydE1ldGFkYXRhTW9kZWxJbXBvcnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCB0aGUgYW5hbHlzaXMgb2YgeW91ciBzb3VyY2UgZGF0YWJhc2UgdG8gcHJvdmlkZSByZWNvbW1lbmRhdGlvbnMgb2YgdGFyZ2V0IGVuZ2luZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0UmVjb21tZW5kYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0UmVjb21tZW5kYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydFJlY29tbWVuZGF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgcmVwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFJlcGxpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydFJlcGxpY2F0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgdGhlIHJlcGxpY2F0aW9uIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0UmVwbGljYXRpb25UYXNrLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0UmVwbGljYXRpb25UYXNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydFJlcGxpY2F0aW9uVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IHRoZSByZXBsaWNhdGlvbiB0YXNrIGFzc2Vzc21lbnQgZm9yIHVuc3VwcG9ydGVkIGRhdGEgdHlwZXMgaW4gdGhlIHNvdXJjZSBkYXRhYmFzZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0UmVwbGljYXRpb25UYXNrQXNzZXNzbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgYSBuZXcgcHJlbWlncmF0aW9uIGFzc2Vzc21lbnQgcnVuIGZvciBvbmUgb3IgbW9yZSBpbmRpdmlkdWFsIGFzc2Vzc21lbnRzIG9mIGEgbWlncmF0aW9uIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIHRoZSBkYXRhYmFzZSBtaWdyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdG9wRGF0YU1pZ3JhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RvcERhdGFNaWdyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIGEgcmVwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdG9wUmVwbGljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BSZXBsaWNhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0b3AgdGhlIHJlcGxpY2F0aW9uIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0b3BSZXBsaWNhdGlvblRhc2suaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcFJlcGxpY2F0aW9uVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RvcFJlcGxpY2F0aW9uVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHRlc3QgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgcmVwbGljYXRpb24gaW5zdGFuY2UgYW5kIHRoZSBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UZXN0Q29ubmVjdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9UZXN0Q29ubmVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVGVzdENvbm5lY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBjb252ZXJzaW9uIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUNvbnZlcnNpb25Db25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUNvbnZlcnNpb25Db25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVDb252ZXJzaW9uQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgc3BlY2lmaWVkIGRhdGEgcHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeURhdGFQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVEYXRhUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZURhdGFQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgc3BlY2lmaWVkIGluc3RhbmNlIHByb2ZpbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUluc3RhbmNlUHJvZmlsZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUluc3RhbmNlUHJvZmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgc3BlY2lmaWVkIG1pZ3JhdGlvbiBwcm9qZWN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlNaWdyYXRpb25Qcm9qZWN0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZU1pZ3JhdGlvblByb2plY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZU1pZ3JhdGlvblByb2plY3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtaWdyYXRlIERNUyBzdWJjcmlwdGlvbnMgdG8gRXZlbnRicmlkZ2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZVN1YnNjcmlwdGlvbnNUb0V2ZW50QnJpZGdlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVN1YnNjcmlwdGlvbnNUb0V2ZW50QnJpZGdlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVTdWJzY3JpcHRpb25zVG9FdmVudEJyaWRnZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwbG9hZCBmaWxlcyB0byB5b3VyIEFtYXpvbiBTMyBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGxvYWRGaWxlTWV0YWRhdGFMaXN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGxvYWRGaWxlTWV0YWRhdGFMaXN0Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWNjZXNzTGV2ZWxMaXN0OiBBY2Nlc3NMZXZlbExpc3QgPSB7XG4gICAgVGFnZ2luZzogW1xuICAgICAgJ0FkZFRhZ3NUb1Jlc291cmNlJyxcbiAgICAgICdSZW1vdmVUYWdzRnJvbVJlc291cmNlJ1xuICAgIF0sXG4gICAgV3JpdGU6IFtcbiAgICAgICdBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbicsXG4gICAgICAnQXNzb2NpYXRlRXh0ZW5zaW9uUGFjaycsXG4gICAgICAnQmF0Y2hTdGFydFJlY29tbWVuZGF0aW9ucycsXG4gICAgICAnQ2FuY2VsTWV0YWRhdGFNb2RlbENvbnZlcnNpb24nLFxuICAgICAgJ0NhbmNlbE1ldGFkYXRhTW9kZWxDcmVhdGlvbicsXG4gICAgICAnQ2FuY2VsUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bicsXG4gICAgICAnQ3JlYXRlRGF0YU1pZ3JhdGlvbicsXG4gICAgICAnQ3JlYXRlRGF0YVByb3ZpZGVyJyxcbiAgICAgICdDcmVhdGVFbmRwb2ludCcsXG4gICAgICAnQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24nLFxuICAgICAgJ0NyZWF0ZUZsZWV0QWR2aXNvckNvbGxlY3RvcicsXG4gICAgICAnQ3JlYXRlSW5zdGFuY2VQcm9maWxlJyxcbiAgICAgICdDcmVhdGVNaWdyYXRpb25Qcm9qZWN0JyxcbiAgICAgICdDcmVhdGVPdXRib3VuZEludGVncmF0aW9uJyxcbiAgICAgICdDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZycsXG4gICAgICAnQ3JlYXRlUmVwbGljYXRpb25JbnN0YW5jZScsXG4gICAgICAnQ3JlYXRlUmVwbGljYXRpb25TdWJuZXRHcm91cCcsXG4gICAgICAnQ3JlYXRlUmVwbGljYXRpb25UYXNrJyxcbiAgICAgICdEZWxldGVDZXJ0aWZpY2F0ZScsXG4gICAgICAnRGVsZXRlQ29ubmVjdGlvbicsXG4gICAgICAnRGVsZXRlRGF0YU1pZ3JhdGlvbicsXG4gICAgICAnRGVsZXRlRGF0YVByb3ZpZGVyJyxcbiAgICAgICdEZWxldGVFbmRwb2ludCcsXG4gICAgICAnRGVsZXRlRXZlbnRTdWJzY3JpcHRpb24nLFxuICAgICAgJ0RlbGV0ZUZsZWV0QWR2aXNvckNvbGxlY3RvcicsXG4gICAgICAnRGVsZXRlRmxlZXRBZHZpc29yRGF0YWJhc2VzJyxcbiAgICAgICdEZWxldGVJbnN0YW5jZVByb2ZpbGUnLFxuICAgICAgJ0RlbGV0ZU1pZ3JhdGlvblByb2plY3QnLFxuICAgICAgJ0RlbGV0ZVJlcGxpY2F0aW9uQ29uZmlnJyxcbiAgICAgICdEZWxldGVSZXBsaWNhdGlvbkluc3RhbmNlJyxcbiAgICAgICdEZWxldGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwJyxcbiAgICAgICdEZWxldGVSZXBsaWNhdGlvblRhc2snLFxuICAgICAgJ0RlbGV0ZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4nLFxuICAgICAgJ0V4cG9ydE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50JyxcbiAgICAgICdJbXBvcnRDZXJ0aWZpY2F0ZScsXG4gICAgICAnTW9kaWZ5RGF0YU1pZ3JhdGlvbicsXG4gICAgICAnTW9kaWZ5RW5kcG9pbnQnLFxuICAgICAgJ01vZGlmeUV2ZW50U3Vic2NyaXB0aW9uJyxcbiAgICAgICdNb2RpZnlGbGVldEFkdmlzb3JDb2xsZWN0b3InLFxuICAgICAgJ01vZGlmeUZsZWV0QWR2aXNvckNvbGxlY3RvclN0YXR1c2VzJyxcbiAgICAgICdNb2RpZnlPdXRib3VuZEludGVncmF0aW9uJyxcbiAgICAgICdNb2RpZnlSZXBsaWNhdGlvbkNvbmZpZycsXG4gICAgICAnTW9kaWZ5UmVwbGljYXRpb25JbnN0YW5jZScsXG4gICAgICAnTW9kaWZ5UmVwbGljYXRpb25TdWJuZXRHcm91cCcsXG4gICAgICAnTW9kaWZ5UmVwbGljYXRpb25UYXNrJyxcbiAgICAgICdNb3ZlUmVwbGljYXRpb25UYXNrJyxcbiAgICAgICdSZWJvb3RSZXBsaWNhdGlvbkluc3RhbmNlJyxcbiAgICAgICdSZWZyZXNoU2NoZW1hcycsXG4gICAgICAnUmVsb2FkUmVwbGljYXRpb25UYWJsZXMnLFxuICAgICAgJ1JlbG9hZFRhYmxlcycsXG4gICAgICAnUnVuRmxlZXRBZHZpc29yTHNhQW5hbHlzaXMnLFxuICAgICAgJ1N0YXJ0RGF0YU1pZ3JhdGlvbicsXG4gICAgICAnU3RhcnRNZXRhZGF0YU1vZGVsQXNzZXNzbWVudCcsXG4gICAgICAnU3RhcnRNZXRhZGF0YU1vZGVsQ29udmVyc2lvbicsXG4gICAgICAnU3RhcnRNZXRhZGF0YU1vZGVsQ3JlYXRpb24nLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbEV4cG9ydEFzU2NyaXB0cycsXG4gICAgICAnU3RhcnRNZXRhZGF0YU1vZGVsRXhwb3J0VG9UYXJnZXQnLFxuICAgICAgJ1N0YXJ0TWV0YWRhdGFNb2RlbEltcG9ydCcsXG4gICAgICAnU3RhcnRSZWNvbW1lbmRhdGlvbnMnLFxuICAgICAgJ1N0YXJ0UmVwbGljYXRpb24nLFxuICAgICAgJ1N0YXJ0UmVwbGljYXRpb25UYXNrJyxcbiAgICAgICdTdGFydFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnQnLFxuICAgICAgJ1N0YXJ0UmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bicsXG4gICAgICAnU3RvcERhdGFNaWdyYXRpb24nLFxuICAgICAgJ1N0b3BSZXBsaWNhdGlvbicsXG4gICAgICAnU3RvcFJlcGxpY2F0aW9uVGFzaycsXG4gICAgICAnVXBkYXRlQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24nLFxuICAgICAgJ1VwZGF0ZURhdGFQcm92aWRlcicsXG4gICAgICAnVXBkYXRlSW5zdGFuY2VQcm9maWxlJyxcbiAgICAgICdVcGRhdGVNaWdyYXRpb25Qcm9qZWN0JyxcbiAgICAgICdVcGRhdGVTdWJzY3JpcHRpb25zVG9FdmVudEJyaWRnZScsXG4gICAgICAnVXBsb2FkRmlsZU1ldGFkYXRhTGlzdCdcbiAgICBdLFxuICAgIFJlYWQ6IFtcbiAgICAgICdEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzJyxcbiAgICAgICdEZXNjcmliZUFwcGxpY2FibGVJbmRpdmlkdWFsQXNzZXNzbWVudHMnLFxuICAgICAgJ0Rlc2NyaWJlQ2VydGlmaWNhdGVzJyxcbiAgICAgICdEZXNjcmliZUNvbm5lY3Rpb25zJyxcbiAgICAgICdEZXNjcmliZUNvbnZlcnNpb25Db25maWd1cmF0aW9uJyxcbiAgICAgICdEZXNjcmliZURhdGFNaWdyYXRpb25zJyxcbiAgICAgICdEZXNjcmliZUVuZHBvaW50U2V0dGluZ3MnLFxuICAgICAgJ0Rlc2NyaWJlRW5kcG9pbnRUeXBlcycsXG4gICAgICAnRGVzY3JpYmVFbmRwb2ludHMnLFxuICAgICAgJ0Rlc2NyaWJlRW5naW5lVmVyc2lvbnMnLFxuICAgICAgJ0Rlc2NyaWJlRXZlbnRDYXRlZ29yaWVzJyxcbiAgICAgICdEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9ucycsXG4gICAgICAnRGVzY3JpYmVFdmVudHMnLFxuICAgICAgJ0Rlc2NyaWJlRmxlZXRBZHZpc29yQ29sbGVjdG9ycycsXG4gICAgICAnRGVzY3JpYmVGbGVldEFkdmlzb3JEYXRhYmFzZXMnLFxuICAgICAgJ0Rlc2NyaWJlRmxlZXRBZHZpc29yTHNhQW5hbHlzaXMnLFxuICAgICAgJ0Rlc2NyaWJlRmxlZXRBZHZpc29yU2NoZW1hT2JqZWN0U3VtbWFyeScsXG4gICAgICAnRGVzY3JpYmVGbGVldEFkdmlzb3JTY2hlbWFzJyxcbiAgICAgICdEZXNjcmliZU1ldGFkYXRhTW9kZWwnLFxuICAgICAgJ0Rlc2NyaWJlTWV0YWRhdGFNb2RlbENoaWxkcmVuJyxcbiAgICAgICdEZXNjcmliZU1ldGFkYXRhTW9kZWxDcmVhdGlvbnMnLFxuICAgICAgJ0Rlc2NyaWJlTWV0YWRhdGFNb2RlbEltcG9ydHMnLFxuICAgICAgJ0Rlc2NyaWJlT3JkZXJhYmxlUmVwbGljYXRpb25JbnN0YW5jZXMnLFxuICAgICAgJ0Rlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9ucycsXG4gICAgICAnRGVzY3JpYmVSZWNvbW1lbmRhdGlvbkxpbWl0YXRpb25zJyxcbiAgICAgICdEZXNjcmliZVJlY29tbWVuZGF0aW9ucycsXG4gICAgICAnRGVzY3JpYmVSZWZyZXNoU2NoZW1hc1N0YXR1cycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3MnLFxuICAgICAgJ0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZVRhc2tMb2dzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uSW5zdGFuY2VzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uU3VibmV0R3JvdXBzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uVGFibGVTdGF0aXN0aWNzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSZXN1bHRzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW5zJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50cycsXG4gICAgICAnRGVzY3JpYmVSZXBsaWNhdGlvblRhc2tzJyxcbiAgICAgICdEZXNjcmliZVJlcGxpY2F0aW9ucycsXG4gICAgICAnRGVzY3JpYmVTY2hlbWFzJyxcbiAgICAgICdEZXNjcmliZVRhYmxlU3RhdGlzdGljcycsXG4gICAgICAnR2V0VGFyZ2V0U2VsZWN0aW9uUnVsZXMnLFxuICAgICAgJ0xpc3REYXRhUHJvdmlkZXJzJyxcbiAgICAgICdMaXN0RXh0ZW5zaW9uUGFja3MnLFxuICAgICAgJ0xpc3RJbnN0YW5jZVByb2ZpbGVzJyxcbiAgICAgICdMaXN0TWV0YWRhdGFNb2RlbEFzc2Vzc21lbnRBY3Rpb25JdGVtcycsXG4gICAgICAnTGlzdE1ldGFkYXRhTW9kZWxBc3Nlc3NtZW50cycsXG4gICAgICAnTGlzdE1ldGFkYXRhTW9kZWxDb252ZXJzaW9ucycsXG4gICAgICAnTGlzdE1ldGFkYXRhTW9kZWxFeHBvcnRzJyxcbiAgICAgICdMaXN0TWlncmF0aW9uUHJvamVjdHMnLFxuICAgICAgJ0xpc3RUYWdzRm9yUmVzb3VyY2UnLFxuICAgICAgJ1Rlc3RDb25uZWN0aW9uJ1xuICAgIF1cbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgQ2VydGlmaWNhdGUgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NlcnRpZmljYXRlLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZDZXJ0VGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkNlcnRpZmljYXRlKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Y2VydDokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIERhdGFQcm92aWRlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZEYXRhUHJvdmlkZXJUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uRGF0YVByb3ZpZGVyKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZGF0YS1wcm92aWRlcjokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIERhdGFNaWdyYXRpb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmRGF0YU1pZ3JhdGlvblRhZygpXG4gICAqL1xuICBwdWJsaWMgb25EYXRhTWlncmF0aW9uKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZGF0YS1taWdyYXRpb246JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBFbmRwb2ludCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRW5kcG9pbnQuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkVuZHBvaW50VGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkVuZHBvaW50KHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZW5kcG9pbnQ6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBFdmVudFN1YnNjcmlwdGlvbiB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kbXMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRXZlbnRTdWJzY3JpcHRpb24uaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkVzVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkV2ZW50U3Vic2NyaXB0aW9uKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZXM6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBJbnN0YW5jZVByb2ZpbGUgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmSW5zdGFuY2VQcm9maWxlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkluc3RhbmNlUHJvZmlsZShyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Omluc3RhbmNlLXByb2ZpbGU6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBNaWdyYXRpb25Qcm9qZWN0IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZk1pZ3JhdGlvblByb2plY3RUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uTWlncmF0aW9uUHJvamVjdChyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Om1pZ3JhdGlvbi1wcm9qZWN0OiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgUmVwbGljYXRpb25Db25maWcgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqIC0gLmlmUmVwbGljYXRpb25Db25maWdUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25Db25maWcocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZG1zOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpyZXBsaWNhdGlvbi1jb25maWc6JHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBSZXBsaWNhdGlvbkluc3RhbmNlIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZXBsaWNhdGlvbkluc3RhbmNlLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZSZXBUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25JbnN0YW5jZShyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnJlcDokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFJlcGxpY2F0aW9uU3VibmV0R3JvdXAgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JlcGxpY2F0aW9uU3VibmV0R3JvdXAuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZlN1YmdycFRhZygpXG4gICAqL1xuICBwdWJsaWMgb25SZXBsaWNhdGlvblN1Ym5ldEdyb3VwKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06c3ViZ3JwOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgUmVwbGljYXRpb25UYXNrIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZXBsaWNhdGlvblRhc2suaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZlRhc2tUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25UYXNrKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmRtczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06dGFzazokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFJlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JlcGxpY2F0aW9uVGFza0Fzc2Vzc21lbnRSdW4uaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkFzc2Vzc21lbnRSdW5UYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1bihyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmFzc2Vzc21lbnQtcnVuOiR7IHJlc291cmNlTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgUmVwbGljYXRpb25UYXNrSW5kaXZpZHVhbEFzc2Vzc21lbnQgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZJbmRpdmlkdWFsQXNzZXNzbWVudFRhZygpXG4gICAqL1xuICBwdWJsaWMgb25SZXBsaWNhdGlvblRhc2tJbmRpdmlkdWFsQXNzZXNzbWVudChyZXNvdXJjZU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpkbXM6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmluZGl2aWR1YWwtYXNzZXNzbWVudDokeyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfY29uZGl0aW9uLWtleXMuaHRtbCNjb25kaXRpb24ta2V5cy1yZXF1ZXN0dGFnXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9BZGRUYWdzVG9SZXNvdXJjZSgpXG4gICAqIC0gLnRvQ3JlYXRlRGF0YU1pZ3JhdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlRGF0YVByb3ZpZGVyKClcbiAgICogLSAudG9DcmVhdGVFbmRwb2ludCgpXG4gICAqIC0gLnRvQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb24oKVxuICAgKiAtIC50b0NyZWF0ZUluc3RhbmNlUHJvZmlsZSgpXG4gICAqIC0gLnRvQ3JlYXRlTWlncmF0aW9uUHJvamVjdCgpXG4gICAqIC0gLnRvQ3JlYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlUmVwbGljYXRpb25Db25maWcoKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uSW5zdGFuY2UoKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uU3VibmV0R3JvdXAoKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uVGFzaygpXG4gICAqIC0gLnRvSW1wb3J0Q2VydGlmaWNhdGUoKVxuICAgKiAtIC50b1JlbW92ZVRhZ3NGcm9tUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzUmVxdWVzdFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXF1ZXN0VGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgYXR0YWNoZWQgdG8gdGhlIHJlc291cmNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfY29uZGl0aW9uLWtleXMuaHRtbCNjb25kaXRpb24ta2V5cy1yZXNvdXJjZXRhZ1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWRkVGFnc1RvUmVzb3VyY2UoKVxuICAgKiAtIC50b0NyZWF0ZURhdGFNaWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZURhdGFQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlRW5kcG9pbnQoKVxuICAgKiAtIC50b0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uKClcbiAgICogLSAudG9DcmVhdGVJbnN0YW5jZVByb2ZpbGUoKVxuICAgKiAtIC50b0NyZWF0ZU1pZ3JhdGlvblByb2plY3QoKVxuICAgKiAtIC50b0NyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uQ29uZmlnKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblRhc2soKVxuICAgKiAtIC50b0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZVRhc2tMb2dzKClcbiAgICogLSAudG9JbXBvcnRDZXJ0aWZpY2F0ZSgpXG4gICAqIC0gLnRvUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZSgpXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gQ2VydGlmaWNhdGVcbiAgICogLSBEYXRhUHJvdmlkZXJcbiAgICogLSBEYXRhTWlncmF0aW9uXG4gICAqIC0gRW5kcG9pbnRcbiAgICogLSBFdmVudFN1YnNjcmlwdGlvblxuICAgKiAtIEluc3RhbmNlUHJvZmlsZVxuICAgKiAtIE1pZ3JhdGlvblByb2plY3RcbiAgICogLSBSZXBsaWNhdGlvbkNvbmZpZ1xuICAgKiAtIFJlcGxpY2F0aW9uSW5zdGFuY2VcbiAgICogLSBSZXBsaWNhdGlvblN1Ym5ldEdyb3VwXG4gICAqIC0gUmVwbGljYXRpb25UYXNrXG4gICAqIC0gUmVwbGljYXRpb25UYXNrQXNzZXNzbWVudFJ1blxuICAgKiAtIFJlcGxpY2F0aW9uVGFza0luZGl2aWR1YWxBc3Nlc3NtZW50XG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NSZXNvdXJjZVRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXNvdXJjZVRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5cyBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtdGFna2V5c1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWRkVGFnc1RvUmVzb3VyY2UoKVxuICAgKiAtIC50b0NyZWF0ZURhdGFNaWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZURhdGFQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlRW5kcG9pbnQoKVxuICAgKiAtIC50b0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uKClcbiAgICogLSAudG9DcmVhdGVJbnN0YW5jZVByb2ZpbGUoKVxuICAgKiAtIC50b0NyZWF0ZU1pZ3JhdGlvblByb2plY3QoKVxuICAgKiAtIC50b0NyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uQ29uZmlnKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblRhc2soKVxuICAgKiAtIC50b0Rlc2NyaWJlUmVwbGljYXRpb25JbnN0YW5jZVRhc2tMb2dzKClcbiAgICogLSAudG9JbXBvcnRDZXJ0aWZpY2F0ZSgpXG4gICAqIC0gLnRvUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZSgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzVGFnS2V5cyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXdzOlRhZ0tleXNgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgQXNzZXNzbWVudFJ1blxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX2Fzc2Vzc21lbnQtcnVuLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBSZXBsaWNhdGlvblRhc2tBc3Nlc3NtZW50UnVuXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBc3Nlc3NtZW50UnVuVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXNzZXNzbWVudC1ydW4tdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIENlcnRpZmljYXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS0tZG1zX2NlcnQtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIENlcnRpZmljYXRlXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZDZXJ0VGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgY2VydC10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgRGF0YU1pZ3JhdGlvblxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtLWRtc19kYXRhLW1pZ3JhdGlvbi10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gRGF0YU1pZ3JhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmRGF0YU1pZ3JhdGlvblRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGRhdGEtbWlncmF0aW9uLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBEYXRhUHJvdmlkZXJcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLS1kbXNfZHAtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIERhdGFQcm92aWRlclxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmRGF0YVByb3ZpZGVyVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgZGF0YS1wcm92aWRlci10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgRW5kcG9pbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLWRtc19lbmRwb2ludC10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gRW5kcG9pbnRcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkVuZHBvaW50VGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgZW5kcG9pbnQtdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIEV2ZW50U3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfZXMtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIEV2ZW50U3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZFc1RhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGVzLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBJbmRpdmlkdWFsQXNzZXNzbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX2luZGl2aWR1YWwtYXNzZXNzbWVudC10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gUmVwbGljYXRpb25UYXNrSW5kaXZpZHVhbEFzc2Vzc21lbnRcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluZGl2aWR1YWxBc3Nlc3NtZW50VGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgaW5kaXZpZHVhbC1hc3Nlc3NtZW50LXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBJbnN0YW5jZVByb2ZpbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLS1kbXNfaXAtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIEluc3RhbmNlUHJvZmlsZVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmSW5zdGFuY2VQcm9maWxlVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgaW5zdGFuY2UtcHJvZmlsZS10YWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcHJlc2VuY2Ugb2YgdGFnIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgcmVxdWVzdCBmb3IgTWlncmF0aW9uUHJvamVjdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtLWRtc19tcC10YWdfX19UYWdLZXlfXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gTWlncmF0aW9uUHJvamVjdFxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmTWlncmF0aW9uUHJvamVjdFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYG1pZ3JhdGlvbi1wcm9qZWN0LXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBSZXBsaWNhdGlvbkluc3RhbmNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfcmVwLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBSZXBsaWNhdGlvbkluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZSZXBUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGByZXAtdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIFJlcGxpY2F0aW9uQ29uZmlnXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfcmVwbGljYXRpb24tY29uZmlnLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBSZXBsaWNhdGlvbkNvbmZpZ1xuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmUmVwbGljYXRpb25Db25maWdUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGByZXBsaWNhdGlvbi1jb25maWctdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIGdpdmVuIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLmh0bWwjYXdzZGF0YWJhc2VtaWdyYXRpb25zZXJ2aWNlLWRtc19yZXEtdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWRkVGFnc1RvUmVzb3VyY2UoKVxuICAgKiAtIC50b0NyZWF0ZURhdGFNaWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZURhdGFQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlRW5kcG9pbnQoKVxuICAgKiAtIC50b0NyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uKClcbiAgICogLSAudG9DcmVhdGVJbnN0YW5jZVByb2ZpbGUoKVxuICAgKiAtIC50b0NyZWF0ZU1pZ3JhdGlvblByb2plY3QoKVxuICAgKiAtIC50b0NyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZVJlcGxpY2F0aW9uQ29uZmlnKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvbkluc3RhbmNlKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblN1Ym5ldEdyb3VwKClcbiAgICogLSAudG9DcmVhdGVSZXBsaWNhdGlvblRhc2soKVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmUmVxVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgcmVxLXRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmVzZW5jZSBvZiB0YWcga2V5LXZhbHVlIHBhaXJzIGluIHRoZSByZXF1ZXN0IGZvciBSZXBsaWNhdGlvblN1Ym5ldEdyb3VwXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sI2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS1kbXNfc3ViZ3JwLXRhZ19fX1RhZ0tleV9cbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBSZXBsaWNhdGlvblN1Ym5ldEdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZTdWJncnBUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBzdWJncnAtdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByZXNlbmNlIG9mIHRhZyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIHJlcXVlc3QgZm9yIFJlcGxpY2F0aW9uVGFza1xuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UuaHRtbCNhd3NkYXRhYmFzZW1pZ3JhdGlvbnNlcnZpY2UtZG1zX3Rhc2stdGFnX19fVGFnS2V5X1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIFJlcGxpY2F0aW9uVGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmVGFza1RhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHRhc2stdGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtkbXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFiYXNlbWlncmF0aW9uc2VydmljZS5odG1sKS5cbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogaWFtLlBvbGljeVN0YXRlbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG59XG4iXX0=