UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

116 lines • 18.1 kB
// tslint:disable: max-line-length import { gettext } from '../i18n/gettext'; export var DatapointLibraryValidationErrors; (function (DatapointLibraryValidationErrors) { DatapointLibraryValidationErrors["IS_REQUIRED"] = "required"; DatapointLibraryValidationErrors["PATTERN"] = "pattern"; DatapointLibraryValidationErrors["SHOULD_CONTAIN_NUMBER"] = "number"; DatapointLibraryValidationErrors["SHOULD_BE_DEFINED"] = "should-be-defined"; DatapointLibraryValidationErrors["GREATER_THAN_SCALE_MAX"] = "greater-than-scale-max"; DatapointLibraryValidationErrors["LESS_THAN_SCALE_MIN"] = "less-than-scale-min"; DatapointLibraryValidationErrors["GREATER_THAN_RANGE_MAX"] = "greater-than-range-max"; DatapointLibraryValidationErrors["LESS_THAN_RANGE_MIN"] = "less-than-range-min"; DatapointLibraryValidationErrors["MIN_ACTIVE_COUNT"] = "minActiveCount"; DatapointLibraryValidationErrors["MAX_ACTIVE_COUNT"] = "maxActiveCount"; })(DatapointLibraryValidationErrors || (DatapointLibraryValidationErrors = {})); // @dynamic export class ValidationPattern { static { this.messages = { deviceId: gettext('Device ID must not contain spaces or slashes ("/").'), domain: gettext('Only lowercase letters, digits and hyphens allowed in the first part of the URI. ' + 'Must start with a letter; hyphens only allowed in the middle. Must be a valid URI.'), email: gettext('Invalid email address.'), emails: gettext('Invalid email addresses.'), internationalPhoneNumber: gettext('Must be a valid phone number (only digits, spaces, slashes ("/"), dashes ("-"), and plus ("+") allowed, for example: +49 9 876 543 210).'), loginAlias: gettext('Login alias must not contain slashes ("/", "\\") nor ("+"), (":"), ("$") signs.'), invalidColor: gettext('Invalid color "{{ currentValue }}".'), max: gettext('Max value: {{ max }}'), min: gettext('Min value: {{ min }}'), minLength: gettext('Should have at least {{ minLength }} characters.'), minlength: gettext('Should have at least {{ requiredLength }} characters.'), maxLength: gettext('Should have at most {{ maxLength }} characters.'), maxlength: gettext('Should have at most {{ requiredLength }} characters.'), pattern: gettext('Does not match pattern {{ requiredPattern }}.'), opcuaBrowsePath: gettext('Invalid OPC UA URI.'), password: gettext('Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\'",.<>{}[]\\/'), passwordConfirm: gettext('Passwords do not match.'), passwordStrength: gettext('Password is not strong enough, use a stronger password.'), passwordStrengthChecklist: gettext('Password is not strong enough, use a stronger password. Check the requirements listed on the right.'), required: gettext('This field is required.'), tenantId: gettext('May contain lowercase letters, digits, and hyphens. ' + 'Must start with a letter; hyphens only allowed in the middle; minimum 2 characters.'), urlSegment: gettext('Slash, single or double dots and white space not allowed.'), user: gettext('Username must not contain spaces nor slashes ("/", "\\") nor ("+"), (":"), ("$") signs.'), httpUrl: gettext('Must be a valid HTTP(S) URL.'), colonedHexNumber: gettext('Must be a valid hexadecimal number. Must contain only the following characters: 0-9, a-f, A-F, :.'), noWhiteSpaceOnly: gettext('This field must not contain only whitespaces'), noWhiteSpaceAtBeginning: gettext('Name must not contain white spaces at the beginning or ending.'), noDots: gettext('Dots not allowed.'), integer: gettext('Invalid type, expected integer.'), simpleJsonPath: gettext('Must be a valid JSON path'), [DatapointLibraryValidationErrors.SHOULD_CONTAIN_NUMBER]: gettext('This field must contain a number.'), [DatapointLibraryValidationErrors.SHOULD_BE_DEFINED]: gettext('Value must be defined.'), [DatapointLibraryValidationErrors.GREATER_THAN_SCALE_MAX]: gettext('Value must be less than scale maximum.'), [DatapointLibraryValidationErrors.LESS_THAN_SCALE_MIN]: gettext('Value must be greater than scale minimum.'), [DatapointLibraryValidationErrors.GREATER_THAN_RANGE_MAX]: gettext('Value must be less than respective maximum.'), [DatapointLibraryValidationErrors.LESS_THAN_RANGE_MIN]: gettext('Value must be greater than respective minimum.') }; } static { this.rules = { deviceId: { pattern: /^[^\s/]*$/ }, domain: { pattern: /^[a-z]+[a-z0-9-]*[a-z0-9]+\.{1}.+$/ }, groupName: { maxLength: 254 }, hostname: { pattern: /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/ }, ip: { pattern: /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ }, opcuaBrowsePath: { pattern: /^(opc.tcp|http|https):\/\/[^ "]+$/ }, password: { pattern: /^[a-zA-Z0-9`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]{8,32}$/ }, tenantId: { pattern: /^[a-z]+[a-z0-9-]*[a-z0-9]+$/ }, user: { pattern: /^[^\\/\s$:+]*$/ }, urlSegment: { pattern: /^(([.]{1,2})|([/])+|(([/]*)([.]{1,2})([/]*))|((.*)([/]|[ ]+)(.*))|(\s+))$/ }, loginAlias: { pattern: /^[^\\/$:+]*$/ }, noWhiteSpaceOnly: { pattern: /^(?!\s*$).+/ }, noWhiteSpaceAtBeginning: { pattern: /^[^\s].+[^\s]$/ }, noDots: { pattern: /^[^.]*$/ }, httpUrl: { pattern: /^(https?):\/\/.*$/ }, colonedHexNumber: { pattern: /^[0-9a-fA-F:]+$/ }, integer: { pattern: /^-?\d+$/ } }; } static get(key) { const pattern = this.rules[key]; return pattern; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9mb3Jtcy92YWxpZGF0aW9uLXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVMxQyxNQUFNLENBQU4sSUFBWSxnQ0FXWDtBQVhELFdBQVksZ0NBQWdDO0lBQzFDLDREQUF3QixDQUFBO0lBQ3hCLHVEQUFtQixDQUFBO0lBQ25CLG9FQUFnQyxDQUFBO0lBQ2hDLDJFQUF1QyxDQUFBO0lBQ3ZDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHFGQUFpRCxDQUFBO0lBQ2pELCtFQUEyQyxDQUFBO0lBQzNDLHVFQUFtQyxDQUFBO0lBQ25DLHVFQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFYVyxnQ0FBZ0MsS0FBaEMsZ0NBQWdDLFFBVzNDO0FBRUQsV0FBVztBQUNYLE1BQU0sT0FBTyxpQkFBaUI7YUFDWixhQUFRLEdBQUc7UUFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxREFBcUQsQ0FBQztRQUN4RSxNQUFNLEVBQUUsT0FBTyxDQUNiLG1GQUFtRjtZQUNqRixvRkFBb0YsQ0FDdkY7UUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUM7UUFDM0Msd0JBQXdCLEVBQUUsT0FBTyxDQUMvQiwwSUFBMEksQ0FDM0k7UUFDRCxVQUFVLEVBQUUsT0FBTyxDQUNqQixpRkFBaUYsQ0FDbEY7UUFDRCxZQUFZLEVBQUUsT0FBTyxDQUFDLHFDQUFxQyxDQUFDO1FBQzVELEdBQUcsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDcEMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztRQUNwQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGtEQUFr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QUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsbUJBQW1CO1NBQzdCO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsT0FBTyxFQUFFLGlCQUFpQjtTQUMzQjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxTQUFTO1NBQ25CO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBMEIsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJ1bGVzIHtcbiAgcGF0dGVybj86IFJlZ0V4cDtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIERhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzIHtcbiAgSVNfUkVRVUlSRUQgPSAncmVxdWlyZWQnLFxuICBQQVRURVJOID0gJ3BhdHRlcm4nLFxuICBTSE9VTERfQ09OVEFJTl9OVU1CRVIgPSAnbnVtYmVyJyxcbiAgU0hPVUxEX0JFX0RFRklORUQgPSAnc2hvdWxkLWJlLWRlZmluZWQnLFxuICBHUkVBVEVSX1RIQU5fU0NBTEVfTUFYID0gJ2dyZWF0ZXItdGhhbi1zY2FsZS1tYXgnLFxuICBMRVNTX1RIQU5fU0NBTEVfTUlOID0gJ2xlc3MtdGhhbi1zY2FsZS1taW4nLFxuICBHUkVBVEVSX1RIQU5fUkFOR0VfTUFYID0gJ2dyZWF0ZXItdGhhbi1yYW5nZS1tYXgnLFxuICBMRVNTX1RIQU5fUkFOR0VfTUlOID0gJ2xlc3MtdGhhbi1yYW5nZS1taW4nLFxuICBNSU5fQUNUSVZFX0NPVU5UID0gJ21pbkFjdGl2ZUNvdW50JyxcbiAgTUFYX0FDVElWRV9DT1VOVCA9ICdtYXhBY3RpdmVDb3VudCdcbn1cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uUGF0dGVybiB7XG4gIHN0YXRpYyByZWFkb25seSBtZXNzYWdlcyA9IHtcbiAgICBkZXZpY2VJZDogZ2V0dGV4dCgnRGV2aWNlIElEIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzIG9yIHNsYXNoZXMgKFwiL1wiKS4nKSxcbiAgICBkb21haW46IGdldHRleHQoXG4gICAgICAnT25seSBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBoeXBoZW5zIGFsbG93ZWQgaW4gdGhlIGZpcnN0IHBhcnQgb2YgdGhlIFVSSS4gJyArXG4gICAgICAgICdNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXI7IGh5cGhlbnMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGUuIE11c3QgYmUgYSB2YWxpZCBVUkkuJ1xuICAgICksXG4gICAgZW1haWw6IGdldHRleHQoJ0ludmFsaWQgZW1haWwgYWRkcmVzcy4nKSxcbiAgICBlbWFpbHM6IGdldHRleHQoJ0ludmFsaWQgZW1haWwgYWRkcmVzc2VzLicpLFxuICAgIGludGVybmF0aW9uYWxQaG9uZU51bWJlcjogZ2V0dGV4dChcbiAgICAgICdNdXN0IGJlIGEgdmFsaWQgcGhvbmUgbnVtYmVyIChvbmx5IGRpZ2l0cywgc3BhY2VzLCBzbGFzaGVzIChcIi9cIiksIGRhc2hlcyAoXCItXCIpLCBhbmQgcGx1cyAoXCIrXCIpIGFsbG93ZWQsIGZvciBleGFtcGxlOiArNDkgOSA4NzYgNTQzIDIxMCkuJ1xuICAgICksXG4gICAgbG9naW5BbGlhczogZ2V0dGV4dChcbiAgICAgICdMb2dpbiBhbGlhcyBtdXN0IG5vdCBjb250YWluIHNsYXNoZXMgKFwiL1wiLCBcIlxcXFxcIikgbm9yIChcIitcIiksIChcIjpcIiksIChcIiRcIikgc2lnbnMuJ1xuICAgICksXG4gICAgaW52YWxpZENvbG9yOiBnZXR0ZXh0KCdJbnZhbGlkIGNvbG9yIFwie3sgY3VycmVudFZhbHVlIH19XCIuJyksXG4gICAgbWF4OiBnZXR0ZXh0KCdNYXggdmFsdWU6IHt7IG1heCB9fScpLFxuICAgIG1pbjogZ2V0dGV4dCgnTWluIHZhbHVlOiB7eyBtaW4gfX0nKSxcbiAgICBtaW5MZW5ndGg6IGdldHRleHQoJ1Nob3VsZCBoYXZlIGF0IGxlYXN0IHt7IG1pbkxlbmd0aCB9fSBjaGFyYWN0ZXJzLicpLFxuICAgIG1pbmxlbmd0aDogZ2V0dGV4dCgnU2hvdWxkIGhhdmUgYXQgbGVhc3Qge3sgcmVxdWlyZWRMZW5ndGggfX0gY2hhcmFjdGVycy4nKSxcbiAgICBtYXhMZW5ndGg6IGdldHRleHQoJ1Nob3VsZCBoYXZlIGF0IG1vc3Qge3sgbWF4TGVuZ3RoIH19IGNoYXJhY3RlcnMuJyksXG4gICAgbWF4bGVuZ3RoOiBnZXR0ZXh0KCdTaG91bGQgaGF2ZSBhdCBtb3N0IHt7IHJlcXVpcmVkTGVuZ3RoIH19IGNoYXJhY3RlcnMuJyksXG4gICAgcGF0dGVybjogZ2V0dGV4dCgnRG9lcyBub3QgbWF0Y2ggcGF0dGVybiB7eyByZXF1aXJlZFBhdHRlcm4gfX0uJyksXG4gICAgb3BjdWFCcm93c2VQYXRoOiBnZXR0ZXh0KCdJbnZhbGlkIE9QQyBVQSBVUkkuJyksXG4gICAgcGFzc3dvcmQ6IGdldHRleHQoXG4gICAgICAnUGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDggY2hhcmFjdGVycyBhbmQgbm8gbW9yZSB0aGFuIDMyIGFuZCBjYW4gb25seSBjb250YWluIGxldHRlcnMsIG51bWJlcnMgYW5kIGZvbGxvd2luZyBzeW1ib2xzOiBgfiFAIyQlXiYqKClffCstPT87OlxcJ1wiLC48Pnt9W11cXFxcLydcbiAgICApLFxuICAgIHBhc3N3b3JkQ29uZmlybTogZ2V0dGV4dCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4nKSxcbiAgICBwYXNzd29yZFN0cmVuZ3RoOiBnZXR0ZXh0KCdQYXNzd29yZCBpcyBub3Qgc3Ryb25nIGVub3VnaCwgdXNlIGEgc3Ryb25nZXIgcGFzc3dvcmQuJyksXG4gICAgcGFzc3dvcmRTdHJlbmd0aENoZWNrbGlzdDogZ2V0dGV4dChcbiAgICAgICdQYXNzd29yZCBpcyBub3Qgc3Ryb25nIGVub3VnaCwgdXNlIGEgc3Ryb25nZXIgcGFzc3dvcmQuIENoZWNrIHRoZSByZXF1aXJlbWVudHMgbGlzdGVkIG9uIHRoZSByaWdodC4nXG4gICAgKSxcbiAgICByZXF1aXJlZDogZ2V0dGV4dCgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSxcbiAgICB0ZW5hbnRJZDogZ2V0dGV4dChcbiAgICAgICdNYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgaHlwaGVucy4gJyArXG4gICAgICAgICdNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXI7IGh5cGhlbnMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGU7IG1pbmltdW0gMiBjaGFyYWN0ZXJzLidcbiAgICApLFxuICAgIHVybFNlZ21lbnQ6IGdldHRleHQoJ1NsYXNoLCBzaW5nbGUgb3IgZG91YmxlIGRvdHMgYW5kIHdoaXRlIHNwYWNlIG5vdCBhbGxvd2VkLicpLFxuICAgIHVzZXI6IGdldHRleHQoXG4gICAgICAnVXNlcm5hbWUgbXVzdCBub3QgY29udGFpbiBzcGFjZXMgbm9yIHNsYXNoZXMgKFwiL1wiLCBcIlxcXFxcIikgbm9yIChcIitcIiksIChcIjpcIiksIChcIiRcIikgc2lnbnMuJ1xuICAgICksXG4gICAgaHR0cFVybDogZ2V0dGV4dCgnTXVzdCBiZSBhIHZhbGlkIEhUVFAoUykgVVJMLicpLFxuICAgIGNvbG9uZWRIZXhOdW1iZXI6IGdldHRleHQoXG4gICAgICAnTXVzdCBiZSBhIHZhbGlkIGhleGFkZWNpbWFsIG51bWJlci4gTXVzdCBjb250YWluIG9ubHkgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiAwLTksIGEtZiwgQS1GLCA6LidcbiAgICApLFxuICAgIG5vV2hpdGVTcGFjZU9ubHk6IGdldHRleHQoJ1RoaXMgZmllbGQgbXVzdCBub3QgY29udGFpbiBvbmx5IHdoaXRlc3BhY2VzJyksXG4gICAgbm9XaGl0ZVNwYWNlQXRCZWdpbm5pbmc6IGdldHRleHQoXG4gICAgICAnTmFtZSBtdXN0IG5vdCBjb250YWluIHdoaXRlIHNwYWNlcyBhdCB0aGUgYmVnaW5uaW5nIG9yIGVuZGluZy4nXG4gICAgKSxcbiAgICBub0RvdHM6IGdldHRleHQoJ0RvdHMgbm90IGFsbG93ZWQuJyksXG4gICAgaW50ZWdlcjogZ2V0dGV4dCgnSW52YWxpZCB0eXBlLCBleHBlY3RlZCBpbnRlZ2VyLicpLFxuICAgIHNpbXBsZUpzb25QYXRoOiBnZXR0ZXh0KCdNdXN0IGJlIGEgdmFsaWQgSlNPTiBwYXRoJyksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLlNIT1VMRF9DT05UQUlOX05VTUJFUl06IGdldHRleHQoXG4gICAgICAnVGhpcyBmaWVsZCBtdXN0IGNvbnRhaW4gYSBudW1iZXIuJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLlNIT1VMRF9CRV9ERUZJTkVEXTogZ2V0dGV4dCgnVmFsdWUgbXVzdCBiZSBkZWZpbmVkLicpLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5HUkVBVEVSX1RIQU5fU0NBTEVfTUFYXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBzY2FsZSBtYXhpbXVtLidcbiAgICApLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5MRVNTX1RIQU5fU0NBTEVfTUlOXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzY2FsZSBtaW5pbXVtLidcbiAgICApLFxuICAgIFtEYXRhcG9pbnRMaWJyYXJ5VmFsaWRhdGlvbkVycm9ycy5HUkVBVEVSX1RIQU5fUkFOR0VfTUFYXTogZ2V0dGV4dChcbiAgICAgICdWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiByZXNwZWN0aXZlIG1heGltdW0uJ1xuICAgICksXG4gICAgW0RhdGFwb2ludExpYnJhcnlWYWxpZGF0aW9uRXJyb3JzLkxFU1NfVEhBTl9SQU5HRV9NSU5dOiBnZXR0ZXh0KFxuICAgICAgJ1ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHJlc3BlY3RpdmUgbWluaW11bS4nXG4gICAgKVxuICB9IGFzIGNvbnN0O1xuXG4gIHN0YXRpYyByZWFkb25seSBydWxlcyA9IHtcbiAgICBkZXZpY2VJZDoge1xuICAgICAgcGF0dGVybjogL15bXlxccy9dKiQvXG4gICAgfSxcbiAgICBkb21haW46IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOS1dKlthLXowLTldK1xcLnsxfS4rJC9cbiAgICB9LFxuICAgIGdyb3VwTmFtZToge1xuICAgICAgbWF4TGVuZ3RoOiAyNTRcbiAgICB9LFxuICAgIGhvc3RuYW1lOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvXigoW2EtekEtWjAtOV18W2EtekEtWjAtOV1bYS16QS1aMC05LV0qW2EtekEtWjAtOV0pXFwuKSooW0EtWmEtejAtOV18W0EtWmEtejAtOV1bQS1aYS16MC05LV0qW0EtWmEtejAtOV0pJC9cbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSQvXG4gICAgfSxcbiAgICBvcGN1YUJyb3dzZVBhdGg6IHtcbiAgICAgIHBhdHRlcm46IC9eKG9wYy50Y3B8aHR0cHxodHRwcyk6XFwvXFwvW14gXCJdKyQvXG4gICAgfSxcbiAgICBwYXNzd29yZDoge1xuICAgICAgcGF0dGVybjogL15bYS16QS1aMC05YH4hQCMkJV4mKigpX3wrXFwtPT87OidcIiwuPD57fVtcXF1cXFxcL117OCwzMn0kL1xuICAgIH0sXG4gICAgdGVuYW50SWQ6IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOS1dKlthLXowLTldKyQvXG4gICAgfSxcbiAgICB1c2VyOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxcXC9cXHMkOitdKiQvXG4gICAgfSxcbiAgICB1cmxTZWdtZW50OiB7XG4gICAgICBwYXR0ZXJuOiAvXigoWy5dezEsMn0pfChbL10pK3woKFsvXSopKFsuXXsxLDJ9KShbL10qKSl8KCguKikoWy9dfFsgXSspKC4qKSl8KFxccyspKSQvXG4gICAgfSxcbiAgICBsb2dpbkFsaWFzOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxcXC8kOitdKiQvXG4gICAgfSxcbiAgICBub1doaXRlU3BhY2VPbmx5OiB7XG4gICAgICBwYXR0ZXJuOiAvXig/IVxccyokKS4rL1xuICAgIH0sXG4gICAgbm9XaGl0ZVNwYWNlQXRCZWdpbm5pbmc6IHtcbiAgICAgIHBhdHRlcm46IC9eW15cXHNdLitbXlxcc10kL1xuICAgIH0sXG4gICAgbm9Eb3RzOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteLl0qJC9cbiAgICB9LFxuICAgIGh0dHBVcmw6IHtcbiAgICAgIHBhdHRlcm46IC9eKGh0dHBzPyk6XFwvXFwvLiokL1xuICAgIH0sXG4gICAgY29sb25lZEhleE51bWJlcjoge1xuICAgICAgcGF0dGVybjogL15bMC05YS1mQS1GOl0rJC9cbiAgICB9LFxuICAgIGludGVnZXI6IHtcbiAgICAgIHBhdHRlcm46IC9eLT9cXGQrJC9cbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldChrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLnJ1bGVzW2tleV07XG4gICAgcmV0dXJuIHBhdHRlcm4gYXMgVmFsaWRhdGlvblJ1bGVzO1xuICB9XG59XG4iXX0=