@aws-cdk/aws-bedrock-agentcore-alpha 2.231.0-alpha.0 → 2.232.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +73 -15
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +35 -0
- package/eslint-suppressions.json +2 -0
- package/lib/gateway/gateway-base.d.ts +0 -5
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.d.ts +0 -40
- package/lib/gateway/gateway.js +1 -1
- package/lib/gateway/inbound-auth/authorizer.d.ts +0 -13
- package/lib/gateway/inbound-auth/authorizer.js +3 -3
- package/lib/gateway/outbound-auth/api-key.d.ts +0 -39
- package/lib/gateway/outbound-auth/api-key.js +1 -1
- package/lib/gateway/outbound-auth/credential-provider.d.ts +1 -8
- package/lib/gateway/outbound-auth/credential-provider.js +2 -2
- package/lib/gateway/outbound-auth/iam-role.d.ts +1 -25
- package/lib/gateway/outbound-auth/oauth.d.ts +0 -35
- package/lib/gateway/protocol.d.ts +0 -23
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.d.ts +0 -23
- package/lib/gateway/targets/schema/api-schema.js +4 -4
- package/lib/gateway/targets/schema/base-schema.d.ts +1 -24
- package/lib/gateway/targets/schema/tool-schema.d.ts +0 -35
- package/lib/gateway/targets/schema/tool-schema.js +4 -4
- package/lib/gateway/targets/target-base.js +1 -1
- package/lib/gateway/targets/target-configuration.d.ts +0 -20
- package/lib/gateway/targets/target-configuration.js +7 -7
- package/lib/gateway/targets/target.d.ts +0 -33
- package/lib/gateway/targets/target.js +1 -1
- package/lib/gateway/validation-helpers.d.ts +0 -64
- package/lib/memory/memory-strategy.d.ts +0 -13
- package/lib/memory/memory-strategy.js +1 -1
- package/lib/memory/memory.d.ts +1 -15
- package/lib/memory/memory.js +3 -3
- package/lib/memory/strategies/managed-strategy.js +2 -2
- package/lib/memory/strategies/self-managed-strategy.d.ts +3 -3
- package/lib/memory/strategies/self-managed-strategy.js +14 -2
- package/lib/network/network-configuration.d.ts +0 -19
- package/lib/network/network-configuration.js +5 -6
- package/lib/runtime/runtime-artifact.d.ts +13 -8
- package/lib/runtime/runtime-artifact.js +49 -7
- package/lib/runtime/runtime-authorizer-configuration.d.ts +0 -6
- package/lib/runtime/runtime-authorizer-configuration.js +15 -3
- package/lib/runtime/runtime-base.d.ts +0 -6
- package/lib/runtime/runtime-base.js +1 -1
- package/lib/runtime/runtime-endpoint-base.js +1 -1
- package/lib/runtime/runtime-endpoint.d.ts +0 -15
- package/lib/runtime/runtime-endpoint.js +1 -1
- package/lib/runtime/runtime.d.ts +1 -21
- package/lib/runtime/runtime.js +3 -3
- package/lib/tools/browser.d.ts +1 -29
- package/lib/tools/browser.js +5 -5
- package/lib/tools/code-interpreter.d.ts +1 -27
- package/lib/tools/code-interpreter.js +5 -5
- package/package.json +9 -9
- package/.eslintrc.js +0 -4
package/lib/memory/memory.js
CHANGED
|
@@ -99,7 +99,7 @@ const MEMORY_EXPIRATION_DAYS_MAX = 365;
|
|
|
99
99
|
* Contains methods and attributes valid for Memories either created with CDK or imported.
|
|
100
100
|
*/
|
|
101
101
|
class MemoryBase extends aws_cdk_lib_1.Resource {
|
|
102
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.
|
|
102
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.232.0-alpha.0" };
|
|
103
103
|
constructor(scope, id) {
|
|
104
104
|
super(scope, id);
|
|
105
105
|
}
|
|
@@ -352,7 +352,7 @@ let Memory = (() => {
|
|
|
352
352
|
Memory = _classThis = _classDescriptor.value;
|
|
353
353
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
354
354
|
}
|
|
355
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.
|
|
355
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.232.0-alpha.0" };
|
|
356
356
|
/** Uniquely identifies this class. */
|
|
357
357
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Memory';
|
|
358
358
|
/**
|
|
@@ -661,4 +661,4 @@ let Memory = (() => {
|
|
|
661
661
|
return Memory = _classThis;
|
|
662
662
|
})();
|
|
663
663
|
exports.Memory = Memory;
|
|
664
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsNkNBQXlGO0FBR3pGLDJFQUE2RTtBQUM3RSwrREFNb0M7QUFDcEMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFLG1DQUFzQztBQUN0Qyw2REFBdUc7QUFFdkc7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQztBQUVoQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUNyQzs7O0dBR0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQztBQWlIdkM7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFzQixVQUFXLFNBQVEsc0JBQVE7O0lBYS9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbEI7SUFDRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDakQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7S0FDSjtJQUNEOzs7Ozs7O09BT0c7SUFDSCxV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QyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEOztZQTdUVSx1REFBTTs7Ozs7QUFBTix3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFybiwgQXJuRm9ybWF0LCBEdXJhdGlvbiwgSVJlc291cmNlLCBMYXp5LCBSZXNvdXJjZSwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQ29uc3RydWN0LCBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgQ2ZuTWVtb3J5LCBDZm5NZW1vcnlQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7XG4gIERpbWVuc2lvbnNNYXAsXG4gIE1ldHJpYyxcbiAgTWV0cmljT3B0aW9ucyxcbiAgTWV0cmljUHJvcHMsXG4gIFN0YXRzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuLy8gSW50ZXJuYWwgTGlic1xuaW1wb3J0IHsgSU1lbW9yeVN0cmF0ZWd5IH0gZnJvbSAnLi9tZW1vcnktc3RyYXRlZ3knO1xuaW1wb3J0IHsgTWVtb3J5UGVybXMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IHZhbGlkYXRlRmllbGRQYXR0ZXJuLCB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLCB0aHJvd0lmSW52YWxpZCB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgbmFtZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9OQU1FX01JTl9MRU5HVEggPSAxO1xuXG4vKipcbiAqIE1heGltdW0gbGVuZ3RoIGZvciBicm93c2VyIG5hbWVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRU1PUllfTkFNRV9NQVhfTEVOR1RIID0gNDg7XG5cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCA9IDE7XG5cbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9UQUdfTUFYX0xFTkdUSCA9IDI1NjtcblxuLyoqXG4gKiBNaW5pbXVtIGxlbmd0aCBmb3IgbWVtb3J5IGV4cGlyYXRpb24gZGF5c1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9FWFBJUkFUSU9OX0RBWVNfTUlOID0gNztcbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIG1lbW9yeSBleHBpcmF0aW9uIGRheXNcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRU1PUllfRVhQSVJBVElPTl9EQVlTX01BWCA9IDM2NTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIE1lbW9yeSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWVtb3J5IGV4dGVuZHMgSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBtZW1vcnkgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIG1lbW9yeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBtZW1vcnkgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG4gIC8qKlxuICAgKiBDdXN0b20gS01TIGtleSBmb3IgZW5jcnlwdGlvbiAoaWYgcHJvdmlkZWQpXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIG1lbW9yeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgbWVtb3J5IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIG1lbW9yeSB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gd3JpdGUgY29udGVudCB0byB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50V3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKiBCb3RoIFNob3J0LVRlcm0gTWVtb3J5IChTVE0pIGFuZCBMb25nLVRlcm0gTWVtb3J5IChMVE0pLlxuICAgKi9cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50UmVhZFNob3J0VGVybU1lbW9yeShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50UmVhZExvbmdUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50RGVsZXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgU2hvcnQtVGVybSBNZW1vcnkgKFNUTSkgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50RGVsZXRlU2hvcnRUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnREZWxldGVMb25nVGVybU1lbW9yeShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gbWFuYWdlIHRoZSBjb250cm9sIHBsYW5lIG9mIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnRBZG1pbihncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gZG8gZXZlcnkgYWN0aW9uIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnRGdWxsQWNjZXNzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgcmVsYXRlZCB0byB0aGUgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBtZW1vcnkuXG4gICAqL1xuICBtZXRyaWNGb3JBcGlPcGVyYXRpb24obWV0cmljTmFtZTogc3RyaW5nLCBvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljTGF0ZW5jeUZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBBUEkgcmVxdWVzdHMgbWFkZSBmb3IgYSBzcGVjaWZpYyBtZW1vcnkgb3BlcmF0aW9uLlxuICAgKi9cbiAgbWV0cmljSW52b2NhdGlvbnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNyZWF0ZWQgbWVtb3J5IGV2ZW50cyBhbmQgbWVtb3J5IHJlY29yZHMuXG4gICAqL1xuICBtZXRyaWNFdmVudENyZWF0aW9uQ291bnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIEFCU1RSQUNUIEJBU0UgQ0xBU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYSBNZW1vcnkuXG4gKiBDb250YWlucyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzIHZhbGlkIGZvciBNZW1vcmllcyBlaXRoZXIgY3JlYXRlZCB3aXRoIENESyBvciBpbXBvcnRlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1lbW9yeUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElNZW1vcnkge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5tZW1vcnlBcm5dLFxuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gd3JpdGUgY29udGVudCB0byBzaG9ydC10ZXJtIG1lbW9yeS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlRXZlbnQnXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uTWVtb3J5UGVybXMuU1RNLldSSVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICogQm90aCBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBhbmQgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6R2V0TWVtb3J5UmVjb3JkJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpSZXRyaWV2ZU1lbW9yeVJlY29yZHMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0QWN0b3JzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0U2Vzc2lvbnNdIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLlJFQURfUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIFNob3J0LVRlcm0gTWVtb3J5IChTVE0pIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpHZXRFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEV2ZW50cycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFjdG9ycycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdFNlc3Npb25zJyxdIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudFJlYWRTaG9ydFRlcm1NZW1vcnkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLlNUTS5SRUFEX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBMb25nLVRlcm0gTWVtb3J5IChMVE0pIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpHZXRNZW1vcnlSZWNvcmQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOlJldHJpZXZlTWVtb3J5UmVjb3JkcycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdE1lbW9yeVJlY29yZHMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RBY3RvcnMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RTZXNzaW9ucycsXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRSZWFkTG9uZ1Rlcm1NZW1vcnkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLkxUTS5SRUFEX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQm90aCBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBhbmQgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBkZWxldGUgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpEZWxldGVFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5UmVjb3JkJ10gb24gdGhpcy5tZW1vcnlBcm5cbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50RGVsZXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5ERUxFVEVfUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGRlbGV0ZSBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IGRlbGV0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUV2ZW50J10gb24gdGhpcy5tZW1vcnlBcm5cbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50RGVsZXRlU2hvcnRUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5TVE0uREVMRVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IGRlbGV0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZU1lbW9yeVJlY29yZCddIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudERlbGV0ZUxvbmdUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5MVE0uREVMRVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBtYW5hZ2UgdGhlIGNvbnRyb2wgcGxhbmUgb2YgdGhpcyBtZW1vcnkuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgYWRtaW4gcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVNZW1vcnknLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeScsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVNZW1vcnknXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRBZG1pbihncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uTWVtb3J5UGVybXMuQURNSU5fUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGRvIGV2ZXJ5IGFjdGlvbiBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBmdWxsIGFjY2VzcyBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkNyZWF0ZUV2ZW50JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpHZXRFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlRXZlbnQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeVJlY29yZCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6UmV0cmlldmVNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0TWVtb3J5UmVjb3JkcycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFjdG9ycycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdFNlc3Npb25zJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVNZW1vcnknLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeScsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVNZW1vcnknXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRGdWxsQWNjZXNzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5GVUxMX0FDQ0VTU19QRVJNUyk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgY29uc3QgbWV0cmljUHJvcHM6IE1ldHJpY1Byb3BzID0ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJyxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7IC4uLmRpbWVuc2lvbnMsIFJlc291cmNlOiB0aGlzLm1lbW9yeUFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyByZWxhdGVkIHRvIHRoZSBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNGb3JBcGlPcGVyYXRpb24oXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIHByb3BzPzogTWV0cmljT3B0aW9ucyxcbiAgKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMobWV0cmljTmFtZSwgeyBPcGVyYXRpb246IG9wZXJhdGlvbiB9LCBwcm9wcyk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgYSBzcGVjaWZpYyBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRvdGFsIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHJlY2VpdmluZyB0aGUgcmVxdWVzdCBhbmQgc2VuZGluZ1xuICAgKiB0aGUgZmluYWwgcmVzcG9uc2UgdG9rZW4sIG1lYXN1cmluZyBjb21wbGV0ZSBlbmQtdG8tZW5kIHByb2Nlc3NpbmcgdGltZS5cbiAgICpcbiAgICogRm9yIG1lbW9yeSBjcmVhdGlvbiBldmVudHMgc3BlY2lmaWNhbGx5LCB0aGlzIG1lYXN1cmVzIHRoZSB0aW1lIGZyb20gdGhlIGxhc3QgQ3JlYXRlRXZlbnRcbiAgICogdGhhdCBtZXQgc3RyYXRlZ3kgY3JpdGVyaWEgdW50aWwgbWVtb3J5IHN0b3JhZ2UgaXMgY29tcGxldGVkLlxuICAgKlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3lGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdMYXRlbmN5Jywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgQVBJIHJlcXVlc3RzIG1hZGUgZm9yIGEgc3BlY2lmaWMgbWVtb3J5IG9wZXJhdGlvbiBsaWtlXG4gICAqIGBDcmVhdGVFdmVudGAsIGBMaXN0RXZlbnRzYCwgYFJldHJpZXZlTWVtb3J5UmVjb3Jkc2AgLi4uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdJbnZvY2F0aW9ucycsIG9wZXJhdGlvbiwge1xuICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBlcnJvcnMgZm9yIGEgc3BlY2lmaWMgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZvckFwaU9wZXJhdGlvbignRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzaG9ydC10ZXJtIG1lbW9yeSBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXZlbnRDcmVhdGlvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDcmVhdGlvbkNvdW50JywgeyBJdGVtVHlwZTogJ0V2ZW50JyB9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsb25nLXRlcm0gbWVtb3J5IHJlY29yZHNcbiAgICogY3JlYXRlZCBieSB0aGUgbG9uZy10ZXJtIGV4dHJhY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNNZW1vcnlSZWNvcmRDcmVhdGlvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKFxuICAgICAgJ0NyZWF0aW9uQ291bnQnLFxuICAgICAgeyBJdGVtVHlwZTogJ01lbW9yeVJlY29yZHNFeHRyYWN0ZWQnIH0sXG4gICAgICB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9LFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBjcmVhdGUgYSBtZXRyaWMuXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZU1ldHJpYyhwcm9wczogTWV0cmljUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlZ2lvbjogcHJvcHM/LnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzPy5hY2NvdW50ID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFBST1BTIEZPUiBORVcgQ09OU1RSVUNUXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTWVtb3J5IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1lbW9yeVxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKVxuICAgKiBUaGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNhbiBiZSB1cCB0byA0OCBjaGFyYWN0ZXJzIGxvbmdcbiAgICogUGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFNob3J0LXRlcm0gbWVtb3J5IGV4cGlyYXRpb24gaW4gZGF5cyAoYmV0d2VlbiA3IGFuZCAzNjUpLlxuICAgKiBTZXRzIHRoZSBzaG9ydC10ZXJtIChyYXcgZXZlbnQpIG1lbW9yeSByZXRlbnRpb24uXG4gICAqIEV2ZW50cyBvbGRlciB0aGFuIHRoZSBzcGVjaWZpZWQgZHVyYXRpb24gd2lsbCBleHBpcmUgYW5kIG5vIGxvbmdlciBiZSBzdG9yZWQuXG4gICAqIEBkZWZhdWx0IC0gOTAgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgZXhwaXJhdGlvbkR1cmF0aW9uPzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIG1lbW9yeVxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKSwgLSAoaHlwaGVuKSBhbmQgc3BhY2VzXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAyMDAgY2hhcmFjdGVyc1xuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi5cbiAgICogQGRlZmF1bHQgLSBZb3VyIGRhdGEgaXMgZW5jcnlwdGVkIHdpdGggYSBrZXkgdGhhdCBBV1Mgb3ducyBhbmQgbWFuYWdlcyBmb3IgeW91XG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgLyoqXG4gICAqIElmIHlvdSBuZWVkIGxvbmctdGVybSBtZW1vcnkgZm9yIGNvbnRleHQgcmVjYWxsIGFjcm9zcyBzZXNzaW9ucyxcbiAgICogeW91IGNhbiBzZXR1cCBtZW1vcnkgZXh0cmFjdGlvbiBzdHJhdGVnaWVzIHRvIGV4dHJhY3QgdGhlIHJlbGV2YW50IG1lbW9yeSBmcm9tIHRoZSByYXcgZXZlbnRzLlxuICAgKiBAZGVmYXVsdCAtIE5vIGV4dHJhY3Rpb24gc3RyYXRlZ2llcyAoc2hvcnQgdGVybSBtZW1vcnkgb25seSlcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVN0cmF0ZWdpZXM/OiBJTWVtb3J5U3RyYXRlZ3lbXTtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHByb3ZpZGVzIHBlcm1pc3Npb25zIGZvciB0aGUgbWVtb3J5IHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICogd2hlbiB1c2luZyBjdXN0b20gc3RyYXRlZ2llcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyByb2xlIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG4gIC8qKlxuICAgKiBUYWdzIChvcHRpb25hbClcbiAgICogQSBsaXN0IG9mIGtleTp2YWx1ZSBwYWlycyBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoaXMgbWVtb3J5IHJlc291cmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgIEFUVFJTIEZPUiBJTVBPUlRFRCBDT05TVFJVQ1RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQXR0cmlidXRlcyBmb3Igc3BlY2lmeWluZyBhbiBpbXBvcnRlZCBNZW1vcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBtZW1vcnkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB0byB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgbWVtb3J5IHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIE5vIGxhc3QgdXBkYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtZW1vcnlcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gQW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIG1lbW9yeS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gc3RhdHVzIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3JlYXRlZCB0aW1lc3RhbXAgb2YgdGhlIG1lbW9yeS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gY3JlYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIExvbmctdGVybSBtZW1vcnkgc3RvcmUgZm9yIGV4dHJhY3RlZCBpbnNpZ2h0cyBsaWtlIHVzZXIgcHJlZmVyZW5jZXMsIHNlbWFudGljIGZhY3RzIGFuZCBzdW1tYXJpZXMuXG4gKiBFbmFibGVzIGtub3dsZWRnZSByZXRlbnRpb24gYWNyb3NzIHNlc3Npb25zIGJ5IHN0b3JpbmcgdXNlciBwcmVmZXJlbmNlcyAoZS5nLiBjb2Rpbmcgc3R5bGUpLFxuICogc2VtYW50aWMgZmFjdHMgKGUuZy4gbGVhcm5lZCBpbmZvKSBhbmQgaW50ZXJhY3Rpb24gc3VtbWFyaWVzIGZvciBjb250ZXh0IG9wdGltaXphdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvbWVtb3J5Lmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkJlZHJvY2tBZ2VudENvcmU6Ok1lbW9yeVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgTWVtb3J5IGV4dGVuZHMgTWVtb3J5QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWJlZHJvY2stYWdlbnRjb3JlLWFscGhhLk1lbW9yeSc7XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBNZXRob2QgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBCZWRyb2NrIEFnZW50Q29yZSBNZW1vcnkuXG4gICAqL1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBNZW1vcnkgcmVmZXJlbmNlIGZyb20gYW4gZXhpc3RpbmcgbWVtb3J5J3MgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgLSBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIC0gQXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgYnJvd3NlciBjdXN0b21cbiAgICogQHJldHVybnMgQW4gSUJyb3dzZXJDdXN0b20gcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21NZW1vcnlBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBNZW1vcnlBdHRyaWJ1dGVzKTogSU1lbW9yeSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgTWVtb3J5QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5QXJuID0gYXR0cnMubWVtb3J5QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1lbW9yeUlkID0gQXJuLnNwbGl0KGF0dHJzLm1lbW9yeUFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHNjb3BlLCBgJHtpZH1Sb2xlYCwgYXR0cnMucm9sZUFybik7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkga21zS2V5ID0gYXR0cnMua21zS2V5QXJuID8ga21zLktleS5mcm9tS2V5QXJuKHNjb3BlLCBgJHtpZH1LZXlgLCBhdHRycy5rbXNLZXlBcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IGF0dHJzLnVwZGF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gYXR0cnMuY3JlYXRlZEF0O1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpKTtcblxuICAgICAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5leGVjdXRpb25Sb2xlIHx8IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBuZXcgTWVtb3J5XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBBdHRyaWJ1dGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgbWVtb3J5IHJlc291cmNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBtZW1vcnkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGV4cGlyYXRpb24gZGF5cyBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4cGlyYXRpb25EdXJhdGlvbj86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIGZhaWx1cmUgcmVhc29uIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmYWlsdXJlUmVhc29uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgb2YgdGhlIG1lbW9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25Sb2xlPzogaWFtLklSb2xlO1xuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjcmVhdGVkIHRpbWVzdGFtcCBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1cGRhdGVkIGF0IHRpbWVzdGFtcCBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRhZ3MgYXBwbGllZCB0byB0aGlzIGJyb3dzZXIgcmVzb3VyY2VcbiAgICogQSBtYXAgb2Yga2V5LXZhbHVlIHBhaXJzIGZvciByZXNvdXJjZSB0YWdnaW5nXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFncyBhcHBsaWVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG4gIC8qKlxuICAgKiBUaGUgbWVtb3J5IHN0cmF0ZWdpZXMgdXNlZCBieSB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5U3RyYXRlZ2llczogSU1lbW9yeVN0cmF0ZWd5W10gPSBbXTtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEludGVybmFsIE9ubHlcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgcmVhZG9ubHkgX19yZXNvdXJjZTogQ2ZuTWVtb3J5O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDT05TVFJVQ1RPUlxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1lbW9yeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNldCBwcm9wZXJ0aWVzIGFuZCBkZWZhdWx0c1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRoaXMubWVtb3J5TmFtZSA9IHByb3BzLm1lbW9yeU5hbWU7XG4gICAgdGhpcy5leHBpcmF0aW9uRHVyYXRpb24gPSBwcm9wcy5leHBpcmF0aW9uRHVyYXRpb24gPz8gRHVyYXRpb24uZGF5cyg5MCk7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMua21zS2V5ID0gcHJvcHMua21zS2V5O1xuICAgIHRoaXMuZXhlY3V0aW9uUm9sZSA9IHByb3BzLmV4ZWN1dGlvblJvbGUgPz8gdGhpcy5fY3JlYXRlTWVtb3J5Um9sZSgpO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLmV4ZWN1dGlvblJvbGU7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFBlcm1pc3Npb25zXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRm9yIEtNUyBwZXJtaXNzaW9ucyBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9zdG9yYWdlLWVuY3J5cHRpb24uaHRtbFxuICAgIGlmICh0aGlzLmttc0tleSkge1xuICAgICAgdGhpcy5rbXNLZXkuZ3JhbnQodGhpcy5leGVjdXRpb25Sb2xlLFxuICAgICAgICAna21zOkNyZWF0ZUdyYW50JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgJ2ttczpEZXNjcmliZUtleScsXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0JyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHQqJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVmFsaWRhdGlvbnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW9yeSBuYW1lXG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVNZW1vcnlOYW1lLCB0aGlzLm1lbW9yeU5hbWUsIHRoaXMpO1xuXG4gICAgLy8gVmFsaWRhdGUgZXhwaXJhdGlvbiBkdXJhdGlvblxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5RXhwaXJhdGlvbkRheXMsIHRoaXMuZXhwaXJhdGlvbkR1cmF0aW9uLnRvRGF5cygpKTtcblxuICAgIC8vIFZhbGlkYXRlIG1lbW9yeSB0YWdzXG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVNZW1vcnlUYWdzLCB0aGlzLnRhZ3MsIHRoaXMpO1xuXG4gICAgLy8gTWVtb3J5IHN0cmF0ZWdpZXMgYXJlIGFscmVhZHkgdmFsaWRhdGVkIHdoZW4gYnVpbGRpbmcgdGhlbSwgc28gbm8gbmVlZCB0byB2YWxpZGF0ZSB0aGVtIGhlcmVcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENGTiBQcm9wcyAtIFdpdGggTGF6eSBzdXBwb3J0XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2ZuUHJvcHM6IENmbk1lbW9yeVByb3BzID0ge1xuICAgICAgbmFtZTogdGhpcy5tZW1vcnlOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBldmVudEV4cGlyeUR1cmF0aW9uOiB0aGlzLmV4cGlyYXRpb25EdXJhdGlvbi50b0RheXMoKSxcbiAgICAgIGVuY3J5cHRpb25LZXlBcm46IHRoaXMua21zS2V5Py5rZXlBcm4sXG4gICAgICBtZW1vcnlFeGVjdXRpb25Sb2xlQXJuOiB0aGlzLmV4ZWN1dGlvblJvbGU/LnJvbGVBcm4sXG4gICAgICBtZW1vcnlTdHJhdGVnaWVzOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuX3JlbmRlck1lbW9yeVN0cmF0ZWdpZXMoKSB9LCB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0pLFxuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDRk4gUmVzb3VyY2VcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLl9fcmVzb3VyY2UgPSBuZXcgQ2ZuTWVtb3J5KHRoaXMsICdNZW1vcnknLCBjZm5Qcm9wcyk7XG5cbiAgICB0aGlzLm1lbW9yeUlkID0gdGhpcy5fX3Jlc291cmNlLmF0dHJNZW1vcnlJZDtcbiAgICB0aGlzLm1lbW9yeUFybiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyTWVtb3J5QXJuO1xuICAgIHRoaXMuc3RhdHVzID0gdGhpcy5fX3Jlc291cmNlLmF0dHJTdGF0dXM7XG4gICAgdGhpcy51cGRhdGVkQXQgPSB0aGlzLl9fcmVzb3VyY2UuYXR0clVwZGF0ZWRBdDtcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMuX19yZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMuZmFpbHVyZVJlYXNvbiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyRmFpbHVyZVJlYXNvbjtcblxuICAgIC8vIEFkZCBtZW1vcnkgc3RyYXRlZ2llcyB0byB0aGUgbWVtb3J5XG4gICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBwcm9wcy5tZW1vcnlTdHJhdGVnaWVzID8/IFtdKSB7dGhpcy5hZGRNZW1vcnlTdHJhdGVneShzdHJhdGVneSk7fVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhFTFBFUiBNRVRIT0RTIC0gYWRkWCgpXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogQWRkIG1lbW9yeSBzdHJhdGVneSB0byB0aGUgbWVtb3J5LlxuICAgKiBAZGVmYXVsdCAtIE5vIG1lbW9yeSBzdHJhdGVnaWVzLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZE1lbW9yeVN0cmF0ZWd5KG1lbW9yeVN0cmF0ZWd5OiBJTWVtb3J5U3RyYXRlZ3kpIHtcbiAgICAvLyBBZGQgdGhlIG1lbW9yeSBzdHJhdGVneSB0byB0aGUgbWVtb3J5XG4gICAgdGhpcy5tZW1vcnlTdHJhdGVnaWVzLnB1c2gobWVtb3J5U3RyYXRlZ3kpO1xuXG4gICAgLy8gR3JhbnQgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIHRoZSBleGVjdXRpb24gcm9sZVxuICAgIGNvbnN0IGdyYW50ID0gbWVtb3J5U3RyYXRlZ3kuZ3JhbnQodGhpcy5leGVjdXRpb25Sb2xlIGFzIGlhbS5JUm9sZSk7XG4gICAgZ3JhbnQ/LmFwcGx5QmVmb3JlKHRoaXMuX19yZXNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBleGVjdXRpb24gcm9sZSBuZWVkZWQgZm9yIHRoZSBtZW1vcnkgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCByb2xlXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlTWVtb3J5Um9sZSgpOiBpYW0uSVJvbGUge1xuICAgIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1NlcnZpY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2JlZHJvY2stYWdlbnRjb3JlLmFtYXpvbmF3cy5jb20nKSxcbiAgICB9KTtcblxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFZBTElEQVRPUlNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSB0YWdzIGZvcm1hdFxuICAgKiBAcGFyYW0gdGFncyBUaGUgdGFncyBvYmplY3QgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5VGFncyA9ICh0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCF0YWdzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzOyAvLyBUYWdzIGFyZSBvcHRpb25hbFxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGVhY2ggdGFnIGtleSBhbmQgdmFsdWVcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YWdzKSkge1xuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCh7XG4gICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgIGZpZWxkTmFtZTogJ1RhZyBrZXknLFxuICAgICAgICBtaW5MZW5ndGg6IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9LCBzY29wZSkpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcga2V5IHBhdHRlcm46IF5bYS16QS1aMC05XFxzLl86Lz0rQC1dKiRcbiAgICAgIGNvbnN0IHZhbGlkS2V5UGF0dGVybiA9IC9eW2EtekEtWjAtOVxccy5fOi89K0AtXSokLztcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKGtleSwgJ1RhZyBrZXknLCB2YWxpZEtleVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgICAgLy8gVmFsaWRhdGUgdGFnIHZhbHVlXG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBmaWVsZE5hbWU6ICdUYWcgdmFsdWUnLFxuICAgICAgICBtaW5MZW5ndGg6IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9LCBzY29wZSkpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWUgcGF0dGVybjogXlthLXpBLVowLTlcXHMuXzovPStALV0qJFxuICAgICAgY29uc3QgdmFsaWRWYWx1ZVBhdHRlcm4gPSAvXlthLXpBLVowLTlcXHMuXzovPStALV0qJC87XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybih2YWx1ZSwgJ1RhZyB2YWx1ZScsIHZhbGlkVmFsdWVQYXR0ZXJuLCB1bmRlZmluZWQsIHNjb3BlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBtZW1vcnkgbmFtZSBmb3JtYXRcbiAgICogQHBhcmFtIG5hbWUgVGhlIG1lbW9yeSBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZU1lbW9yeU5hbWUgPSAobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdNZW1vcnkgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IE1FTU9SWV9OQU1FX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdNZW1vcnkgbmFtZScsIHZhbGlkTmFtZVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtb3J5IGV4cGlyYXRpb24gZGF5c1xuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRheXMgVGhlIG1lbW9yeSBleHBpcmF0aW9uIGRheXMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5RXhwaXJhdGlvbkRheXMgPSAoZXhwaXJhdGlvbkRheXM6IG51bWJlcik6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChleHBpcmF0aW9uRGF5cykpIHtcbiAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKGV4cGlyYXRpb25EYXlzIDwgTUVNT1JZX0VYUElSQVRJT05fREFZU19NSU4gfHwgZXhwaXJhdGlvbkRheXMgPiBNRU1PUllfRVhQSVJBVElPTl9EQVlTX01BWCkge1xuICAgICAgZXJyb3JzLnB1c2goYE1lbW9yeSBleHBpcmF0aW9uIGRheXMgbXVzdCBiZSBiZXR3ZWVuICR7TUVNT1JZX0VYUElSQVRJT05fREFZU19NSU59IGFuZCAke01FTU9SWV9FWFBJUkFUSU9OX0RBWVNfTUFYfWApO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFJFTkRFUkVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgbWVtb3J5IHN0cmF0ZWdpZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIE1lbW9yeVN0cmF0ZWd5UHJvcGVydHkgb2JqZWN0cyBpbiBDbG91ZEZvcm1hdGlvbiBmb3JtYXQsIG9yIHVuZGVmaW5lZCBpZiBubyBzdHJhdGVnaWVzIGFyZSBkZWZpbmVkXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIGlmIG5vIHN0cmF0ZWdpZXMgYXJlIGRlZmluZWQgb3IgYXJyYXkgaXMgZW1wdHlcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJNZW1vcnlTdHJhdGVnaWVzKCk6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuTWVtb3J5Lk1lbW9yeVN0cmF0ZWd5UHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLm1lbW9yeVN0cmF0ZWdpZXMgfHwgdGhpcy5tZW1vcnlTdHJhdGVnaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tZW1vcnlTdHJhdGVnaWVzLm1hcChtcyA9PiBtcy5yZW5kZXIoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
664
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsNkNBQXlGO0FBRXpGLDJFQUE2RTtBQUM3RSwrREFNb0M7QUFDcEMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBSTFFLG1DQUFzQztBQUN0Qyw2REFBdUc7QUFFdkc7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQztBQUVoQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUNyQzs7O0dBR0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQztBQWlIdkM7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFzQixVQUFXLFNBQVEsc0JBQVE7O0lBYS9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbEI7SUFDRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDakQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7S0FDSjtJQUNEOzs7Ozs7O09BT0c7SUFDSCxV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QyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEOztZQTdUVSx1REFBTTs7Ozs7QUFBTix3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFybiwgQXJuRm9ybWF0LCBEdXJhdGlvbiwgSVJlc291cmNlLCBMYXp5LCBSZXNvdXJjZSwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBiZWRyb2NrYWdlbnRjb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7IENmbk1lbW9yeSwgQ2ZuTWVtb3J5UHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQge1xuICBEaW1lbnNpb25zTWFwLFxuICBNZXRyaWMsXG4gIE1ldHJpY09wdGlvbnMsXG4gIE1ldHJpY1Byb3BzLFxuICBTdGF0cyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IElDb25zdHJ1Y3QsIENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuLy8gSW50ZXJuYWwgTGlic1xuaW1wb3J0IHsgSU1lbW9yeVN0cmF0ZWd5IH0gZnJvbSAnLi9tZW1vcnktc3RyYXRlZ3knO1xuaW1wb3J0IHsgTWVtb3J5UGVybXMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IHZhbGlkYXRlRmllbGRQYXR0ZXJuLCB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLCB0aHJvd0lmSW52YWxpZCB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgbmFtZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9OQU1FX01JTl9MRU5HVEggPSAxO1xuXG4vKipcbiAqIE1heGltdW0gbGVuZ3RoIGZvciBicm93c2VyIG5hbWVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRU1PUllfTkFNRV9NQVhfTEVOR1RIID0gNDg7XG5cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCA9IDE7XG5cbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9UQUdfTUFYX0xFTkdUSCA9IDI1NjtcblxuLyoqXG4gKiBNaW5pbXVtIGxlbmd0aCBmb3IgbWVtb3J5IGV4cGlyYXRpb24gZGF5c1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FTU9SWV9FWFBJUkFUSU9OX0RBWVNfTUlOID0gNztcbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIG1lbW9yeSBleHBpcmF0aW9uIGRheXNcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRU1PUllfRVhQSVJBVElPTl9EQVlTX01BWCA9IDM2NTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIE1lbW9yeSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWVtb3J5IGV4dGVuZHMgSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBtZW1vcnkgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIG1lbW9yeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBtZW1vcnkgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG4gIC8qKlxuICAgKiBDdXN0b20gS01TIGtleSBmb3IgZW5jcnlwdGlvbiAoaWYgcHJvdmlkZWQpXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIG1lbW9yeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgbWVtb3J5IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIG1lbW9yeSB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gd3JpdGUgY29udGVudCB0byB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50V3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKiBCb3RoIFNob3J0LVRlcm0gTWVtb3J5IChTVE0pIGFuZCBMb25nLVRlcm0gTWVtb3J5IChMVE0pLlxuICAgKi9cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50UmVhZFNob3J0VGVybU1lbW9yeShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50UmVhZExvbmdUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50RGVsZXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgU2hvcnQtVGVybSBNZW1vcnkgKFNUTSkgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIGdyYW50RGVsZXRlU2hvcnRUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnREZWxldGVMb25nVGVybU1lbW9yeShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gbWFuYWdlIHRoZSBjb250cm9sIHBsYW5lIG9mIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnRBZG1pbihncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gZG8gZXZlcnkgYWN0aW9uIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgZ3JhbnRGdWxsQWNjZXNzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgcmVsYXRlZCB0byB0aGUgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBtZW1vcnkuXG4gICAqL1xuICBtZXRyaWNGb3JBcGlPcGVyYXRpb24obWV0cmljTmFtZTogc3RyaW5nLCBvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljTGF0ZW5jeUZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBBUEkgcmVxdWVzdHMgbWFkZSBmb3IgYSBzcGVjaWZpYyBtZW1vcnkgb3BlcmF0aW9uLlxuICAgKi9cbiAgbWV0cmljSW52b2NhdGlvbnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgbWVtb3J5LlxuICAgKi9cbiAgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNyZWF0ZWQgbWVtb3J5IGV2ZW50cyBhbmQgbWVtb3J5IHJlY29yZHMuXG4gICAqL1xuICBtZXRyaWNFdmVudENyZWF0aW9uQ291bnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIEFCU1RSQUNUIEJBU0UgQ0xBU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYSBNZW1vcnkuXG4gKiBDb250YWlucyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzIHZhbGlkIGZvciBNZW1vcmllcyBlaXRoZXIgY3JlYXRlZCB3aXRoIENESyBvciBpbXBvcnRlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1lbW9yeUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElNZW1vcnkge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5tZW1vcnlBcm5dLFxuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBwcmluY2lwYWwgaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gd3JpdGUgY29udGVudCB0byBzaG9ydC10ZXJtIG1lbW9yeS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlRXZlbnQnXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uTWVtb3J5UGVybXMuU1RNLldSSVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lbW9yeS5cbiAgICogQm90aCBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBhbmQgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6R2V0TWVtb3J5UmVjb3JkJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpSZXRyaWV2ZU1lbW9yeVJlY29yZHMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0QWN0b3JzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0U2Vzc2lvbnNdIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLlJFQURfUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIFNob3J0LVRlcm0gTWVtb3J5IChTVE0pIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpHZXRFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEV2ZW50cycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFjdG9ycycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdFNlc3Npb25zJyxdIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudFJlYWRTaG9ydFRlcm1NZW1vcnkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLlNUTS5SRUFEX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBMb25nLVRlcm0gTWVtb3J5IChMVE0pIGNvbnRlbnRzIG9mIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpHZXRNZW1vcnlSZWNvcmQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOlJldHJpZXZlTWVtb3J5UmVjb3JkcycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdE1lbW9yeVJlY29yZHMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RBY3RvcnMnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RTZXNzaW9ucycsXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRSZWFkTG9uZ1Rlcm1NZW1vcnkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsIC4uLk1lbW9yeVBlcm1zLkxUTS5SRUFEX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgY29udGVudCBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQm90aCBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBhbmQgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBkZWxldGUgcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpEZWxldGVFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5UmVjb3JkJ10gb24gdGhpcy5tZW1vcnlBcm5cbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50RGVsZXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5ERUxFVEVfUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGRlbGV0ZSBTaG9ydC1UZXJtIE1lbW9yeSAoU1RNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IGRlbGV0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUV2ZW50J10gb24gdGhpcy5tZW1vcnlBcm5cbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50RGVsZXRlU2hvcnRUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5TVE0uREVMRVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBkZWxldGUgTG9uZy1UZXJtIE1lbW9yeSAoTFRNKSBjb250ZW50IG9uIHRoaXMgbWVtb3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IGRlbGV0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZU1lbW9yeVJlY29yZCddIG9uIHRoaXMubWVtb3J5QXJuXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBncmFudERlbGV0ZUxvbmdUZXJtTWVtb3J5KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5MVE0uREVMRVRFX1BFUk1TKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIHByaW5jaXBhbCBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBtYW5hZ2UgdGhlIGNvbnRyb2wgcGxhbmUgb2YgdGhpcyBtZW1vcnkuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgYWRtaW4gcGVybWlzc2lvbnMgdG9cbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IGdyYW50IGNvbmZpZ3VyYXRpb246XG4gICAqIC0gYWN0aW9uczogWydiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVNZW1vcnknLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeScsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVNZW1vcnknXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRBZG1pbihncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uTWVtb3J5UGVybXMuQURNSU5fUEVSTVMpO1xuICB9XG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gcHJpbmNpcGFsIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGRvIGV2ZXJ5IGFjdGlvbiBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBmdWxsIGFjY2VzcyBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkNyZWF0ZUV2ZW50JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpHZXRFdmVudCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlRXZlbnQnLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeVJlY29yZCcsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6UmV0cmlldmVNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0TWVtb3J5UmVjb3JkcycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEFjdG9ycycsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdFNlc3Npb25zJyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVNZW1vcnknLFxuICAgICAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldE1lbW9yeScsXG4gICAgICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlTWVtb3J5JyxcbiAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVNZW1vcnknXSBvbiB0aGlzLm1lbW9yeUFyblxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnRGdWxsQWNjZXNzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5NZW1vcnlQZXJtcy5GVUxMX0FDQ0VTU19QRVJNUyk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgY29uc3QgbWV0cmljUHJvcHM6IE1ldHJpY1Byb3BzID0ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJyxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7IC4uLmRpbWVuc2lvbnMsIFJlc291cmNlOiB0aGlzLm1lbW9yeUFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyByZWxhdGVkIHRvIHRoZSBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIG1lbW9yeS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNGb3JBcGlPcGVyYXRpb24oXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIHByb3BzPzogTWV0cmljT3B0aW9ucyxcbiAgKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMobWV0cmljTmFtZSwgeyBPcGVyYXRpb246IG9wZXJhdGlvbiB9LCBwcm9wcyk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgYSBzcGVjaWZpYyBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIG1lbW9yeS5cbiAgICpcbiAgICogVGhlIGxhdGVuY3kgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRvdGFsIHRpbWUgZWxhcHNlZCBiZXR3ZWVuIHJlY2VpdmluZyB0aGUgcmVxdWVzdCBhbmQgc2VuZGluZ1xuICAgKiB0aGUgZmluYWwgcmVzcG9uc2UgdG9rZW4sIG1lYXN1cmluZyBjb21wbGV0ZSBlbmQtdG8tZW5kIHByb2Nlc3NpbmcgdGltZS5cbiAgICpcbiAgICogRm9yIG1lbW9yeSBjcmVhdGlvbiBldmVudHMgc3BlY2lmaWNhbGx5LCB0aGlzIG1lYXN1cmVzIHRoZSB0aW1lIGZyb20gdGhlIGxhc3QgQ3JlYXRlRXZlbnRcbiAgICogdGhhdCBtZXQgc3RyYXRlZ3kgY3JpdGVyaWEgdW50aWwgbWVtb3J5IHN0b3JhZ2UgaXMgY29tcGxldGVkLlxuICAgKlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3lGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdMYXRlbmN5Jywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgQVBJIHJlcXVlc3RzIG1hZGUgZm9yIGEgc3BlY2lmaWMgbWVtb3J5IG9wZXJhdGlvbiBsaWtlXG4gICAqIGBDcmVhdGVFdmVudGAsIGBMaXN0RXZlbnRzYCwgYFJldHJpZXZlTWVtb3J5UmVjb3Jkc2AgLi4uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdJbnZvY2F0aW9ucycsIG9wZXJhdGlvbiwge1xuICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBlcnJvcnMgZm9yIGEgc3BlY2lmaWMgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZvckFwaU9wZXJhdGlvbignRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzaG9ydC10ZXJtIG1lbW9yeSBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXZlbnRDcmVhdGlvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDcmVhdGlvbkNvdW50JywgeyBJdGVtVHlwZTogJ0V2ZW50JyB9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsb25nLXRlcm0gbWVtb3J5IHJlY29yZHNcbiAgICogY3JlYXRlZCBieSB0aGUgbG9uZy10ZXJtIGV4dHJhY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNNZW1vcnlSZWNvcmRDcmVhdGlvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKFxuICAgICAgJ0NyZWF0aW9uQ291bnQnLFxuICAgICAgeyBJdGVtVHlwZTogJ01lbW9yeVJlY29yZHNFeHRyYWN0ZWQnIH0sXG4gICAgICB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9LFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBjcmVhdGUgYSBtZXRyaWMuXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZU1ldHJpYyhwcm9wczogTWV0cmljUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlZ2lvbjogcHJvcHM/LnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzPy5hY2NvdW50ID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFBST1BTIEZPUiBORVcgQ09OU1RSVUNUXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTWVtb3J5IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1lbW9yeVxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKVxuICAgKiBUaGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNhbiBiZSB1cCB0byA0OCBjaGFyYWN0ZXJzIGxvbmdcbiAgICogUGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFNob3J0LXRlcm0gbWVtb3J5IGV4cGlyYXRpb24gaW4gZGF5cyAoYmV0d2VlbiA3IGFuZCAzNjUpLlxuICAgKiBTZXRzIHRoZSBzaG9ydC10ZXJtIChyYXcgZXZlbnQpIG1lbW9yeSByZXRlbnRpb24uXG4gICAqIEV2ZW50cyBvbGRlciB0aGFuIHRoZSBzcGVjaWZpZWQgZHVyYXRpb24gd2lsbCBleHBpcmUgYW5kIG5vIGxvbmdlciBiZSBzdG9yZWQuXG4gICAqIEBkZWZhdWx0IC0gOTAgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgZXhwaXJhdGlvbkR1cmF0aW9uPzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIG1lbW9yeVxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKSwgLSAoaHlwaGVuKSBhbmQgc3BhY2VzXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAyMDAgY2hhcmFjdGVyc1xuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi5cbiAgICogQGRlZmF1bHQgLSBZb3VyIGRhdGEgaXMgZW5jcnlwdGVkIHdpdGggYSBrZXkgdGhhdCBBV1Mgb3ducyBhbmQgbWFuYWdlcyBmb3IgeW91XG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgLyoqXG4gICAqIElmIHlvdSBuZWVkIGxvbmctdGVybSBtZW1vcnkgZm9yIGNvbnRleHQgcmVjYWxsIGFjcm9zcyBzZXNzaW9ucyxcbiAgICogeW91IGNhbiBzZXR1cCBtZW1vcnkgZXh0cmFjdGlvbiBzdHJhdGVnaWVzIHRvIGV4dHJhY3QgdGhlIHJlbGV2YW50IG1lbW9yeSBmcm9tIHRoZSByYXcgZXZlbnRzLlxuICAgKiBAZGVmYXVsdCAtIE5vIGV4dHJhY3Rpb24gc3RyYXRlZ2llcyAoc2hvcnQgdGVybSBtZW1vcnkgb25seSlcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVN0cmF0ZWdpZXM/OiBJTWVtb3J5U3RyYXRlZ3lbXTtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHByb3ZpZGVzIHBlcm1pc3Npb25zIGZvciB0aGUgbWVtb3J5IHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICogd2hlbiB1c2luZyBjdXN0b20gc3RyYXRlZ2llcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyByb2xlIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG4gIC8qKlxuICAgKiBUYWdzIChvcHRpb25hbClcbiAgICogQSBsaXN0IG9mIGtleTp2YWx1ZSBwYWlycyBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoaXMgbWVtb3J5IHJlc291cmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgIEFUVFJTIEZPUiBJTVBPUlRFRCBDT05TVFJVQ1RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQXR0cmlidXRlcyBmb3Igc3BlY2lmeWluZyBhbiBpbXBvcnRlZCBNZW1vcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBtZW1vcnkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB0byB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgbWVtb3J5IHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIE5vIGxhc3QgdXBkYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtZW1vcnlcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gQW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIG1lbW9yeS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gc3RhdHVzIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3JlYXRlZCB0aW1lc3RhbXAgb2YgdGhlIG1lbW9yeS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gY3JlYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIExvbmctdGVybSBtZW1vcnkgc3RvcmUgZm9yIGV4dHJhY3RlZCBpbnNpZ2h0cyBsaWtlIHVzZXIgcHJlZmVyZW5jZXMsIHNlbWFudGljIGZhY3RzIGFuZCBzdW1tYXJpZXMuXG4gKiBFbmFibGVzIGtub3dsZWRnZSByZXRlbnRpb24gYWNyb3NzIHNlc3Npb25zIGJ5IHN0b3JpbmcgdXNlciBwcmVmZXJlbmNlcyAoZS5nLiBjb2Rpbmcgc3R5bGUpLFxuICogc2VtYW50aWMgZmFjdHMgKGUuZy4gbGVhcm5lZCBpbmZvKSBhbmQgaW50ZXJhY3Rpb24gc3VtbWFyaWVzIGZvciBjb250ZXh0IG9wdGltaXphdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvbWVtb3J5Lmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkJlZHJvY2tBZ2VudENvcmU6Ok1lbW9yeVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgTWVtb3J5IGV4dGVuZHMgTWVtb3J5QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWJlZHJvY2stYWdlbnRjb3JlLWFscGhhLk1lbW9yeSc7XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBNZXRob2QgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBCZWRyb2NrIEFnZW50Q29yZSBNZW1vcnkuXG4gICAqL1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBNZW1vcnkgcmVmZXJlbmNlIGZyb20gYW4gZXhpc3RpbmcgbWVtb3J5J3MgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgLSBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIC0gQXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgYnJvd3NlciBjdXN0b21cbiAgICogQHJldHVybnMgQW4gSUJyb3dzZXJDdXN0b20gcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21NZW1vcnlBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBNZW1vcnlBdHRyaWJ1dGVzKTogSU1lbW9yeSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgTWVtb3J5QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5QXJuID0gYXR0cnMubWVtb3J5QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1lbW9yeUlkID0gQXJuLnNwbGl0KGF0dHJzLm1lbW9yeUFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHNjb3BlLCBgJHtpZH1Sb2xlYCwgYXR0cnMucm9sZUFybik7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkga21zS2V5ID0gYXR0cnMua21zS2V5QXJuID8ga21zLktleS5mcm9tS2V5QXJuKHNjb3BlLCBgJHtpZH1LZXlgLCBhdHRycy5rbXNLZXlBcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IGF0dHJzLnVwZGF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gYXR0cnMuY3JlYXRlZEF0O1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpKTtcblxuICAgICAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5leGVjdXRpb25Sb2xlIHx8IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBuZXcgTWVtb3J5XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBBdHRyaWJ1dGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgbWVtb3J5IHJlc291cmNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBtZW1vcnkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZW1vcnlJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGV4cGlyYXRpb24gZGF5cyBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4cGlyYXRpb25EdXJhdGlvbj86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIGZhaWx1cmUgcmVhc29uIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmYWlsdXJlUmVhc29uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgb2YgdGhlIG1lbW9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25Sb2xlPzogaWFtLklSb2xlO1xuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjcmVhdGVkIHRpbWVzdGFtcCBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1cGRhdGVkIGF0IHRpbWVzdGFtcCBvZiB0aGUgbWVtb3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRhZ3MgYXBwbGllZCB0byB0aGlzIGJyb3dzZXIgcmVzb3VyY2VcbiAgICogQSBtYXAgb2Yga2V5LXZhbHVlIHBhaXJzIGZvciByZXNvdXJjZSB0YWdnaW5nXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFncyBhcHBsaWVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBtZW1vcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG4gIC8qKlxuICAgKiBUaGUgbWVtb3J5IHN0cmF0ZWdpZXMgdXNlZCBieSB0aGUgbWVtb3J5LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVtb3J5U3RyYXRlZ2llczogSU1lbW9yeVN0cmF0ZWd5W10gPSBbXTtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEludGVybmFsIE9ubHlcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgcmVhZG9ubHkgX19yZXNvdXJjZTogQ2ZuTWVtb3J5O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDT05TVFJVQ1RPUlxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1lbW9yeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNldCBwcm9wZXJ0aWVzIGFuZCBkZWZhdWx0c1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRoaXMubWVtb3J5TmFtZSA9IHByb3BzLm1lbW9yeU5hbWU7XG4gICAgdGhpcy5leHBpcmF0aW9uRHVyYXRpb24gPSBwcm9wcy5leHBpcmF0aW9uRHVyYXRpb24gPz8gRHVyYXRpb24uZGF5cyg5MCk7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMua21zS2V5ID0gcHJvcHMua21zS2V5O1xuICAgIHRoaXMuZXhlY3V0aW9uUm9sZSA9IHByb3BzLmV4ZWN1dGlvblJvbGUgPz8gdGhpcy5fY3JlYXRlTWVtb3J5Um9sZSgpO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLmV4ZWN1dGlvblJvbGU7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFBlcm1pc3Npb25zXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRm9yIEtNUyBwZXJtaXNzaW9ucyBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9zdG9yYWdlLWVuY3J5cHRpb24uaHRtbFxuICAgIGlmICh0aGlzLmttc0tleSkge1xuICAgICAgdGhpcy5rbXNLZXkuZ3JhbnQodGhpcy5leGVjdXRpb25Sb2xlLFxuICAgICAgICAna21zOkNyZWF0ZUdyYW50JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgJ2ttczpEZXNjcmliZUtleScsXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0JyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHQqJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVmFsaWRhdGlvbnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW9yeSBuYW1lXG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVNZW1vcnlOYW1lLCB0aGlzLm1lbW9yeU5hbWUsIHRoaXMpO1xuXG4gICAgLy8gVmFsaWRhdGUgZXhwaXJhdGlvbiBkdXJhdGlvblxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5RXhwaXJhdGlvbkRheXMsIHRoaXMuZXhwaXJhdGlvbkR1cmF0aW9uLnRvRGF5cygpKTtcblxuICAgIC8vIFZhbGlkYXRlIG1lbW9yeSB0YWdzXG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVNZW1vcnlUYWdzLCB0aGlzLnRhZ3MsIHRoaXMpO1xuXG4gICAgLy8gTWVtb3J5IHN0cmF0ZWdpZXMgYXJlIGFscmVhZHkgdmFsaWRhdGVkIHdoZW4gYnVpbGRpbmcgdGhlbSwgc28gbm8gbmVlZCB0byB2YWxpZGF0ZSB0aGVtIGhlcmVcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENGTiBQcm9wcyAtIFdpdGggTGF6eSBzdXBwb3J0XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2ZuUHJvcHM6IENmbk1lbW9yeVByb3BzID0ge1xuICAgICAgbmFtZTogdGhpcy5tZW1vcnlOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBldmVudEV4cGlyeUR1cmF0aW9uOiB0aGlzLmV4cGlyYXRpb25EdXJhdGlvbi50b0RheXMoKSxcbiAgICAgIGVuY3J5cHRpb25LZXlBcm46IHRoaXMua21zS2V5Py5rZXlBcm4sXG4gICAgICBtZW1vcnlFeGVjdXRpb25Sb2xlQXJuOiB0aGlzLmV4ZWN1dGlvblJvbGU/LnJvbGVBcm4sXG4gICAgICBtZW1vcnlTdHJhdGVnaWVzOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuX3JlbmRlck1lbW9yeVN0cmF0ZWdpZXMoKSB9LCB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0pLFxuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDRk4gUmVzb3VyY2VcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLl9fcmVzb3VyY2UgPSBuZXcgQ2ZuTWVtb3J5KHRoaXMsICdNZW1vcnknLCBjZm5Qcm9wcyk7XG5cbiAgICB0aGlzLm1lbW9yeUlkID0gdGhpcy5fX3Jlc291cmNlLmF0dHJNZW1vcnlJZDtcbiAgICB0aGlzLm1lbW9yeUFybiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyTWVtb3J5QXJuO1xuICAgIHRoaXMuc3RhdHVzID0gdGhpcy5fX3Jlc291cmNlLmF0dHJTdGF0dXM7XG4gICAgdGhpcy51cGRhdGVkQXQgPSB0aGlzLl9fcmVzb3VyY2UuYXR0clVwZGF0ZWRBdDtcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMuX19yZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMuZmFpbHVyZVJlYXNvbiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyRmFpbHVyZVJlYXNvbjtcblxuICAgIC8vIEFkZCBtZW1vcnkgc3RyYXRlZ2llcyB0byB0aGUgbWVtb3J5XG4gICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBwcm9wcy5tZW1vcnlTdHJhdGVnaWVzID8/IFtdKSB7dGhpcy5hZGRNZW1vcnlTdHJhdGVneShzdHJhdGVneSk7fVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhFTFBFUiBNRVRIT0RTIC0gYWRkWCgpXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogQWRkIG1lbW9yeSBzdHJhdGVneSB0byB0aGUgbWVtb3J5LlxuICAgKiBAZGVmYXVsdCAtIE5vIG1lbW9yeSBzdHJhdGVnaWVzLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZE1lbW9yeVN0cmF0ZWd5KG1lbW9yeVN0cmF0ZWd5OiBJTWVtb3J5U3RyYXRlZ3kpIHtcbiAgICAvLyBBZGQgdGhlIG1lbW9yeSBzdHJhdGVneSB0byB0aGUgbWVtb3J5XG4gICAgdGhpcy5tZW1vcnlTdHJhdGVnaWVzLnB1c2gobWVtb3J5U3RyYXRlZ3kpO1xuXG4gICAgLy8gR3JhbnQgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIHRoZSBleGVjdXRpb24gcm9sZVxuICAgIGNvbnN0IGdyYW50ID0gbWVtb3J5U3RyYXRlZ3kuZ3JhbnQodGhpcy5leGVjdXRpb25Sb2xlIGFzIGlhbS5JUm9sZSk7XG4gICAgZ3JhbnQ/LmFwcGx5QmVmb3JlKHRoaXMuX19yZXNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBleGVjdXRpb24gcm9sZSBuZWVkZWQgZm9yIHRoZSBtZW1vcnkgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCByb2xlXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlTWVtb3J5Um9sZSgpOiBpYW0uSVJvbGUge1xuICAgIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1NlcnZpY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2JlZHJvY2stYWdlbnRjb3JlLmFtYXpvbmF3cy5jb20nKSxcbiAgICB9KTtcblxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFZBTElEQVRPUlNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSB0YWdzIGZvcm1hdFxuICAgKiBAcGFyYW0gdGFncyBUaGUgdGFncyBvYmplY3QgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5VGFncyA9ICh0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCF0YWdzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzOyAvLyBUYWdzIGFyZSBvcHRpb25hbFxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGVhY2ggdGFnIGtleSBhbmQgdmFsdWVcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YWdzKSkge1xuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCh7XG4gICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgIGZpZWxkTmFtZTogJ1RhZyBrZXknLFxuICAgICAgICBtaW5MZW5ndGg6IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9LCBzY29wZSkpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcga2V5IHBhdHRlcm46IF5bYS16QS1aMC05XFxzLl86Lz0rQC1dKiRcbiAgICAgIGNvbnN0IHZhbGlkS2V5UGF0dGVybiA9IC9eW2EtekEtWjAtOVxccy5fOi89K0AtXSokLztcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKGtleSwgJ1RhZyBrZXknLCB2YWxpZEtleVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgICAgLy8gVmFsaWRhdGUgdGFnIHZhbHVlXG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBmaWVsZE5hbWU6ICdUYWcgdmFsdWUnLFxuICAgICAgICBtaW5MZW5ndGg6IE1FTU9SWV9UQUdfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9LCBzY29wZSkpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWUgcGF0dGVybjogXlthLXpBLVowLTlcXHMuXzovPStALV0qJFxuICAgICAgY29uc3QgdmFsaWRWYWx1ZVBhdHRlcm4gPSAvXlthLXpBLVowLTlcXHMuXzovPStALV0qJC87XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybih2YWx1ZSwgJ1RhZyB2YWx1ZScsIHZhbGlkVmFsdWVQYXR0ZXJuLCB1bmRlZmluZWQsIHNjb3BlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBtZW1vcnkgbmFtZSBmb3JtYXRcbiAgICogQHBhcmFtIG5hbWUgVGhlIG1lbW9yeSBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZU1lbW9yeU5hbWUgPSAobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdNZW1vcnkgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IE1FTU9SWV9OQU1FX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdNZW1vcnkgbmFtZScsIHZhbGlkTmFtZVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtb3J5IGV4cGlyYXRpb24gZGF5c1xuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRheXMgVGhlIG1lbW9yeSBleHBpcmF0aW9uIGRheXMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5RXhwaXJhdGlvbkRheXMgPSAoZXhwaXJhdGlvbkRheXM6IG51bWJlcik6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChleHBpcmF0aW9uRGF5cykpIHtcbiAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKGV4cGlyYXRpb25EYXlzIDwgTUVNT1JZX0VYUElSQVRJT05fREFZU19NSU4gfHwgZXhwaXJhdGlvbkRheXMgPiBNRU1PUllfRVhQSVJBVElPTl9EQVlTX01BWCkge1xuICAgICAgZXJyb3JzLnB1c2goYE1lbW9yeSBleHBpcmF0aW9uIGRheXMgbXVzdCBiZSBiZXR3ZWVuICR7TUVNT1JZX0VYUElSQVRJT05fREFZU19NSU59IGFuZCAke01FTU9SWV9FWFBJUkFUSU9OX0RBWVNfTUFYfWApO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFJFTkRFUkVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgbWVtb3J5IHN0cmF0ZWdpZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIE1lbW9yeVN0cmF0ZWd5UHJvcGVydHkgb2JqZWN0cyBpbiBDbG91ZEZvcm1hdGlvbiBmb3JtYXQsIG9yIHVuZGVmaW5lZCBpZiBubyBzdHJhdGVnaWVzIGFyZSBkZWZpbmVkXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIGlmIG5vIHN0cmF0ZWdpZXMgYXJlIGRlZmluZWQgb3IgYXJyYXkgaXMgZW1wdHlcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJNZW1vcnlTdHJhdGVnaWVzKCk6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuTWVtb3J5Lk1lbW9yeVN0cmF0ZWd5UHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLm1lbW9yeVN0cmF0ZWdpZXMgfHwgdGhpcy5tZW1vcnlTdHJhdGVnaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tZW1vcnlTdHJhdGVnaWVzLm1hcChtcyA9PiBtcy5yZW5kZXIoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -25,7 +25,7 @@ const PROMPT_MAX_LENGTH = 30000;
|
|
|
25
25
|
* with specific models and prompt templates.
|
|
26
26
|
*/
|
|
27
27
|
class ManagedMemoryStrategy {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.232.0-alpha.0" };
|
|
29
29
|
name;
|
|
30
30
|
description;
|
|
31
31
|
/**
|
|
@@ -206,4 +206,4 @@ class ManagedMemoryStrategy {
|
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
208
|
exports.ManagedMemoryStrategy = ManagedMemoryStrategy;
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hbmFnZWQtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSw2Q0FBNkM7QUFJN0Msd0RBQW9KO0FBQ3BKLDhEQUF3RztBQUV4Rzs7K0VBRStFO0FBQy9FOzs7R0FHRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCOzs7R0FHRztBQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBNkRoQzs7OztHQUlHO0FBQ0gsTUFBYSxxQkFBcUI7O0lBQ2hCLElBQUksQ0FBUztJQUNiLFdBQVcsQ0FBVTtJQUNyQzs7T0FFRztJQUNhLFVBQVUsQ0FBVztJQUNyQzs7T0FFRztJQUNhLHFCQUFxQixDQUFrQjtJQUN2RDs7T0FFRztJQUNhLGtCQUFrQixDQUFrQjtJQUNwQyxZQUFZLENBQXFCO0lBRWpEOzs7O09BSUc7SUFDSCxZQUFZLFlBQWdDLEVBQUUsS0FBMkI7Ozs7Ozs7K0NBdEI5RCxxQkFBcUI7Ozs7UUF1QjlCLHlEQUF5RDtRQUN6RCw4QkFBOEI7UUFDOUIseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUVqRCx5REFBeUQ7UUFDekQsY0FBYztRQUNkLHlEQUF5RDtRQUN6RCxJQUFBLG1DQUFjLEVBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMscUJB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TUFBTSxHQUFhLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsOENBQXlCLEVBQUM7WUFDdkMsS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsUUFBUTtZQUNuQixTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLFNBQVMsRUFBRSxpQkFBaUI7U0FDN0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNLLGlDQUFpQyxHQUFHLENBQUMsVUFBb0IsRUFBWSxFQUFFO1FBQzdFLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsNERBQTREO1lBQzVELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQzlCLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUMzQixTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDakMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUM3QyxFQUFFLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyw0REFBNEQsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQzs7QUF6TEosc0RBMExDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSUJlZHJvY2tJbnZva2FibGUgfSBmcm9tICdAYXdzLWNkay9hd3MtYmVkcm9jay1hbHBoYSc7XG5pbXBvcnQgeyBBcm4sIEFybkZvcm1hdCB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgR3JhbnQsIElHcmFudGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IE1lbW9yeVN0cmF0ZWd5Q29tbW9uUHJvcHMsIElNZW1vcnlTdHJhdGVneSwgTWVtb3J5U3RyYXRlZ3lUeXBlLCBNRU1PUllfTkFNRV9NSU5fTEVOR1RILCBNRU1PUllfTkFNRV9NQVhfTEVOR1RIIH0gZnJvbSAnLi4vbWVtb3J5LXN0cmF0ZWd5JztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgsIHRocm93SWZJbnZhbGlkLCB2YWxpZGF0ZUZpZWxkUGF0dGVybiB9IGZyb20gJy4uL3ZhbGlkYXRpb24taGVscGVycyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RBTlRTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIE1pbmltdW0gbGVuZ3RoIGZvciBwcm9tcHRcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBQUk9NUFRfTUlOX0xFTkdUSCA9IDE7XG4vKipcbiAqIE1heGltdW0gbGVuZ3RoIGZvciBwcm9tcHRcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBQUk9NUFRfTUFYX0xFTkdUSCA9IDMwMDAwO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIG92ZXJyaWRpbmcgbW9kZWwgYW5kIHByb21wdCB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJyaWRlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBtb2RlbCB0byB1c2UgZm9yIGNvbnNvbGlkYXRpb24vZXh0cmFjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IElCZWRyb2NrSW52b2thYmxlO1xuICAvKipcbiAgICogVGhlIHByb21wdCB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHN5c3RlbSBwcm9tcHQgdG8gZGVmaW5lXG4gICAqIHRoZSBtb2RlbCdzIG1lbW9yeSBjb25zb2xpZGF0aW9uL2V4dHJhY3Rpb24gc3RyYXRlZ3kuXG4gICAqIFRoaXMgY29uZmlndXJhdGlvbiBwcm92aWRlcyBjdXN0b21pemF0aW9uIHRvIGhvdyB0aGUgbW9kZWwgaWRlbnRpZmllcyBhbmQgZXh0cmFjdHNcbiAgICogcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIG1lbW9yeSBzdG9yYWdlLiBZb3UgY2FuIHVzZSB0aGUgZGVmYXVsdCB1c2VyIHByb21wdCBvciBjcmVhdGUgYSBjdXN0b21pemVkIG9uZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL3N5c3RlbS1wcm9tcHRzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGFwcGVuZFRvUHJvbXB0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBhIG1lbW9yeSBzdHJhdGVneSB0aGF0IGNhbiBvdmVycmlkZVxuICogZXhpc3RpbmcgYnVpbHQtaW4gZGVmYXVsdCBwcm9tcHRzL21vZGVsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZWRTdHJhdGVneVByb3BzIGV4dGVuZHMgTWVtb3J5U3RyYXRlZ3lDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGN1c3RvbSBleHRyYWN0aW9uLlxuICAgKiBUaGlzIGNvbmZpZ3VyYXRpb24gcHJvdmlkZXMgY3VzdG9taXphdGlvbiB0byBob3cgdGhlIG1vZGVsIGlkZW50aWZpZXNcbiAgICogYW5kIGV4dHJhY3RzIHJlbGV2YW50IGluZm9ybWF0aW9uIGZvciBtZW1vcnkgc3RvcmFnZS5cbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gZXh0cmFjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXh0cmFjdGlvbj86IE92ZXJyaWRlQ29uZmlnO1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gY29uc29saWRhdGlvbi5cbiAgICogVGhpcyBjb25maWd1cmF0aW9uIHByb3ZpZGVzIGN1c3RvbWl6YXRpb24gdG8gaG93IHRoZSBtb2RlbCBpZGVudGlmaWVzXG4gICAqIGFuZCBleHRyYWN0cyByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgbWVtb3J5IHN0b3JhZ2UuXG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIGV4dHJhY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUNvbnNvbGlkYXRpb24/OiBPdmVycmlkZUNvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2VzIGZvciB0aGUgc3RyYXRlZ3lcbiAgICogUmVwcmVzZW50cyBhIG5hbWVzcGFjZSBmb3Igb3JnYW5pemluZyBtZW1vcnkgZGF0YVxuICAgKiBVc2UgYSBoaWVyYXJjaGljYWwgZm9ybWF0IHNlcGFyYXRlZCBieSBmb3J3YXJkIHNsYXNoZXMgKC8pXG4gICAqXG4gICAqIFVzZSBhIGhpZXJhcmNoaWNhbCBmb3JtYXQgc2VwYXJhdGVkIGJ5IGZvcndhcmQgc2xhc2hlcyAoLykgdG8gb3JnYW5pemUgbmFtZXNwYWNlcyBsb2dpY2FsbHkuXG4gICAqIFlvdSBjYW4gaW5jbHVkZSB0aGVzZSBkZWZpbmVkIHZhcmlhYmxlczpcbiAgICpcbiAgICogLSB7c2Vzc2lvbklkfSAtIHRoZSB1c2VyIGlkZW50aWZpZXIgdG8gYmUgY3JlYXRlZCBpbiB0aGUgQ3JlYXRlRXZlbnQgQVBJXG4gICAqIC0ge21lbW9yeVN0cmF0ZWd5SWR9IC0gYW4gaWRlbnRpZmllciBmb3IgYW4gZXh0cmFjdGlvbiBzdHJhdGVneVxuICAgKiAtIHtzZXNzaW9uSWR9IC0gYW4gaWRlbnRpZmllciBmb3IgZWFjaCBzZXNzaW9uXG4gICAqXG4gICAqIEV4YW1wbGUgbmFtZXNwYWNlIHBhdGg6XG4gICAqIC9zdHJhdGVnaWVzL3ttZW1vcnlTdHJhdGVneUlkfS9hY3Rpb25zL3thY3Rpb25JZH0vc2Vzc2lvbnMve3Nlc3Npb25JZH1cbiAgICpcbiAgICogQWZ0ZXIgbWVtb3J5IGNyZWF0aW9uLCB0aGlzIG5hbWVzcGFjZSBtaWdodCBsb29rIGxpa2U6XG4gICAqIC9hY3Rvci9hY3Rvci0zYWZjNWFhOGZlZjkvc3RyYXRlZ3kvc3VtbWFyaXphdGlvbi1meTVjNWZ3Yzcvc2Vzc2lvbi9zZXNzaW9uLXFqN3RwZDFrdnI4XG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIG1lbW9yeSBzdHJhdGVneSB0aGF0IGhhbmRsZXMgYm90aCBidWlsdC1pbiBhbmQgb3ZlcnJpZGUgY29uZmlndXJhdGlvbnMuXG4gKiBUaGlzIHN0cmF0ZWd5IGNhbiBiZSB1c2VkIGZvciBxdWljayBzZXR1cCB3aXRoIGJ1aWx0LWluIGRlZmF1bHRzIG9yIGN1c3RvbWl6ZWRcbiAqIHdpdGggc3BlY2lmaWMgbW9kZWxzIGFuZCBwcm9tcHQgdGVtcGxhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5IGltcGxlbWVudHMgSU1lbW9yeVN0cmF0ZWd5IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZXMgZm9yIHRoZSBzdHJhdGVneVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gY29uc29saWRhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25zb2xpZGF0aW9uT3ZlcnJpZGU/OiBPdmVycmlkZUNvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgY3VzdG9tIGV4dHJhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXh0cmFjdGlvbk92ZXJyaWRlPzogT3ZlcnJpZGVDb25maWc7XG4gIHB1YmxpYyByZWFkb25seSBzdHJhdGVneVR5cGU6IE1lbW9yeVN0cmF0ZWd5VHlwZTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgdG8gY3JlYXRlIGEgbmV3IG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqIEBwYXJhbSBzdHJhdGVneVR5cGUgdGhlIHN0cmF0ZWd5IHR5cGVcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgc3RyYXRlZ3lcbiAgICovXG4gIGNvbnN0cnVjdG9yKHN0cmF0ZWd5VHlwZTogTWVtb3J5U3RyYXRlZ3lUeXBlLCBwcm9wczogTWFuYWdlZFN0cmF0ZWd5UHJvcHMpIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXQgcHJvcGVydGllcyBhbmQgZGVmYXVsdHNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLm5hbWVzcGFjZXMgPSBwcm9wcy5uYW1lc3BhY2VzO1xuICAgIHRoaXMuc3RyYXRlZ3lUeXBlID0gc3RyYXRlZ3lUeXBlO1xuICAgIHRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlID0gcHJvcHMuY3VzdG9tQ29uc29saWRhdGlvbjtcbiAgICB0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSA9IHByb3BzLmN1c3RvbUV4dHJhY3Rpb247XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBWYWxpZGF0aW9uc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlUHJvbXB0LCB0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZT8uYXBwZW5kVG9Qcm9tcHQpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlUHJvbXB0LCB0aGlzLmV4dHJhY3Rpb25PdmVycmlkZT8uYXBwZW5kVG9Qcm9tcHQpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lLCB0aGlzLm5hbWUpO1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZXMpIHtcbiAgICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lc3BhY2VzLCB0aGlzLm5hbWVzcGFjZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHJldHVybnMgVGhlIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5IGZvciB0aGUgbWVtb3J5IHN0cmF0ZWd5LlxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpOiBiZWRyb2NrYWdlbnRjb3JlLkNmbk1lbW9yeS5NZW1vcnlTdHJhdGVneVByb3BlcnR5IHtcbiAgICAvLyBJZiBubyBvdmVycmlkZXMsIHVzZSBidWlsdC1pbiBzdHJhdGVneSBmb3JtYXRcbiAgICBpZiAoIXRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlICYmICF0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSkge1xuICAgICAgY29uc3QgY2ZuU3RyYXRlZ3lNYXA6IFJlY29yZDxNZW1vcnlTdHJhdGVneVR5cGUsIHN0cmluZz4gPSB7XG4gICAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuVVNFUl9QUkVGRVJFTkNFXTogJ3VzZXJQcmVmZXJlbmNlTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNFTUFOVElDXTogJ3NlbWFudGljTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNVTU1BUklaQVRJT05dOiAnc3VtbWFyeU1lbW9yeVN0cmF0ZWd5JyxcbiAgICAgICAgW01lbW9yeVN0cmF0ZWd5VHlwZS5DVVNUT01dOiAnY3VzdG9tTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHN0cmF0ZWd5S2V5ID0gY2ZuU3RyYXRlZ3lNYXBbdGhpcy5zdHJhdGVneVR5cGVdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3N0cmF0ZWd5S2V5XToge1xuICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICBuYW1lc3BhY2VzOiB0aGlzLm5hbWVzcGFjZXMsXG4gICAgICAgICAgdHlwZTogdGhpcy5zdHJhdGVneVR5cGUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIElmIG92ZXJyaWRlcyBhcmUgcHJvdmlkZWQsIHVzZSBjdXN0b20gc3RyYXRlZ3kgZm9ybWF0XG4gICAgY29uc3QgY2ZuU3RyYXRlZ3lNYXA6IFJlY29yZDxNZW1vcnlTdHJhdGVneVR5cGUsIHN0cmluZz4gPSB7XG4gICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlVTRVJfUFJFRkVSRU5DRV06ICd1c2VyUHJlZmVyZW5jZU92ZXJyaWRlJyxcbiAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuU0VNQU5USUNdOiAnc2VtYW50aWNPdmVycmlkZScsXG4gICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNVTU1BUklaQVRJT05dOiAnc3VtbWFyeU92ZXJyaWRlJyxcbiAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuQ1VTVE9NXTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0cmF0ZWd5S2V5ID0gY2ZuU3RyYXRlZ3lNYXBbdGhpcy5zdHJhdGVneVR5cGVdO1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21NZW1vcnlTdHJhdGVneToge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lc3BhY2VzOiB0aGlzLm5hbWVzcGFjZXMsXG4gICAgICAgIHR5cGU6IHRoaXMuc3RyYXRlZ3lUeXBlLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgW3N0cmF0ZWd5S2V5XToge1xuICAgICAgICAgICAgLi4uKHRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlICYmIHtcbiAgICAgICAgICAgICAgY29uc29saWRhdGlvbjoge1xuICAgICAgICAgICAgICAgIG1vZGVsSWQ6IEFybi5zcGxpdCh0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZS5tb2RlbC5pbnZva2FibGVBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKVxuICAgICAgICAgICAgICAgICAgLnJlc291cmNlTmFtZSxcbiAgICAgICAgICAgICAgICBhcHBlbmRUb1Byb21wdDogdGhpcy5jb25zb2xpZGF0aW9uT3ZlcnJpZGUuYXBwZW5kVG9Qcm9tcHQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC4uLih0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSAmJiB7XG4gICAgICAgICAgICAgIGV4dHJhY3Rpb246IHtcbiAgICAgICAgICAgICAgICBtb2RlbElkOiBBcm4uc3BsaXQodGhpcy5leHRyYWN0aW9uT3ZlcnJpZGUubW9kZWwuaW52b2thYmxlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSlcbiAgICAgICAgICAgICAgICAgIC5yZXNvdXJjZU5hbWUsXG4gICAgICAgICAgICAgICAgYXBwZW5kVG9Qcm9tcHQ6IHRoaXMuZXh0cmFjdGlvbk92ZXJyaWRlLmFwcGVuZFRvUHJvbXB0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZVxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBncmFudGVlIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIFRoZSBHcmFudCBvYmplY3QgZm9yIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBncmFudDEgPSB0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZT8ubW9kZWwuZ3JhbnRJbnZva2UoZ3JhbnRlZSk7XG4gICAgY29uc3QgZ3JhbnQyID0gdGhpcy5leHRyYWN0aW9uT3ZlcnJpZGU/Lm1vZGVsLmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICAgIHJldHVybiBncmFudDEgJiYgZ3JhbnQyID8gZ3JhbnQxLmNvbWJpbmUoZ3JhbnQyKSA6IGdyYW50MSB8fCBncmFudDI7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVkFMSURBVE9SU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtb3J5IHN0cmF0ZWd5IG5hbWVcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVNZW1vcnlTdHJhdGVneU5hbWUgPSAobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdNZW1vcnkgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IE1FTU9SWV9OQU1FX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdNZW1vcnkgbmFtZScsIHZhbGlkTmFtZVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvbXB0XG4gICAqIEBwYXJhbSBwcm9tcHQgLSBUaGUgcHJvbXB0IHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVByb21wdCA9IChwcm9tcHQ/OiBzdHJpbmcsIHNjb3BlPzogSUNvbnN0cnVjdCk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghcHJvbXB0KSB7XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgIHZhbHVlOiBwcm9tcHQsXG4gICAgICBmaWVsZE5hbWU6ICdQcm9tcHQnLFxuICAgICAgbWluTGVuZ3RoOiBQUk9NUFRfTUlOX0xFTkdUSCxcbiAgICAgIG1heExlbmd0aDogUFJPTVBUX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSBzdHJhdGVneSBuYW1lc3BhY2VzXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VzIC0gVGhlIG5hbWVzcGFjZXMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lc3BhY2VzID0gKG5hbWVzcGFjZXM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgbmFtZXNwYWNlcykge1xuICAgICAgLy8gT25seSBjaGVjayBmb3IgdGVtcGxhdGUgdmFyaWFibGVzIGluIG5hbWVzcGFjZSBkZWZpbml0aW9uXG4gICAgICBpZiAobmFtZXNwYWNlLmluY2x1ZGVzKCd7JykgJiYgIShcbiAgICAgICAgbmFtZXNwYWNlLmluY2x1ZGVzKCd7YWN0b3JJZH0nKSB8fFxuICAgICAgICAgICAgbmFtZXNwYWNlLmluY2x1ZGVzKCd7c2Vzc2lvbklkfScpIHx8XG4gICAgICAgICAgICBuYW1lc3BhY2UuaW5jbHVkZXMoJ3ttZW1vcnlTdHJhdGVneUlkfScpXG4gICAgICApKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBOYW1lc3BhY2Ugd2l0aCB0ZW1wbGF0ZXMgc2hvdWxkIGNvbnRhaW4gdmFsaWQgdmFyaWFibGVzOiAke25hbWVzcGFjZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xufVxuIl19
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hbmFnZWQtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSw2Q0FBNkM7QUFJN0Msd0RBQW9KO0FBQ3BKLDhEQUF3RztBQUV4Rzs7K0VBRStFO0FBQy9FOzs7R0FHRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCOzs7R0FHRztBQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBNkRoQzs7OztHQUlHO0FBQ0gsTUFBYSxxQkFBcUI7O0lBQ2hCLElBQUksQ0FBUztJQUNiLFdBQVcsQ0FBVTtJQUNyQzs7T0FFRztJQUNhLFVBQVUsQ0FBVztJQUNyQzs7T0FFRztJQUNhLHFCQUFxQixDQUFrQjtJQUN2RDs7T0FFRztJQUNhLGtCQUFrQixDQUFrQjtJQUNwQyxZQUFZLENBQXFCO0lBRWpEOzs7O09BSUc7SUFDSCxZQUFZLFlBQWdDLEVBQUUsS0FBMkI7Ozs7Ozs7K0NBdEI5RCxxQkFBcUI7Ozs7UUF1QjlCLHlEQUF5RDtRQUN6RCw4QkFBOEI7UUFDOUIseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUVqRCx5REFBeUQ7UUFDekQsY0FBYztRQUNkLHlEQUF5RDtRQUN6RCxJQUFBLG1DQUFjLEVBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMscUJB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TUFBTSxHQUFhLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsOENBQXlCLEVBQUM7WUFDdkMsS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsUUFBUTtZQUNuQixTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLFNBQVMsRUFBRSxpQkFBaUI7U0FDN0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNLLGlDQUFpQyxHQUFHLENBQUMsVUFBb0IsRUFBWSxFQUFFO1FBQzdFLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsNERBQTREO1lBQzVELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQzlCLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUMzQixTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDakMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUM3QyxFQUFFLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyw0REFBNEQsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQzs7QUF6TEosc0RBMExDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSUJlZHJvY2tJbnZva2FibGUgfSBmcm9tICdAYXdzLWNkay9hd3MtYmVkcm9jay1hbHBoYSc7XG5pbXBvcnQgeyBBcm4sIEFybkZvcm1hdCB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgR3JhbnQsIElHcmFudGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1lbW9yeVN0cmF0ZWd5Q29tbW9uUHJvcHMsIElNZW1vcnlTdHJhdGVneSwgTWVtb3J5U3RyYXRlZ3lUeXBlLCBNRU1PUllfTkFNRV9NSU5fTEVOR1RILCBNRU1PUllfTkFNRV9NQVhfTEVOR1RIIH0gZnJvbSAnLi4vbWVtb3J5LXN0cmF0ZWd5JztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgsIHRocm93SWZJbnZhbGlkLCB2YWxpZGF0ZUZpZWxkUGF0dGVybiB9IGZyb20gJy4uL3ZhbGlkYXRpb24taGVscGVycyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OU1RBTlRTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIE1pbmltdW0gbGVuZ3RoIGZvciBwcm9tcHRcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBQUk9NUFRfTUlOX0xFTkdUSCA9IDE7XG4vKipcbiAqIE1heGltdW0gbGVuZ3RoIGZvciBwcm9tcHRcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBQUk9NUFRfTUFYX0xFTkdUSCA9IDMwMDAwO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIG92ZXJyaWRpbmcgbW9kZWwgYW5kIHByb21wdCB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJyaWRlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBtb2RlbCB0byB1c2UgZm9yIGNvbnNvbGlkYXRpb24vZXh0cmFjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IElCZWRyb2NrSW52b2thYmxlO1xuICAvKipcbiAgICogVGhlIHByb21wdCB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHN5c3RlbSBwcm9tcHQgdG8gZGVmaW5lXG4gICAqIHRoZSBtb2RlbCdzIG1lbW9yeSBjb25zb2xpZGF0aW9uL2V4dHJhY3Rpb24gc3RyYXRlZ3kuXG4gICAqIFRoaXMgY29uZmlndXJhdGlvbiBwcm92aWRlcyBjdXN0b21pemF0aW9uIHRvIGhvdyB0aGUgbW9kZWwgaWRlbnRpZmllcyBhbmQgZXh0cmFjdHNcbiAgICogcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIG1lbW9yeSBzdG9yYWdlLiBZb3UgY2FuIHVzZSB0aGUgZGVmYXVsdCB1c2VyIHByb21wdCBvciBjcmVhdGUgYSBjdXN0b21pemVkIG9uZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL3N5c3RlbS1wcm9tcHRzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGFwcGVuZFRvUHJvbXB0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBhIG1lbW9yeSBzdHJhdGVneSB0aGF0IGNhbiBvdmVycmlkZVxuICogZXhpc3RpbmcgYnVpbHQtaW4gZGVmYXVsdCBwcm9tcHRzL21vZGVsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZWRTdHJhdGVneVByb3BzIGV4dGVuZHMgTWVtb3J5U3RyYXRlZ3lDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGN1c3RvbSBleHRyYWN0aW9uLlxuICAgKiBUaGlzIGNvbmZpZ3VyYXRpb24gcHJvdmlkZXMgY3VzdG9taXphdGlvbiB0byBob3cgdGhlIG1vZGVsIGlkZW50aWZpZXNcbiAgICogYW5kIGV4dHJhY3RzIHJlbGV2YW50IGluZm9ybWF0aW9uIGZvciBtZW1vcnkgc3RvcmFnZS5cbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gZXh0cmFjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXh0cmFjdGlvbj86IE92ZXJyaWRlQ29uZmlnO1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gY29uc29saWRhdGlvbi5cbiAgICogVGhpcyBjb25maWd1cmF0aW9uIHByb3ZpZGVzIGN1c3RvbWl6YXRpb24gdG8gaG93IHRoZSBtb2RlbCBpZGVudGlmaWVzXG4gICAqIGFuZCBleHRyYWN0cyByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgbWVtb3J5IHN0b3JhZ2UuXG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIGV4dHJhY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUNvbnNvbGlkYXRpb24/OiBPdmVycmlkZUNvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2VzIGZvciB0aGUgc3RyYXRlZ3lcbiAgICogUmVwcmVzZW50cyBhIG5hbWVzcGFjZSBmb3Igb3JnYW5pemluZyBtZW1vcnkgZGF0YVxuICAgKiBVc2UgYSBoaWVyYXJjaGljYWwgZm9ybWF0IHNlcGFyYXRlZCBieSBmb3J3YXJkIHNsYXNoZXMgKC8pXG4gICAqXG4gICAqIFVzZSBhIGhpZXJhcmNoaWNhbCBmb3JtYXQgc2VwYXJhdGVkIGJ5IGZvcndhcmQgc2xhc2hlcyAoLykgdG8gb3JnYW5pemUgbmFtZXNwYWNlcyBsb2dpY2FsbHkuXG4gICAqIFlvdSBjYW4gaW5jbHVkZSB0aGVzZSBkZWZpbmVkIHZhcmlhYmxlczpcbiAgICpcbiAgICogLSB7c2Vzc2lvbklkfSAtIHRoZSB1c2VyIGlkZW50aWZpZXIgdG8gYmUgY3JlYXRlZCBpbiB0aGUgQ3JlYXRlRXZlbnQgQVBJXG4gICAqIC0ge21lbW9yeVN0cmF0ZWd5SWR9IC0gYW4gaWRlbnRpZmllciBmb3IgYW4gZXh0cmFjdGlvbiBzdHJhdGVneVxuICAgKiAtIHtzZXNzaW9uSWR9IC0gYW4gaWRlbnRpZmllciBmb3IgZWFjaCBzZXNzaW9uXG4gICAqXG4gICAqIEV4YW1wbGUgbmFtZXNwYWNlIHBhdGg6XG4gICAqIC9zdHJhdGVnaWVzL3ttZW1vcnlTdHJhdGVneUlkfS9hY3Rpb25zL3thY3Rpb25JZH0vc2Vzc2lvbnMve3Nlc3Npb25JZH1cbiAgICpcbiAgICogQWZ0ZXIgbWVtb3J5IGNyZWF0aW9uLCB0aGlzIG5hbWVzcGFjZSBtaWdodCBsb29rIGxpa2U6XG4gICAqIC9hY3Rvci9hY3Rvci0zYWZjNWFhOGZlZjkvc3RyYXRlZ3kvc3VtbWFyaXphdGlvbi1meTVjNWZ3Yzcvc2Vzc2lvbi9zZXNzaW9uLXFqN3RwZDFrdnI4XG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIG1lbW9yeSBzdHJhdGVneSB0aGF0IGhhbmRsZXMgYm90aCBidWlsdC1pbiBhbmQgb3ZlcnJpZGUgY29uZmlndXJhdGlvbnMuXG4gKiBUaGlzIHN0cmF0ZWd5IGNhbiBiZSB1c2VkIGZvciBxdWljayBzZXR1cCB3aXRoIGJ1aWx0LWluIGRlZmF1bHRzIG9yIGN1c3RvbWl6ZWRcbiAqIHdpdGggc3BlY2lmaWMgbW9kZWxzIGFuZCBwcm9tcHQgdGVtcGxhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgTWFuYWdlZE1lbW9yeVN0cmF0ZWd5IGltcGxlbWVudHMgSU1lbW9yeVN0cmF0ZWd5IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZXMgZm9yIHRoZSBzdHJhdGVneVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gY29uc29saWRhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25zb2xpZGF0aW9uT3ZlcnJpZGU/OiBPdmVycmlkZUNvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgY3VzdG9tIGV4dHJhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXh0cmFjdGlvbk92ZXJyaWRlPzogT3ZlcnJpZGVDb25maWc7XG4gIHB1YmxpYyByZWFkb25seSBzdHJhdGVneVR5cGU6IE1lbW9yeVN0cmF0ZWd5VHlwZTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgdG8gY3JlYXRlIGEgbmV3IG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqIEBwYXJhbSBzdHJhdGVneVR5cGUgdGhlIHN0cmF0ZWd5IHR5cGVcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgc3RyYXRlZ3lcbiAgICovXG4gIGNvbnN0cnVjdG9yKHN0cmF0ZWd5VHlwZTogTWVtb3J5U3RyYXRlZ3lUeXBlLCBwcm9wczogTWFuYWdlZFN0cmF0ZWd5UHJvcHMpIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTZXQgcHJvcGVydGllcyBhbmQgZGVmYXVsdHNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLm5hbWVzcGFjZXMgPSBwcm9wcy5uYW1lc3BhY2VzO1xuICAgIHRoaXMuc3RyYXRlZ3lUeXBlID0gc3RyYXRlZ3lUeXBlO1xuICAgIHRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlID0gcHJvcHMuY3VzdG9tQ29uc29saWRhdGlvbjtcbiAgICB0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSA9IHByb3BzLmN1c3RvbUV4dHJhY3Rpb247XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBWYWxpZGF0aW9uc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlUHJvbXB0LCB0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZT8uYXBwZW5kVG9Qcm9tcHQpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlUHJvbXB0LCB0aGlzLmV4dHJhY3Rpb25PdmVycmlkZT8uYXBwZW5kVG9Qcm9tcHQpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lLCB0aGlzLm5hbWUpO1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZXMpIHtcbiAgICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lc3BhY2VzLCB0aGlzLm5hbWVzcGFjZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHJldHVybnMgVGhlIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5IGZvciB0aGUgbWVtb3J5IHN0cmF0ZWd5LlxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpOiBiZWRyb2NrYWdlbnRjb3JlLkNmbk1lbW9yeS5NZW1vcnlTdHJhdGVneVByb3BlcnR5IHtcbiAgICAvLyBJZiBubyBvdmVycmlkZXMsIHVzZSBidWlsdC1pbiBzdHJhdGVneSBmb3JtYXRcbiAgICBpZiAoIXRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlICYmICF0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSkge1xuICAgICAgY29uc3QgY2ZuU3RyYXRlZ3lNYXA6IFJlY29yZDxNZW1vcnlTdHJhdGVneVR5cGUsIHN0cmluZz4gPSB7XG4gICAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuVVNFUl9QUkVGRVJFTkNFXTogJ3VzZXJQcmVmZXJlbmNlTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNFTUFOVElDXTogJ3NlbWFudGljTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNVTU1BUklaQVRJT05dOiAnc3VtbWFyeU1lbW9yeVN0cmF0ZWd5JyxcbiAgICAgICAgW01lbW9yeVN0cmF0ZWd5VHlwZS5DVVNUT01dOiAnY3VzdG9tTWVtb3J5U3RyYXRlZ3knLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHN0cmF0ZWd5S2V5ID0gY2ZuU3RyYXRlZ3lNYXBbdGhpcy5zdHJhdGVneVR5cGVdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3N0cmF0ZWd5S2V5XToge1xuICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICBuYW1lc3BhY2VzOiB0aGlzLm5hbWVzcGFjZXMsXG4gICAgICAgICAgdHlwZTogdGhpcy5zdHJhdGVneVR5cGUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIElmIG92ZXJyaWRlcyBhcmUgcHJvdmlkZWQsIHVzZSBjdXN0b20gc3RyYXRlZ3kgZm9ybWF0XG4gICAgY29uc3QgY2ZuU3RyYXRlZ3lNYXA6IFJlY29yZDxNZW1vcnlTdHJhdGVneVR5cGUsIHN0cmluZz4gPSB7XG4gICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlVTRVJfUFJFRkVSRU5DRV06ICd1c2VyUHJlZmVyZW5jZU92ZXJyaWRlJyxcbiAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuU0VNQU5USUNdOiAnc2VtYW50aWNPdmVycmlkZScsXG4gICAgICBbTWVtb3J5U3RyYXRlZ3lUeXBlLlNVTU1BUklaQVRJT05dOiAnc3VtbWFyeU92ZXJyaWRlJyxcbiAgICAgIFtNZW1vcnlTdHJhdGVneVR5cGUuQ1VTVE9NXTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0cmF0ZWd5S2V5ID0gY2ZuU3RyYXRlZ3lNYXBbdGhpcy5zdHJhdGVneVR5cGVdO1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21NZW1vcnlTdHJhdGVneToge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lc3BhY2VzOiB0aGlzLm5hbWVzcGFjZXMsXG4gICAgICAgIHR5cGU6IHRoaXMuc3RyYXRlZ3lUeXBlLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgW3N0cmF0ZWd5S2V5XToge1xuICAgICAgICAgICAgLi4uKHRoaXMuY29uc29saWRhdGlvbk92ZXJyaWRlICYmIHtcbiAgICAgICAgICAgICAgY29uc29saWRhdGlvbjoge1xuICAgICAgICAgICAgICAgIG1vZGVsSWQ6IEFybi5zcGxpdCh0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZS5tb2RlbC5pbnZva2FibGVBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKVxuICAgICAgICAgICAgICAgICAgLnJlc291cmNlTmFtZSxcbiAgICAgICAgICAgICAgICBhcHBlbmRUb1Byb21wdDogdGhpcy5jb25zb2xpZGF0aW9uT3ZlcnJpZGUuYXBwZW5kVG9Qcm9tcHQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC4uLih0aGlzLmV4dHJhY3Rpb25PdmVycmlkZSAmJiB7XG4gICAgICAgICAgICAgIGV4dHJhY3Rpb246IHtcbiAgICAgICAgICAgICAgICBtb2RlbElkOiBBcm4uc3BsaXQodGhpcy5leHRyYWN0aW9uT3ZlcnJpZGUubW9kZWwuaW52b2thYmxlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSlcbiAgICAgICAgICAgICAgICAgIC5yZXNvdXJjZU5hbWUsXG4gICAgICAgICAgICAgICAgYXBwZW5kVG9Qcm9tcHQ6IHRoaXMuZXh0cmFjdGlvbk92ZXJyaWRlLmFwcGVuZFRvUHJvbXB0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZVxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBncmFudGVlIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIFRoZSBHcmFudCBvYmplY3QgZm9yIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBncmFudDEgPSB0aGlzLmNvbnNvbGlkYXRpb25PdmVycmlkZT8ubW9kZWwuZ3JhbnRJbnZva2UoZ3JhbnRlZSk7XG4gICAgY29uc3QgZ3JhbnQyID0gdGhpcy5leHRyYWN0aW9uT3ZlcnJpZGU/Lm1vZGVsLmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICAgIHJldHVybiBncmFudDEgJiYgZ3JhbnQyID8gZ3JhbnQxLmNvbWJpbmUoZ3JhbnQyKSA6IGdyYW50MSB8fCBncmFudDI7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVkFMSURBVE9SU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtb3J5IHN0cmF0ZWd5IG5hbWVcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVNZW1vcnlTdHJhdGVneU5hbWUgPSAobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdNZW1vcnkgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IE1FTU9SWV9OQU1FX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdNZW1vcnkgbmFtZScsIHZhbGlkTmFtZVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvbXB0XG4gICAqIEBwYXJhbSBwcm9tcHQgLSBUaGUgcHJvbXB0IHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVByb21wdCA9IChwcm9tcHQ/OiBzdHJpbmcsIHNjb3BlPzogSUNvbnN0cnVjdCk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghcHJvbXB0KSB7XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgIHZhbHVlOiBwcm9tcHQsXG4gICAgICBmaWVsZE5hbWU6ICdQcm9tcHQnLFxuICAgICAgbWluTGVuZ3RoOiBQUk9NUFRfTUlOX0xFTkdUSCxcbiAgICAgIG1heExlbmd0aDogUFJPTVBUX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSBzdHJhdGVneSBuYW1lc3BhY2VzXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VzIC0gVGhlIG5hbWVzcGFjZXMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lc3BhY2VzID0gKG5hbWVzcGFjZXM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgbmFtZXNwYWNlcykge1xuICAgICAgLy8gT25seSBjaGVjayBmb3IgdGVtcGxhdGUgdmFyaWFibGVzIGluIG5hbWVzcGFjZSBkZWZpbml0aW9uXG4gICAgICBpZiAobmFtZXNwYWNlLmluY2x1ZGVzKCd7JykgJiYgIShcbiAgICAgICAgbmFtZXNwYWNlLmluY2x1ZGVzKCd7YWN0b3JJZH0nKSB8fFxuICAgICAgICAgICAgbmFtZXNwYWNlLmluY2x1ZGVzKCd7c2Vzc2lvbklkfScpIHx8XG4gICAgICAgICAgICBuYW1lc3BhY2UuaW5jbHVkZXMoJ3ttZW1vcnlTdHJhdGVneUlkfScpXG4gICAgICApKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBOYW1lc3BhY2Ugd2l0aCB0ZW1wbGF0ZXMgc2hvdWxkIGNvbnRhaW4gdmFsaWQgdmFyaWFibGVzOiAke25hbWVzcGFjZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xufVxuIl19
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
import * as sns from 'aws-cdk-lib/aws-sns';
|
|
14
13
|
import * as cdk from 'aws-cdk-lib';
|
|
15
|
-
import { Location } from 'aws-cdk-lib/aws-s3';
|
|
16
|
-
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
17
14
|
import * as bedrockagentcore from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
15
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
16
|
+
import { Location } from 'aws-cdk-lib/aws-s3';
|
|
17
|
+
import * as sns from 'aws-cdk-lib/aws-sns';
|
|
18
18
|
import { IMemoryStrategy, MemoryStrategyCommonProps, MemoryStrategyType } from '../memory-strategy';
|
|
19
19
|
/**
|
|
20
20
|
* Trigger conditions for self managed memory strategy
|
|
@@ -3,6 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SelfManagedMemoryStrategy = void 0;
|
|
4
4
|
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
10
|
+
* with the License. A copy of the License is located at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
15
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
16
|
+
* and limitations under the License.
|
|
17
|
+
*/
|
|
6
18
|
const cdk = require("aws-cdk-lib");
|
|
7
19
|
const iam = require("aws-cdk-lib/aws-iam");
|
|
8
20
|
const memory_strategy_1 = require("../memory-strategy");
|
|
@@ -74,7 +86,7 @@ const DEFAULT_TOKEN_BASED_TRIGGER = 100;
|
|
|
74
86
|
* Use AgentCore memory for event storage with custom triggers. Define memory processing logic in your own environment.
|
|
75
87
|
*/
|
|
76
88
|
class SelfManagedMemoryStrategy {
|
|
77
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.
|
|
89
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.232.0-alpha.0" };
|
|
78
90
|
name;
|
|
79
91
|
description;
|
|
80
92
|
strategyType;
|
|
@@ -251,4 +263,4 @@ class SelfManagedMemoryStrategy {
|
|
|
251
263
|
};
|
|
252
264
|
}
|
|
253
265
|
exports.SelfManagedMemoryStrategy = SelfManagedMemoryStrategy;
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0EsbUNBQW1DO0FBR25DLDJDQUEyQztBQUUzQyx3REFBb0o7QUFDcEosOERBQXdHO0FBRXhHOzsrRUFFK0U7QUFDL0U7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDbEM7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUM7QUFDdkM7OztHQUdHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckM7OztHQUdHO0FBQ0gsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0M7OztHQUdHO0FBQ0gsTUFBTSxrQ0FBa0MsR0FBRyxFQUFFLENBQUM7QUFDOUM7OztHQUdHO0FBQ0gsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLENBQUM7QUFDakQ7OztHQUdHO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEM7OztHQUdHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1RDs7O0dBR0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQztBQTREeEM7O0dBRUc7QUFDSCxNQUFhLHlCQUF5Qjs7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsV0FBVyxDQUFVO0lBQ3JCLFlBQVksQ0FBcUI7SUFDakQ7O09BRUc7SUFDYSx1QkFBdUIsQ0FBMEI7SUFDakU7O09BRUc7SUFDYSxpQkFB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UUFBUSxzQkFBc0IsaUJBQWlCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDcEksQ0FBQztRQUNILENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxpQkFBaUIsQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixJQUFJLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixFQUFFLENBQUM7Z0JBQ25JLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLHVCQUF1QixRQUFRLHVCQUF1QixTQUFTLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUMzSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQzs7QUF2TEosOERBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgSU1lbW9yeVN0cmF0ZWd5LCBNZW1vcnlTdHJhdGVneUNvbW1vblByb3BzLCBNZW1vcnlTdHJhdGVneVR5cGUsIE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsIE1FTU9SWV9OQU1FX01BWF9MRU5HVEggfSBmcm9tICcuLi9tZW1vcnktc3RyYXRlZ3knO1xuaW1wb3J0IHsgdmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCwgdGhyb3dJZkludmFsaWQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSB2YWx1ZSBmb3IgdGltZS1iYXNlZCB0cmlnZ2VyIGluIHNlY29uZHNcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBUSU1FX0JBU0VEX1RSSUdHRVJfTUlOID0gMTA7XG4vKipcbiAqIE1heGltdW0gdmFsdWUgZm9yIHRpbWUtYmFzZWQgdHJpZ2dlciBpbiBzZWNvbmRzXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgVElNRV9CQVNFRF9UUklHR0VSX01BWCA9IDMwMDA7XG4vKipcbiAqIE1pbmltdW0gdmFsdWUgZm9yIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBUT0tFTl9CQVNFRF9UUklHR0VSX01JTiA9IDEwMDtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgdG9rZW4tYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IFRPS0VOX0JBU0VEX1RSSUdHRVJfTUFYID0gNTAwMDAwO1xuLyoqXG4gKiBNaW5pbXVtIHZhbHVlIGZvciBtZXNzYWdlLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUlOID0gMTtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgbWVzc2FnZS1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgTUVTU0FHRV9CQVNFRF9UUklHR0VSX01BWCA9IDUwO1xuLyoqXG4gKiBNaW5pbXVtIHZhbHVlIGZvciBoaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUlOID0gMDtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgaGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01BWCA9IDUwO1xuLyoqXG4gKiBEZWZhdWx0IHZhbHVlIGZvciBoaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBERUZBVUxUX0hJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRSA9IDQ7XG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIG1lc3NhZ2UtYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IERFRkFVTFRfTUVTU0FHRV9CQVNFRF9UUklHR0VSID0gMTtcbi8qKlxuICogRGVmYXVsdCB2YWx1ZSBmb3IgdGltZS1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgREVGQVVMVF9USU1FX0JBU0VEX1RSSUdHRVIgPSBjZGsuRHVyYXRpb24uc2Vjb25kcygxMCk7XG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBERUZBVUxUX1RPS0VOX0JBU0VEX1RSSUdHRVIgPSAxMDA7XG5cbi8qKlxuICogVHJpZ2dlciBjb25kaXRpb25zIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gKiBXaGVuIGZpcnN0IGNvbmRpdGlvbiBpcyBtZXQsIGJhdGNoZWQgcGF5bG9hZHMgYXJlIHNlbnQgdG8gc3BlY2lmaWVkIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyQ29uZGl0aW9ucyB7XG4gIC8qKlxuICAgKiBUcmlnZ2VycyBtZW1vcnkgcHJvY2Vzc2luZyB3aGVuIHNwZWNpZmllZCBudW1iZXIgb2YgbmV3IG1lc3NhZ2VzIGlzIHJlYWNoZWRcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZUJhc2VkVHJpZ2dlcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIG1lbW9yeSBwcm9jZXNzaW5nIHdoZW4gdGhlIHNlc3Npb24gaGFzIGJlZW4gaWRsZSBmb3IgdGhlIHNwZWNpZmllZCBkdXJhdGlvbi5cbiAgICogVmFsdWUgaW4gc2Vjb25kcy5cbiAgICogQGRlZmF1bHQgLSAxMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSB0aW1lQmFzZWRUcmlnZ2VyPzogY2RrLkR1cmF0aW9uO1xuICAvKipcbiAgICogVHJpZ2dlcnMgbWVtb3J5IHByb2Nlc3Npbmcgd2hlbiB0aGUgdG9rZW4gc2l6ZSByZWFjaGVzIHRoZSBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICAgKiBAZGVmYXVsdCAxMDBcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuQmFzZWRUcmlnZ2VyPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEludm9jYXRpb24gY29uZmlndXJhdGlvbiBmb3Igc2VsZiBtYW5hZ2VkIG1lbW9yeSBzdHJhdGVneVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb25Db25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFNOUyBUb3BpYyBDb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSB0b3BpYzogc25zLklUb3BpYztcbiAgLyoqXG4gICAqIFMzIExvY2F0aW9uIENvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHMzTG9jYXRpb246IExvY2F0aW9uO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgYSBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gKiBleGlzdGluZyBidWlsdC1pbiBkZWZhdWx0IHByb21wdHMvbW9kZWxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZk1hbmFnZWRTdHJhdGVneVByb3BzIGV4dGVuZHMgTWVtb3J5U3RyYXRlZ3lDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG51bWJlciBvZiBwcmV2aW91cyBldmVudHMgdG8gYmUgaW5jbHVkZWQgd2hlbiBwcm9jZXNzaW5nIG1lbW9yeS4gQSBsYXJnZXIgaGlzdG9yeSB3aW5kb3cgcHJvdmlkZXMgbW9yZSBjb250ZXh0IGZyb20gcGFzdCBjb252ZXJzYXRpb25zLlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICByZWFkb25seSBoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbnZvY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHJlYWRvbmx5IGludm9jYXRpb25Db25maWd1cmF0aW9uOiBJbnZvY2F0aW9uQ29uZmlndXJhdGlvbjtcbiAgLyoqXG4gICAqIFRyaWdnZXIgY29uZGl0aW9ucyBmb3Igc2VsZiBtYW5hZ2VkIG1lbW9yeSBzdHJhdGVneVxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlckNvbmRpdGlvbnM/OiBUcmlnZ2VyQ29uZGl0aW9ucztcbn1cblxuLyoqXG4gKiBVc2UgQWdlbnRDb3JlIG1lbW9yeSBmb3IgZXZlbnQgc3RvcmFnZSB3aXRoIGN1c3RvbSB0cmlnZ2Vycy4gRGVmaW5lIG1lbW9yeSBwcm9jZXNzaW5nIGxvZ2ljIGluIHlvdXIgb3duIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2VsZk1hbmFnZWRNZW1vcnlTdHJhdGVneSBpbXBsZW1lbnRzIElNZW1vcnlTdHJhdGVneSB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHN0cmF0ZWd5VHlwZTogTWVtb3J5U3RyYXRlZ3lUeXBlO1xuICAvKipcbiAgICogSW52b2NhdGlvbiBjb25maWd1cmF0aW9uIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW52b2NhdGlvbkNvbmZpZ3VyYXRpb246IEludm9jYXRpb25Db25maWd1cmF0aW9uO1xuICAvKipcbiAgICogVHJpZ2dlciBjb25kaXRpb25zIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHJpZ2dlckNvbmRpdGlvbnM6IFRyaWdnZXJDb25kaXRpb25zO1xuICAvKipcbiAgICogSGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc3RyYXRlZ3lUeXBlOiBNZW1vcnlTdHJhdGVneVR5cGUsIHByb3BzOiBTZWxmTWFuYWdlZFN0cmF0ZWd5UHJvcHMpIHtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnN0cmF0ZWd5VHlwZSA9IHN0cmF0ZWd5VHlwZTtcbiAgICB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uID0gcHJvcHMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy50cmlnZ2VyQ29uZGl0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2VCYXNlZFRyaWdnZXI6IHByb3BzLnRyaWdnZXJDb25kaXRpb25zPy5tZXNzYWdlQmFzZWRUcmlnZ2VyID8/IERFRkFVTFRfTUVTU0FHRV9CQVNFRF9UUklHR0VSLFxuICAgICAgdGltZUJhc2VkVHJpZ2dlcjogcHJvcHMudHJpZ2dlckNvbmRpdGlvbnM/LnRpbWVCYXNlZFRyaWdnZXIgPz8gREVGQVVMVF9USU1FX0JBU0VEX1RSSUdHRVIsXG4gICAgICB0b2tlbkJhc2VkVHJpZ2dlcjogcHJvcHMudHJpZ2dlckNvbmRpdGlvbnM/LnRva2VuQmFzZWRUcmlnZ2VyID8/IERFRkFVTFRfVE9LRU5fQkFTRURfVFJJR0dFUixcbiAgICB9O1xuICAgIHRoaXMuaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplID0gcHJvcHMuaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplID8/IERFRkFVTFRfSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVmFsaWRhdGlvbnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZU1lbW9yeVN0cmF0ZWd5TmFtZSwgdGhpcy5uYW1lKTtcbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZUhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSwgdGhpcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlVHJpZ2dlckNvbmRpdGlvbnMsIHRoaXMudHJpZ2dlckNvbmRpdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBiZWRyb2NrYWdlbnRjb3JlLkNmbk1lbW9yeS5NZW1vcnlTdHJhdGVneVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tTWVtb3J5U3RyYXRlZ3k6IHtcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgdHlwZTogdGhpcy5zdHJhdGVneVR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBzZWxmTWFuYWdlZENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZTogdGhpcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUsXG4gICAgICAgICAgICBpbnZvY2F0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICB0b3BpY0FybjogdGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi50b3BpYy50b3BpY0FybixcbiAgICAgICAgICAgICAgcGF5bG9hZERlbGl2ZXJ5QnVja2V0TmFtZTogdGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJpZ2dlckNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VCYXNlZFRyaWdnZXI6IHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VDb3VudDogdGhpcy50cmlnZ2VyQ29uZGl0aW9ucy5tZXNzYWdlQmFzZWRUcmlnZ2VyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aW1lQmFzZWRUcmlnZ2VyOiB7XG4gICAgICAgICAgICAgICAgICBpZGxlU2Vzc2lvblRpbWVvdXQ6IHRoaXMudHJpZ2dlckNvbmRpdGlvbnMudGltZUJhc2VkVHJpZ2dlcj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRva2VuQmFzZWRUcmlnZ2VyOiB7XG4gICAgICAgICAgICAgICAgICB0b2tlbkNvdW50OiB0aGlzLnRyaWdnZXJDb25kaXRpb25zLnRva2VuQmFzZWRUcmlnZ2VyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0gYXMgYW55OyAvLyBUeXBlIGFzc2VydGlvbiB0byB3b3JrIGFyb3VuZCBDbG91ZEZvcm1hdGlvbiB0eXBlIGxpbWl0YXRpb25zXG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGVcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgZ3JhbnRlZSB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcmV0dXJucyBUaGUgR3JhbnQgb2JqZWN0IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICAvLyBubyBleGlzdGluZyBncmFudCBtZXRob2QgdGhhdCBwcm92aWRlcyBib3RoIHJlcXVpcmVkIHNucyBhY3Rpb25zXG4gICAgY29uc3QgZ3JhbnQxID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbJ3NuczpHZXRUb3BpY0F0dHJpYnV0ZXMnLCAnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHJlc291cmNlQXJuczogW1xuICAgICAgICB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnRvcGljLnRvcGljQXJuLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBncmFudDI6IGlhbS5HcmFudCB8IHVuZGVmaW5lZDtcblxuICAgIC8vIHdlIGRvbid0IGhhdmUgdGhlIHNjb3BlIGhlcmUsIHNvIHdlIGFkZCBtYW51YWxseSB0aGUgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGUgcG9saWN5XG4gICAgaWYgKHRoaXMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb24/LnMzTG9jYXRpb24pIHtcbiAgICAgIC8vIEdyYW50IFMzIHBlcm1pc3Npb25zIGZvciB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uXG4gICAgICBncmFudDIgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ3MzOkdldEJ1Y2tldExvY2F0aW9uJyxcbiAgICAgICAgICAnczM6UHV0T2JqZWN0JyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VBcm5zOiBbXG4gICAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi5zM0xvY2F0aW9uLmJ1Y2tldE5hbWV9YCxcbiAgICAgICAgICBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOjo6JHt0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnMzTG9jYXRpb24uYnVja2V0TmFtZX0vKmAsXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhbnQxICYmIGdyYW50MiA/IGdyYW50MS5jb21iaW5lKGdyYW50MikgOiBncmFudDEgfHwgZ3JhbnQyO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFZBTElEQVRPUlNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSBzdHJhdGVneSBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lID0gKG5hbWU6IHN0cmluZywgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgZmllbGROYW1lOiAnTWVtb3J5IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiBNRU1PUllfTkFNRV9NSU5fTEVOR1RILFxuICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfTkFNRV9NQVhfTEVOR1RILFxuICAgIH0sIHNjb3BlKSk7XG5cbiAgICAvLyBDaGVjayBpZiBuYW1lIG1hdGNoZXMgdGhlIEFXUyBBUEkgcGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICAvLyBNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIsIGZvbGxvd2VkIGJ5IHVwIHRvIDQ3IGxldHRlcnMsIG51bWJlcnMsIG9yIHVuZGVyc2NvcmVzXG4gICAgY29uc3QgdmFsaWROYW1lUGF0dGVybiA9IC9eW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kLztcbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybihuYW1lLCAnTWVtb3J5IG5hbWUnLCB2YWxpZE5hbWVQYXR0ZXJuLCB1bmRlZmluZWQsIHNjb3BlKSk7XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZVxuICAgKiBAcGFyYW0gaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplIC0gVGhlIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZSB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVIaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPSAoaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplOiBudW1iZXIpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPCBISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUlOXG4gICAgICAgIHx8IGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSA+IEhJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRV9NQVgpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBIaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemUgbXVzdCBiZSBiZXR3ZWVuICR7SElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01JTn0gYW5kICR7SElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01BWH0sIGdvdCAke2hpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyaWdnZXIgY29uZGl0aW9uc1xuICAgKiBAcGFyYW0gdHJpZ2dlckNvbmRpdGlvbnMgLSBUaGUgdHJpZ2dlciBjb25kaXRpb25zIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVRyaWdnZXJDb25kaXRpb25zID0gKHRyaWdnZXJDb25kaXRpb25zOiBUcmlnZ2VyQ29uZGl0aW9ucyk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gVmFsaWRhdGUgbWVzc2FnZS1iYXNlZCB0cmlnZ2VyXG4gICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgPCBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUlOXG4gICAgICAgIHx8IHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgPiBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUFYKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBNZXNzYWdlLWJhc2VkIHRyaWdnZXIgbXVzdCBiZSBiZXR3ZWVuICR7TUVTU0FHRV9CQVNFRF9UUklHR0VSX01JTn0gYW5kICR7TUVTU0FHRV9CQVNFRF9UUklHR0VSX01BWH0sIGdvdCAke3RyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXJ9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgdGltZS1iYXNlZCB0cmlnZ2VyXG4gICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLnRpbWVCYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc2Vjb25kcyA9IHRyaWdnZXJDb25kaXRpb25zLnRpbWVCYXNlZFRyaWdnZXIudG9TZWNvbmRzKCk7XG4gICAgICBpZiAoc2Vjb25kcyA8IFRJTUVfQkFTRURfVFJJR0dFUl9NSU4gfHwgc2Vjb25kcyA+IFRJTUVfQkFTRURfVFJJR0dFUl9NQVgpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goYFRpbWUtYmFzZWQgdHJpZ2dlciBtdXN0IGJlIGJldHdlZW4gJHtUSU1FX0JBU0VEX1RSSUdHRVJfTUlOfSBhbmQgJHtUSU1FX0JBU0VEX1RSSUdHRVJfTUFYfSBzZWNvbmRzLCBnb3QgJHtzZWNvbmRzfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLnRva2VuQmFzZWRUcmlnZ2VyIDwgVE9LRU5fQkFTRURfVFJJR0dFUl9NSU4gfHwgdHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIgPiBUT0tFTl9CQVNFRF9UUklHR0VSX01BWCkge1xuICAgICAgICBlcnJvcnMucHVzaChgVG9rZW4tYmFzZWQgdHJpZ2dlciBtdXN0IGJlIGJldHdlZW4gJHtUT0tFTl9CQVNFRF9UUklHR0VSX01JTn0gYW5kICR7VE9LRU5fQkFTRURfVFJJR0dFUl9NQVh9LCBnb3QgJHt0cmlnZ2VyQ29uZGl0aW9ucy50b2tlbkJhc2VkVHJpZ2dlcn1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xufVxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBSTNDLHdEQUFvSjtBQUNwSiw4REFBd0c7QUFFeEc7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQUNwQzs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUNwQzs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztBQUN2Qzs7O0dBR0c7QUFDSCxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUNwQzs7O0dBR0c7QUFDSCxNQUFNLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztBQUNyQzs7O0dBR0c7QUFDSCxNQUFNLGtDQUFrQyxHQUFHLENBQUMsQ0FBQztBQUM3Qzs7O0dBR0c7QUFDSCxNQUFNLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztBQUM5Qzs7O0dBR0c7QUFDSCxNQUFNLHNDQUFzQyxHQUFHLENBQUMsQ0FBQztBQUNqRDs7O0dBR0c7QUFDSCxNQUFNLDZCQUE2QixHQUFHLENBQUMsQ0FBQztBQUN4Qzs7O0dBR0c7QUFDSCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVEOzs7R0FHRztBQUNILE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBNER4Qzs7R0FFRztBQUNILE1BQWEseUJBQXlCOztJQUNwQixJQUFJLENBQVM7SUFDYixXQUFXLENBQVU7SUFDckIsWUFBWSxDQUFxQjtJQUNqRDs7T0FFRztJQUNhLHVCQUF1QixDQUEwQjtJ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LENBQUMsc0NBQXNDLHNCQUFzQixRQUFRLHNCQUFzQixpQkFBaUIsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNwSSxDQUFDO1FBQ0gsQ0FBQztRQUVELCtCQUErQjtRQUMvQixJQUFJLGlCQUFpQixDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLElBQUksaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztnQkFDbkksTUFBTSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsdUJBQXVCLFFBQVEsdUJBQXVCLFNBQVMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQzNKLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDOztBQXZMSiw4REF3TEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYmVkcm9ja2FnZW50Y29yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJTWVtb3J5U3RyYXRlZ3ksIE1lbW9yeVN0cmF0ZWd5Q29tbW9uUHJvcHMsIE1lbW9yeVN0cmF0ZWd5VHlwZSwgTUVNT1JZX05BTUVfTUlOX0xFTkdUSCwgTUVNT1JZX05BTUVfTUFYX0xFTkdUSCB9IGZyb20gJy4uL21lbW9yeS1zdHJhdGVneSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLCB0aHJvd0lmSW52YWxpZCwgdmFsaWRhdGVGaWVsZFBhdHRlcm4gfSBmcm9tICcuLi92YWxpZGF0aW9uLWhlbHBlcnMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTlNUQU5UU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBNaW5pbXVtIHZhbHVlIGZvciB0aW1lLWJhc2VkIHRyaWdnZXIgaW4gc2Vjb25kc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IFRJTUVfQkFTRURfVFJJR0dFUl9NSU4gPSAxMDtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgdGltZS1iYXNlZCB0cmlnZ2VyIGluIHNlY29uZHNcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBUSU1FX0JBU0VEX1RSSUdHRVJfTUFYID0gMzAwMDtcbi8qKlxuICogTWluaW11bSB2YWx1ZSBmb3IgdG9rZW4tYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IFRPS0VOX0JBU0VEX1RSSUdHRVJfTUlOID0gMTAwO1xuLyoqXG4gKiBNYXhpbXVtIHZhbHVlIGZvciB0b2tlbi1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgVE9LRU5fQkFTRURfVFJJR0dFUl9NQVggPSA1MDAwMDA7XG4vKipcbiAqIE1pbmltdW0gdmFsdWUgZm9yIG1lc3NhZ2UtYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IE1FU1NBR0VfQkFTRURfVFJJR0dFUl9NSU4gPSAxO1xuLyoqXG4gKiBNYXhpbXVtIHZhbHVlIGZvciBtZXNzYWdlLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUFYID0gNTA7XG4vKipcbiAqIE1pbmltdW0gdmFsdWUgZm9yIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IEhJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRV9NSU4gPSAwO1xuLyoqXG4gKiBNYXhpbXVtIHZhbHVlIGZvciBoaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUFYID0gNTA7XG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IERFRkFVTFRfSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFID0gNDtcbi8qKlxuICogRGVmYXVsdCB2YWx1ZSBmb3IgbWVzc2FnZS1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgREVGQVVMVF9NRVNTQUdFX0JBU0VEX1RSSUdHRVIgPSAxO1xuLyoqXG4gKiBEZWZhdWx0IHZhbHVlIGZvciB0aW1lLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBERUZBVUxUX1RJTUVfQkFTRURfVFJJR0dFUiA9IGNkay5EdXJhdGlvbi5zZWNvbmRzKDEwKTtcbi8qKlxuICogRGVmYXVsdCB2YWx1ZSBmb3IgdG9rZW4tYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IERFRkFVTFRfVE9LRU5fQkFTRURfVFJJR0dFUiA9IDEwMDtcblxuLyoqXG4gKiBUcmlnZ2VyIGNvbmRpdGlvbnMgZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAqIFdoZW4gZmlyc3QgY29uZGl0aW9uIGlzIG1ldCwgYmF0Y2hlZCBwYXlsb2FkcyBhcmUgc2VudCB0byBzcGVjaWZpZWQgUzMgYnVja2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJDb25kaXRpb25zIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIG1lbW9yeSBwcm9jZXNzaW5nIHdoZW4gc3BlY2lmaWVkIG51bWJlciBvZiBuZXcgbWVzc2FnZXMgaXMgcmVhY2hlZFxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlQmFzZWRUcmlnZ2VyPzogbnVtYmVyO1xuICAvKipcbiAgICogVHJpZ2dlcnMgbWVtb3J5IHByb2Nlc3Npbmcgd2hlbiB0aGUgc2Vzc2lvbiBoYXMgYmVlbiBpZGxlIGZvciB0aGUgc3BlY2lmaWVkIGR1cmF0aW9uLlxuICAgKiBWYWx1ZSBpbiBzZWNvbmRzLlxuICAgKiBAZGVmYXVsdCAtIDEwIHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVCYXNlZFRyaWdnZXI/OiBjZGsuRHVyYXRpb247XG4gIC8qKlxuICAgKiBUcmlnZ2VycyBtZW1vcnkgcHJvY2Vzc2luZyB3aGVuIHRoZSB0b2tlbiBzaXplIHJlYWNoZXMgdGhlIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gICAqIEBkZWZhdWx0IDEwMFxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5CYXNlZFRyaWdnZXI/OiBudW1iZXI7XG59XG5cbi8qKlxuICogSW52b2NhdGlvbiBjb25maWd1cmF0aW9uIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW52b2NhdGlvbkNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogU05TIFRvcGljIENvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljOiBzbnMuSVRvcGljO1xuICAvKipcbiAgICogUzMgTG9jYXRpb24gQ29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbjogTG9jYXRpb247XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBhIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAqIGV4aXN0aW5nIGJ1aWx0LWluIGRlZmF1bHQgcHJvbXB0cy9tb2RlbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxmTWFuYWdlZFN0cmF0ZWd5UHJvcHMgZXh0ZW5kcyBNZW1vcnlTdHJhdGVneUNvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIGV2ZW50cyB0byBiZSBpbmNsdWRlZCB3aGVuIHByb2Nlc3NpbmcgbWVtb3J5LiBBIGxhcmdlciBoaXN0b3J5IHdpbmRvdyBwcm92aWRlcyBtb3JlIGNvbnRleHQgZnJvbSBwYXN0IGNvbnZlcnNhdGlvbnMuXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIHJlYWRvbmx5IGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEludm9jYXRpb24gY29uZmlndXJhdGlvbiBmb3Igc2VsZiBtYW5hZ2VkIG1lbW9yeSBzdHJhdGVneVxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2NhdGlvbkNvbmZpZ3VyYXRpb246IEludm9jYXRpb25Db25maWd1cmF0aW9uO1xuICAvKipcbiAgICogVHJpZ2dlciBjb25kaXRpb25zIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyQ29uZGl0aW9ucz86IFRyaWdnZXJDb25kaXRpb25zO1xufVxuXG4vKipcbiAqIFVzZSBBZ2VudENvcmUgbWVtb3J5IGZvciBldmVudCBzdG9yYWdlIHdpdGggY3VzdG9tIHRyaWdnZXJzLiBEZWZpbmUgbWVtb3J5IHByb2Nlc3NpbmcgbG9naWMgaW4geW91ciBvd24gZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWxmTWFuYWdlZE1lbW9yeVN0cmF0ZWd5IGltcGxlbWVudHMgSU1lbW9yeVN0cmF0ZWd5IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RyYXRlZ3lUeXBlOiBNZW1vcnlTdHJhdGVneVR5cGU7XG4gIC8qKlxuICAgKiBJbnZvY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnZvY2F0aW9uQ29uZmlndXJhdGlvbjogSW52b2NhdGlvbkNvbmZpZ3VyYXRpb247XG4gIC8qKlxuICAgKiBUcmlnZ2VyIGNvbmRpdGlvbnMgZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyQ29uZGl0aW9uczogVHJpZ2dlckNvbmRpdGlvbnM7XG4gIC8qKlxuICAgKiBIaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemUgZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihzdHJhdGVneVR5cGU6IE1lbW9yeVN0cmF0ZWd5VHlwZSwgcHJvcHM6IFNlbGZNYW5hZ2VkU3RyYXRlZ3lQcm9wcykge1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuc3RyYXRlZ3lUeXBlID0gc3RyYXRlZ3lUeXBlO1xuICAgIHRoaXMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb24gPSBwcm9wcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbjtcbiAgICB0aGlzLnRyaWdnZXJDb25kaXRpb25zID0ge1xuICAgICAgbWVzc2FnZUJhc2VkVHJpZ2dlcjogcHJvcHMudHJpZ2dlckNvbmRpdGlvbnM/Lm1lc3NhZ2VCYXNlZFRyaWdnZXIgPz8gREVGQVVMVF9NRVNTQUdFX0JBU0VEX1RSSUdHRVIsXG4gICAgICB0aW1lQmFzZWRUcmlnZ2VyOiBwcm9wcy50cmlnZ2VyQ29uZGl0aW9ucz8udGltZUJhc2VkVHJpZ2dlciA/PyBERUZBVUxUX1RJTUVfQkFTRURfVFJJR0dFUixcbiAgICAgIHRva2VuQmFzZWRUcmlnZ2VyOiBwcm9wcy50cmlnZ2VyQ29uZGl0aW9ucz8udG9rZW5CYXNlZFRyaWdnZXIgPz8gREVGQVVMVF9UT0tFTl9CQVNFRF9UUklHR0VSLFxuICAgIH07XG4gICAgdGhpcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPSBwcm9wcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPz8gREVGQVVMVF9ISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkU7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBWYWxpZGF0aW9uc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lLCB0aGlzLm5hbWUpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlSGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplLCB0aGlzLmhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSk7XG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVUcmlnZ2VyQ29uZGl0aW9ucywgdGhpcy50cmlnZ2VyQ29uZGl0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuTWVtb3J5Lk1lbW9yeVN0cmF0ZWd5UHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21NZW1vcnlTdHJhdGVneToge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICB0eXBlOiB0aGlzLnN0cmF0ZWd5VHlwZSxcbiAgICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHNlbGZNYW5hZ2VkQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplOiB0aGlzLmhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSxcbiAgICAgICAgICAgIGludm9jYXRpb25Db25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIHRvcGljQXJuOiB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnRvcGljLnRvcGljQXJuLFxuICAgICAgICAgICAgICBwYXlsb2FkRGVsaXZlcnlCdWNrZXROYW1lOiB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cmlnZ2VyQ29uZGl0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUJhc2VkVHJpZ2dlcjoge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZUNvdW50OiB0aGlzLnRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpbWVCYXNlZFRyaWdnZXI6IHtcbiAgICAgICAgICAgICAgICAgIGlkbGVTZXNzaW9uVGltZW91dDogdGhpcy50cmlnZ2VyQ29uZGl0aW9ucy50aW1lQmFzZWRUcmlnZ2VyPy50b1NlY29uZHMoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdG9rZW5CYXNlZFRyaWdnZXI6IHtcbiAgICAgICAgICAgICAgICAgIHRva2VuQ291bnQ6IHRoaXMudHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSBhcyBhbnk7IC8vIFR5cGUgYXNzZXJ0aW9uIHRvIHdvcmsgYXJvdW5kIENsb3VkRm9ybWF0aW9uIHR5cGUgbGltaXRhdGlvbnNcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZVxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBncmFudGVlIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIFRoZSBHcmFudCBvYmplY3QgZm9yIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQgfCB1bmRlZmluZWQge1xuICAgIC8vIG5vIGV4aXN0aW5nIGdyYW50IG1ldGhvZCB0aGF0IHByb3ZpZGVzIGJvdGggcmVxdWlyZWQgc25zIGFjdGlvbnNcbiAgICBjb25zdCBncmFudDEgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IFsnc25zOkdldFRvcGljQXR0cmlidXRlcycsICdzbnM6UHVibGlzaCddLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXG4gICAgICAgIHRoaXMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb24udG9waWMudG9waWNBcm4sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbGV0IGdyYW50MjogaWFtLkdyYW50IHwgdW5kZWZpbmVkO1xuXG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSB0aGUgc2NvcGUgaGVyZSwgc28gd2UgYWRkIG1hbnVhbGx5IHRoZSBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZSBwb2xpY3lcbiAgICBpZiAodGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbj8uczNMb2NhdGlvbikge1xuICAgICAgLy8gR3JhbnQgUzMgcGVybWlzc2lvbnMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYXRpb25cbiAgICAgIGdyYW50MiA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnczM6R2V0QnVja2V0TG9jYXRpb24nLFxuICAgICAgICAgICdzMzpQdXRPYmplY3QnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZUFybnM6IFtcbiAgICAgICAgICBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOjo6JHt0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnMzTG9jYXRpb24uYnVja2V0TmFtZX1gLFxuICAgICAgICAgIGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6Ojoke3RoaXMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb24uczNMb2NhdGlvbi5idWNrZXROYW1lfS8qYCxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDEgJiYgZ3JhbnQyID8gZ3JhbnQxLmNvbWJpbmUoZ3JhbnQyKSA6IGdyYW50MSB8fCBncmFudDI7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVkFMSURBVE9SU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtb3J5IHN0cmF0ZWd5IG5hbWVcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVNZW1vcnlTdHJhdGVneU5hbWUgPSAobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdNZW1vcnkgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IE1FTU9SWV9OQU1FX01BWF9MRU5HVEgsXG4gICAgfSwgc2NvcGUpKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdNZW1vcnkgbmFtZScsIHZhbGlkTmFtZVBhdHRlcm4sIHVuZGVmaW5lZCwgc2NvcGUpKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgaGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplXG4gICAqIEBwYXJhbSBoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgLSBUaGUgaGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZUhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSA9IChoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemU6IG51bWJlcik6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSA8IEhJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRV9NSU5cbiAgICAgICAgfHwgaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplID4gSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01BWCkge1xuICAgICAgZXJyb3JzLnB1c2goYEhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZSBtdXN0IGJlIGJldHdlZW4gJHtISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUlOfSBhbmQgJHtISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUFYfSwgZ290ICR7aGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplfWApO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdHJpZ2dlciBjb25kaXRpb25zXG4gICAqIEBwYXJhbSB0cmlnZ2VyQ29uZGl0aW9ucyAtIFRoZSB0cmlnZ2VyIGNvbmRpdGlvbnMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlVHJpZ2dlckNvbmRpdGlvbnMgPSAodHJpZ2dlckNvbmRpdGlvbnM6IFRyaWdnZXJDb25kaXRpb25zKTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBWYWxpZGF0ZSBtZXNzYWdlLWJhc2VkIHRyaWdnZXJcbiAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMubWVzc2FnZUJhc2VkVHJpZ2dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMubWVzc2FnZUJhc2VkVHJpZ2dlciA8IE1FU1NBR0VfQkFTRURfVFJJR0dFUl9NSU5cbiAgICAgICAgfHwgdHJpZ2dlckNvbmRpdGlvbnMubWVzc2FnZUJhc2VkVHJpZ2dlciA+IE1FU1NBR0VfQkFTRURfVFJJR0dFUl9NQVgpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goYE1lc3NhZ2UtYmFzZWQgdHJpZ2dlciBtdXN0IGJlIGJldHdlZW4gJHtNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUlOfSBhbmQgJHtNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUFYfSwgZ290ICR7dHJpZ2dlckNvbmRpdGlvbnMubWVzc2FnZUJhc2VkVHJpZ2dlcn1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSB0aW1lLWJhc2VkIHRyaWdnZXJcbiAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMudGltZUJhc2VkVHJpZ2dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzZWNvbmRzID0gdHJpZ2dlckNvbmRpdGlvbnMudGltZUJhc2VkVHJpZ2dlci50b1NlY29uZHMoKTtcbiAgICAgIGlmIChzZWNvbmRzIDwgVElNRV9CQVNFRF9UUklHR0VSX01JTiB8fCBzZWNvbmRzID4gVElNRV9CQVNFRF9UUklHR0VSX01BWCkge1xuICAgICAgICBlcnJvcnMucHVzaChgVGltZS1iYXNlZCB0cmlnZ2VyIG11c3QgYmUgYmV0d2VlbiAke1RJTUVfQkFTRURfVFJJR0dFUl9NSU59IGFuZCAke1RJTUVfQkFTRURfVFJJR0dFUl9NQVh9IHNlY29uZHMsIGdvdCAke3NlY29uZHN9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgdG9rZW4tYmFzZWQgdHJpZ2dlclxuICAgIGlmICh0cmlnZ2VyQ29uZGl0aW9ucy50b2tlbkJhc2VkVHJpZ2dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIgPCBUT0tFTl9CQVNFRF9UUklHR0VSX01JTiB8fCB0cmlnZ2VyQ29uZGl0aW9ucy50b2tlbkJhc2VkVHJpZ2dlciA+IFRPS0VOX0JBU0VEX1RSSUdHRVJfTUFYKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBUb2tlbi1iYXNlZCB0cmlnZ2VyIG11c3QgYmUgYmV0d2VlbiAke1RPS0VOX0JBU0VEX1RSSUdHRVJfTUlOfSBhbmQgJHtUT0tFTl9CQVNFRF9UUklHR0VSX01BWH0sIGdvdCAke3RyaWdnZXJDb25kaXRpb25zLnRva2VuQmFzZWRUcmlnZ2VyfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
-
import { CfnBrowserCustom, CfnCodeInterpreterCustom, CfnRuntime } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
3
2
|
import { Construct } from 'constructs';
|
|
4
3
|
/**
|
|
5
4
|
* VPC configuration properties.
|
|
@@ -90,12 +89,6 @@ export declare class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
|
90
89
|
* @returns A BrowserNetworkConfiguration.
|
|
91
90
|
*/
|
|
92
91
|
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): BrowserNetworkConfiguration;
|
|
93
|
-
/**
|
|
94
|
-
* Renders the network configuration as a CloudFormation property.
|
|
95
|
-
* @param browserConnections - The connections object to the browser.
|
|
96
|
-
* @internal This is an internal core function and should not be called directly.
|
|
97
|
-
*/
|
|
98
|
-
_render(browserConnections?: ec2.Connections): CfnBrowserCustom.BrowserNetworkConfigurationProperty;
|
|
99
92
|
}
|
|
100
93
|
/**
|
|
101
94
|
* Network configuration for the Code Interpreter tool.
|
|
@@ -119,12 +112,6 @@ export declare class CodeInterpreterNetworkConfiguration extends NetworkConfigur
|
|
|
119
112
|
* @returns A CodeInterpreterNetworkConfiguration.
|
|
120
113
|
*/
|
|
121
114
|
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): CodeInterpreterNetworkConfiguration;
|
|
122
|
-
/**
|
|
123
|
-
* Renders the network configuration as a CloudFormation property.
|
|
124
|
-
* @param codeInterpreterConnections - The connections object to the code interpreter.
|
|
125
|
-
* @internal This is an internal core function and should not be called directly.
|
|
126
|
-
*/
|
|
127
|
-
_render(codeInterpreterConnections?: ec2.Connections): CfnCodeInterpreterCustom.CodeInterpreterNetworkConfigurationProperty;
|
|
128
115
|
}
|
|
129
116
|
/**
|
|
130
117
|
* Network configuration for the Runtime.
|
|
@@ -143,10 +130,4 @@ export declare class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
|
143
130
|
* @returns A RuntimeNetworkConfiguration.
|
|
144
131
|
*/
|
|
145
132
|
static usingVpc(scope: Construct, vpcConfig: VpcConfigProps): RuntimeNetworkConfiguration;
|
|
146
|
-
/**
|
|
147
|
-
* Renders the network configuration as a CloudFormation property.
|
|
148
|
-
* @param runtimeConnections - The connections object to the runtime.
|
|
149
|
-
* @internal This is an internal core function and should not be called directly.
|
|
150
|
-
*/
|
|
151
|
-
_render(_runtimeConnections?: ec2.Connections): CfnRuntime.NetworkConfigurationProperty;
|
|
152
133
|
}
|