UNPKG

matrix-react-sdk

Version:
574 lines (571 loc) 79.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MAC_ONLY_SHORTCUTS = exports.KeyBindingAction = exports.KEY_ICON = exports.KEYBOARD_SHORTCUTS = exports.DIGITS = exports.DESKTOP_SHORTCUTS = exports.CategoryName = exports.CATEGORIES = exports.ALTERNATE_KEY_NAME = void 0; var _languageHandler = require("../languageHandler"); var _Keyboard = require("../Keyboard"); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com> Copyright 2020 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ let KeyBindingAction = exports.KeyBindingAction = /*#__PURE__*/function (KeyBindingAction) { KeyBindingAction["SendMessage"] = "KeyBinding.sendMessageInComposer"; KeyBindingAction["SelectPrevSendHistory"] = "KeyBinding.previousMessageInComposerHistory"; KeyBindingAction["SelectNextSendHistory"] = "KeyBinding.nextMessageInComposerHistory"; KeyBindingAction["EditPrevMessage"] = "KeyBinding.editPreviousMessage"; KeyBindingAction["EditNextMessage"] = "KeyBinding.editNextMessage"; KeyBindingAction["CancelReplyOrEdit"] = "KeyBinding.cancelReplyInComposer"; KeyBindingAction["ShowStickerPicker"] = "KeyBinding.showStickerPicker"; KeyBindingAction["FormatBold"] = "KeyBinding.toggleBoldInComposer"; KeyBindingAction["FormatItalics"] = "KeyBinding.toggleItalicsInComposer"; KeyBindingAction["FormatLink"] = "KeyBinding.FormatLink"; KeyBindingAction["FormatCode"] = "KeyBinding.FormatCode"; KeyBindingAction["FormatQuote"] = "KeyBinding.toggleQuoteInComposer"; KeyBindingAction["EditUndo"] = "KeyBinding.editUndoInComposer"; KeyBindingAction["EditRedo"] = "KeyBinding.editRedoInComposer"; KeyBindingAction["NewLine"] = "KeyBinding.newLineInComposer"; KeyBindingAction["MoveCursorToStart"] = "KeyBinding.jumpToStartInComposer"; KeyBindingAction["MoveCursorToEnd"] = "KeyBinding.jumpToEndInComposer"; KeyBindingAction["CompleteAutocomplete"] = "KeyBinding.completeAutocomplete"; KeyBindingAction["ForceCompleteAutocomplete"] = "KeyBinding.forceCompleteAutocomplete"; KeyBindingAction["PrevSelectionInAutocomplete"] = "KeyBinding.previousOptionInAutoComplete"; KeyBindingAction["NextSelectionInAutocomplete"] = "KeyBinding.nextOptionInAutoComplete"; KeyBindingAction["CancelAutocomplete"] = "KeyBinding.cancelAutoComplete"; KeyBindingAction["ClearRoomFilter"] = "KeyBinding.clearRoomFilter"; KeyBindingAction["PrevRoom"] = "KeyBinding.downerRoom"; KeyBindingAction["NextRoom"] = "KeyBinding.upperRoom"; KeyBindingAction["SelectRoomInRoomList"] = "KeyBinding.selectRoomInRoomList"; KeyBindingAction["CollapseRoomListSection"] = "KeyBinding.collapseSectionInRoomList"; KeyBindingAction["ExpandRoomListSection"] = "KeyBinding.expandSectionInRoomList"; KeyBindingAction["ScrollUp"] = "KeyBinding.scrollUpInTimeline"; KeyBindingAction["ScrollDown"] = "KeyBinding.scrollDownInTimeline"; KeyBindingAction["DismissReadMarker"] = "KeyBinding.dismissReadMarkerAndJumpToBottom"; KeyBindingAction["JumpToOldestUnread"] = "KeyBinding.jumpToOldestUnreadMessage"; KeyBindingAction["UploadFile"] = "KeyBinding.uploadFileToRoom"; KeyBindingAction["SearchInRoom"] = "KeyBinding.searchInRoom"; KeyBindingAction["JumpToFirstMessage"] = "KeyBinding.jumpToFirstMessageInTimeline"; KeyBindingAction["JumpToLatestMessage"] = "KeyBinding.jumpToLastMessageInTimeline"; KeyBindingAction["FilterRooms"] = "KeyBinding.filterRooms"; KeyBindingAction["ToggleSpacePanel"] = "KeyBinding.toggleSpacePanel"; KeyBindingAction["ToggleRoomSidePanel"] = "KeyBinding.toggleRightPanel"; KeyBindingAction["ToggleUserMenu"] = "KeyBinding.toggleTopLeftMenu"; KeyBindingAction["ShowKeyboardSettings"] = "KeyBinding.showKeyBindingsSettings"; KeyBindingAction["GoToHome"] = "KeyBinding.goToHomeView"; KeyBindingAction["SelectPrevRoom"] = "KeyBinding.previousRoom"; KeyBindingAction["SelectNextRoom"] = "KeyBinding.nextRoom"; KeyBindingAction["SelectPrevUnreadRoom"] = "KeyBinding.previousUnreadRoom"; KeyBindingAction["SelectNextUnreadRoom"] = "KeyBinding.nextUnreadRoom"; KeyBindingAction["SwitchToSpaceByNumber"] = "KeyBinding.switchToSpaceByNumber"; KeyBindingAction["OpenUserSettings"] = "KeyBinding.openUserSettings"; KeyBindingAction["PreviousVisitedRoomOrSpace"] = "KeyBinding.PreviousVisitedRoomOrSpace"; KeyBindingAction["NextVisitedRoomOrSpace"] = "KeyBinding.NextVisitedRoomOrSpace"; KeyBindingAction["NextLandmark"] = "KeyBinding.nextLandmark"; KeyBindingAction["PreviousLandmark"] = "KeyBinding.previousLandmark"; KeyBindingAction["ToggleMicInCall"] = "KeyBinding.toggleMicInCall"; KeyBindingAction["ToggleWebcamInCall"] = "KeyBinding.toggleWebcamInCall"; KeyBindingAction["Escape"] = "KeyBinding.escape"; KeyBindingAction["Enter"] = "KeyBinding.enter"; KeyBindingAction["Space"] = "KeyBinding.space"; KeyBindingAction["Backspace"] = "KeyBinding.backspace"; KeyBindingAction["Delete"] = "KeyBinding.delete"; KeyBindingAction["Home"] = "KeyBinding.home"; KeyBindingAction["End"] = "KeyBinding.end"; KeyBindingAction["ArrowLeft"] = "KeyBinding.arrowLeft"; KeyBindingAction["ArrowUp"] = "KeyBinding.arrowUp"; KeyBindingAction["ArrowRight"] = "KeyBinding.arrowRight"; KeyBindingAction["ArrowDown"] = "KeyBinding.arrowDown"; KeyBindingAction["Tab"] = "KeyBinding.tab"; KeyBindingAction["Comma"] = "KeyBinding.comma"; KeyBindingAction["ToggleHiddenEventVisibility"] = "KeyBinding.toggleHiddenEventVisibility"; return KeyBindingAction; }({}); // TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager let CategoryName = exports.CategoryName = /*#__PURE__*/function (CategoryName) { CategoryName["NAVIGATION"] = "Navigation"; CategoryName["ACCESSIBILITY"] = "Accessibility"; CategoryName["CALLS"] = "Calls"; CategoryName["COMPOSER"] = "Composer"; CategoryName["ROOM_LIST"] = "Room List"; CategoryName["ROOM"] = "Room"; CategoryName["AUTOCOMPLETE"] = "Autocomplete"; CategoryName["LABS"] = "Labs"; return CategoryName; }({}); // Meta-key representing the digits [0-9] often found at the top of standard keyboard layouts const DIGITS = exports.DIGITS = "digits"; const ALTERNATE_KEY_NAME = exports.ALTERNATE_KEY_NAME = { [_Keyboard.Key.PAGE_UP]: (0, _languageHandler._td)("keyboard|page_up"), [_Keyboard.Key.PAGE_DOWN]: (0, _languageHandler._td)("keyboard|page_down"), [_Keyboard.Key.ESCAPE]: (0, _languageHandler._td)("keyboard|escape"), [_Keyboard.Key.ENTER]: (0, _languageHandler._td)("keyboard|enter"), [_Keyboard.Key.SPACE]: (0, _languageHandler._td)("keyboard|space"), [_Keyboard.Key.HOME]: (0, _languageHandler._td)("keyboard|home"), [_Keyboard.Key.END]: (0, _languageHandler._td)("keyboard|end"), [_Keyboard.Key.ALT]: (0, _languageHandler._td)("keyboard|alt"), [_Keyboard.Key.CONTROL]: (0, _languageHandler._td)("keyboard|control"), [_Keyboard.Key.SHIFT]: (0, _languageHandler._td)("keyboard|shift"), [DIGITS]: (0, _languageHandler._td)("keyboard|number") }; const KEY_ICON = exports.KEY_ICON = { [_Keyboard.Key.ARROW_UP]: "↑", [_Keyboard.Key.ARROW_DOWN]: "↓", [_Keyboard.Key.ARROW_LEFT]: "←", [_Keyboard.Key.ARROW_RIGHT]: "→" }; if (_Keyboard.IS_MAC) { KEY_ICON[_Keyboard.Key.META] = "⌘"; KEY_ICON[_Keyboard.Key.ALT] = "⌥"; KEY_ICON[_Keyboard.Key.SHIFT] = "⇧"; } const CATEGORIES = exports.CATEGORIES = { [CategoryName.COMPOSER]: { categoryLabel: (0, _languageHandler._td)("settings|preferences|composer_heading"), settingNames: [KeyBindingAction.SendMessage, KeyBindingAction.NewLine, KeyBindingAction.FormatBold, KeyBindingAction.FormatItalics, KeyBindingAction.FormatQuote, KeyBindingAction.FormatLink, KeyBindingAction.FormatCode, KeyBindingAction.EditUndo, KeyBindingAction.EditRedo, KeyBindingAction.MoveCursorToStart, KeyBindingAction.MoveCursorToEnd, KeyBindingAction.CancelReplyOrEdit, KeyBindingAction.EditNextMessage, KeyBindingAction.EditPrevMessage, KeyBindingAction.SelectNextSendHistory, KeyBindingAction.SelectPrevSendHistory, KeyBindingAction.ShowStickerPicker] }, [CategoryName.CALLS]: { categoryLabel: (0, _languageHandler._td)("keyboard|category_calls"), settingNames: [KeyBindingAction.ToggleMicInCall, KeyBindingAction.ToggleWebcamInCall] }, [CategoryName.ROOM]: { categoryLabel: (0, _languageHandler._td)("common|room"), settingNames: [KeyBindingAction.SearchInRoom, KeyBindingAction.UploadFile, KeyBindingAction.DismissReadMarker, KeyBindingAction.JumpToOldestUnread, KeyBindingAction.ScrollUp, KeyBindingAction.ScrollDown, KeyBindingAction.JumpToFirstMessage, KeyBindingAction.JumpToLatestMessage] }, [CategoryName.ROOM_LIST]: { categoryLabel: (0, _languageHandler._td)("keyboard|category_room_list"), settingNames: [KeyBindingAction.SelectRoomInRoomList, KeyBindingAction.ClearRoomFilter, KeyBindingAction.CollapseRoomListSection, KeyBindingAction.ExpandRoomListSection, KeyBindingAction.NextRoom, KeyBindingAction.PrevRoom] }, [CategoryName.ACCESSIBILITY]: { categoryLabel: (0, _languageHandler._td)("common|accessibility"), settingNames: [KeyBindingAction.Escape, KeyBindingAction.Enter, KeyBindingAction.Space, KeyBindingAction.Backspace, KeyBindingAction.Delete, KeyBindingAction.Home, KeyBindingAction.End, KeyBindingAction.ArrowLeft, KeyBindingAction.ArrowUp, KeyBindingAction.ArrowRight, KeyBindingAction.ArrowDown, KeyBindingAction.Comma] }, [CategoryName.NAVIGATION]: { categoryLabel: (0, _languageHandler._td)("keyboard|category_navigation"), settingNames: [KeyBindingAction.ToggleUserMenu, KeyBindingAction.ToggleRoomSidePanel, KeyBindingAction.ToggleSpacePanel, KeyBindingAction.ShowKeyboardSettings, KeyBindingAction.GoToHome, KeyBindingAction.FilterRooms, KeyBindingAction.SelectNextUnreadRoom, KeyBindingAction.SelectPrevUnreadRoom, KeyBindingAction.SelectNextRoom, KeyBindingAction.SelectPrevRoom, KeyBindingAction.OpenUserSettings, KeyBindingAction.SwitchToSpaceByNumber, KeyBindingAction.PreviousVisitedRoomOrSpace, KeyBindingAction.NextVisitedRoomOrSpace, KeyBindingAction.NextLandmark, KeyBindingAction.PreviousLandmark] }, [CategoryName.AUTOCOMPLETE]: { categoryLabel: (0, _languageHandler._td)("keyboard|category_autocomplete"), settingNames: [KeyBindingAction.CancelAutocomplete, KeyBindingAction.NextSelectionInAutocomplete, KeyBindingAction.PrevSelectionInAutocomplete, KeyBindingAction.CompleteAutocomplete, KeyBindingAction.ForceCompleteAutocomplete] }, [CategoryName.LABS]: { categoryLabel: (0, _languageHandler._td)("common|labs"), settingNames: [KeyBindingAction.ToggleHiddenEventVisibility] } }; const DESKTOP_SHORTCUTS = exports.DESKTOP_SHORTCUTS = [KeyBindingAction.OpenUserSettings, KeyBindingAction.SwitchToSpaceByNumber, KeyBindingAction.PreviousVisitedRoomOrSpace, KeyBindingAction.NextVisitedRoomOrSpace]; const MAC_ONLY_SHORTCUTS = exports.MAC_ONLY_SHORTCUTS = [KeyBindingAction.OpenUserSettings]; // This is very intentionally modelled after SETTINGS as it will make it easier // to implement customizable keyboard shortcuts // TODO: TravisR will fix this nightmare when the new version of the SettingsStore becomes a thing // XXX: Exported for tests const KEYBOARD_SHORTCUTS = exports.KEYBOARD_SHORTCUTS = { [KeyBindingAction.FormatBold]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.B }, displayName: (0, _languageHandler._td)("keyboard|composer_toggle_bold") }, [KeyBindingAction.FormatItalics]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.I }, displayName: (0, _languageHandler._td)("keyboard|composer_toggle_italics") }, [KeyBindingAction.FormatQuote]: { default: { ctrlOrCmdKey: true, shiftKey: true, key: _Keyboard.Key.GREATER_THAN }, displayName: (0, _languageHandler._td)("keyboard|composer_toggle_quote") }, [KeyBindingAction.FormatCode]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.E }, displayName: (0, _languageHandler._td)("keyboard|composer_toggle_code_block") }, [KeyBindingAction.FormatLink]: { default: { ctrlOrCmdKey: true, shiftKey: true, key: _Keyboard.Key.L }, displayName: (0, _languageHandler._td)("keyboard|composer_toggle_link") }, [KeyBindingAction.CancelReplyOrEdit]: { default: { key: _Keyboard.Key.ESCAPE }, displayName: (0, _languageHandler._td)("keyboard|cancel_reply") }, [KeyBindingAction.EditNextMessage]: { default: { key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|navigate_next_message_edit") }, [KeyBindingAction.EditPrevMessage]: { default: { key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|navigate_prev_message_edit") }, [KeyBindingAction.MoveCursorToStart]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.HOME }, displayName: (0, _languageHandler._td)("keyboard|composer_jump_start") }, [KeyBindingAction.MoveCursorToEnd]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.END }, displayName: (0, _languageHandler._td)("keyboard|composer_jump_end") }, [KeyBindingAction.SelectNextSendHistory]: { default: { altKey: true, ctrlKey: true, key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|composer_navigate_next_history") }, [KeyBindingAction.SelectPrevSendHistory]: { default: { altKey: true, ctrlKey: true, key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|composer_navigate_prev_history") }, [KeyBindingAction.ShowStickerPicker]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.SEMICOLON }, displayName: (0, _languageHandler._td)("keyboard|send_sticker") }, [KeyBindingAction.ToggleMicInCall]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.D }, displayName: (0, _languageHandler._td)("keyboard|toggle_microphone_mute") }, [KeyBindingAction.ToggleWebcamInCall]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.E }, displayName: (0, _languageHandler._td)("keyboard|toggle_webcam_mute") }, [KeyBindingAction.DismissReadMarker]: { default: { key: _Keyboard.Key.ESCAPE }, displayName: (0, _languageHandler._td)("keyboard|dismiss_read_marker_and_jump_bottom") }, [KeyBindingAction.JumpToOldestUnread]: { default: { shiftKey: true, key: _Keyboard.Key.PAGE_UP }, displayName: (0, _languageHandler._td)("keyboard|jump_to_read_marker") }, [KeyBindingAction.UploadFile]: { default: { ctrlOrCmdKey: true, shiftKey: true, key: _Keyboard.Key.U }, displayName: (0, _languageHandler._td)("keyboard|upload_file") }, [KeyBindingAction.ScrollUp]: { default: { key: _Keyboard.Key.PAGE_UP }, displayName: (0, _languageHandler._td)("keyboard|scroll_up_timeline") }, [KeyBindingAction.ScrollDown]: { default: { key: _Keyboard.Key.PAGE_DOWN }, displayName: (0, _languageHandler._td)("keyboard|scroll_down_timeline") }, [KeyBindingAction.FilterRooms]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.K }, displayName: (0, _languageHandler._td)("keyboard|jump_room_search") }, [KeyBindingAction.SelectRoomInRoomList]: { default: { key: _Keyboard.Key.ENTER }, displayName: (0, _languageHandler._td)("keyboard|room_list_select_room") }, [KeyBindingAction.CollapseRoomListSection]: { default: { key: _Keyboard.Key.ARROW_LEFT }, displayName: (0, _languageHandler._td)("keyboard|room_list_collapse_section") }, [KeyBindingAction.ExpandRoomListSection]: { default: { key: _Keyboard.Key.ARROW_RIGHT }, displayName: (0, _languageHandler._td)("keyboard|room_list_expand_section") }, [KeyBindingAction.NextRoom]: { default: { key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|room_list_navigate_down") }, [KeyBindingAction.PrevRoom]: { default: { key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|room_list_navigate_up") }, [KeyBindingAction.ToggleUserMenu]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.BACKTICK }, displayName: (0, _languageHandler._td)("keyboard|toggle_top_left_menu") }, [KeyBindingAction.ToggleRoomSidePanel]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.PERIOD }, displayName: (0, _languageHandler._td)("keyboard|toggle_right_panel") }, [KeyBindingAction.ShowKeyboardSettings]: { default: { ctrlOrCmdKey: true, key: _Keyboard.Key.SLASH }, displayName: (0, _languageHandler._td)("keyboard|keyboard_shortcuts_tab") }, [KeyBindingAction.GoToHome]: { default: { ctrlOrCmdKey: true, altKey: !_Keyboard.IS_MAC, shiftKey: _Keyboard.IS_MAC, key: _Keyboard.Key.H }, displayName: (0, _languageHandler._td)("keyboard|go_home_view") }, [KeyBindingAction.SelectNextUnreadRoom]: { default: { shiftKey: true, altKey: true, key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|next_unread_room") }, [KeyBindingAction.SelectPrevUnreadRoom]: { default: { shiftKey: true, altKey: true, key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|prev_unread_room") }, [KeyBindingAction.SelectNextRoom]: { default: { altKey: true, key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|next_room") }, [KeyBindingAction.SelectPrevRoom]: { default: { altKey: true, key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|prev_room") }, [KeyBindingAction.CancelAutocomplete]: { default: { key: _Keyboard.Key.ESCAPE }, displayName: (0, _languageHandler._td)("keyboard|autocomplete_cancel") }, [KeyBindingAction.NextSelectionInAutocomplete]: { default: { key: _Keyboard.Key.ARROW_DOWN }, displayName: (0, _languageHandler._td)("keyboard|autocomplete_navigate_next") }, [KeyBindingAction.PrevSelectionInAutocomplete]: { default: { key: _Keyboard.Key.ARROW_UP }, displayName: (0, _languageHandler._td)("keyboard|autocomplete_navigate_prev") }, [KeyBindingAction.ToggleSpacePanel]: { default: { ctrlOrCmdKey: true, shiftKey: true, key: _Keyboard.Key.D }, displayName: (0, _languageHandler._td)("keyboard|toggle_space_panel") }, [KeyBindingAction.ToggleHiddenEventVisibility]: { default: { ctrlOrCmdKey: true, shiftKey: true, key: _Keyboard.Key.H }, displayName: (0, _languageHandler._td)("keyboard|toggle_hidden_events") }, [KeyBindingAction.JumpToFirstMessage]: { default: { key: _Keyboard.Key.HOME, ctrlKey: true }, displayName: (0, _languageHandler._td)("keyboard|jump_first_message") }, [KeyBindingAction.JumpToLatestMessage]: { default: { key: _Keyboard.Key.END, ctrlKey: true }, displayName: (0, _languageHandler._td)("keyboard|jump_last_message") }, [KeyBindingAction.EditUndo]: { default: { key: _Keyboard.Key.Z, ctrlOrCmdKey: true }, displayName: (0, _languageHandler._td)("keyboard|composer_undo") }, [KeyBindingAction.EditRedo]: { default: { key: _Keyboard.IS_MAC ? _Keyboard.Key.Z : _Keyboard.Key.Y, ctrlOrCmdKey: true, shiftKey: _Keyboard.IS_MAC }, displayName: (0, _languageHandler._td)("keyboard|composer_redo") }, [KeyBindingAction.PreviousVisitedRoomOrSpace]: { default: { metaKey: _Keyboard.IS_MAC, altKey: !_Keyboard.IS_MAC, key: _Keyboard.IS_MAC ? _Keyboard.Key.SQUARE_BRACKET_LEFT : _Keyboard.Key.ARROW_LEFT }, displayName: (0, _languageHandler._td)("keyboard|navigate_prev_history") }, [KeyBindingAction.NextVisitedRoomOrSpace]: { default: { metaKey: _Keyboard.IS_MAC, altKey: !_Keyboard.IS_MAC, key: _Keyboard.IS_MAC ? _Keyboard.Key.SQUARE_BRACKET_RIGHT : _Keyboard.Key.ARROW_RIGHT }, displayName: (0, _languageHandler._td)("keyboard|navigate_next_history") }, [KeyBindingAction.SwitchToSpaceByNumber]: { default: { ctrlOrCmdKey: true, key: DIGITS }, displayName: (0, _languageHandler._td)("keyboard|switch_to_space") }, [KeyBindingAction.OpenUserSettings]: { default: { metaKey: true, key: _Keyboard.Key.COMMA }, displayName: (0, _languageHandler._td)("keyboard|open_user_settings") }, [KeyBindingAction.Escape]: { default: { key: _Keyboard.Key.ESCAPE }, displayName: (0, _languageHandler._td)("keyboard|close_dialog_menu") }, [KeyBindingAction.Enter]: { default: { key: _Keyboard.Key.ENTER }, displayName: (0, _languageHandler._td)("keyboard|activate_button") }, [KeyBindingAction.Space]: { default: { key: _Keyboard.Key.SPACE } }, [KeyBindingAction.Backspace]: { default: { key: _Keyboard.Key.BACKSPACE } }, [KeyBindingAction.Delete]: { default: { key: _Keyboard.Key.DELETE } }, [KeyBindingAction.Home]: { default: { key: _Keyboard.Key.HOME } }, [KeyBindingAction.End]: { default: { key: _Keyboard.Key.END } }, [KeyBindingAction.ArrowLeft]: { default: { key: _Keyboard.Key.ARROW_LEFT } }, [KeyBindingAction.ArrowUp]: { default: { key: _Keyboard.Key.ARROW_UP } }, [KeyBindingAction.ArrowRight]: { default: { key: _Keyboard.Key.ARROW_RIGHT } }, [KeyBindingAction.ArrowDown]: { default: { key: _Keyboard.Key.ARROW_DOWN } }, [KeyBindingAction.Comma]: { default: { key: _Keyboard.Key.COMMA } }, [KeyBindingAction.NextLandmark]: { default: { ctrlOrCmdKey: !_Keyboard.IS_ELECTRON, key: _Keyboard.Key.F6 }, displayName: (0, _languageHandler._td)("keyboard|next_landmark") }, [KeyBindingAction.PreviousLandmark]: { default: { ctrlOrCmdKey: !_Keyboard.IS_ELECTRON, key: _Keyboard.Key.F6, shiftKey: true }, displayName: (0, _languageHandler._td)("keyboard|prev_landmark") } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGFuZ3VhZ2VIYW5kbGVyIiwicmVxdWlyZSIsIl9LZXlib2FyZCIsIktleUJpbmRpbmdBY3Rpb24iLCJleHBvcnRzIiwiQ2F0ZWdvcnlOYW1lIiwiRElHSVRTIiwiQUxURVJOQVRFX0tFWV9OQU1FIiwiS2V5IiwiUEFHRV9VUCIsIl90ZCIsIlBBR0VfRE9XTiIsIkVTQ0FQRSIsIkVOVEVSIiwiU1BBQ0UiLCJIT01FIiwiRU5EIiwiQUxUIiwiQ09OVFJPTCIsIlNISUZUIiwiS0VZX0lDT04iLCJBUlJPV19VUCIsIkFSUk9XX0RPV04iLCJBUlJPV19MRUZUIiwiQVJST1dfUklHSFQiLCJJU19NQUMiLCJNRVRBIiwiQ0FURUdPUklFUyIsIkNPTVBPU0VSIiwiY2F0ZWdvcnlMYWJlbCIsInNldHRpbmdOYW1lcyIsIlNlbmRNZXNzYWdlIiwiTmV3TGluZSIsIkZvcm1hdEJvbGQiLCJGb3JtYXRJdGFsaWNzIiwiRm9ybWF0UXVvdGUiLCJGb3JtYXRMaW5rIiwiRm9ybWF0Q29kZSIsIkVkaXRVbmRvIiwiRWRpdFJlZG8iLCJNb3ZlQ3Vyc29yVG9TdGFydCIsIk1vdmVDdXJzb3JUb0VuZCIsIkNhbmNlbFJlcGx5T3JFZGl0IiwiRWRpdE5leHRNZXNzYWdlIiwiRWRpdFByZXZNZXNzYWdlIiwiU2VsZWN0TmV4dFNlbmRIaXN0b3J5IiwiU2VsZWN0UHJldlNlbmRIaXN0b3J5IiwiU2hvd1N0aWNrZXJQaWNrZXIiLCJDQUxMUyIsIlRvZ2dsZU1pY0luQ2FsbCIsIlRvZ2dsZVdlYmNhbUluQ2FsbCIsIlJPT00iLCJTZWFyY2hJblJvb20iLCJVcGxvYWRGaWxlIiwiRGlzbWlzc1JlYWRNYXJrZXIiLCJKdW1wVG9PbGRlc3RVbnJlYWQiLCJTY3JvbGxVcCIsIlNjcm9sbERvd24iLCJKdW1wVG9GaXJzdE1lc3NhZ2UiLCJKdW1wVG9MYXRlc3RNZXNzYWdlIiwiUk9PTV9MSVNUIiwiU2VsZWN0Um9vbUluUm9vbUxpc3QiLCJDbGVhclJvb21GaWx0ZXIiLCJDb2xsYXBzZVJvb21MaXN0U2VjdGlvbiIsIkV4cGFuZFJvb21MaXN0U2VjdGlvbiIsIk5leHRSb29tIiwiUHJldlJvb20iLCJBQ0NFU1NJQklMSVRZIiwiRXNjYXBlIiwiRW50ZXIiLCJTcGFjZSIsIkJhY2tzcGFjZSIsIkRlbGV0ZSIsIkhvbWUiLCJFbmQiLCJBcnJvd0xlZnQiLCJBcnJvd1VwIiwiQXJyb3dSaWdodCIsIkFycm93RG93biIsIkNvbW1hIiwiTkFWSUdBVElPTiIsIlRvZ2dsZVVzZXJNZW51IiwiVG9nZ2xlUm9vbVNpZGVQYW5lbCIsIlRvZ2dsZVNwYWNlUGFuZWwiLCJTaG93S2V5Ym9hcmRTZXR0aW5ncyIsIkdvVG9Ib21lIiwiRmlsdGVyUm9vbXMiLCJTZWxlY3ROZXh0VW5yZWFkUm9vbSIsIlNlbGVjdFByZXZVbnJlYWRSb29tIiwiU2VsZWN0TmV4dFJvb20iLCJTZWxlY3RQcmV2Um9vbSIsIk9wZW5Vc2VyU2V0dGluZ3MiLCJTd2l0Y2hUb1NwYWNlQnlOdW1iZXIiLCJQcmV2aW91c1Zpc2l0ZWRSb29tT3JTcGFjZSIsIk5leHRWaXNpdGVkUm9vbU9yU3BhY2UiLCJOZXh0TGFuZG1hcmsiLCJQcmV2aW91c0xhbmRtYXJrIiwiQVVUT0NPTVBMRVRFIiwiQ2FuY2VsQXV0b2NvbXBsZXRlIiwiTmV4dFNlbGVjdGlvbkluQXV0b2NvbXBsZXRlIiwiUHJldlNlbGVjdGlvbkluQXV0b2NvbXBsZXRlIiwiQ29tcGxldGVBdXRvY29tcGxldGUiLCJGb3JjZUNvbXBsZXRlQXV0b2NvbXBsZXRlIiwiTEFCUyIsIlRvZ2dsZUhpZGRlbkV2ZW50VmlzaWJpbGl0eSIsIkRFU0tUT1BfU0hPUlRDVVRTIiwiTUFDX09OTFlfU0hPUlRDVVRTIiwiS0VZQk9BUkRfU0hPUlRDVVRTIiwiZGVmYXVsdCIsImN0cmxPckNtZEtleSIsImtleSIsIkIiLCJkaXNwbGF5TmFtZSIsIkkiLCJzaGlmdEtleSIsIkdSRUFURVJfVEhBTiIsIkUiLCJMIiwiYWx0S2V5IiwiY3RybEtleSIsIlNFTUlDT0xPTiIsIkQiLCJVIiwiSyIsIkJBQ0tUSUNLIiwiUEVSSU9EIiwiU0xBU0giLCJIIiwiWiIsIlkiLCJtZXRhS2V5IiwiU1FVQVJFX0JSQUNLRVRfTEVGVCIsIlNRVUFSRV9CUkFDS0VUX1JJR0hUIiwiQ09NTUEiLCJCQUNLU1BBQ0UiLCJERUxFVEUiLCJJU19FTEVDVFJPTiIsIkY2Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY2Vzc2liaWxpdHkvS2V5Ym9hcmRTaG9ydGN1dHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IF90ZCwgVHJhbnNsYXRpb25LZXkgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgeyBJU19NQUMsIElTX0VMRUNUUk9OLCBLZXkgfSBmcm9tIFwiLi4vS2V5Ym9hcmRcIjtcbmltcG9ydCB7IElCYXNlU2V0dGluZyB9IGZyb20gXCIuLi9zZXR0aW5ncy9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgS2V5Q29tYm8gfSBmcm9tIFwiLi4vS2V5QmluZGluZ3NNYW5hZ2VyXCI7XG5cbmV4cG9ydCBlbnVtIEtleUJpbmRpbmdBY3Rpb24ge1xuICAgIC8qKiBTZW5kIGEgbWVzc2FnZSAqL1xuICAgIFNlbmRNZXNzYWdlID0gXCJLZXlCaW5kaW5nLnNlbmRNZXNzYWdlSW5Db21wb3NlclwiLFxuICAgIC8qKiBHbyBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgc2VuZCBoaXN0b3J5IGFuZCB1c2UgdGhlIG1lc3NhZ2UgaW4gY29tcG9zZXIgdmlldyAqL1xuICAgIFNlbGVjdFByZXZTZW5kSGlzdG9yeSA9IFwiS2V5QmluZGluZy5wcmV2aW91c01lc3NhZ2VJbkNvbXBvc2VySGlzdG9yeVwiLFxuICAgIC8qKiBHbyBmb3J3YXJkcyB0aHJvdWdoIHRoZSBzZW5kIGhpc3RvcnkgKi9cbiAgICBTZWxlY3ROZXh0U2VuZEhpc3RvcnkgPSBcIktleUJpbmRpbmcubmV4dE1lc3NhZ2VJbkNvbXBvc2VySGlzdG9yeVwiLFxuICAgIC8qKiBTdGFydCBlZGl0aW5nIHRoZSB1c2VyJ3MgbGFzdCBzZW50IG1lc3NhZ2UgKi9cbiAgICBFZGl0UHJldk1lc3NhZ2UgPSBcIktleUJpbmRpbmcuZWRpdFByZXZpb3VzTWVzc2FnZVwiLFxuICAgIC8qKiBTdGFydCBlZGl0aW5nIHRoZSB1c2VyJ3MgbmV4dCBzZW50IG1lc3NhZ2UgKi9cbiAgICBFZGl0TmV4dE1lc3NhZ2UgPSBcIktleUJpbmRpbmcuZWRpdE5leHRNZXNzYWdlXCIsXG4gICAgLyoqIENhbmNlbCBlZGl0aW5nIGEgbWVzc2FnZSBvciBjYW5jZWwgcmVwbHlpbmcgdG8gYSBtZXNzYWdlICovXG4gICAgQ2FuY2VsUmVwbHlPckVkaXQgPSBcIktleUJpbmRpbmcuY2FuY2VsUmVwbHlJbkNvbXBvc2VyXCIsXG4gICAgLyoqIFNob3cgdGhlIHN0aWNrZXIgcGlja2VyICovXG4gICAgU2hvd1N0aWNrZXJQaWNrZXIgPSBcIktleUJpbmRpbmcuc2hvd1N0aWNrZXJQaWNrZXJcIixcblxuICAgIC8qKiBTZXQgYm9sZCBmb3JtYXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uICovXG4gICAgRm9ybWF0Qm9sZCA9IFwiS2V5QmluZGluZy50b2dnbGVCb2xkSW5Db21wb3NlclwiLFxuICAgIC8qKiBTZXQgaXRhbGljcyBmb3JtYXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uICovXG4gICAgRm9ybWF0SXRhbGljcyA9IFwiS2V5QmluZGluZy50b2dnbGVJdGFsaWNzSW5Db21wb3NlclwiLFxuICAgIC8qKiBJbnNlcnQgbGluayBmb3IgY3VycmVudCBzZWxlY3Rpb24gKi9cbiAgICBGb3JtYXRMaW5rID0gXCJLZXlCaW5kaW5nLkZvcm1hdExpbmtcIixcbiAgICAvKiogU2V0IGNvZGUgZm9ybWF0IGZvciBjdXJyZW50IHNlbGVjdGlvbiAqL1xuICAgIEZvcm1hdENvZGUgPSBcIktleUJpbmRpbmcuRm9ybWF0Q29kZVwiLFxuICAgIC8qKiBGb3JtYXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGFzIHF1b3RlICovXG4gICAgRm9ybWF0UXVvdGUgPSBcIktleUJpbmRpbmcudG9nZ2xlUXVvdGVJbkNvbXBvc2VyXCIsXG4gICAgLyoqIFVuZG8gdGhlIGxhc3QgZWRpdGluZyAqL1xuICAgIEVkaXRVbmRvID0gXCJLZXlCaW5kaW5nLmVkaXRVbmRvSW5Db21wb3NlclwiLFxuICAgIC8qKiBSZWRvIGVkaXRpbmcgKi9cbiAgICBFZGl0UmVkbyA9IFwiS2V5QmluZGluZy5lZGl0UmVkb0luQ29tcG9zZXJcIixcbiAgICAvKiogSW5zZXJ0IG5ldyBsaW5lICovXG4gICAgTmV3TGluZSA9IFwiS2V5QmluZGluZy5uZXdMaW5lSW5Db21wb3NlclwiLFxuICAgIC8qKiBNb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIHN0YXJ0IG9mIHRoZSBtZXNzYWdlICovXG4gICAgTW92ZUN1cnNvclRvU3RhcnQgPSBcIktleUJpbmRpbmcuanVtcFRvU3RhcnRJbkNvbXBvc2VyXCIsXG4gICAgLyoqIE1vdmUgdGhlIGN1cnNvciB0byB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlICovXG4gICAgTW92ZUN1cnNvclRvRW5kID0gXCJLZXlCaW5kaW5nLmp1bXBUb0VuZEluQ29tcG9zZXJcIixcblxuICAgIC8qKiBBY2NlcHRzIGNob3NlbiBhdXRvY29tcGxldGUgc2VsZWN0aW9uICovXG4gICAgQ29tcGxldGVBdXRvY29tcGxldGUgPSBcIktleUJpbmRpbmcuY29tcGxldGVBdXRvY29tcGxldGVcIixcbiAgICAvKiogQWNjZXB0cyBjaG9zZW4gYXV0b2NvbXBsZXRlIHNlbGVjdGlvbiBvcixcbiAgICAgKiBpZiB0aGUgYXV0b2NvbXBsZXRpb24gd2luZG93IGlzIG5vdCBzaG93biwgb3BlbiB0aGUgd2luZG93IGFuZCBzZWxlY3QgdGhlIGZpcnN0IHNlbGVjdGlvbiAqL1xuICAgIEZvcmNlQ29tcGxldGVBdXRvY29tcGxldGUgPSBcIktleUJpbmRpbmcuZm9yY2VDb21wbGV0ZUF1dG9jb21wbGV0ZVwiLFxuICAgIC8qKiBNb3ZlIHRvIHRoZSBwcmV2aW91cyBhdXRvY29tcGxldGUgc2VsZWN0aW9uICovXG4gICAgUHJldlNlbGVjdGlvbkluQXV0b2NvbXBsZXRlID0gXCJLZXlCaW5kaW5nLnByZXZpb3VzT3B0aW9uSW5BdXRvQ29tcGxldGVcIixcbiAgICAvKiogTW92ZSB0byB0aGUgbmV4dCBhdXRvY29tcGxldGUgc2VsZWN0aW9uICovXG4gICAgTmV4dFNlbGVjdGlvbkluQXV0b2NvbXBsZXRlID0gXCJLZXlCaW5kaW5nLm5leHRPcHRpb25JbkF1dG9Db21wbGV0ZVwiLFxuICAgIC8qKiBDbG9zZSB0aGUgYXV0b2NvbXBsZXRpb24gd2luZG93ICovXG4gICAgQ2FuY2VsQXV0b2NvbXBsZXRlID0gXCJLZXlCaW5kaW5nLmNhbmNlbEF1dG9Db21wbGV0ZVwiLFxuXG4gICAgLyoqIENsZWFyIHJvb20gbGlzdCBmaWx0ZXIgZmllbGQgKi9cbiAgICBDbGVhclJvb21GaWx0ZXIgPSBcIktleUJpbmRpbmcuY2xlYXJSb29tRmlsdGVyXCIsXG4gICAgLyoqIE5hdmlnYXRlIHVwL2Rvd24gaW4gdGhlIHJvb20gbGlzdCAqL1xuICAgIFByZXZSb29tID0gXCJLZXlCaW5kaW5nLmRvd25lclJvb21cIixcbiAgICAvKiogTmF2aWdhdGUgZG93biBpbiB0aGUgcm9vbSBsaXN0ICovXG4gICAgTmV4dFJvb20gPSBcIktleUJpbmRpbmcudXBwZXJSb29tXCIsXG4gICAgLyoqIFNlbGVjdCByb29tIGZyb20gdGhlIHJvb20gbGlzdCAqL1xuICAgIFNlbGVjdFJvb21JblJvb21MaXN0ID0gXCJLZXlCaW5kaW5nLnNlbGVjdFJvb21JblJvb21MaXN0XCIsXG4gICAgLyoqIENvbGxhcHNlIHJvb20gbGlzdCBzZWN0aW9uICovXG4gICAgQ29sbGFwc2VSb29tTGlzdFNlY3Rpb24gPSBcIktleUJpbmRpbmcuY29sbGFwc2VTZWN0aW9uSW5Sb29tTGlzdFwiLFxuICAgIC8qKiBFeHBhbmQgcm9vbSBsaXN0IHNlY3Rpb24sIGlmIGFscmVhZHkgZXhwYW5kZWQsIGp1bXAgdG8gZmlyc3Qgcm9vbSBpbiB0aGUgc2VsZWN0aW9uICovXG4gICAgRXhwYW5kUm9vbUxpc3RTZWN0aW9uID0gXCJLZXlCaW5kaW5nLmV4cGFuZFNlY3Rpb25JblJvb21MaXN0XCIsXG5cbiAgICAvKiogU2Nyb2xsIHVwIGluIHRoZSB0aW1lbGluZSAqL1xuICAgIFNjcm9sbFVwID0gXCJLZXlCaW5kaW5nLnNjcm9sbFVwSW5UaW1lbGluZVwiLFxuICAgIC8qKiBTY3JvbGwgZG93biBpbiB0aGUgdGltZWxpbmUgKi9cbiAgICBTY3JvbGxEb3duID0gXCJLZXlCaW5kaW5nLnNjcm9sbERvd25JblRpbWVsaW5lXCIsXG4gICAgLyoqIERpc21pc3MgcmVhZCBtYXJrZXIgYW5kIGp1bXAgdG8gYm90dG9tICovXG4gICAgRGlzbWlzc1JlYWRNYXJrZXIgPSBcIktleUJpbmRpbmcuZGlzbWlzc1JlYWRNYXJrZXJBbmRKdW1wVG9Cb3R0b21cIixcbiAgICAvKiogSnVtcCB0byBvbGRlc3QgdW5yZWFkIG1lc3NhZ2UgKi9cbiAgICBKdW1wVG9PbGRlc3RVbnJlYWQgPSBcIktleUJpbmRpbmcuanVtcFRvT2xkZXN0VW5yZWFkTWVzc2FnZVwiLFxuICAgIC8qKiBVcGxvYWQgYSBmaWxlICovXG4gICAgVXBsb2FkRmlsZSA9IFwiS2V5QmluZGluZy51cGxvYWRGaWxlVG9Sb29tXCIsXG4gICAgLyoqIEZvY3VzIHNlYXJjaCBtZXNzYWdlIGluIGEgcm9vbSAobXVzdCBiZSBlbmFibGVkKSAqL1xuICAgIFNlYXJjaEluUm9vbSA9IFwiS2V5QmluZGluZy5zZWFyY2hJblJvb21cIixcbiAgICAvKiogSnVtcCB0byB0aGUgZmlyc3QgKGRvd25sb2FkZWQpIG1lc3NhZ2UgaW4gdGhlIHJvb20gKi9cbiAgICBKdW1wVG9GaXJzdE1lc3NhZ2UgPSBcIktleUJpbmRpbmcuanVtcFRvRmlyc3RNZXNzYWdlSW5UaW1lbGluZVwiLFxuICAgIC8qKiBKdW1wIHRvIHRoZSBsYXRlc3QgbWVzc2FnZSBpbiB0aGUgcm9vbSAqL1xuICAgIEp1bXBUb0xhdGVzdE1lc3NhZ2UgPSBcIktleUJpbmRpbmcuanVtcFRvTGFzdE1lc3NhZ2VJblRpbWVsaW5lXCIsXG5cbiAgICAvKiogSnVtcCB0byByb29tIHNlYXJjaCAoc2VhcmNoIGZvciBhIHJvb20pICovXG4gICAgRmlsdGVyUm9vbXMgPSBcIktleUJpbmRpbmcuZmlsdGVyUm9vbXNcIixcbiAgICAvKiogVG9nZ2xlIHRoZSBzcGFjZSBwYW5lbCAqL1xuICAgIFRvZ2dsZVNwYWNlUGFuZWwgPSBcIktleUJpbmRpbmcudG9nZ2xlU3BhY2VQYW5lbFwiLFxuICAgIC8qKiBUb2dnbGUgdGhlIHJvb20gc2lkZSBwYW5lbCAqL1xuICAgIFRvZ2dsZVJvb21TaWRlUGFuZWwgPSBcIktleUJpbmRpbmcudG9nZ2xlUmlnaHRQYW5lbFwiLFxuICAgIC8qKiBUb2dnbGUgdGhlIHVzZXIgbWVudSAqL1xuICAgIFRvZ2dsZVVzZXJNZW51ID0gXCJLZXlCaW5kaW5nLnRvZ2dsZVRvcExlZnRNZW51XCIsXG4gICAgLyoqIFRvZ2dsZSB0aGUgc2hvcnQgY3V0IGhlbHAgZGlhbG9nICovXG4gICAgU2hvd0tleWJvYXJkU2V0dGluZ3MgPSBcIktleUJpbmRpbmcuc2hvd0tleUJpbmRpbmdzU2V0dGluZ3NcIixcbiAgICAvKiogR290IHRvIHRoZSBFbGVtZW50IGhvbWUgc2NyZWVuICovXG4gICAgR29Ub0hvbWUgPSBcIktleUJpbmRpbmcuZ29Ub0hvbWVWaWV3XCIsXG4gICAgLyoqIFNlbGVjdCBwcmV2IHJvb20gKi9cbiAgICBTZWxlY3RQcmV2Um9vbSA9IFwiS2V5QmluZGluZy5wcmV2aW91c1Jvb21cIixcbiAgICAvKiogU2VsZWN0IG5leHQgcm9vbSAqL1xuICAgIFNlbGVjdE5leHRSb29tID0gXCJLZXlCaW5kaW5nLm5leHRSb29tXCIsXG4gICAgLyoqIFNlbGVjdCBwcmV2IHJvb20gd2l0aCB1bnJlYWQgbWVzc2FnZXMgKi9cbiAgICBTZWxlY3RQcmV2VW5yZWFkUm9vbSA9IFwiS2V5QmluZGluZy5wcmV2aW91c1VucmVhZFJvb21cIixcbiAgICAvKiogU2VsZWN0IG5leHQgcm9vbSB3aXRoIHVucmVhZCBtZXNzYWdlcyAqL1xuICAgIFNlbGVjdE5leHRVbnJlYWRSb29tID0gXCJLZXlCaW5kaW5nLm5leHRVbnJlYWRSb29tXCIsXG5cbiAgICAvKiogU3dpdGNoZXMgdG8gYSBzcGFjZSBieSBudW1iZXIgKi9cbiAgICBTd2l0Y2hUb1NwYWNlQnlOdW1iZXIgPSBcIktleUJpbmRpbmcuc3dpdGNoVG9TcGFjZUJ5TnVtYmVyXCIsXG4gICAgLyoqIE9wZW5zIHVzZXIgc2V0dGluZ3MgKi9cbiAgICBPcGVuVXNlclNldHRpbmdzID0gXCJLZXlCaW5kaW5nLm9wZW5Vc2VyU2V0dGluZ3NcIixcbiAgICAvKiogTmF2aWdhdGVzIGJhY2t3YXJkICovXG4gICAgUHJldmlvdXNWaXNpdGVkUm9vbU9yU3BhY2UgPSBcIktleUJpbmRpbmcuUHJldmlvdXNWaXNpdGVkUm9vbU9yU3BhY2VcIixcbiAgICAvKiogTmF2aWdhdGVzIGZvcndhcmQgKi9cbiAgICBOZXh0VmlzaXRlZFJvb21PclNwYWNlID0gXCJLZXlCaW5kaW5nLk5leHRWaXNpdGVkUm9vbU9yU3BhY2VcIixcbiAgICAvKiogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IExhbmRtYXJrICovXG4gICAgTmV4dExhbmRtYXJrID0gXCJLZXlCaW5kaW5nLm5leHRMYW5kbWFya1wiLFxuICAgIC8qKiBOYXZpZ2F0ZXMgdG8gdGhlIG5leHQgTGFuZG1hcmsgKi9cbiAgICBQcmV2aW91c0xhbmRtYXJrID0gXCJLZXlCaW5kaW5nLnByZXZpb3VzTGFuZG1hcmtcIixcblxuICAgIC8qKiBUb2dnbGVzIG1pY3JvcGhvbmUgd2hpbGUgb24gYSBjYWxsICovXG4gICAgVG9nZ2xlTWljSW5DYWxsID0gXCJLZXlCaW5kaW5nLnRvZ2dsZU1pY0luQ2FsbFwiLFxuICAgIC8qKiBUb2dnbGVzIHdlYmNhbSB3aGlsZSBvbiBhIGNhbGwgKi9cbiAgICBUb2dnbGVXZWJjYW1JbkNhbGwgPSBcIktleUJpbmRpbmcudG9nZ2xlV2ViY2FtSW5DYWxsXCIsXG5cbiAgICAvKiogQWNjZXNzaWJpbGl0eSBhY3Rpb25zICovXG4gICAgRXNjYXBlID0gXCJLZXlCaW5kaW5nLmVzY2FwZVwiLFxuICAgIEVudGVyID0gXCJLZXlCaW5kaW5nLmVudGVyXCIsXG4gICAgU3BhY2UgPSBcIktleUJpbmRpbmcuc3BhY2VcIixcbiAgICBCYWNrc3BhY2UgPSBcIktleUJpbmRpbmcuYmFja3NwYWNlXCIsXG4gICAgRGVsZXRlID0gXCJLZXlCaW5kaW5nLmRlbGV0ZVwiLFxuICAgIEhvbWUgPSBcIktleUJpbmRpbmcuaG9tZVwiLFxuICAgIEVuZCA9IFwiS2V5QmluZGluZy5lbmRcIixcbiAgICBBcnJvd0xlZnQgPSBcIktleUJpbmRpbmcuYXJyb3dMZWZ0XCIsXG4gICAgQXJyb3dVcCA9IFwiS2V5QmluZGluZy5hcnJvd1VwXCIsXG4gICAgQXJyb3dSaWdodCA9IFwiS2V5QmluZGluZy5hcnJvd1JpZ2h0XCIsXG4gICAgQXJyb3dEb3duID0gXCJLZXlCaW5kaW5nLmFycm93RG93blwiLFxuICAgIFRhYiA9IFwiS2V5QmluZGluZy50YWJcIixcbiAgICBDb21tYSA9IFwiS2V5QmluZGluZy5jb21tYVwiLFxuXG4gICAgLyoqIFRvZ2dsZSB2aXNpYmlsaXR5IG9mIGhpZGRlbiBldmVudHMgKi9cbiAgICBUb2dnbGVIaWRkZW5FdmVudFZpc2liaWxpdHkgPSBcIktleUJpbmRpbmcudG9nZ2xlSGlkZGVuRXZlbnRWaXNpYmlsaXR5XCIsXG59XG5cbmV4cG9ydCB0eXBlIEtleWJvYXJkU2hvcnRjdXRTZXR0aW5nID0gT21pdDxJQmFzZVNldHRpbmc8S2V5Q29tYm8+LCBcInN1cHBvcnRlZExldmVsc1wiIHwgXCJkaXNwbGF5TmFtZVwiPiAmIHtcbiAgICBkaXNwbGF5TmFtZT86IFRyYW5zbGF0aW9uS2V5O1xufTtcblxuLy8gVE9ETzogV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIHRoZSBrZXlib2FyZCBzaG9ydGN1dHMgdGhhdCBhcmUgbm90IGhhbmRsZWQgYnkgS2V5YmluZGluZ01hbmFnZXJcbmV4cG9ydCB0eXBlIElLZXlib2FyZFNob3J0Y3V0cyA9IFBhcnRpYWw8UmVjb3JkPEtleUJpbmRpbmdBY3Rpb24sIEtleWJvYXJkU2hvcnRjdXRTZXR0aW5nPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhdGVnb3J5IHtcbiAgICBjYXRlZ29yeUxhYmVsPzogVHJhbnNsYXRpb25LZXk7XG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIHRoZSBrZXlib2FyZCBzaG9ydGN1dHMgdGhhdCBhcmUgbm90IGhhbmRsZWQgYnkgS2V5YmluZGluZ01hbmFnZXJcbiAgICBzZXR0aW5nTmFtZXM6IEtleUJpbmRpbmdBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gQ2F0ZWdvcnlOYW1lIHtcbiAgICBOQVZJR0FUSU9OID0gXCJOYXZpZ2F0aW9uXCIsXG4gICAgQUNDRVNTSUJJTElUWSA9IFwiQWNjZXNzaWJpbGl0eVwiLFxuICAgIENBTExTID0gXCJDYWxsc1wiLFxuICAgIENPTVBPU0VSID0gXCJDb21wb3NlclwiLFxuICAgIFJPT01fTElTVCA9IFwiUm9vbSBMaXN0XCIsXG4gICAgUk9PTSA9IFwiUm9vbVwiLFxuICAgIEFVVE9DT01QTEVURSA9IFwiQXV0b2NvbXBsZXRlXCIsXG4gICAgTEFCUyA9IFwiTGFic1wiLFxufVxuXG4vLyBNZXRhLWtleSByZXByZXNlbnRpbmcgdGhlIGRpZ2l0cyBbMC05XSBvZnRlbiBmb3VuZCBhdCB0aGUgdG9wIG9mIHN0YW5kYXJkIGtleWJvYXJkIGxheW91dHNcbmV4cG9ydCBjb25zdCBESUdJVFMgPSBcImRpZ2l0c1wiO1xuXG5leHBvcnQgY29uc3QgQUxURVJOQVRFX0tFWV9OQU1FOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2xhdGlvbktleT4gPSB7XG4gICAgW0tleS5QQUdFX1VQXTogX3RkKFwia2V5Ym9hcmR8cGFnZV91cFwiKSxcbiAgICBbS2V5LlBBR0VfRE9XTl06IF90ZChcImtleWJvYXJkfHBhZ2VfZG93blwiKSxcbiAgICBbS2V5LkVTQ0FQRV06IF90ZChcImtleWJvYXJkfGVzY2FwZVwiKSxcbiAgICBbS2V5LkVOVEVSXTogX3RkKFwia2V5Ym9hcmR8ZW50ZXJcIiksXG4gICAgW0tleS5TUEFDRV06IF90ZChcImtleWJvYXJkfHNwYWNlXCIpLFxuICAgIFtLZXkuSE9NRV06IF90ZChcImtleWJvYXJkfGhvbWVcIiksXG4gICAgW0tleS5FTkRdOiBfdGQoXCJrZXlib2FyZHxlbmRcIiksXG4gICAgW0tleS5BTFRdOiBfdGQoXCJrZXlib2FyZHxhbHRcIiksXG4gICAgW0tleS5DT05UUk9MXTogX3RkKFwia2V5Ym9hcmR8Y29udHJvbFwiKSxcbiAgICBbS2V5LlNISUZUXTogX3RkKFwia2V5Ym9hcmR8c2hpZnRcIiksXG4gICAgW0RJR0lUU106IF90ZChcImtleWJvYXJkfG51bWJlclwiKSxcbn07XG5leHBvcnQgY29uc3QgS0VZX0lDT046IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgW0tleS5BUlJPV19VUF06IFwi4oaRXCIsXG4gICAgW0tleS5BUlJPV19ET1dOXTogXCLihpNcIixcbiAgICBbS2V5LkFSUk9XX0xFRlRdOiBcIuKGkFwiLFxuICAgIFtLZXkuQVJST1dfUklHSFRdOiBcIuKGklwiLFxufTtcbmlmIChJU19NQUMpIHtcbiAgICBLRVlfSUNPTltLZXkuTUVUQV0gPSBcIuKMmFwiO1xuICAgIEtFWV9JQ09OW0tleS5BTFRdID0gXCLijKVcIjtcbiAgICBLRVlfSUNPTltLZXkuU0hJRlRdID0gXCLih6dcIjtcbn1cblxuZXhwb3J0IGNvbnN0IENBVEVHT1JJRVM6IFJlY29yZDxDYXRlZ29yeU5hbWUsIElDYXRlZ29yeT4gPSB7XG4gICAgW0NhdGVnb3J5TmFtZS5DT01QT1NFUl06IHtcbiAgICAgICAgY2F0ZWdvcnlMYWJlbDogX3RkKFwic2V0dGluZ3N8cHJlZmVyZW5jZXN8Y29tcG9zZXJfaGVhZGluZ1wiKSxcbiAgICAgICAgc2V0dGluZ05hbWVzOiBbXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlNlbmRNZXNzYWdlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5OZXdMaW5lLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Gb3JtYXRCb2xkLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Gb3JtYXRJdGFsaWNzLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Gb3JtYXRRdW90ZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRm9ybWF0TGluayxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRm9ybWF0Q29kZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRWRpdFVuZG8sXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkVkaXRSZWRvLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Nb3ZlQ3Vyc29yVG9TdGFydCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uTW92ZUN1cnNvclRvRW5kLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5DYW5jZWxSZXBseU9yRWRpdCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRWRpdE5leHRNZXNzYWdlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5FZGl0UHJldk1lc3NhZ2UsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlNlbGVjdE5leHRTZW5kSGlzdG9yeSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uU2VsZWN0UHJldlNlbmRIaXN0b3J5LFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5TaG93U3RpY2tlclBpY2tlcixcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIFtDYXRlZ29yeU5hbWUuQ0FMTFNdOiB7XG4gICAgICAgIGNhdGVnb3J5TGFiZWw6IF90ZChcImtleWJvYXJkfGNhdGVnb3J5X2NhbGxzXCIpLFxuICAgICAgICBzZXR0aW5nTmFtZXM6IFtLZXlCaW5kaW5nQWN0aW9uLlRvZ2dsZU1pY0luQ2FsbCwgS2V5QmluZGluZ0FjdGlvbi5Ub2dnbGVXZWJjYW1JbkNhbGxdLFxuICAgIH0sXG4gICAgW0NhdGVnb3J5TmFtZS5ST09NXToge1xuICAgICAgICBjYXRlZ29yeUxhYmVsOiBfdGQoXCJjb21tb258cm9vbVwiKSxcbiAgICAgICAgc2V0dGluZ05hbWVzOiBbXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlNlYXJjaEluUm9vbSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uVXBsb2FkRmlsZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRGlzbWlzc1JlYWRNYXJrZXIsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkp1bXBUb09sZGVzdFVucmVhZCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uU2Nyb2xsVXAsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlNjcm9sbERvd24sXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkp1bXBUb0ZpcnN0TWVzc2FnZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uSnVtcFRvTGF0ZXN0TWVzc2FnZSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIFtDYXRlZ29yeU5hbWUuUk9PTV9MSVNUXToge1xuICAgICAgICBjYXRlZ29yeUxhYmVsOiBfdGQoXCJrZXlib2FyZHxjYXRlZ29yeV9yb29tX2xpc3RcIiksXG4gICAgICAgIHNldHRpbmdOYW1lczogW1xuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5TZWxlY3RSb29tSW5Sb29tTGlzdCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uQ2xlYXJSb29tRmlsdGVyLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Db2xsYXBzZVJvb21MaXN0U2VjdGlvbixcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRXhwYW5kUm9vbUxpc3RTZWN0aW9uLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5OZXh0Um9vbSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uUHJldlJvb20sXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICBbQ2F0ZWdvcnlOYW1lLkFDQ0VTU0lCSUxJVFldOiB7XG4gICAgICAgIGNhdGVnb3J5TGFiZWw6IF90ZChcImNvbW1vbnxhY2Nlc3NpYmlsaXR5XCIpLFxuICAgICAgICBzZXR0aW5nTmFtZXM6IFtcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRXNjYXBlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5FbnRlcixcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uU3BhY2UsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkJhY2tzcGFjZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uRGVsZXRlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Ib21lLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5FbmQsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkFycm93TGVmdCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uQXJyb3dVcCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uQXJyb3dSaWdodCxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uQXJyb3dEb3duLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Db21tYSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIFtDYXRlZ29yeU5hbWUuTkFWSUdBVElPTl06IHtcbiAgICAgICAgY2F0ZWdvcnlMYWJlbDogX3RkKFwia2V5Ym9hcmR8Y2F0ZWdvcnlfbmF2aWdhdGlvblwiKSxcbiAgICAgICAgc2V0dGluZ05hbWVzOiBbXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlRvZ2dsZVVzZXJNZW51LFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Ub2dnbGVSb29tU2lkZVBhbmVsLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Ub2dnbGVTcGFjZVBhbmVsLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5TaG93S2V5Ym9hcmRTZXR0aW5ncyxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uR29Ub0hvbWUsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkZpbHRlclJvb21zLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5TZWxlY3ROZXh0VW5yZWFkUm9vbSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uU2VsZWN0UHJldlVucmVhZFJvb20sXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLlNlbGVjdE5leHRSb29tLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5TZWxlY3RQcmV2Um9vbSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uT3BlblVzZXJTZXR0aW5ncyxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uU3dpdGNoVG9TcGFjZUJ5TnVtYmVyLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5QcmV2aW91c1Zpc2l0ZWRSb29tT3JTcGFjZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uTmV4dFZpc2l0ZWRSb29tT3JTcGFjZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uTmV4dExhbmRtYXJrLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5QcmV2aW91c0xhbmRtYXJrLFxuICAgICAgICBdLFxuICAgIH0sXG4gICAgW0NhdGVnb3J5TmFtZS5BVVRPQ09NUExFVEVdOiB7XG4gICAgICAgIGNhdGVnb3J5TGFiZWw6IF90ZChcImtleWJvYXJkfGNhdGVnb3J5X2F1dG9jb21wbGV0ZVwiKSxcbiAgICAgICAgc2V0dGluZ05hbWVzOiBbXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkNhbmNlbEF1dG9jb21wbGV0ZSxcbiAgICAgICAgICAgIEtleUJpbmRpbmdBY3Rpb24uTmV4dFNlbGVjdGlvbkluQXV0b2NvbXBsZXRlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5QcmV2U2VsZWN0aW9uSW5BdXRvY29tcGxldGUsXG4gICAgICAgICAgICBLZXlCaW5kaW5nQWN0aW9uLkNvbXBsZXRlQXV0b2NvbXBsZXRlLFxuICAgICAgICAgICAgS2V5QmluZGluZ0FjdGlvbi5Gb3JjZUNvbXBsZXRlQXV0b2NvbXBsZXRlLFxuICAgICAgICBdLFxuICAgIH0sXG4gICAgW0NhdGVnb3J5TmFtZS5MQUJTXToge1xuICAgICAgICBjYXRlZ29yeUxhYmVsOiBfdGQoXCJjb21tb258bGFic1wiKSxcbiAgICAgICAgc2V0dGluZ05hbWVzOiBbS2V5QmluZGluZ0FjdGlvbi5Ub2dnbGVIaWRkZW5FdmVudFZpc2liaWxpdHldLFxuICAgIH0sXG59O1xuXG5leHBvcnQgY29uc3QgREVTS1RPUF9TSE9SVENVVFMgPSBbXG4gICAgS2V5QmluZGluZ0FjdGlvbi5PcGVuVXNlclNldHRpbmdzLFxuICAgIEtleUJpbmRpbmdBY3Rpb24uU3dpdGNoVG9TcGFjZUJ5TnVtYmVyLFxuICAgIEtleUJpbmRpbmdBY3Rpb24uUHJldmlvdXNWaXNpdGVkUm9vbU9yU3BhY2UsXG4gICAgS2V5QmluZGluZ0FjdGlvbi5OZXh0VmlzaXRlZFJvb21PclNwYWNlLFxuXTtcblxuZXhwb3J0IGNvbnN0IE1BQ19PTkxZX1NIT1JUQ1VUUyA9IFtLZXlCaW5kaW5nQWN0aW9uLk9wZW5Vc2VyU2V0dGluZ3NdO1xuXG4vLyBUaGlzIGlzIHZlcnkgaW50ZW50aW9uYWxseSBtb2RlbGxlZCBhZnRlciBTRVRUSU5HUyBhcyBpdCB3aWxsIG1ha2UgaXQgZWFzaWVyXG4vLyB0byBpbXBsZW1lbnQgY3VzdG9taXphYmxlIGtleWJvYXJkIHNob3J0Y3V0c1xuLy8gVE9ETzogVHJhdmlzUiB3aWxsIGZpeCB0aGlzIG5pZ2h0bWFyZSB3aGVuIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgU2V0dGluZ3NTdG9yZSBiZWNvbWVzIGEgdGhpbmdcbi8vIFhYWDogRXhwb3J0ZWQgZm9yIHRlc3RzXG5leHBvcnQgY29uc3QgS0VZQk9BUkRfU0hPUlRDVVRTOiBJS2V5Ym9hcmRTaG9ydGN1dHMgPSB7XG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRm9ybWF0Qm9sZF06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuQixcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX3RvZ2dsZV9ib2xkXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRm9ybWF0SXRhbGljc106IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuSSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX3RvZ2dsZV9pdGFsaWNzXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRm9ybWF0UXVvdGVdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGN0cmxPckNtZEtleTogdHJ1ZSxcbiAgICAgICAgICAgIHNoaWZ0S2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuR1JFQVRFUl9USEFOLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8Y29tcG9zZXJfdG9nZ2xlX3F1b3RlXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRm9ybWF0Q29kZV06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuRSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX3RvZ2dsZV9jb2RlX2Jsb2NrXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRm9ybWF0TGlua106IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAgc2hpZnRLZXk6IHRydWUsXG4gICAgICAgICAgICBrZXk6IEtleS5MLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8Y29tcG9zZXJfdG9nZ2xlX2xpbmtcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5DYW5jZWxSZXBseU9yRWRpdF06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAga2V5OiBLZXkuRVNDQVBFLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8Y2FuY2VsX3JlcGx5XCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRWRpdE5leHRNZXNzYWdlXToge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBrZXk6IEtleS5BUlJPV19ET1dOLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8bmF2aWdhdGVfbmV4dF9tZXNzYWdlX2VkaXRcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5FZGl0UHJldk1lc3NhZ2VdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGtleTogS2V5LkFSUk9XX1VQLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8bmF2aWdhdGVfcHJldl9tZXNzYWdlX2VkaXRcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5Nb3ZlQ3Vyc29yVG9TdGFydF06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuSE9NRSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX2p1bXBfc3RhcnRcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5Nb3ZlQ3Vyc29yVG9FbmRdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGN0cmxPckNtZEtleTogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogS2V5LkVORCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX2p1bXBfZW5kXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uU2VsZWN0TmV4dFNlbmRIaXN0b3J5XToge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBhbHRLZXk6IHRydWUsXG4gICAgICAgICAgICBjdHJsS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuQVJST1dfRE9XTixcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGNvbXBvc2VyX25hdmlnYXRlX25leHRfaGlzdG9yeVwiKSxcbiAgICB9LFxuICAgIFtLZXlCaW5kaW5nQWN0aW9uLlNlbGVjdFByZXZTZW5kSGlzdG9yeV06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgYWx0S2V5OiB0cnVlLFxuICAgICAgICAgICAgY3RybEtleTogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogS2V5LkFSUk9XX1VQLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8Y29tcG9zZXJfbmF2aWdhdGVfcHJldl9oaXN0b3J5XCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uU2hvd1N0aWNrZXJQaWNrZXJdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGN0cmxPckNtZEtleTogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogS2V5LlNFTUlDT0xPTixcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfHNlbmRfc3RpY2tlclwiKSxcbiAgICB9LFxuICAgIFtLZXlCaW5kaW5nQWN0aW9uLlRvZ2dsZU1pY0luQ2FsbF06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuRCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfHRvZ2dsZV9taWNyb3Bob25lX211dGVcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5Ub2dnbGVXZWJjYW1JbkNhbGxdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGN0cmxPckNtZEtleTogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogS2V5LkUsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BsYXlOYW1lOiBfdGQoXCJrZXlib2FyZHx0b2dnbGVfd2ViY2FtX211dGVcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5EaXNtaXNzUmVhZE1hcmtlcl06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAga2V5OiBLZXkuRVNDQVBFLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8ZGlzbWlzc19yZWFkX21hcmtlcl9hbmRfanVtcF9ib3R0b21cIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5KdW1wVG9PbGRlc3RVbnJlYWRdOiB7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHNoaWZ0S2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuUEFHRV9VUCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGp1bXBfdG9fcmVhZF9tYXJrZXJcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5VcGxvYWRGaWxlXToge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBjdHJsT3JDbWRLZXk6IHRydWUsXG4gICAgICAgICAgICBzaGlmdEtleTogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogS2V5LlUsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BsYXlOYW1lOiBfdGQoXCJrZXlib2FyZHx1cGxvYWRfZmlsZVwiKSxcbiAgICB9LFxuICAgIFtLZXlCaW5kaW5nQWN0aW9uLlNjcm9sbFVwXToge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBrZXk6IEtleS5QQUdFX1VQLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8c2Nyb2xsX3VwX3RpbWVsaW5lXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uU2Nyb2xsRG93bl06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAga2V5OiBLZXkuUEFHRV9ET1dOLFxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5TmFtZTogX3RkKFwia2V5Ym9hcmR8c2Nyb2xsX2Rvd25fdGltZWxpbmVcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5GaWx0ZXJSb29tc106IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY3RybE9yQ21kS2V5OiB0cnVlLFxuICAgICAgICAgICAga2V5OiBLZXkuSyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfGp1bXBfcm9vbV9zZWFyY2hcIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5TZWxlY3RSb29tSW5Sb29tTGlzdF06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAga2V5OiBLZXkuRU5URVIsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BsYXlOYW1lOiBfdGQoXCJrZXlib2FyZHxyb29tX2xpc3Rfc2VsZWN0X3Jvb21cIiksXG4gICAgfSxcbiAgICBbS2V5QmluZGluZ0FjdGlvbi5Db2xsYXBzZVJvb21MaXN0U2VjdGlvbl06IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAga2V5OiBLZXkuQVJST1dfTEVGVCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU5hbWU6IF90ZChcImtleWJvYXJkfHJvb21fbGlzdF9jb2xsYXBzZV9zZWN0aW9uXCIpLFxuICAgIH0sXG4gICAgW0tleUJpbmRpbmdBY3Rpb24uRXhwYW5kUm9vbUxpc3RTZWN0aW9uXToge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBrZXk6IEtleS5BUlJPV19