UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

497 lines 77.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Lexv2ModelsIntent = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); /** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ // generated from terraform resource schema const index_structs_1 = require("./index-structs"); __exportStar(require("./index-structs"), exports); const cdktf = require("cdktf"); /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent aws_lexv2models_intent} */ class Lexv2ModelsIntent extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a Lexv2ModelsIntent resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the Lexv2ModelsIntent to import * @param importFromId The id of the existing Lexv2ModelsIntent that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Lexv2ModelsIntent to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_lexv2models_intent", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent aws_lexv2models_intent} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options Lexv2ModelsIntentConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_lexv2models_intent', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '6.25.0', providerVersionConstraint: '~> 6.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // closing_setting - computed: false, optional: true, required: false this._closingSetting = new index_structs_1.Lexv2ModelsIntentClosingSettingList(this, "closing_setting", false); // confirmation_setting - computed: false, optional: true, required: false this._confirmationSetting = new index_structs_1.Lexv2ModelsIntentConfirmationSettingList(this, "confirmation_setting", false); // dialog_code_hook - computed: false, optional: true, required: false this._dialogCodeHook = new index_structs_1.Lexv2ModelsIntentDialogCodeHookList(this, "dialog_code_hook", false); // fulfillment_code_hook - computed: false, optional: true, required: false this._fulfillmentCodeHook = new index_structs_1.Lexv2ModelsIntentFulfillmentCodeHookList(this, "fulfillment_code_hook", false); // initial_response_setting - computed: false, optional: true, required: false this._initialResponseSetting = new index_structs_1.Lexv2ModelsIntentInitialResponseSettingList(this, "initial_response_setting", false); // input_context - computed: false, optional: true, required: false this._inputContext = new index_structs_1.Lexv2ModelsIntentInputContextList(this, "input_context", false); // kendra_configuration - computed: false, optional: true, required: false this._kendraConfiguration = new index_structs_1.Lexv2ModelsIntentKendraConfigurationList(this, "kendra_configuration", false); // output_context - computed: false, optional: true, required: false this._outputContext = new index_structs_1.Lexv2ModelsIntentOutputContextList(this, "output_context", false); // sample_utterance - computed: false, optional: true, required: false this._sampleUtterance = new index_structs_1.Lexv2ModelsIntentSampleUtteranceList(this, "sample_utterance", false); // slot_priority - computed: false, optional: true, required: false this._slotPriority = new index_structs_1.Lexv2ModelsIntentSlotPriorityList(this, "slot_priority", false); // timeouts - computed: false, optional: true, required: false this._timeouts = new index_structs_1.Lexv2ModelsIntentTimeoutsOutputReference(this, "timeouts"); this._botId = config.botId; this._botVersion = config.botVersion; this._description = config.description; this._localeId = config.localeId; this._name = config.name; this._parentIntentSignature = config.parentIntentSignature; this._region = config.region; this._closingSetting.internalValue = config.closingSetting; this._confirmationSetting.internalValue = config.confirmationSetting; this._dialogCodeHook.internalValue = config.dialogCodeHook; this._fulfillmentCodeHook.internalValue = config.fulfillmentCodeHook; this._initialResponseSetting.internalValue = config.initialResponseSetting; this._inputContext.internalValue = config.inputContext; this._kendraConfiguration.internalValue = config.kendraConfiguration; this._outputContext.internalValue = config.outputContext; this._sampleUtterance.internalValue = config.sampleUtterance; this._slotPriority.internalValue = config.slotPriority; this._timeouts.internalValue = config.timeouts; } get botId() { return this.getStringAttribute('bot_id'); } set botId(value) { this._botId = value; } // Temporarily expose input value. Use with caution. get botIdInput() { return this._botId; } get botVersion() { return this.getStringAttribute('bot_version'); } set botVersion(value) { this._botVersion = value; } // Temporarily expose input value. Use with caution. get botVersionInput() { return this._botVersion; } // creation_date_time - computed: true, optional: false, required: false get creationDateTime() { return this.getStringAttribute('creation_date_time'); } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } resetDescription() { this._description = undefined; } // Temporarily expose input value. Use with caution. get descriptionInput() { return this._description; } // id - computed: true, optional: false, required: false get id() { return this.getStringAttribute('id'); } // intent_id - computed: true, optional: false, required: false get intentId() { return this.getStringAttribute('intent_id'); } // last_updated_date_time - computed: true, optional: false, required: false get lastUpdatedDateTime() { return this.getStringAttribute('last_updated_date_time'); } get localeId() { return this.getStringAttribute('locale_id'); } set localeId(value) { this._localeId = value; } // Temporarily expose input value. Use with caution. get localeIdInput() { return this._localeId; } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get parentIntentSignature() { return this.getStringAttribute('parent_intent_signature'); } set parentIntentSignature(value) { this._parentIntentSignature = value; } resetParentIntentSignature() { this._parentIntentSignature = undefined; } // Temporarily expose input value. Use with caution. get parentIntentSignatureInput() { return this._parentIntentSignature; } get region() { return this.getStringAttribute('region'); } set region(value) { this._region = value; } resetRegion() { this._region = undefined; } // Temporarily expose input value. Use with caution. get regionInput() { return this._region; } get closingSetting() { return this._closingSetting; } putClosingSetting(value) { this._closingSetting.internalValue = value; } resetClosingSetting() { this._closingSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get closingSettingInput() { return this._closingSetting.internalValue; } get confirmationSetting() { return this._confirmationSetting; } putConfirmationSetting(value) { this._confirmationSetting.internalValue = value; } resetConfirmationSetting() { this._confirmationSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get confirmationSettingInput() { return this._confirmationSetting.internalValue; } get dialogCodeHook() { return this._dialogCodeHook; } putDialogCodeHook(value) { this._dialogCodeHook.internalValue = value; } resetDialogCodeHook() { this._dialogCodeHook.internalValue = undefined; } // Temporarily expose input value. Use with caution. get dialogCodeHookInput() { return this._dialogCodeHook.internalValue; } get fulfillmentCodeHook() { return this._fulfillmentCodeHook; } putFulfillmentCodeHook(value) { this._fulfillmentCodeHook.internalValue = value; } resetFulfillmentCodeHook() { this._fulfillmentCodeHook.internalValue = undefined; } // Temporarily expose input value. Use with caution. get fulfillmentCodeHookInput() { return this._fulfillmentCodeHook.internalValue; } get initialResponseSetting() { return this._initialResponseSetting; } putInitialResponseSetting(value) { this._initialResponseSetting.internalValue = value; } resetInitialResponseSetting() { this._initialResponseSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get initialResponseSettingInput() { return this._initialResponseSetting.internalValue; } get inputContext() { return this._inputContext; } putInputContext(value) { this._inputContext.internalValue = value; } resetInputContext() { this._inputContext.internalValue = undefined; } // Temporarily expose input value. Use with caution. get inputContextInput() { return this._inputContext.internalValue; } get kendraConfiguration() { return this._kendraConfiguration; } putKendraConfiguration(value) { this._kendraConfiguration.internalValue = value; } resetKendraConfiguration() { this._kendraConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get kendraConfigurationInput() { return this._kendraConfiguration.internalValue; } get outputContext() { return this._outputContext; } putOutputContext(value) { this._outputContext.internalValue = value; } resetOutputContext() { this._outputContext.internalValue = undefined; } // Temporarily expose input value. Use with caution. get outputContextInput() { return this._outputContext.internalValue; } get sampleUtterance() { return this._sampleUtterance; } putSampleUtterance(value) { this._sampleUtterance.internalValue = value; } resetSampleUtterance() { this._sampleUtterance.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sampleUtteranceInput() { return this._sampleUtterance.internalValue; } get slotPriority() { return this._slotPriority; } putSlotPriority(value) { this._slotPriority.internalValue = value; } resetSlotPriority() { this._slotPriority.internalValue = undefined; } // Temporarily expose input value. Use with caution. get slotPriorityInput() { return this._slotPriority.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { bot_id: cdktf.stringToTerraform(this._botId), bot_version: cdktf.stringToTerraform(this._botVersion), description: cdktf.stringToTerraform(this._description), locale_id: cdktf.stringToTerraform(this._localeId), name: cdktf.stringToTerraform(this._name), parent_intent_signature: cdktf.stringToTerraform(this._parentIntentSignature), region: cdktf.stringToTerraform(this._region), closing_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentClosingSettingToTerraform, true)(this._closingSetting.internalValue), confirmation_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentConfirmationSettingToTerraform, true)(this._confirmationSetting.internalValue), dialog_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentDialogCodeHookToTerraform, true)(this._dialogCodeHook.internalValue), fulfillment_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToTerraform, true)(this._fulfillmentCodeHook.internalValue), initial_response_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInitialResponseSettingToTerraform, true)(this._initialResponseSetting.internalValue), input_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInputContextToTerraform, true)(this._inputContext.internalValue), kendra_configuration: cdktf.listMapper(index_structs_1.lexv2ModelsIntentKendraConfigurationToTerraform, true)(this._kendraConfiguration.internalValue), output_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentOutputContextToTerraform, true)(this._outputContext.internalValue), sample_utterance: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSampleUtteranceToTerraform, true)(this._sampleUtterance.internalValue), slot_priority: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSlotPriorityToTerraform, true)(this._slotPriority.internalValue), timeouts: (0, index_structs_1.lexv2ModelsIntentTimeoutsToTerraform)(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { bot_id: { value: cdktf.stringToHclTerraform(this._botId), isBlock: false, type: "simple", storageClassType: "string", }, bot_version: { value: cdktf.stringToHclTerraform(this._botVersion), isBlock: false, type: "simple", storageClassType: "string", }, description: { value: cdktf.stringToHclTerraform(this._description), isBlock: false, type: "simple", storageClassType: "string", }, locale_id: { value: cdktf.stringToHclTerraform(this._localeId), isBlock: false, type: "simple", storageClassType: "string", }, name: { value: cdktf.stringToHclTerraform(this._name), isBlock: false, type: "simple", storageClassType: "string", }, parent_intent_signature: { value: cdktf.stringToHclTerraform(this._parentIntentSignature), isBlock: false, type: "simple", storageClassType: "string", }, region: { value: cdktf.stringToHclTerraform(this._region), isBlock: false, type: "simple", storageClassType: "string", }, closing_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentClosingSettingToHclTerraform, true)(this._closingSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentClosingSettingList", }, confirmation_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentConfirmationSettingToHclTerraform, true)(this._confirmationSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentConfirmationSettingList", }, dialog_code_hook: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentDialogCodeHookToHclTerraform, true)(this._dialogCodeHook.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentDialogCodeHookList", }, fulfillment_code_hook: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToHclTerraform, true)(this._fulfillmentCodeHook.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentFulfillmentCodeHookList", }, initial_response_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInitialResponseSettingToHclTerraform, true)(this._initialResponseSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentInitialResponseSettingList", }, input_context: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInputContextToHclTerraform, true)(this._inputContext.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentInputContextList", }, kendra_configuration: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentKendraConfigurationToHclTerraform, true)(this._kendraConfiguration.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentKendraConfigurationList", }, output_context: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentOutputContextToHclTerraform, true)(this._outputContext.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentOutputContextList", }, sample_utterance: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSampleUtteranceToHclTerraform, true)(this._sampleUtterance.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentSampleUtteranceList", }, slot_priority: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSlotPriorityToHclTerraform, true)(this._slotPriority.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentSlotPriorityList", }, timeouts: { value: (0, index_structs_1.lexv2ModelsIntentTimeoutsToHclTerraform)(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "Lexv2ModelsIntentTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.Lexv2ModelsIntent = Lexv2ModelsIntent; _a = JSII_RTTI_SYMBOL_1; Lexv2ModelsIntent[_a] = { fqn: "@cdktf/provider-aws.lexv2ModelsIntent.Lexv2ModelsIntent", version: "21.22.1" }; // ================= // STATIC PROPERTIES // ================= Lexv2ModelsIntent.tfResourceType = "aws_lexv2models_intent"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGV4djJtb2RlbHMtaW50ZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFFM0MsbURBMkNnRTtBQUNoRSxrREFBK0I7QUFFL0IsK0JBQStCO0FBb0cvQjs7RUFFRTtBQUNGLE1BQWEsaUJBQWtCLFNBQVEsS0FBSyxDQUFDLGlCQUFpQjtJQU81RCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQjs7Ozs7O01BTUU7SUFDSyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0M7UUFDOUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTCxjQUFjO0lBQ2QsY0FBYztJQUNkLGNBQWM7SUFFZDs7Ozs7O01BTUU7SUFDRixZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUErQjtRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLHdCQUF3QjtZQUMvQywwQkFBMEIsRUFBRTtnQkFDMUIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGVBQWUsRUFBRSxRQUFRO2dCQUN6Qix5QkFBeUIsRUFBRSxRQUFRO2FBQ3BDO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLFlBQVksRUFBRSxNQUFNLENBQUMs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Q0FBQztnQkFDNUUsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsZ0JBQWdCLEVBQUUsMkJBQTJCO2FBQzlDO1NBQ0YsQ0FBQztRQUVGLDhCQUE4QjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBRSxDQUFDLENBQUE7SUFDNUgsQ0FBQzs7QUE3ZkgsOENBOGZDOzs7QUE1ZkMsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDRyxnQ0FBYyxHQUFHLHdCQUF3QixBQUEzQixDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLy8gZ2VuZXJhdGVkIGZyb20gdGVycmFmb3JtIHJlc291cmNlIHNjaGVtYVxuXG5pbXBvcnQgeyBMZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nLCBcbmxleHYyTW9kZWxzSW50ZW50Q2xvc2luZ1NldHRpbmdUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nVG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRDbG9zaW5nU2V0dGluZ0xpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRDb25maXJtYXRpb25TZXR0aW5nLCBcbmxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1RvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1RvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ0xpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9vaywgXG5sZXh2Mk1vZGVsc0ludGVudERpYWxvZ0NvZGVIb29rVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9va1RvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50RGlhbG9nQ29kZUhvb2tMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50RnVsZmlsbG1lbnRDb2RlSG9vaywgXG5sZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50SW5pdGlhbFJlc3BvbnNlU2V0dGluZywgXG5sZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0LCBcbmxleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0VG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRJbnB1dENvbnRleHRUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudElucHV0Q29udGV4dExpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRLZW5kcmFDb25maWd1cmF0aW9uLCBcbmxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvblRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvblRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvbkxpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRPdXRwdXRDb250ZXh0LCBcbmxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dExpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRTYW1wbGVVdHRlcmFuY2UsIFxubGV4djJNb2RlbHNJbnRlbnRTYW1wbGVVdHRlcmFuY2VUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudFNhbXBsZVV0dGVyYW5jZVRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlTGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudFNsb3RQcmlvcml0eSwgXG5sZXh2Mk1vZGVsc0ludGVudFNsb3RQcmlvcml0eVRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50U2xvdFByaW9yaXR5VG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHlMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50VGltZW91dHMsIFxubGV4djJNb2RlbHNJbnRlbnRUaW1lb3V0c1RvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50VGltZW91dHNUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudFRpbWVvdXRzT3V0cHV0UmVmZXJlbmNlfSBmcm9tICcuL2luZGV4LXN0cnVjdHMnXG5leHBvcnQgKiBmcm9tICcuL2luZGV4LXN0cnVjdHMnXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gJ2Nka3RmJztcbmV4cG9ydCBpbnRlcmZhY2UgTGV4djJNb2RlbHNJbnRlbnRDb25maWcgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1NZXRhQXJndW1lbnRzIHtcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2JvdF9pZCBMZXh2Mk1vZGVsc0ludGVudCNib3RfaWR9XG4gICovXG4gIHJlYWRvbmx5IGJvdElkOiBzdHJpbmc7XG4gIC8qKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNib3RfdmVyc2lvbiBMZXh2Mk1vZGVsc0ludGVudCNib3RfdmVyc2lvbn1cbiAgKi9cbiAgcmVhZG9ubHkgYm90VmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjZGVzY3JpcHRpb24gTGV4djJNb2RlbHNJbnRlbnQjZGVzY3JpcHRpb259XG4gICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjbG9jYWxlX2lkIExleHYyTW9kZWxzSW50ZW50I2xvY2FsZV9pZH1cbiAgKi9cbiAgcmVhZG9ubHkgbG9jYWxlSWQ6IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I25hbWUgTGV4djJNb2RlbHNJbnRlbnQjbmFtZX1cbiAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjcGFyZW50X2ludGVudF9zaWduYXR1cmUgTGV4djJNb2RlbHNJbnRlbnQjcGFyZW50X2ludGVudF9zaWduYXR1cmV9XG4gICovXG4gIHJlYWRvbmx5IHBhcmVudEludGVudFNpZ25hdHVyZT86IHN0cmluZztcbiAgLyoqXG4gICogUmVnaW9uIHdoZXJlIHRoaXMgcmVzb3VyY2Ugd2lsbCBiZSBbbWFuYWdlZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL3JhbmRlLmh0bWwjcmVnaW9uYWwtZW5kcG9pbnRzKS4gRGVmYXVsdHMgdG8gdGhlIFJlZ2lvbiBzZXQgaW4gdGhlIFtwcm92aWRlciBjb25maWd1cmF0aW9uXShodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcyNhd3MtY29uZmlndXJhdGlvbi1yZWZlcmVuY2UpLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3JlZ2lvbiBMZXh2Mk1vZGVsc0ludGVudCNyZWdpb259XG4gICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICogY2xvc2luZ19zZXR0aW5nIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjY2xvc2luZ19zZXR0aW5nIExleHYyTW9kZWxzSW50ZW50I2Nsb3Npbmdfc2V0dGluZ31cbiAgKi9cbiAgcmVhZG9ubHkgY2xvc2luZ1NldHRpbmc/OiBMZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogY29uZmlybWF0aW9uX3NldHRpbmcgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNjb25maXJtYXRpb25fc2V0dGluZyBMZXh2Mk1vZGVsc0ludGVudCNjb25maXJtYXRpb25fc2V0dGluZ31cbiAgKi9cbiAgcmVhZG9ubHkgY29uZmlybWF0aW9uU2V0dGluZz86IExleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGRpYWxvZ19jb2RlX2hvb2sgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNkaWFsb2dfY29kZV9ob29rIExleHYyTW9kZWxzSW50ZW50I2RpYWxvZ19jb2RlX2hvb2t9XG4gICovXG4gIHJlYWRvbmx5IGRpYWxvZ0NvZGVIb29rPzogTGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9va1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGZ1bGZpbGxtZW50X2NvZGVfaG9vayBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2Z1bGZpbGxtZW50X2NvZGVfaG9vayBMZXh2Mk1vZGVsc0ludGVudCNmdWxmaWxsbWVudF9jb2RlX2hvb2t9XG4gICovXG4gIHJlYWRvbmx5IGZ1bGZpbGxtZW50Q29kZUhvb2s/OiBMZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBpbml0aWFsX3Jlc3BvbnNlX3NldHRpbmcgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNpbml0aWFsX3Jlc3BvbnNlX3NldHRpbmcgTGV4djJNb2RlbHNJbnRlbnQjaW5pdGlhbF9yZXNwb25zZV9zZXR0aW5nfVxuICAqL1xuICByZWFkb25seSBpbml0aWFsUmVzcG9uc2VTZXR0aW5nPzogTGV4djJNb2RlbHNJbnRlbnRJbml0aWFsUmVzcG9uc2VTZXR0aW5nW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogaW5wdXRfY29udGV4dCBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2lucHV0X2NvbnRleHQgTGV4djJNb2RlbHNJbnRlbnQjaW5wdXRfY29udGV4dH1cbiAgKi9cbiAgcmVhZG9ubHkgaW5wdXRDb250ZXh0PzogTGV4djJNb2RlbHNJbnRlbnRJbnB1dENvbnRleHRbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBrZW5kcmFfY29uZmlndXJhdGlvbiBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2tlbmRyYV9jb25maWd1cmF0aW9uIExleHYyTW9kZWxzSW50ZW50I2tlbmRyYV9jb25maWd1cmF0aW9ufVxuICAqL1xuICByZWFkb25seSBrZW5kcmFDb25maWd1cmF0aW9uPzogTGV4djJNb2RlbHNJbnRlbnRLZW5kcmFDb25maWd1cmF0aW9uW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogb3V0cHV0X2NvbnRleHQgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNvdXRwdXRfY29udGV4dCBMZXh2Mk1vZGVsc0ludGVudCNvdXRwdXRfY29udGV4dH1cbiAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Q29udGV4dD86IExleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFtdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIHNhbXBsZV91dHRlcmFuY2UgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNzYW1wbGVfdXR0ZXJhbmNlIExleHYyTW9kZWxzSW50ZW50I3NhbXBsZV91dHRlcmFuY2V9XG4gICovXG4gIHJlYWRvbmx5IHNhbXBsZVV0dGVyYW5jZT86IExleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogc2xvdF9wcmlvcml0eSBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3Nsb3RfcHJpb3JpdHkgTGV4djJNb2RlbHNJbnRlbnQjc2xvdF9wcmlvcml0eX1cbiAgKi9cbiAgcmVhZG9ubHkgc2xvdFByaW9yaXR5PzogTGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHlbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiB0aW1lb3V0cyBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3RpbWVvdXRzIExleHYyTW9kZWxzSW50ZW50I3RpbWVvdXRzfVxuICAqL1xuICByZWFkb25seSB0aW1lb3V0cz86IExleHYyTW9kZWxzSW50ZW50VGltZW91dHM7XG59XG5cbi8qKlxuKiBSZXByZXNlbnRzIGEge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQgYXdzX2xleHYybW9kZWxzX2ludGVudH1cbiovXG5leHBvcnQgY2xhc3MgTGV4djJNb2RlbHNJbnRlbnQgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1SZXNvdXJjZSB7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIFBST1BFUlRJRVNcbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwiYXdzX2xleHYybW9kZWxzX2ludGVudFwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtURiBjb2RlIGZv