@mnaoumov/obsidian-lib 5.2.1 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +1 -1
- package/dist/lib/cjs/__merged.cjs +10 -24
- package/dist/lib/cjs/__merged.d.cts +5 -5
- package/dist/lib/cjs/async-with-notice.cjs +7 -7
- package/dist/lib/cjs/backlink-index.cjs +3 -3
- package/dist/lib/cjs/callout.cjs +2 -2
- package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
- package/dist/lib/cjs/community-plugins.cjs +3 -3
- package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -2
- package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
- package/dist/lib/cjs/components/plugin-context-component.cjs +1 -3
- package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -2
- package/dist/lib/cjs/components/plugin-gate-component.cjs +15 -15
- package/dist/lib/cjs/components/plugin-notice-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +5 -5
- package/dist/lib/cjs/components/release-notes-component.cjs +2 -2
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +10 -10
- package/dist/lib/cjs/css-class.cjs +1 -2
- package/dist/lib/cjs/css-class.d.cts +3 -11
- package/dist/lib/cjs/dataview.cjs +4 -4
- package/dist/lib/cjs/debug.cjs +2 -22
- package/dist/lib/cjs/debug.d.cts +0 -5
- package/dist/lib/cjs/demo-vault-helper.cjs +5 -1
- package/dist/lib/cjs/demo-vault-helper.d.cts +8 -2
- package/dist/lib/cjs/frontmatter.cjs +3 -3
- package/dist/lib/cjs/frontmatter.d.cts +1 -1
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/html-element.cjs +1 -1
- package/dist/lib/cjs/html-element.d.cts +1 -1
- package/dist/lib/cjs/i18n/i18n.cjs +1 -1
- package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
- package/dist/lib/cjs/i18n/locales/en.cjs +2 -2
- package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
- package/dist/lib/cjs/index.cjs +4 -4
- package/dist/lib/cjs/index.d.cts +1 -1
- package/dist/lib/cjs/library-styles.cjs +7 -14
- package/dist/lib/cjs/library-styles.d.cts +9 -23
- package/dist/lib/cjs/library.cjs +1 -4
- package/dist/lib/cjs/library.d.cts +3 -11
- package/dist/lib/cjs/link.cjs +11 -10
- package/dist/lib/cjs/markdown.cjs +3 -3
- package/dist/lib/cjs/metadata-cache.cjs +5 -5
- package/dist/lib/cjs/modals/alert.cjs +2 -2
- package/dist/lib/cjs/modals/confirm.cjs +3 -3
- package/dist/lib/cjs/modals/prompt.cjs +3 -3
- package/dist/lib/cjs/obsidian-lib-state.cjs +148 -0
- package/dist/lib/cjs/obsidian-lib-state.d.cts +30 -0
- package/dist/lib/cjs/path-settings.cjs +6 -6
- package/dist/lib/cjs/plugin/index.cjs +1 -4
- package/dist/lib/cjs/plugin/index.d.cts +0 -1
- package/dist/lib/cjs/plugin/plugin-api.cjs +3 -3
- package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -41
- package/dist/lib/cjs/plugin/plugin-context.cjs +1 -6
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -40
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +8 -62
- package/dist/lib/cjs/plugin/plugin.cjs +2 -2
- package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
- package/dist/lib/cjs/popovers/popover.cjs +3 -3
- package/dist/lib/cjs/queue.cjs +4 -4
- package/dist/lib/cjs/reference.cjs +7 -2
- package/dist/lib/cjs/reference.d.cts +12 -0
- package/dist/lib/cjs/resource-lock.cjs +9 -9
- package/dist/lib/cjs/vault-delete.cjs +2 -2
- package/dist/lib/cjs/vault-transaction.cjs +17 -2
- package/dist/lib/cjs/vault-transaction.d.cts +2 -1
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +1 -1
- package/dist/lib/esm/__merged.d.mts +5 -5
- package/dist/lib/esm/__merged.mjs +10 -24
- package/dist/lib/esm/async-with-notice.mjs +7 -7
- package/dist/lib/esm/backlink-index.mjs +3 -3
- package/dist/lib/esm/callout.mjs +2 -2
- package/dist/lib/esm/case-insensitive-file-index.mjs +5 -5
- package/dist/lib/esm/community-plugins.mjs +3 -3
- package/dist/lib/esm/components/async-error-handler-component.mjs +2 -2
- package/dist/lib/esm/components/monkey-around-component.mjs +3 -3
- package/dist/lib/esm/components/plugin-context-component.d.mts +1 -2
- package/dist/lib/esm/components/plugin-context-component.mjs +1 -3
- package/dist/lib/esm/components/plugin-gate-component.mjs +15 -15
- package/dist/lib/esm/components/plugin-notice-component.mjs +5 -5
- package/dist/lib/esm/components/plugin-suggestion-component.mjs +5 -5
- package/dist/lib/esm/components/release-notes-component.mjs +2 -2
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +10 -10
- package/dist/lib/esm/css-class.d.mts +3 -11
- package/dist/lib/esm/css-class.mjs +1 -2
- package/dist/lib/esm/dataview.mjs +4 -4
- package/dist/lib/esm/debug.d.mts +0 -5
- package/dist/lib/esm/debug.mjs +3 -26
- package/dist/lib/esm/demo-vault-helper.d.mts +8 -2
- package/dist/lib/esm/demo-vault-helper.mjs +5 -1
- package/dist/lib/esm/frontmatter.d.mts +1 -1
- package/dist/lib/esm/frontmatter.mjs +3 -3
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/html-element.d.mts +1 -1
- package/dist/lib/esm/html-element.mjs +1 -1
- package/dist/lib/esm/i18n/i18n.d.mts +1 -1
- package/dist/lib/esm/i18n/i18n.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
- package/dist/lib/esm/i18n/locales/en.mjs +2 -2
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
- package/dist/lib/esm/index.d.mts +1 -1
- package/dist/lib/esm/index.mjs +3 -3
- package/dist/lib/esm/library-styles.d.mts +9 -23
- package/dist/lib/esm/library-styles.mjs +7 -12
- package/dist/lib/esm/library.d.mts +3 -11
- package/dist/lib/esm/library.mjs +1 -3
- package/dist/lib/esm/link.mjs +12 -10
- package/dist/lib/esm/markdown.mjs +3 -3
- package/dist/lib/esm/metadata-cache.mjs +9 -6
- package/dist/lib/esm/modals/alert.mjs +2 -2
- package/dist/lib/esm/modals/confirm.mjs +3 -3
- package/dist/lib/esm/modals/prompt.mjs +3 -3
- package/dist/lib/esm/obsidian-lib-state.d.mts +30 -0
- package/dist/lib/esm/obsidian-lib-state.mjs +59 -0
- package/dist/lib/esm/path-settings.mjs +6 -6
- package/dist/lib/esm/plugin/index.d.mts +0 -1
- package/dist/lib/esm/plugin/index.mjs +1 -3
- package/dist/lib/esm/plugin/plugin-api.d.mts +5 -41
- package/dist/lib/esm/plugin/plugin-api.mjs +3 -3
- package/dist/lib/esm/plugin/plugin-context.mjs +1 -7
- package/dist/lib/esm/plugin/plugin-install-state.mjs +5 -5
- package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +8 -62
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
- package/dist/lib/esm/plugin/plugin.d.mts +1 -1
- package/dist/lib/esm/plugin/plugin.mjs +2 -2
- package/dist/lib/esm/popovers/popover.mjs +3 -3
- package/dist/lib/esm/queue.mjs +4 -4
- package/dist/lib/esm/reference.d.mts +12 -0
- package/dist/lib/esm/reference.mjs +6 -2
- package/dist/lib/esm/resource-lock.mjs +9 -9
- package/dist/lib/esm/vault-delete.mjs +2 -2
- package/dist/lib/esm/vault-transaction.d.mts +2 -1
- package/dist/lib/esm/vault-transaction.mjs +17 -2
- package/dist/lib/esm/vault.mjs +2 -2
- package/dist/styles.css +169 -169
- package/package.json +1 -1
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +0 -177
- package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +0 -50
- package/dist/lib/cjs/plugin/plugin-api-schema.cjs +0 -127
- package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +0 -37
- package/dist/lib/esm/obsidian-dev-utils-state.d.mts +0 -50
- package/dist/lib/esm/obsidian-dev-utils-state.mjs +0 -86
- package/dist/lib/esm/plugin/plugin-api-schema.d.mts +0 -37
- package/dist/lib/esm/plugin/plugin-api-schema.mjs +0 -41
- package/plugin/plugin-api-schema/package.json +0 -6
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @file
|
|
4
4
|
*
|
|
5
5
|
* Augments the `obsidian-integration-testing` `Lib` interface with the entire flat
|
|
6
|
-
* `obsidian-
|
|
6
|
+
* `obsidian-lib` surface (the generated `__merged` barrel), so an `evalInObsidian` closure can
|
|
7
7
|
* reach any library helper as `lib.<helper>`. The runtime side is registered by the published
|
|
8
8
|
* `@mnaoumov/obsidian-dev-toolkit/integration-test-setup` endpoint via `registerLibResolver`; this file supplies the
|
|
9
9
|
* matching types.
|
|
@@ -188,12 +188,7 @@ __export(merged_exports, {
|
|
|
188
188
|
INFINITE_TIMEOUT: () => import_abort_controller.INFINITE_TIMEOUT,
|
|
189
189
|
InstalledPluginState: () => import_plugin_install_state.InstalledPluginState,
|
|
190
190
|
InvokeFileActionSafeResult: () => import_vault.InvokeFileActionSafeResult,
|
|
191
|
-
|
|
192
|
-
LEGACY_LAST_LIBRARY_VERSION_KEY: () => import_library_styles.LEGACY_LAST_LIBRARY_VERSION_KEY,
|
|
193
|
-
LEGACY_LAST_LIBRARY_VERSION_SENTINEL: () => import_library_styles.LEGACY_LAST_LIBRARY_VERSION_SENTINEL,
|
|
194
|
-
LEGACY_OBSIDIAN_LIBRARY_NAME: () => import_library.LEGACY_OBSIDIAN_LIBRARY_NAME,
|
|
195
|
-
LEGACY_PLUGIN_LOADED_EVENT_NAME: () => import_plugin_lifecycle_events.LEGACY_PLUGIN_LOADED_EVENT_NAME,
|
|
196
|
-
LEGACY_PLUGIN_UNLOADED_EVENT_NAME: () => import_plugin_lifecycle_events.LEGACY_PLUGIN_UNLOADED_EVENT_NAME,
|
|
191
|
+
LAST_LIBRARY_VERSION_KEY: () => import_library_styles.LAST_LIBRARY_VERSION_KEY,
|
|
197
192
|
LIBRARY_NAME: () => import_library2.LIBRARY_NAME,
|
|
198
193
|
LIBRARY_STYLES: () => import_generated_during_build.LIBRARY_STYLES,
|
|
199
194
|
LIBRARY_STYLES_ELEMENT_ID: () => import_library_styles.LIBRARY_STYLES_ELEMENT_ID,
|
|
@@ -227,7 +222,6 @@ __export(merged_exports, {
|
|
|
227
222
|
NotebookNavigatorMenuEventRegistrarComponent: () => import_notebook_navigator_menu_event_registrar_component.NotebookNavigatorMenuEventRegistrarComponent,
|
|
228
223
|
NumberComponent: () => import_number_component.NumberComponent,
|
|
229
224
|
OBSIDIAN_LIBRARY_NAME: () => import_library.OBSIDIAN_LIBRARY_NAME,
|
|
230
|
-
OBSIDIAN_LIB_GLOBAL_NAME: () => import_obsidian_dev_utils_state.OBSIDIAN_LIB_GLOBAL_NAME,
|
|
231
225
|
OBSIDIAN_UNSAFE_FILENAME_CHARS: () => import_validation.OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
232
226
|
ObsidianLibrary: () => import_library.ObsidianLibrary,
|
|
233
227
|
OpenDemoVaultCommandHandler: () => import_open_demo_vault_command_handler.OpenDemoVaultCommandHandler,
|
|
@@ -515,8 +509,8 @@ __export(merged_exports, {
|
|
|
515
509
|
getNestedPropertyValue: () => import_object_utils.getNestedPropertyValue,
|
|
516
510
|
getNewLinkFormat: () => import_obsidian_settings.getNewLinkFormat,
|
|
517
511
|
getNoteFilesSorted: () => import_vault.getNoteFilesSorted,
|
|
518
|
-
getObsidianDevUtilsState: () => import_obsidian_dev_utils_state.getObsidianDevUtilsState,
|
|
519
512
|
getObsidianLibDebugger: () => import_debug.getObsidianLibDebugger,
|
|
513
|
+
getObsidianLibState: () => import_obsidian_lib_state.getObsidianLibState,
|
|
520
514
|
getOptionalNamedGroup: () => import_reg_exp.getOptionalNamedGroup,
|
|
521
515
|
getOrCreateAbstractFileSafe: () => import_vault.getOrCreateAbstractFileSafe,
|
|
522
516
|
getOrCreateFile: () => import_file_system.getOrCreateFile,
|
|
@@ -527,6 +521,7 @@ __export(merged_exports, {
|
|
|
527
521
|
getOsUnsafePathCharsRegExp: () => import_validation.getOsUnsafePathCharsRegExp,
|
|
528
522
|
getPath: () => import_file_system.getPath,
|
|
529
523
|
getPrototypeOf: () => import_object_utils.getPrototypeOf,
|
|
524
|
+
getReferenceLinkText: () => import_reference.getReferenceLinkText,
|
|
530
525
|
getRenderedContainer: () => import_dataview.getRenderedContainer,
|
|
531
526
|
getSafeRenamePath: () => import_vault.getSafeRenamePath,
|
|
532
527
|
getSettingsMigrationApiContract: () => import_settings_migration_api.getSettingsMigrationApiContract,
|
|
@@ -705,7 +700,6 @@ __export(merged_exports, {
|
|
|
705
700
|
registerFiles: () => import_metadata_cache.registerFiles,
|
|
706
701
|
registerFrontmatterFormattingPreserver: () => import_frontmatter.registerFrontmatterFormattingPreserver,
|
|
707
702
|
registerLinkHandlers: () => import_markdown.registerLinkHandlers,
|
|
708
|
-
registerPluginLifecycleEventRelay: () => import_plugin_lifecycle_events.registerPluginLifecycleEventRelay,
|
|
709
703
|
relative: () => import_path.relative,
|
|
710
704
|
relativePathToResourceUrl: () => import_resource_url.relativePathToResourceUrl,
|
|
711
705
|
reloadCurrentFileCache: () => import_dataview.reloadCurrentFileCache,
|
|
@@ -730,7 +724,7 @@ __export(merged_exports, {
|
|
|
730
724
|
requestAnimationFrameAsync: () => import_async.requestAnimationFrameAsync,
|
|
731
725
|
requestResourceUnlockForPath: () => import_resource_lock.requestResourceUnlockForPath,
|
|
732
726
|
requireTemplaterApi: () => import_templater.requireTemplaterApi,
|
|
733
|
-
|
|
727
|
+
resetObsidianLibState: () => import_obsidian_lib_state.resetObsidianLibState,
|
|
734
728
|
resetTypescriptLibState: () => import_typescript_lib_state.resetTypescriptLibState,
|
|
735
729
|
resolve: () => import_path.resolve,
|
|
736
730
|
resolveFolderNote: () => import_folder_note.resolveFolderNote,
|
|
@@ -756,7 +750,6 @@ __export(merged_exports, {
|
|
|
756
750
|
setNestedPropertyValue: () => import_object_utils.setNestedPropertyValue,
|
|
757
751
|
setTerminationOnTimeoutEnabled: () => import_async.setTerminationOnTimeoutEnabled,
|
|
758
752
|
setTimeoutAsync: () => import_async.setTimeoutAsync,
|
|
759
|
-
shareTypescriptLibStateWithObsidianDevUtilsState: () => import_obsidian_dev_utils_state.shareTypescriptLibStateWithObsidianDevUtilsState,
|
|
760
753
|
shouldResetAlias: () => import_link.shouldResetAlias,
|
|
761
754
|
shouldUseWikilinks: () => import_obsidian_settings.shouldUseWikilinks,
|
|
762
755
|
showErrorAndDisablePlugin: () => import_plugin.showErrorAndDisablePlugin,
|
|
@@ -935,7 +928,7 @@ var import_select_option = require('./modals/select-option.cjs');
|
|
|
935
928
|
var import_suggest_modal_command_builder = require('./modals/suggest-modal-command-builder.cjs');
|
|
936
929
|
var import_note_priority = require('./note-priority.cjs');
|
|
937
930
|
var import_notebook_navigator = require('./notebook-navigator.cjs');
|
|
938
|
-
var
|
|
931
|
+
var import_obsidian_lib_state = require('./obsidian-lib-state.cjs');
|
|
939
932
|
var import_obsidian_protocol_handler_registrar = require('./obsidian-protocol-handler-registrar.cjs');
|
|
940
933
|
var import_obsidian_settings = require('./obsidian-settings.cjs');
|
|
941
934
|
var import_parse_link = require('./parse-link.cjs');
|
|
@@ -1114,12 +1107,7 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1114
1107
|
INFINITE_TIMEOUT,
|
|
1115
1108
|
InstalledPluginState,
|
|
1116
1109
|
InvokeFileActionSafeResult,
|
|
1117
|
-
|
|
1118
|
-
LEGACY_LAST_LIBRARY_VERSION_KEY,
|
|
1119
|
-
LEGACY_LAST_LIBRARY_VERSION_SENTINEL,
|
|
1120
|
-
LEGACY_OBSIDIAN_LIBRARY_NAME,
|
|
1121
|
-
LEGACY_PLUGIN_LOADED_EVENT_NAME,
|
|
1122
|
-
LEGACY_PLUGIN_UNLOADED_EVENT_NAME,
|
|
1110
|
+
LAST_LIBRARY_VERSION_KEY,
|
|
1123
1111
|
LIBRARY_NAME,
|
|
1124
1112
|
LIBRARY_STYLES,
|
|
1125
1113
|
LIBRARY_STYLES_ELEMENT_ID,
|
|
@@ -1153,7 +1141,6 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1153
1141
|
NotebookNavigatorMenuEventRegistrarComponent,
|
|
1154
1142
|
NumberComponent,
|
|
1155
1143
|
OBSIDIAN_LIBRARY_NAME,
|
|
1156
|
-
OBSIDIAN_LIB_GLOBAL_NAME,
|
|
1157
1144
|
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
1158
1145
|
ObsidianLibrary,
|
|
1159
1146
|
OpenDemoVaultCommandHandler,
|
|
@@ -1441,8 +1428,8 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1441
1428
|
getNestedPropertyValue,
|
|
1442
1429
|
getNewLinkFormat,
|
|
1443
1430
|
getNoteFilesSorted,
|
|
1444
|
-
getObsidianDevUtilsState,
|
|
1445
1431
|
getObsidianLibDebugger,
|
|
1432
|
+
getObsidianLibState,
|
|
1446
1433
|
getOptionalNamedGroup,
|
|
1447
1434
|
getOrCreateAbstractFileSafe,
|
|
1448
1435
|
getOrCreateFile,
|
|
@@ -1453,6 +1440,7 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1453
1440
|
getOsUnsafePathCharsRegExp,
|
|
1454
1441
|
getPath,
|
|
1455
1442
|
getPrototypeOf,
|
|
1443
|
+
getReferenceLinkText,
|
|
1456
1444
|
getRenderedContainer,
|
|
1457
1445
|
getSafeRenamePath,
|
|
1458
1446
|
getSettingsMigrationApiContract,
|
|
@@ -1631,7 +1619,6 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1631
1619
|
registerFiles,
|
|
1632
1620
|
registerFrontmatterFormattingPreserver,
|
|
1633
1621
|
registerLinkHandlers,
|
|
1634
|
-
registerPluginLifecycleEventRelay,
|
|
1635
1622
|
relative,
|
|
1636
1623
|
relativePathToResourceUrl,
|
|
1637
1624
|
reloadCurrentFileCache,
|
|
@@ -1656,7 +1643,7 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1656
1643
|
requestAnimationFrameAsync,
|
|
1657
1644
|
requestResourceUnlockForPath,
|
|
1658
1645
|
requireTemplaterApi,
|
|
1659
|
-
|
|
1646
|
+
resetObsidianLibState,
|
|
1660
1647
|
resetTypescriptLibState,
|
|
1661
1648
|
resolve,
|
|
1662
1649
|
resolveFolderNote,
|
|
@@ -1682,7 +1669,6 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1682
1669
|
setNestedPropertyValue,
|
|
1683
1670
|
setTerminationOnTimeoutEnabled,
|
|
1684
1671
|
setTimeoutAsync,
|
|
1685
|
-
shareTypescriptLibStateWithObsidianDevUtilsState,
|
|
1686
1672
|
shouldResetAlias,
|
|
1687
1673
|
shouldUseWikilinks,
|
|
1688
1674
|
showErrorAndDisablePlugin,
|
|
@@ -1755,4 +1741,4 @@ var import_value_wrapper = require('@mnaoumov/typescript-lib/value-wrapper');
|
|
|
1755
1741
|
watchPluginApi,
|
|
1756
1742
|
wrapForCallout
|
|
1757
1743
|
});
|
|
1758
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9fX21lcmdlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBnZXRBcHAgfSBmcm9tICcuL2FwcC50cyc7XG5leHBvcnQge1xuICByZXRyeVdpdGhUaW1lb3V0Tm90aWNlLFxuICBydW5XaXRoVGltZW91dE5vdGljZVxufSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmV4cG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgQ1VTVE9NX0FUVEFDSE1FTlRfTE9DQVRJT05fUExVR0lOX0lELFxuICBEVU1NWV9QQVRILFxuICBnZXRBdHRhY2htZW50RmlsZVBhdGgsXG4gIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHsgZ2V0SW5kZXhlZEJhY2tsaW5rc0ZvckZpbGUgfSBmcm9tICcuL2JhY2tsaW5rLWluZGV4LnRzJztcbmV4cG9ydCB7XG4gIHJlbmRlckJhY2tsaW5rc1RhYmxlLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyXG59IGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0IHsgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBDYWxsb3V0TW9kZSxcbiAgcmVuZGVyQ2FsbG91dCxcbiAgd3JhcEZvckNhbGxvdXRcbn0gZnJvbSAnLi9jYWxsb3V0LnRzJztcbmV4cG9ydCB7IGdldENhbnZhc1JlZmVyZW5jZXMgfSBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQge1xuICBDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIGdldENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICB1bnNldENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleFxufSBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgeyBjcmVhdGVDb2RlQmxvY2tSZWdFeHAgfSBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgeyBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9hYnN0cmFjdC1maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBDb21tYW5kSGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBFZGl0b3JDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9lZGl0b3ItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBGb2xkZXJDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9mb2xkZXItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEdsb2JhbENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2dsb2JhbC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkRlbW9WYXVsdENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tZGVtby12YXVsdC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlblNldHRpbmdzQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1zZXR0aW5ncy1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL3VubG9jay1hY3RpdmUtbm90ZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ29tbWFuZFJlZ2lzdHJhciB9IGZyb20gJy4vY29tbWFuZC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgY29uZmlndXJlQ29tbXVuaXR5UGx1Z2luLFxuICBDb25maWd1cmVDb21tdW5pdHlQbHVnaW5SZXN1bHQsXG4gIGRpc2FibGVDb21tdW5pdHlQbHVnaW4sXG4gIGVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyxcbiAgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24sXG4gIGluc3RhbGxDb21tdW5pdHlQbHVnaW4sXG4gIGluc3RhbGxDb25maWd1cmVFbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIHNlYXJjaENvbW11bml0eVBsdWdpbnMsXG4gIHRvZ2dsZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgdG9nZ2xlSW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgdW5pbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1cGRhdGVDb21tdW5pdHlQbHVnaW4sXG4gIFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdFxufSBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQWxsV2luZG93c0V2ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnQtZXgudHMnO1xuZXhwb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvcmVQbHVnaW5Ub2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbkNvbmZsaWN0U2V2ZXJpdHksXG4gIFBsdWdpbkdhdGVDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBQbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gIFBsdWdpbk5vdGljZU1vZGVcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpblNldHRpbmdzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnQsXG4gIFN1Z2dlc3RlZFBsdWdpblN0YXRlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUG9pbnRlclBvc2l0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFJlZ2lzdHJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBSZWxlYXNlTm90ZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgRW1wdHlGb2xkZXJCZWhhdmlvcixcbiAgUmVuYW1lRGVsZXRlSGFuZGxlckNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBOT1RfRU1QVFlfRElSRUNUT1JZX0VSUk9SX0NPREUsXG4gIFJtZGlyR3VhcmRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHtcbiAgZml4VGl0bGUsXG4gIG1ha2VMaW5rV2l0aFBhdGhcbn0gZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICBpbnNlcnRDb2RlQmxvY2ssXG4gIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUsXG4gIHJlbmRlcklmcmFtZSxcbiAgcmVuZGVyUGFnaW5hdGVkTGlzdCxcbiAgcmVuZGVyUGFnaW5hdGVkVGFibGVcbn0gZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgeyBnZXRPYnNpZGlhbkxpYkRlYnVnZ2VyIH0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0IHtcbiAgRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBzdWJzY3JpYmVEaXNwb3NhYmxlRXZlbnQsXG4gIHN1YnNjcmliZUV2ZW50XG59IGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkV4dGVuc2lvbnNSZWdpc3RyYXIgfSBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGx5Q29udGVudENoYW5nZXMsXG4gIGFwcGx5RmlsZUNoYW5nZXMsXG4gIGlzQ2FudmFzQ2hhbmdlLFxuICBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlLFxuICBpc0NhbnZhc1RleHROb2RlQ2hhbmdlLFxuICBpc0NvbnRlbnRDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0IHsgcmV2ZWFsSW5GaWxlRXhwbG9yZXIgfSBmcm9tICcuL2ZpbGUtZXhwbG9yZXIudHMnO1xuZXhwb3J0IHtcbiAgYWRkQWxpYXMsXG4gIGRlbGV0ZUFsaWFzLFxuICBwcm9jZXNzRnJvbnRtYXR0ZXIsXG4gIHdhaXRGb3JQZW5kaW5nTGlua1VwZGF0ZXNcbn0gZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzQXJyYXlPZkZvbGRlcnMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBhc0ZvbGRlcixcbiAgYXNGb2xkZXJPck51bGwsXG4gIEJBU0VfRklMRV9FWFRFTlNJT04sXG4gIENBTlZBU19GSUxFX0VYVEVOU0lPTixcbiAgY2hlY2tFeHRlbnNpb24sXG4gIGRvZXNFeGlzdCxcbiAgRmlsZVN5c3RlbVR5cGUsXG4gIGdldEFic3RyYWN0RmlsZSxcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRCYXNlbmFtZSxcbiAgZ2V0RXh0ZW5zaW9uLFxuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGdldE9yQ3JlYXRlRmlsZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzQWJzdHJhY3RGaWxlLFxuICBpc0Jhc2VGaWxlLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXIsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGUsXG4gIGlzUGF0aE9yRmlsZSxcbiAgaXNUcmVhdGVkQXNBdHRhY2htZW50LFxuICBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTixcbiAgTWlzc2luZ1BhdGhUcmVhdG1lbnQsXG4gIHRyaW1NYXJrZG93bkV4dGVuc2lvblxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCB7XG4gIEZPTERFUl9OT1RFU19QTFVHSU5fSUQsXG4gIEZvbGRlck5vdGVMb2NhdGlvbixcbiAgcmVzb2x2ZUZvbGRlck5vdGUsXG4gIHJlc29sdmVGb2xkZXJOb3RlQ29uZmlnXG59IGZyb20gJy4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0IHtcbiAgZW5hYmxlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmF0aW9uLFxuICBwcmVzZXJ2ZUZyb250bWF0dGVyRm9ybWF0dGluZ1xufSBmcm9tICcuL2Zyb250bWF0dGVyLWZvcm1hdHRpbmcudHMnO1xuZXhwb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQge1xuICBjaGVja0lzUGxhaW5PYmplY3QsXG4gIHBhcnNlRnJvbnRtYXR0ZXIsXG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyLFxuICByZW1vdmVFbXB0eUZyb250bWF0dGVyVmFsdWVzLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCB7IFBsdWdpbkhvdmVyTGlua1NvdXJjZVJlZ2lzdHJhciB9IGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGVuZENvZGVCbG9jayxcbiAgYXBwZW5kVGV4dE9yRnJhZ21lbnRDbG9uZSxcbiAgYXBwbHlTcGVsbGNoZWNrTW9kZSxcbiAgYXNDb2RlQmxvY2ssXG4gIGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3Ncbn0gZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0IHtcbiAgREVGQVVMVF9OUyxcbiAgaW5pdEkxOE4sXG4gIHRcbn0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuZXhwb3J0IHsgZW4gfSBmcm9tICcuL2kxOG4vbG9jYWxlcy9lbi50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX0xBTkdVQUdFLFxuICBkZWZhdWx0VHJhbnNsYXRpb25zTWFwXG59IGZyb20gJy4vaTE4bi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuZXhwb3J0IHsgaXNJbk9ic2lkaWFuIH0gZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQge1xuICBpbmplY3RMaWJyYXJ5U3R5bGVzLFxuICBMQVNUX09CU0lESUFOX0xJQl9WRVJTSU9OX0tFWSxcbiAgTEVHQUNZX0xBU1RfTElCUkFSWV9WRVJTSU9OX0tFWSxcbiAgTEVHQUNZX0xBU1RfTElCUkFSWV9WRVJTSU9OX1NFTlRJTkVMLFxuICBMSUJSQVJZX1NUWUxFU19FTEVNRU5UX0lEXG59IGZyb20gJy4vbGlicmFyeS1zdHlsZXMudHMnO1xuZXhwb3J0IHtcbiAgTEVHQUNZX09CU0lESUFOX0xJQlJBUllfTkFNRSxcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi9saWJyYXJ5LnRzJztcbmV4cG9ydCB7IG5vcm1hbGl6ZUxpbmtOYW1lIH0gZnJvbSAnLi9saW5rLW5hbWUudHMnO1xuZXhwb3J0IHtcbiAgYnVpbGRCYWNrbGlua3NTbmFwc2hvdCxcbiAgY29udmVydExpbmssXG4gIGVkaXRCYWNrbGlua3MsXG4gIGVkaXRCYWNrbGlua3NTbmFwc2hvdCxcbiAgZWRpdExpbmtzLFxuICBlZGl0TGlua3NJbkNvbnRlbnQsXG4gIGV4dHJhY3RMaW5rRmlsZSxcbiAgZ2VuZXJhdGVNYXJrZG93bkxpbmssXG4gIGdlbmVyYXRlUmF3TWFya2Rvd25MaW5rLFxuICBnZXRHZW5lcmF0ZU1hcmtkb3duTGlua0RlZmF1bHRQYXJhbXNGbnMsXG4gIGhhc0FuZ2xlQnJhY2tldHMsXG4gIGhhc0VtYmVkU3ludGF4LFxuICBoYXNMZWFkaW5nRG90LFxuICBoYXNMZWFkaW5nU2xhc2gsXG4gIGhhc1dpa2lsaW5rU3ludGF4LFxuICBMaW5rUGF0aFN0eWxlLFxuICBMaW5rU3R5bGUsXG4gIHNob3VsZFJlc2V0QWxpYXMsXG4gIHNwbGl0U3VicGF0aCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5Db250ZW50LFxuICB1cGRhdGVGaWxlVXJsTGlua3NJbkZpbGUsXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZUxpbmtzSW5Db250ZW50LFxuICB1cGRhdGVMaW5rc0luRmlsZVxufSBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0IHsgaW52b2tlQXN5bmNBbmRMb2cgfSBmcm9tICcuL2xvZ2dlci50cyc7XG5leHBvcnQgeyBsb29wIH0gZnJvbSAnLi9sb29wLnRzJztcbmV4cG9ydCB7IFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvLFxuICBpbnNlcnRBZnRlckNvZGVCbG9jayxcbiAgaW5zZXJ0QmVmb3JlQ29kZUJsb2NrLFxuICByZW1vdmVDb2RlQmxvY2ssXG4gIHJlcGxhY2VDb2RlQmxvY2tcbn0gZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBnZXRGdWxsQ29udGVudEh0bWwgfSBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0IHtcbiAgZnVsbFJlbmRlcixcbiAgbWFya2Rvd25Ub0h0bWwsXG4gIHJlZ2lzdGVyTGlua0hhbmRsZXJzLFxuICByZW5kZXJFeHRlcm5hbExpbmssXG4gIHJlbmRlckludGVybmFsTGlua1xufSBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCB7XG4gIEFEVkFOQ0VEX01FVEFEQVRBX0NBQ0hFX1BMVUdJTl9JRCxcbiAgQkFDS0xJTktfQ0FDSEVfUExVR0lOX0lELFxuICBDYWNoZWRNZXRhZGF0YUV4RmVhdHVyZSxcbiAgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5LFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICBnZXRGcm9udG1hdHRlclNhZmUsXG4gIGdldExpbmtzLFxuICBoYXNCYWNrbGlua0NhY2hlUGx1Z2luLFxuICBpc0NhY2hlZE1ldGFkYXRhRXgsXG4gIHBhcnNlTWV0YWRhdGEsXG4gIHJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICByZWdpc3RlckZpbGVzLFxuICB1bnJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICB1bnJlZ2lzdGVyRmlsZXNcbn0gZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgeyBhbGVydCB9IGZyb20gJy4vbW9kYWxzL2FsZXJ0LnRzJztcbmV4cG9ydCB7IGNvbmZpcm0gfSBmcm9tICcuL21vZGFscy9jb25maXJtLnRzJztcbmV4cG9ydCB7IE1pbmltaXphYmxlTW9kYWwgfSBmcm9tICcuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9tb2RhbHMvbW9kYWwudHMnO1xuZXhwb3J0IHsgcHJvbXB0IH0gZnJvbSAnLi9tb2RhbHMvcHJvbXB0LnRzJztcbmV4cG9ydCB7IHNlbGVjdEl0ZW0gfSBmcm9tICcuL21vZGFscy9zZWxlY3QtaXRlbS50cyc7XG5leHBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcbmV4cG9ydCB7IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzLFxuICBmaW5kTm9Qcmlvcml0eVdpbm5lclJlYXNvbixcbiAgZmluZE5vdGVQcmlvcml0eVJhbmssXG4gIE5PX1BSSU9SSVRZX01BVENILFxuICBOb1ByaW9yaXR5V2lubmVyUmVhc29uLFxuICBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhcbn0gZnJvbSAnLi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCB7XG4gIE5PVEVCT09LX05BVklHQVRPUl9NRU5VX1NPVVJDRSxcbiAgTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCxcbiAgcmVzb2x2ZU5vdGVib29rTmF2aWdhdG9yQXBpXG59IGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCB7XG4gIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSxcbiAgT0JTSURJQU5fTElCX0dMT0JBTF9OQU1FLFxuICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSxcbiAgc2hhcmVUeXBlc2NyaXB0TGliU3RhdGVXaXRoT2JzaWRpYW5EZXZVdGlsc1N0YXRlXG59IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBpc1NwZWxsY2hlY2tFbmFibGVkLFxuICBpc1NwZWxsY2hlY2tFbmFibGVkRm9yTW9kZSxcbiAgc2hvdWxkVXNlV2lraWxpbmtzLFxuICBTcGVsbGNoZWNrTW9kZVxufSBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCB7XG4gIGVzY2FwZUFsaWFzLFxuICBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlLFxuICBpc1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgcGFyc2VGcm9udG1hdHRlckxpbmtzLFxuICBwYXJzZUxpbmssXG4gIHBhcnNlTGlua3MsXG4gIHRvUGFyc2VMaW5rUmVmZXJlbmNlLFxuICB1bmVzY2FwZUFsaWFzXG59IGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQge1xuICBQYXRoU2V0dGluZ3MsXG4gIHBhdGhzVmFsaWRhdG9yXG59IGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgeyBwcmludFRvUGRmIH0gZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ2xpSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBmaW5kUGx1Z2luQXBpLFxuICBnZXRWYWxpZGF0ZVBsdWdpbkFwaVBheWxvYWRzRGVidWdTd2l0Y2gsXG4gIFBsdWdpbkFwaVBheWxvYWRLaW5kLFxuICBQbHVnaW5BcGlSZXZva2VkRXJyb3IsXG4gIFBsdWdpbkFwaVVuYXZhaWxhYmlsaXR5UmVhc29uLFxuICBQbHVnaW5BcGlVbmF2YWlsYWJsZUVycm9yLFxuICBQbHVnaW5BcGlWYWxpZGF0aW9uRXJyb3IsXG4gIHB1Ymxpc2hQbHVnaW5BcGksXG4gIHdhdGNoUGx1Z2luQXBpXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1hcGkudHMnO1xuZXhwb3J0IHtcbiAgYWRkUGx1Z2luQ3NzQ2xhc3NlcyxcbiAgaW5pdERlYnVnQ29udHJvbGxlcixcbiAgaW5pdFBsdWdpbkNvbnRleHRcbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luRXZlbnRTb3VyY2VJbXBsIH0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWV2ZW50LXNvdXJjZS50cyc7XG5leHBvcnQge1xuICBnZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZSxcbiAgZ2V0SW5zdGFsbGVkUGx1Z2luVmVyc2lvbixcbiAgaW5zdGFsbEFuZEVuYWJsZVBsdWdpbixcbiAgSW5zdGFsbGVkUGx1Z2luU3RhdGUsXG4gIHVwZGF0ZVBsdWdpblxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4taW5zdGFsbC1zdGF0ZS50cyc7XG5leHBvcnQge1xuICBMRUdBQ1lfUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICBMRUdBQ1lfUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUUsXG4gIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRSxcbiAgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUUsXG4gIHJlZ2lzdGVyUGx1Z2luTGlmZWN5Y2xlRXZlbnRSZWxheSxcbiAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50XG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1saWZlY3ljbGUtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgU0FWRV9UT19GSUxFX0NPTlRFWFRcbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQge1xuICBQbHVnaW5CYXNlLFxuICByZWxvYWRQbHVnaW4sXG4gIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW5cbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLnRzJztcbmV4cG9ydCB7IGdldFNldHRpbmdzTWlncmF0aW9uQXBpQ29udHJhY3QgfSBmcm9tICcuL3BsdWdpbi9zZXR0aW5ncy1taWdyYXRpb24tYXBpLnRzJztcbmV4cG9ydCB7IGVkaXRGaWVsZHNJblBvcG92ZXIgfSBmcm9tICcuL3BvcG92ZXJzL2ZpZWxkLXBvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyLFxuICBjcmVhdGVBbmNob3JGcm9tRWxlbWVudCxcbiAgY3JlYXRlQW5jaG9yRnJvbVBvaW50LFxuICBjcmVhdGVBbmNob3JGcm9tU2VsZWN0aW9uXG59IGZyb20gJy4vcG9wb3ZlcnMvcG9wb3Zlci1hbmNob3IudHMnO1xuZXhwb3J0IHsgc2hvd1BvcG92ZXIgfSBmcm9tICcuL3BvcG92ZXJzL3BvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgY2hlY2tQcm9wZXJ0eUVudHJ5TWF0Y2hlcyxcbiAgaXNQcm9wZXJ0eUVudHJ5LFxuICBQUk9QRVJUWV9FTlRSWV9QUkVGSVhcbn0gZnJvbSAnLi9wcm9wZXJ0eS1lbnRyeS50cyc7XG5leHBvcnQge1xuICBhZGRUb1F1ZXVlLFxuICBhZGRUb1F1ZXVlQW5kV2FpdCxcbiAgZmx1c2hRdWV1ZVxufSBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCB7XG4gIEFwcENvbnRleHQsXG4gIHVzZUFwcFxufSBmcm9tICcuL3JlYWN0L2FwcC1jb250ZXh0LnRzJztcbmV4cG9ydCB7XG4gIGlzQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIGlzQ2FudmFzUmVmZXJlbmNlLFxuICBpc0NhbnZhc1RleHROb2RlUmVmZXJlbmNlLFxuICBpc1JlZmVyZW5jZUluT2Zmc2V0UmFuZ2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoQnlBbmNlc3RvcixcbiAgbG9ja1Jlc291cmNlRm9yUGF0aCxcbiAgcmVxdWVzdFJlc291cmNlVW5sb2NrRm9yUGF0aCxcbiAgUmVzb3VyY2VMb2NrQ29tcG9uZW50LFxuICBSZXNvdXJjZUxvY2tlZEVycm9yLFxuICB1bmxvY2tSZXNvdXJjZUZvclBhdGhcbn0gZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgeyBQbHVnaW5SaWJib25JY29uUmVnaXN0cmFyIH0gZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS10aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2VtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTW9udGhDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9tb250aC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZW1haWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL251bWJlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9wYXNzd29yZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZW5zdXJlV3JhcHBlZCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50LXdyYXBwZXIudHMnO1xuZXhwb3J0IHsgVGVsZXBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGVsZXBob25lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRpbWVDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLW11bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXJhbmdlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFVybENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3VybC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdmFsaWRhdG9yLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBXZWVrQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvd2Vlay1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYWRvcHRTZXR0aW5nRXgsXG4gIFNldHRpbmdFeFxufSBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0IHsgU2V0dGluZ0dyb3VwRXggfSBmcm9tICcuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0IHsgUGx1Z2luU3RhdHVzQmFySXRlbVJlZ2lzdHJhciB9IGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRUZW1wbGF0ZXJGdW5jdGlvbnMsXG4gIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUsXG4gIHBhcnNlVGVtcGxhdGUsXG4gIHJlcXVpcmVUZW1wbGF0ZXJBcGksXG4gIHJlc29sdmVUZW1wbGF0ZXJBcGksXG4gIFRFTVBMQVRFUl9QTFVHSU5fSUQsXG4gIFRlbXBsYXRlckFjdGl2ZUZpbGVQcm92aWRlcixcbiAgVGVtcGxhdGVyUnVuTW9kZSxcbiAgVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3Jcbn0gZnJvbSAnLi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2R1cmF0aW9uLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7XG4gIGNsaWNrRWxlbWVudCxcbiAgY2xpY2tNb3VzZSxcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7XG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcixcbiAgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lLFxuICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlMsXG4gIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyxcbiAgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSU1xufSBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlSWZOb3RVc2VkLFxuICBEZWxldGVJZk5vdFVzZWRSZXN1bHRcbn0gZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0IHsgVmF1bHRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgY2xlYW51cEVtcHR5Rm9sZGVycyxcbiAgY29weVNhZmUsXG4gIGNyZWF0ZUZvbGRlclNhZmUsXG4gIENyZWF0ZUZvbGRlclNhZmVSZXN1bHQsXG4gIGNyZWF0ZVRlbXBvcmFyeUZpbGUsXG4gIGNyZWF0ZVRlbXBvcmFyeUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5LFxuICBnZXRBYnN0cmFjdEZpbGVQYXRoU2FmZSxcbiAgZ2V0QXZhaWxhYmxlUGF0aCxcbiAgZ2V0RmlsZVBhdGhTYWZlLFxuICBnZXRGb2xkZXJQYXRoU2FmZSxcbiAgZ2V0TWFya2Rvd25GaWxlc1NvcnRlZCxcbiAgZ2V0Tm90ZUZpbGVzU29ydGVkLFxuICBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyU2FmZSxcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIEludm9rZUZpbGVBY3Rpb25TYWZlUmVzdWx0LFxuICBpbnZva2VXaXRoRmlsZVN5c3RlbUxvY2ssXG4gIGlzQ2hpbGQsXG4gIGlzQ2hpbGRPclNlbGYsXG4gIGlzRW1wdHlGb2xkZXIsXG4gIGxpc3RTYWZlLFxuICBwcm9jZXNzLFxuICByZWFkU2FmZSxcbiAgcmVuYW1lU2FmZSxcbiAgc2F2ZU5vdGUsXG4gIHRyYXNoU2FmZVxufSBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCB7IFBsdWdpblZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGVuc3VyZUxheW91dFJlYWR5LFxuICBnZXRBbGxDb250YWluZXJzLFxuICBnZXRBbGxEb21XaW5kb3dzLFxuICBnZXRNYWluV2luZG93LFxuICBzd2l0Y2hUb01haW5XaW5kb3csXG4gIHN3aXRjaFRvV2luZG93XG59IGZyb20gJy4vd29ya3NwYWNlLnRzJztcbmV4cG9ydCB7XG4gIGFib3J0U2lnbmFsQW55LFxuICBhYm9ydFNpZ25hbE5ldmVyLFxuICBhYm9ydFNpZ25hbFRpbWVvdXQsXG4gIGdldFNoYXJlZEFib3J0Q29udHJvbGxlcixcbiAgZ2V0U2hhcmVkQWJvcnRTaWduYWwsXG4gIElORklOSVRFX1RJTUVPVVQsXG4gIG9uQWJvcnQsXG4gIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIsXG4gIHdhaXRGb3JBYm9ydFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYWJvcnQtY29udHJvbGxlcic7XG5leHBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVFcnJvciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hZ2dyZWdhdGUtZXJyb3InO1xuZXhwb3J0IHtcbiAgYXJyYXlHdWFyZCxcbiAgQk9PTEVBTl9HVUFSRCxcbiAgY3JlYXRlQXBpQ29udHJhY3RTY2hlbWFCdWlsZGVycyxcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVFeHBlY3RlZFR5cGVHdWFyZCxcbiAgY3JlYXRlVHlwZUd1YXJkU2NoZW1hLFxuICBkZWZpbmVBcGlDb250cmFjdCxcbiAgaW5zdGFuY2VPZkd1YXJkLFxuICBsaXRlcmFsR3VhcmQsXG4gIG51bGxhYmxlR3VhcmQsXG4gIE5VTUJFUl9HVUFSRCxcbiAgb2JqZWN0R3VhcmQsXG4gIG9wdGlvbmFsR3VhcmQsXG4gIG9wdGlvbnNHdWFyZCxcbiAgU1RSSU5HX0FSUkFZX0dVQVJELFxuICBTVFJJTkdfR1VBUkQsXG4gIFVOREVGSU5FRF9HVUFSRCxcbiAgdW5pb25HdWFyZFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0JztcbmV4cG9ydCB7XG4gIHZhbGlkYXRlU3luYyxcbiAgdmVyaWZ5QXBpQ29udHJhY3Rcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdC12ZXJpZmllcic7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcnJheSc7XG5leHBvcnQgeyB0b0FycmF5QnVmZmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FycmF5LWJ1ZmZlcic7XG5leHBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGFzeW5jRmlsdGVyLFxuICBhc3luY0ZpbHRlckluUGxhY2UsXG4gIGFzeW5jRmxhdE1hcCxcbiAgYXN5bmNNYXAsXG4gIGNoYWluLFxuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGNvbnZlcnRTeW5jVG9Bc3luYyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc1Rlcm1pbmF0aW9uT25UaW1lb3V0RW5hYmxlZCxcbiAgbWFya3NBc1Rlcm1pbmF0ZVJldHJ5LFxuICBuZXZlckVuZHMsXG4gIG5leHRUaWNrQXN5bmMsXG4gIG5vcm1hbGl6ZVByb21pc2FibGUsXG4gIHByb21pc2VBbGxBc3luY0Zuc1NlcXVlbnRpYWxseSxcbiAgcHJvbWlzZUFsbFNlcXVlbnRpYWxseSxcbiAgcXVldWVNaWNyb3Rhc2tBc3luYyxcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMsXG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0LFxuICBzZXRJbW1lZGlhdGVBc3luYyxcbiAgc2V0VGVybWluYXRpb25PblRpbWVvdXRFbmFibGVkLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5leHBvcnQge1xuICBBc3luY0V2ZW50UmVmRGlzcG9zYWJsZSxcbiAgQXN5bmNFdmVudHMsXG4gIEFzeW5jRXZlbnRzQmFzZSxcbiAgbWl4aW5Bc3luY0V2ZW50cyxcbiAgc3Vic2NyaWJlQXN5bmNEaXNwb3NhYmxlRXZlbnRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5leHBvcnQge1xuICBBU1lOQ19PUEVSQVRJT05fSE9PS19LRVksXG4gIEFTWU5DX09QRVJBVElPTl9IT09LX1ZFUlNJT04sXG4gIGdldEFzeW5jT3BlcmF0aW9uSG9vayxcbiAgbm90aWZ5QXN5bmNPcGVyYXRpb25TdGFydGVkLFxuICBzZXRBc3luY09wZXJhdGlvbkhvb2tcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLW9wZXJhdGlvbi1ob29rJztcbmV4cG9ydCB7IEJlZXBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9iZWVwZXInO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9ibG9iJztcbmV4cG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2J5dGVzJztcbmV4cG9ydCB7XG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMsXG4gIGdldERlYnVnQ29udHJvbGxlcixcbiAgZ2V0RGVidWdnZXIsXG4gIGdldExpYkRlYnVnZ2VyLFxuICBwcmludFdpdGhTdGFja1RyYWNlLFxuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuZXhwb3J0IHtcbiAgZ2V0RGVidWdTd2l0Y2gsXG4gIGdldERlYnVnU3dpdGNoZXMsXG4gIGdldFRlcm1pbmF0ZU9uVGltZW91dERlYnVnU3dpdGNoLFxuICBvbkRlYnVnU3dpdGNoQ2hhbmdlZCxcbiAgcmVnaXN0ZXJEZWJ1Z1N3aXRjaCxcbiAgc2V0RGVidWdTd2l0Y2hcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLXN3aXRjaGVzJztcbmV4cG9ydCB7IGV4dHJhY3RaaXBBcmNoaXZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Rlc2t0b3AtemlwLWV4dHJhY3Rvcic7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQXN5bmNEaXNwb3NhYmxlQmFzZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zYWJsZUJhc2UsXG4gIGRpc3Bvc2UsXG4gIGRpc3Bvc2VBc3luYyxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGlzcG9zYWJsZSc7XG5leHBvcnQge1xuICBnZXRFbnVtS2V5LFxuICBnZXRFbnVtVmFsdWVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2VudW0nO1xuZXhwb3J0IHtcbiAgQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICBDdXN0b21TdGFja1RyYWNlRXJyb3IsXG4gIGRyYWluQ29sbGVjdGVkVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGVycm9yVG9TdHJpbmcsXG4gIEVycm9yV3JhcHBlcixcbiAgZ2V0U3RhY2tUcmFjZSxcbiAgaXNBc3luY0Vycm9ySWdub3JlQ29udGV4dEFjdGl2ZSxcbiAgcHJpbnRFcnJvcixcbiAgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyLFxuICBTaWxlbnRFcnJvcixcbiAgc3RhcnRBc3luY0Vycm9ySWdub3JlQ29udGV4dCxcbiAgc3RhcnRDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHN0b3BDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgY3JlYXRlRGl2QXN5bmMsXG4gIGNyZWF0ZUVsQXN5bmMsXG4gIGNyZWF0ZUZyYWdtZW50QXN5bmMsXG4gIGNyZWF0ZVNwYW5Bc3luYyxcbiAgY3JlYXRlU3ZnQXN5bmMsXG4gIGVuc3VyZUxvYWRlZCxcbiAgZ2V0RG9jdW1lbnRXaW5kb3csXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5leHBvcnQge1xuICBleHRyYWN0SnBlZ01ldGFkYXRhU2VnbWVudHMsXG4gIGluamVjdEpwZWdNZXRhZGF0YVNlZ21lbnRzXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9qcGVnLW1ldGFkYXRhJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfREVCVUdfTkFNRVNQQUNFLFxuICBMaWJyYXJ5LFxuICBMSUJSQVJZX05BTUVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuZXhwb3J0IHtcbiAgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBjYXN0VG8sXG4gIGNsb25lV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0eSxcbiAgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wLFxuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgZ2V0QWxsRW50cmllcyxcbiAgZ2V0QWxsS2V5cyxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgZ2V0UHJvdG90eXBlT2YsXG4gIGlzRGVlcEVxdWFsLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuZXhwb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRlbGltaXRlcixcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgZm9ybWF0LFxuICBnZXRGaWxlTmFtZSxcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgaXNBYnNvbHV0ZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lLFxuICBub3JtYWxpemVJZlJlbGF0aXZlLFxuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZSxcbiAgcG9zaXgsXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICBzZXBhcmF0b3IsXG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmV4cG9ydCB7XG4gIEFMV0FZU19NQVRDSF9SRUdfRVhQLFxuICBlc2NhcGVSZWdFeHAsXG4gIGdldE1hbmRhdG9yeU5hbWVkR3JvdXAsXG4gIGdldE9wdGlvbmFsTmFtZWRHcm91cCxcbiAgaXNWYWxpZFJlZ0V4cCxcbiAgTkVWRVJfTUFUQ0hfUkVHX0VYUCxcbiAgb25lT2YsXG4gIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmV4cG9ydCB7XG4gIEVNUFRZLFxuICBlbnN1cmVFbmRzV2l0aCxcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBlbnN1cmVTdGFydHNXaXRoLFxuICBlc2NhcGUsXG4gIGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIsXG4gIGhhc1NpbmdsZU9jY3VycmVuY2UsXG4gIGluZGVudCxcbiAgaW5zZXJ0QXQsXG4gIG1ha2VWYWxpZFZhcmlhYmxlTmFtZSxcbiAgbm9ybWFsaXplU3RyaW5nLFxuICByZXBsYWNlLFxuICByZXBsYWNlQWxsLFxuICByZXBsYWNlQWxsQXN5bmMsXG4gIHRyaW1FbmQsXG4gIHRyaW1TdGFydCxcbiAgdW5lc2NhcGUsXG4gIHVuaW5kZW50XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuZXhwb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NldC10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R3by13YXktbWFwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R5cGVkLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR3b1dheU1hcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90d28td2F5LW1hcCc7XG5leHBvcnQgeyBUeXBlQXNzZXJ0ZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5leHBvcnQge1xuICBhcnJheVR5cGVHdWFyZCxcbiAgYXNzZXJ0LFxuICBhc3NlcnRHZW5lcmljT2JqZWN0LFxuICBhc3NlcnROZXZlcixcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZUdlbmVyaWNPYmplY3QsXG4gIGVuc3VyZU5vbk51bGxhYmxlLFxuICBmdW5jdGlvblR5cGVHdWFyZCxcbiAgaW5zdGFuY2VPZlR5cGVHdWFyZCxcbiAgaXNCb29sZWFuLFxuICBpc0Z1bmN0aW9uLFxuICBpc051bGwsXG4gIGlzTnVtYmVyLFxuICBpc09iamVjdCxcbiAgaXNTdHJpbmcsXG4gIGlzU3RyaW5nQXJyYXksXG4gIGlzVW5kZWZpbmVkLFxuICBsaXRlcmFsVHlwZUd1YXJkLFxuICBudWxsYWJsZVR5cGVHdWFyZCxcbiAgb2JqZWN0VHlwZUd1YXJkLFxuICBvcHRpb25hbFR5cGVHdWFyZCxcbiAgdW5pb25UeXBlR3VhcmRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmV4cG9ydCB7XG4gIGdldFR5cGVzY3JpcHRMaWJTdGF0ZSxcbiAgZ2V0VHlwZXNjcmlwdExpYlN0YXRlU2xvdCxcbiAgcmVzZXRUeXBlc2NyaXB0TGliU3RhdGUsXG4gIFRZUEVTQ1JJUFRfTElCX1NUQVRFX0tFWSxcbiAgVFlQRVNDUklQVF9MSUJfU1RBVEVfVkVSU0lPTlxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZXNjcmlwdC1saWItc3RhdGUnO1xuZXhwb3J0IHtcbiAgZW5jb2RlVXJsLFxuICBpc0ZpbGVVcmwsXG4gIGlzVXJsLFxuICBub3JtYWxpemVGaWxlVXJsLFxuICBwYXRoVG9GaWxlVXJsXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi91cmwnO1xuZXhwb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3ZhbHVlLXByb3ZpZGVyJztcbmV4cG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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K0JBTU87QUFDUCx3QkFTTztBQUNQLDJCQUdPO0FBQ1AsaUJBQTJCO0FBQzNCLDBDQUEwQztBQUMxQyx3QkFVTztBQUNQLDRCQUlPO0FBQ1AsaUNBQXNDO0FBQ3RDLGtDQU1PO0FBQ1AscUNBT087QUFDUCxpQ0FHTztBQUNQLG9CQUlPO0FBQ1Asb0NBQWdEO0FBQ2hELDJCQUFvQztBQUNwQyw0QkFLTztBQUNQLHFCQUE0QjtBQUM1Qiw0QkFJTztBQUNQLG1CQUlPO0FBQ1AseUJBR087QUFDUCx1QkFPTztBQUNQLDJCQVFPO0FBQ1AsMEJBQTBDO0FBQzFDLG1DQUEwQztBQUMxQyxnQ0FBa0M7QUFDbEMsd0NBQXlDO0FBQ3pDLDRCQUE4QjtBQUM5QixpQ0FBa0M7QUFDbEMsNkJBQStCO0FBQy9CLDRCQUE4QjtBQUM5Qiw2QkFBK0I7QUFDL0IseUNBQTBDO0FBQzFDLHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFDdEMscUNBQXNDO0FBQ3RDLDhCQUFnQztBQUNoQyxnQ0FBa0M7QUFDbEMsdUNBQThCO0FBQzlCLGlDQUFtQztBQUNuQyxrQ0FBMkM7QUFDM0MsNEJBQThCO0FBQzlCLDBDQUEwQztBQUMxQyxzQ0FBdUM7QUFDdkMsK0NBQStDO0FBQy9DLHdDQUF3QztBQUN4QyxrQ0FBbUM7QUFDbkMsMkJBQTZCO0FBQzdCLGlDQUFzQztBQUN0Qyw0QkFBOEI7QUFDOUIsd0JBR087QUFDUCw4QkFBK0I7QUFDL0IsdUNBQTZDO0FBQzdDLHVCQVdPO0FBQ1Asa0NBQW9DO0FBQ3BDLDJCQVFPO0FBQ1Asd0JBVU87QUFDUCwwQkFHTztBQUNQLCtCQUFpQztBQUNqQyxtQkE4Qk87QUFDUCw0QkFBb0M7QUFDcEMsdUJBT087QUFDUCw4QkFVTztBQUNQLDZCQUFxQztBQUNyQywwQkFtQk87QUFDUCxtQ0FHTztBQUNQLG1CQUtPO0FBQ1AsMEJBQThCO0FBQzlCLG1CQThCTztBQUNQLDBCQU1PO0FBQ1Asa0NBTU87QUFDUCxvQkFBdUI7QUFDdkIsa0JBTU87QUFDUCxtQkFBNEI7QUFDNUIsSUFBQUEsZ0JBT087QUFDUCw0QkFPTztBQUNQLG1DQUFrQztBQUNsQyx3QkFrQk87QUFDUCxrQkFHTztBQUNQLG1CQWdCTztBQUNQLHNCQVNPO0FBQ1AsSUFBQUMsdUJBY087QUFDUCwyQkFHTztBQUNQLElBQUFDLGtCQUlPO0FBQ1AsMEJBa0JPO0FBQ1Asa0JBb0JPO0FBQ1AscUJBU087QUFDUCxvQkFtQk87QUFDUCw4QkFBZ0M7QUFDaEMsK0JBQWlDO0FBQ2pDLDZCQUErQjtBQUMvQiw2QkFBK0I7QUFDL0IsK0NBQStDO0FBQy9DLHlCQUE0QjtBQUM1QixxQ0FBcUM7QUFDckMsK0JBQWlDO0FBQ2pDLHlCQUEwQjtBQUMxQixrQkFBNkI7QUFDN0IseUJBdUJPO0FBQ1Asa0NBTU87QUFDUCxpQkFNTztBQUNQLDRCQUE2QjtBQUM3QiwyQkFBNkI7IiwibmFtZXMiOlsiaW1wb3J0X2RlYnVnIiwiaW1wb3J0X2h0bWxfZWxlbWVudCIsImltcG9ydF9saWJyYXJ5Il19
|
|
1744
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9fX21lcmdlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBnZXRBcHAgfSBmcm9tICcuL2FwcC50cyc7XG5leHBvcnQge1xuICByZXRyeVdpdGhUaW1lb3V0Tm90aWNlLFxuICBydW5XaXRoVGltZW91dE5vdGljZVxufSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmV4cG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgQ1VTVE9NX0FUVEFDSE1FTlRfTE9DQVRJT05fUExVR0lOX0lELFxuICBEVU1NWV9QQVRILFxuICBnZXRBdHRhY2htZW50RmlsZVBhdGgsXG4gIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHsgZ2V0SW5kZXhlZEJhY2tsaW5rc0ZvckZpbGUgfSBmcm9tICcuL2JhY2tsaW5rLWluZGV4LnRzJztcbmV4cG9ydCB7XG4gIHJlbmRlckJhY2tsaW5rc1RhYmxlLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyXG59IGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0IHsgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBDYWxsb3V0TW9kZSxcbiAgcmVuZGVyQ2FsbG91dCxcbiAgd3JhcEZvckNhbGxvdXRcbn0gZnJvbSAnLi9jYWxsb3V0LnRzJztcbmV4cG9ydCB7IGdldENhbnZhc1JlZmVyZW5jZXMgfSBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQge1xuICBDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIGdldENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICB1bnNldENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleFxufSBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgeyBjcmVhdGVDb2RlQmxvY2tSZWdFeHAgfSBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgeyBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9hYnN0cmFjdC1maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBDb21tYW5kSGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBFZGl0b3JDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9lZGl0b3ItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBGb2xkZXJDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9mb2xkZXItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEdsb2JhbENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2dsb2JhbC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkRlbW9WYXVsdENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tZGVtby12YXVsdC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlblNldHRpbmdzQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1zZXR0aW5ncy1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL3VubG9jay1hY3RpdmUtbm90ZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ29tbWFuZFJlZ2lzdHJhciB9IGZyb20gJy4vY29tbWFuZC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgY29uZmlndXJlQ29tbXVuaXR5UGx1Z2luLFxuICBDb25maWd1cmVDb21tdW5pdHlQbHVnaW5SZXN1bHQsXG4gIGRpc2FibGVDb21tdW5pdHlQbHVnaW4sXG4gIGVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyxcbiAgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24sXG4gIGluc3RhbGxDb21tdW5pdHlQbHVnaW4sXG4gIGluc3RhbGxDb25maWd1cmVFbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIHNlYXJjaENvbW11bml0eVBsdWdpbnMsXG4gIHRvZ2dsZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgdG9nZ2xlSW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgdW5pbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1cGRhdGVDb21tdW5pdHlQbHVnaW4sXG4gIFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdFxufSBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQWxsV2luZG93c0V2ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnQtZXgudHMnO1xuZXhwb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvcmVQbHVnaW5Ub2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbkNvbmZsaWN0U2V2ZXJpdHksXG4gIFBsdWdpbkdhdGVDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBQbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gIFBsdWdpbk5vdGljZU1vZGVcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpblNldHRpbmdzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnQsXG4gIFN1Z2dlc3RlZFBsdWdpblN0YXRlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUG9pbnRlclBvc2l0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFJlZ2lzdHJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBSZWxlYXNlTm90ZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgRW1wdHlGb2xkZXJCZWhhdmlvcixcbiAgUmVuYW1lRGVsZXRlSGFuZGxlckNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBOT1RfRU1QVFlfRElSRUNUT1JZX0VSUk9SX0NPREUsXG4gIFJtZGlyR3VhcmRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHtcbiAgZml4VGl0bGUsXG4gIG1ha2VMaW5rV2l0aFBhdGhcbn0gZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICBpbnNlcnRDb2RlQmxvY2ssXG4gIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUsXG4gIHJlbmRlcklmcmFtZSxcbiAgcmVuZGVyUGFnaW5hdGVkTGlzdCxcbiAgcmVuZGVyUGFnaW5hdGVkVGFibGVcbn0gZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgeyBnZXRPYnNpZGlhbkxpYkRlYnVnZ2VyIH0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0IHtcbiAgRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBzdWJzY3JpYmVEaXNwb3NhYmxlRXZlbnQsXG4gIHN1YnNjcmliZUV2ZW50XG59IGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkV4dGVuc2lvbnNSZWdpc3RyYXIgfSBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGx5Q29udGVudENoYW5nZXMsXG4gIGFwcGx5RmlsZUNoYW5nZXMsXG4gIGlzQ2FudmFzQ2hhbmdlLFxuICBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlLFxuICBpc0NhbnZhc1RleHROb2RlQ2hhbmdlLFxuICBpc0NvbnRlbnRDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0IHsgcmV2ZWFsSW5GaWxlRXhwbG9yZXIgfSBmcm9tICcuL2ZpbGUtZXhwbG9yZXIudHMnO1xuZXhwb3J0IHtcbiAgYWRkQWxpYXMsXG4gIGRlbGV0ZUFsaWFzLFxuICBwcm9jZXNzRnJvbnRtYXR0ZXIsXG4gIHdhaXRGb3JQZW5kaW5nTGlua1VwZGF0ZXNcbn0gZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzQXJyYXlPZkZvbGRlcnMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBhc0ZvbGRlcixcbiAgYXNGb2xkZXJPck51bGwsXG4gIEJBU0VfRklMRV9FWFRFTlNJT04sXG4gIENBTlZBU19GSUxFX0VYVEVOU0lPTixcbiAgY2hlY2tFeHRlbnNpb24sXG4gIGRvZXNFeGlzdCxcbiAgRmlsZVN5c3RlbVR5cGUsXG4gIGdldEFic3RyYWN0RmlsZSxcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRCYXNlbmFtZSxcbiAgZ2V0RXh0ZW5zaW9uLFxuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGdldE9yQ3JlYXRlRmlsZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzQWJzdHJhY3RGaWxlLFxuICBpc0Jhc2VGaWxlLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXIsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGUsXG4gIGlzUGF0aE9yRmlsZSxcbiAgaXNUcmVhdGVkQXNBdHRhY2htZW50LFxuICBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTixcbiAgTWlzc2luZ1BhdGhUcmVhdG1lbnQsXG4gIHRyaW1NYXJrZG93bkV4dGVuc2lvblxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCB7XG4gIEZPTERFUl9OT1RFU19QTFVHSU5fSUQsXG4gIEZvbGRlck5vdGVMb2NhdGlvbixcbiAgcmVzb2x2ZUZvbGRlck5vdGUsXG4gIHJlc29sdmVGb2xkZXJOb3RlQ29uZmlnXG59IGZyb20gJy4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0IHtcbiAgZW5hYmxlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmF0aW9uLFxuICBwcmVzZXJ2ZUZyb250bWF0dGVyRm9ybWF0dGluZ1xufSBmcm9tICcuL2Zyb250bWF0dGVyLWZvcm1hdHRpbmcudHMnO1xuZXhwb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQge1xuICBjaGVja0lzUGxhaW5PYmplY3QsXG4gIHBhcnNlRnJvbnRtYXR0ZXIsXG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyLFxuICByZW1vdmVFbXB0eUZyb250bWF0dGVyVmFsdWVzLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCB7IFBsdWdpbkhvdmVyTGlua1NvdXJjZVJlZ2lzdHJhciB9IGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGVuZENvZGVCbG9jayxcbiAgYXBwZW5kVGV4dE9yRnJhZ21lbnRDbG9uZSxcbiAgYXBwbHlTcGVsbGNoZWNrTW9kZSxcbiAgYXNDb2RlQmxvY2ssXG4gIGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3Ncbn0gZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0IHtcbiAgREVGQVVMVF9OUyxcbiAgaW5pdEkxOE4sXG4gIHRcbn0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuZXhwb3J0IHsgZW4gfSBmcm9tICcuL2kxOG4vbG9jYWxlcy9lbi50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX0xBTkdVQUdFLFxuICBkZWZhdWx0VHJhbnNsYXRpb25zTWFwXG59IGZyb20gJy4vaTE4bi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuZXhwb3J0IHsgaXNJbk9ic2lkaWFuIH0gZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQge1xuICBpbmplY3RMaWJyYXJ5U3R5bGVzLFxuICBMQVNUX0xJQlJBUllfVkVSU0lPTl9LRVksXG4gIExJQlJBUllfU1RZTEVTX0VMRU1FTlRfSURcbn0gZnJvbSAnLi9saWJyYXJ5LXN0eWxlcy50cyc7XG5leHBvcnQge1xuICBPQlNJRElBTl9MSUJSQVJZX05BTUUsXG4gIE9ic2lkaWFuTGlicmFyeVxufSBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0IHsgbm9ybWFsaXplTGlua05hbWUgfSBmcm9tICcuL2xpbmstbmFtZS50cyc7XG5leHBvcnQge1xuICBidWlsZEJhY2tsaW5rc1NuYXBzaG90LFxuICBjb252ZXJ0TGluayxcbiAgZWRpdEJhY2tsaW5rcyxcbiAgZWRpdEJhY2tsaW5rc1NuYXBzaG90LFxuICBlZGl0TGlua3MsXG4gIGVkaXRMaW5rc0luQ29udGVudCxcbiAgZXh0cmFjdExpbmtGaWxlLFxuICBnZW5lcmF0ZU1hcmtkb3duTGluayxcbiAgZ2VuZXJhdGVSYXdNYXJrZG93bkxpbmssXG4gIGdldEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0ZucyxcbiAgaGFzQW5nbGVCcmFja2V0cyxcbiAgaGFzRW1iZWRTeW50YXgsXG4gIGhhc0xlYWRpbmdEb3QsXG4gIGhhc0xlYWRpbmdTbGFzaCxcbiAgaGFzV2lraWxpbmtTeW50YXgsXG4gIExpbmtQYXRoU3R5bGUsXG4gIExpbmtTdHlsZSxcbiAgc2hvdWxkUmVzZXRBbGlhcyxcbiAgc3BsaXRTdWJwYXRoLFxuICB1cGRhdGVGaWxlVXJsTGlua3NJbkNvbnRlbnQsXG4gIHVwZGF0ZUZpbGVVcmxMaW5rc0luRmlsZSxcbiAgdXBkYXRlTGluayxcbiAgdXBkYXRlTGlua3NJbkNvbnRlbnQsXG4gIHVwZGF0ZUxpbmtzSW5GaWxlXG59IGZyb20gJy4vbGluay50cyc7XG5leHBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCB7IGxvb3AgfSBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8sXG4gIGluc2VydEFmdGVyQ29kZUJsb2NrLFxuICBpbnNlcnRCZWZvcmVDb2RlQmxvY2ssXG4gIHJlbW92ZUNvZGVCbG9jayxcbiAgcmVwbGFjZUNvZGVCbG9ja1xufSBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCB7IFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IGdldEZ1bGxDb250ZW50SHRtbCB9IGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQge1xuICBmdWxsUmVuZGVyLFxuICBtYXJrZG93blRvSHRtbCxcbiAgcmVnaXN0ZXJMaW5rSGFuZGxlcnMsXG4gIHJlbmRlckV4dGVybmFsTGluayxcbiAgcmVuZGVySW50ZXJuYWxMaW5rXG59IGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0IHtcbiAgQURWQU5DRURfTUVUQURBVEFfQ0FDSEVfUExVR0lOX0lELFxuICBCQUNLTElOS19DQUNIRV9QTFVHSU5fSUQsXG4gIENhY2hlZE1ldGFkYXRhRXhGZWF0dXJlLFxuICBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHksXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgsXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlLFxuICBnZXRDYWNoZVNhZmUsXG4gIGdldEZyb250bWF0dGVyU2FmZSxcbiAgZ2V0TGlua3MsXG4gIGhhc0JhY2tsaW5rQ2FjaGVQbHVnaW4sXG4gIGlzQ2FjaGVkTWV0YWRhdGFFeCxcbiAgcGFyc2VNZXRhZGF0YSxcbiAgcmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHJlZ2lzdGVyRmlsZXMsXG4gIHVucmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHVucmVnaXN0ZXJGaWxlc1xufSBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCB7IGFsZXJ0IH0gZnJvbSAnLi9tb2RhbHMvYWxlcnQudHMnO1xuZXhwb3J0IHsgY29uZmlybSB9IGZyb20gJy4vbW9kYWxzL2NvbmZpcm0udHMnO1xuZXhwb3J0IHsgTWluaW1pemFibGVNb2RhbCB9IGZyb20gJy4vbW9kYWxzL21pbmltaXphYmxlLW1vZGFsLnRzJztcbmV4cG9ydCB7XG4gIE1vZGFsQ29tbWFuZEJ1aWxkZXIsXG4gIE1vZGFsQ29tbWFuZHNSZW5kZXJNb2RlXG59IGZyb20gJy4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQge1xuICBNb2RhbEJhc2UsXG4gIHNob3dNb2RhbFxufSBmcm9tICcuL21vZGFscy9tb2RhbC50cyc7XG5leHBvcnQgeyBwcm9tcHQgfSBmcm9tICcuL21vZGFscy9wcm9tcHQudHMnO1xuZXhwb3J0IHsgc2VsZWN0SXRlbSB9IGZyb20gJy4vbW9kYWxzL3NlbGVjdC1pdGVtLnRzJztcbmV4cG9ydCB7IHNlbGVjdE9wdGlvbiB9IGZyb20gJy4vbW9kYWxzL3NlbGVjdC1vcHRpb24udHMnO1xuZXhwb3J0IHsgU3VnZ2VzdE1vZGFsQ29tbWFuZEJ1aWxkZXIgfSBmcm9tICcuL21vZGFscy9zdWdnZXN0LW1vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aHMsXG4gIGZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uLFxuICBmaW5kTm90ZVByaW9yaXR5UmFuayxcbiAgTk9fUFJJT1JJVFlfTUFUQ0gsXG4gIE5vUHJpb3JpdHlXaW5uZXJSZWFzb24sXG4gIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aFxufSBmcm9tICcuL25vdGUtcHJpb3JpdHkudHMnO1xuZXhwb3J0IHtcbiAgTk9URUJPT0tfTkFWSUdBVE9SX01FTlVfU09VUkNFLFxuICBOT1RFQk9PS19OQVZJR0FUT1JfUExVR0lOX0lELFxuICByZXNvbHZlTm90ZWJvb2tOYXZpZ2F0b3JBcGlcbn0gZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5MaWJTdGF0ZSxcbiAgcmVzZXRPYnNpZGlhbkxpYlN0YXRlXG59IGZyb20gJy4vb2JzaWRpYW4tbGliLXN0YXRlLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBpc1NwZWxsY2hlY2tFbmFibGVkLFxuICBpc1NwZWxsY2hlY2tFbmFibGVkRm9yTW9kZSxcbiAgc2hvdWxkVXNlV2lraWxpbmtzLFxuICBTcGVsbGNoZWNrTW9kZVxufSBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCB7XG4gIGVzY2FwZUFsaWFzLFxuICBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlLFxuICBpc1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgcGFyc2VGcm9udG1hdHRlckxpbmtzLFxuICBwYXJzZUxpbmssXG4gIHBhcnNlTGlua3MsXG4gIHRvUGFyc2VMaW5rUmVmZXJlbmNlLFxuICB1bmVzY2FwZUFsaWFzXG59IGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQge1xuICBQYXRoU2V0dGluZ3MsXG4gIHBhdGhzVmFsaWRhdG9yXG59IGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgeyBwcmludFRvUGRmIH0gZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ2xpSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBmaW5kUGx1Z2luQXBpLFxuICBnZXRWYWxpZGF0ZVBsdWdpbkFwaVBheWxvYWRzRGVidWdTd2l0Y2gsXG4gIFBsdWdpbkFwaVBheWxvYWRLaW5kLFxuICBQbHVnaW5BcGlSZXZva2VkRXJyb3IsXG4gIFBsdWdpbkFwaVVuYXZhaWxhYmlsaXR5UmVhc29uLFxuICBQbHVnaW5BcGlVbmF2YWlsYWJsZUVycm9yLFxuICBQbHVnaW5BcGlWYWxpZGF0aW9uRXJyb3IsXG4gIHB1Ymxpc2hQbHVnaW5BcGksXG4gIHdhdGNoUGx1Z2luQXBpXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1hcGkudHMnO1xuZXhwb3J0IHtcbiAgYWRkUGx1Z2luQ3NzQ2xhc3NlcyxcbiAgaW5pdERlYnVnQ29udHJvbGxlcixcbiAgaW5pdFBsdWdpbkNvbnRleHRcbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luRXZlbnRTb3VyY2VJbXBsIH0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWV2ZW50LXNvdXJjZS50cyc7XG5leHBvcnQge1xuICBnZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZSxcbiAgZ2V0SW5zdGFsbGVkUGx1Z2luVmVyc2lvbixcbiAgaW5zdGFsbEFuZEVuYWJsZVBsdWdpbixcbiAgSW5zdGFsbGVkUGx1Z2luU3RhdGUsXG4gIHVwZGF0ZVBsdWdpblxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4taW5zdGFsbC1zdGF0ZS50cyc7XG5leHBvcnQge1xuICBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUsXG4gIFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FLFxuICB0cmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnRcbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU2V0dGluZ3NUYWJCYXNlLFxuICBTQVZFX1RPX0ZJTEVfQ09OVEVYVFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tc2V0dGluZ3MtdGFiLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbkJhc2UsXG4gIHJlbG9hZFBsdWdpbixcbiAgc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpblxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4udHMnO1xuZXhwb3J0IHsgZ2V0U2V0dGluZ3NNaWdyYXRpb25BcGlDb250cmFjdCB9IGZyb20gJy4vcGx1Z2luL3NldHRpbmdzLW1pZ3JhdGlvbi1hcGkudHMnO1xuZXhwb3J0IHsgZWRpdEZpZWxkc0luUG9wb3ZlciB9IGZyb20gJy4vcG9wb3ZlcnMvZmllbGQtcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBjcmVhdGVBbmNob3JGcm9tRG9jdW1lbnRDZW50ZXIsXG4gIGNyZWF0ZUFuY2hvckZyb21FbGVtZW50LFxuICBjcmVhdGVBbmNob3JGcm9tUG9pbnQsXG4gIGNyZWF0ZUFuY2hvckZyb21TZWxlY3Rpb25cbn0gZnJvbSAnLi9wb3BvdmVycy9wb3BvdmVyLWFuY2hvci50cyc7XG5leHBvcnQgeyBzaG93UG9wb3ZlciB9IGZyb20gJy4vcG9wb3ZlcnMvcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBjaGVja1Byb3BlcnR5RW50cnlNYXRjaGVzLFxuICBpc1Byb3BlcnR5RW50cnksXG4gIFBST1BFUlRZX0VOVFJZX1BSRUZJWFxufSBmcm9tICcuL3Byb3BlcnR5LWVudHJ5LnRzJztcbmV4cG9ydCB7XG4gIGFkZFRvUXVldWUsXG4gIGFkZFRvUXVldWVBbmRXYWl0LFxuICBmbHVzaFF1ZXVlXG59IGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0IHtcbiAgQXBwQ29udGV4dCxcbiAgdXNlQXBwXG59IGZyb20gJy4vcmVhY3QvYXBwLWNvbnRleHQudHMnO1xuZXhwb3J0IHtcbiAgZ2V0UmVmZXJlbmNlTGlua1RleHQsXG4gIGlzQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIGlzQ2FudmFzUmVmZXJlbmNlLFxuICBpc0NhbnZhc1RleHROb2RlUmVmZXJlbmNlLFxuICBpc1JlZmVyZW5jZUluT2Zmc2V0UmFuZ2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoQnlBbmNlc3RvcixcbiAgbG9ja1Jlc291cmNlRm9yUGF0aCxcbiAgcmVxdWVzdFJlc291cmNlVW5sb2NrRm9yUGF0aCxcbiAgUmVzb3VyY2VMb2NrQ29tcG9uZW50LFxuICBSZXNvdXJjZUxvY2tlZEVycm9yLFxuICB1bmxvY2tSZXNvdXJjZUZvclBhdGhcbn0gZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgeyBQbHVnaW5SaWJib25JY29uUmVnaXN0cmFyIH0gZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS10aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2VtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTW9udGhDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9tb250aC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZW1haWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL251bWJlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9wYXNzd29yZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZW5zdXJlV3JhcHBlZCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50LXdyYXBwZXIudHMnO1xuZXhwb3J0IHsgVGVsZXBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGVsZXBob25lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRpbWVDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLW11bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXJhbmdlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFVybENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3VybC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdmFsaWRhdG9yLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBXZWVrQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvd2Vlay1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYWRvcHRTZXR0aW5nRXgsXG4gIFNldHRpbmdFeFxufSBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0IHsgU2V0dGluZ0dyb3VwRXggfSBmcm9tICcuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0IHsgUGx1Z2luU3RhdHVzQmFySXRlbVJlZ2lzdHJhciB9IGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRUZW1wbGF0ZXJGdW5jdGlvbnMsXG4gIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUsXG4gIHBhcnNlVGVtcGxhdGUsXG4gIHJlcXVpcmVUZW1wbGF0ZXJBcGksXG4gIHJlc29sdmVUZW1wbGF0ZXJBcGksXG4gIFRFTVBMQVRFUl9QTFVHSU5fSUQsXG4gIFRlbXBsYXRlckFjdGl2ZUZpbGVQcm92aWRlcixcbiAgVGVtcGxhdGVyUnVuTW9kZSxcbiAgVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3Jcbn0gZnJvbSAnLi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2R1cmF0aW9uLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7XG4gIGNsaWNrRWxlbWVudCxcbiAgY2xpY2tNb3VzZSxcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7XG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcixcbiAgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lLFxuICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlMsXG4gIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyxcbiAgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSU1xufSBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlSWZOb3RVc2VkLFxuICBEZWxldGVJZk5vdFVzZWRSZXN1bHRcbn0gZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0IHsgVmF1bHRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgY2xlYW51cEVtcHR5Rm9sZGVycyxcbiAgY29weVNhZmUsXG4gIGNyZWF0ZUZvbGRlclNhZmUsXG4gIENyZWF0ZUZvbGRlclNhZmVSZXN1bHQsXG4gIGNyZWF0ZVRlbXBvcmFyeUZpbGUsXG4gIGNyZWF0ZVRlbXBvcmFyeUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5LFxuICBnZXRBYnN0cmFjdEZpbGVQYXRoU2FmZSxcbiAgZ2V0QXZhaWxhYmxlUGF0aCxcbiAgZ2V0RmlsZVBhdGhTYWZlLFxuICBnZXRGb2xkZXJQYXRoU2FmZSxcbiAgZ2V0TWFya2Rvd25GaWxlc1NvcnRlZCxcbiAgZ2V0Tm90ZUZpbGVzU29ydGVkLFxuICBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyU2FmZSxcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIEludm9rZUZpbGVBY3Rpb25TYWZlUmVzdWx0LFxuICBpbnZva2VXaXRoRmlsZVN5c3RlbUxvY2ssXG4gIGlzQ2hpbGQsXG4gIGlzQ2hpbGRPclNlbGYsXG4gIGlzRW1wdHlGb2xkZXIsXG4gIGxpc3RTYWZlLFxuICBwcm9jZXNzLFxuICByZWFkU2FmZSxcbiAgcmVuYW1lU2FmZSxcbiAgc2F2ZU5vdGUsXG4gIHRyYXNoU2FmZVxufSBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCB7IFBsdWdpblZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGVuc3VyZUxheW91dFJlYWR5LFxuICBnZXRBbGxDb250YWluZXJzLFxuICBnZXRBbGxEb21XaW5kb3dzLFxuICBnZXRNYWluV2luZG93LFxuICBzd2l0Y2hUb01haW5XaW5kb3csXG4gIHN3aXRjaFRvV2luZG93XG59IGZyb20gJy4vd29ya3NwYWNlLnRzJztcbmV4cG9ydCB7XG4gIGFib3J0U2lnbmFsQW55LFxuICBhYm9ydFNpZ25hbE5ldmVyLFxuICBhYm9ydFNpZ25hbFRpbWVvdXQsXG4gIGdldFNoYXJlZEFib3J0Q29udHJvbGxlcixcbiAgZ2V0U2hhcmVkQWJvcnRTaWduYWwsXG4gIElORklOSVRFX1RJTUVPVVQsXG4gIG9uQWJvcnQsXG4gIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIsXG4gIHdhaXRGb3JBYm9ydFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYWJvcnQtY29udHJvbGxlcic7XG5leHBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVFcnJvciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hZ2dyZWdhdGUtZXJyb3InO1xuZXhwb3J0IHtcbiAgYXJyYXlHdWFyZCxcbiAgQk9PTEVBTl9HVUFSRCxcbiAgY3JlYXRlQXBpQ29udHJhY3RTY2hlbWFCdWlsZGVycyxcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVFeHBlY3RlZFR5cGVHdWFyZCxcbiAgY3JlYXRlVHlwZUd1YXJkU2NoZW1hLFxuICBkZWZpbmVBcGlDb250cmFjdCxcbiAgaW5zdGFuY2VPZkd1YXJkLFxuICBsaXRlcmFsR3VhcmQsXG4gIG51bGxhYmxlR3VhcmQsXG4gIE5VTUJFUl9HVUFSRCxcbiAgb2JqZWN0R3VhcmQsXG4gIG9wdGlvbmFsR3VhcmQsXG4gIG9wdGlvbnNHdWFyZCxcbiAgU1RSSU5HX0FSUkFZX0dVQVJELFxuICBTVFJJTkdfR1VBUkQsXG4gIFVOREVGSU5FRF9HVUFSRCxcbiAgdW5pb25HdWFyZFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0JztcbmV4cG9ydCB7XG4gIHZhbGlkYXRlU3luYyxcbiAgdmVyaWZ5QXBpQ29udHJhY3Rcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdC12ZXJpZmllcic7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcnJheSc7XG5leHBvcnQgeyB0b0FycmF5QnVmZmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FycmF5LWJ1ZmZlcic7XG5leHBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGFzeW5jRmlsdGVyLFxuICBhc3luY0ZpbHRlckluUGxhY2UsXG4gIGFzeW5jRmxhdE1hcCxcbiAgYXN5bmNNYXAsXG4gIGNoYWluLFxuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGNvbnZlcnRTeW5jVG9Bc3luYyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc1Rlcm1pbmF0aW9uT25UaW1lb3V0RW5hYmxlZCxcbiAgbWFya3NBc1Rlcm1pbmF0ZVJldHJ5LFxuICBuZXZlckVuZHMsXG4gIG5leHRUaWNrQXN5bmMsXG4gIG5vcm1hbGl6ZVByb21pc2FibGUsXG4gIHByb21pc2VBbGxBc3luY0Zuc1NlcXVlbnRpYWxseSxcbiAgcHJvbWlzZUFsbFNlcXVlbnRpYWxseSxcbiAgcXVldWVNaWNyb3Rhc2tBc3luYyxcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMsXG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0LFxuICBzZXRJbW1lZGlhdGVBc3luYyxcbiAgc2V0VGVybWluYXRpb25PblRpbWVvdXRFbmFibGVkLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5leHBvcnQge1xuICBBc3luY0V2ZW50UmVmRGlzcG9zYWJsZSxcbiAgQXN5bmNFdmVudHMsXG4gIEFzeW5jRXZlbnRzQmFzZSxcbiAgbWl4aW5Bc3luY0V2ZW50cyxcbiAgc3Vic2NyaWJlQXN5bmNEaXNwb3NhYmxlRXZlbnRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5leHBvcnQge1xuICBBU1lOQ19PUEVSQVRJT05fSE9PS19LRVksXG4gIEFTWU5DX09QRVJBVElPTl9IT09LX1ZFUlNJT04sXG4gIGdldEFzeW5jT3BlcmF0aW9uSG9vayxcbiAgbm90aWZ5QXN5bmNPcGVyYXRpb25TdGFydGVkLFxuICBzZXRBc3luY09wZXJhdGlvbkhvb2tcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLW9wZXJhdGlvbi1ob29rJztcbmV4cG9ydCB7IEJlZXBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9iZWVwZXInO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9ibG9iJztcbmV4cG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2J5dGVzJztcbmV4cG9ydCB7XG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMsXG4gIGdldERlYnVnQ29udHJvbGxlcixcbiAgZ2V0RGVidWdnZXIsXG4gIGdldExpYkRlYnVnZ2VyLFxuICBwcmludFdpdGhTdGFja1RyYWNlLFxuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuZXhwb3J0IHtcbiAgZ2V0RGVidWdTd2l0Y2gsXG4gIGdldERlYnVnU3dpdGNoZXMsXG4gIGdldFRlcm1pbmF0ZU9uVGltZW91dERlYnVnU3dpdGNoLFxuICBvbkRlYnVnU3dpdGNoQ2hhbmdlZCxcbiAgcmVnaXN0ZXJEZWJ1Z1N3aXRjaCxcbiAgc2V0RGVidWdTd2l0Y2hcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLXN3aXRjaGVzJztcbmV4cG9ydCB7IGV4dHJhY3RaaXBBcmNoaXZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Rlc2t0b3AtemlwLWV4dHJhY3Rvcic7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQXN5bmNEaXNwb3NhYmxlQmFzZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zYWJsZUJhc2UsXG4gIGRpc3Bvc2UsXG4gIGRpc3Bvc2VBc3luYyxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGlzcG9zYWJsZSc7XG5leHBvcnQge1xuICBnZXRFbnVtS2V5LFxuICBnZXRFbnVtVmFsdWVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2VudW0nO1xuZXhwb3J0IHtcbiAgQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICBDdXN0b21TdGFja1RyYWNlRXJyb3IsXG4gIGRyYWluQ29sbGVjdGVkVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGVycm9yVG9TdHJpbmcsXG4gIEVycm9yV3JhcHBlcixcbiAgZ2V0U3RhY2tUcmFjZSxcbiAgaXNBc3luY0Vycm9ySWdub3JlQ29udGV4dEFjdGl2ZSxcbiAgcHJpbnRFcnJvcixcbiAgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyLFxuICBTaWxlbnRFcnJvcixcbiAgc3RhcnRBc3luY0Vycm9ySWdub3JlQ29udGV4dCxcbiAgc3RhcnRDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHN0b3BDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgY3JlYXRlRGl2QXN5bmMsXG4gIGNyZWF0ZUVsQXN5bmMsXG4gIGNyZWF0ZUZyYWdtZW50QXN5bmMsXG4gIGNyZWF0ZVNwYW5Bc3luYyxcbiAgY3JlYXRlU3ZnQXN5bmMsXG4gIGVuc3VyZUxvYWRlZCxcbiAgZ2V0RG9jdW1lbnRXaW5kb3csXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5leHBvcnQge1xuICBleHRyYWN0SnBlZ01ldGFkYXRhU2VnbWVudHMsXG4gIGluamVjdEpwZWdNZXRhZGF0YVNlZ21lbnRzXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9qcGVnLW1ldGFkYXRhJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfREVCVUdfTkFNRVNQQUNFLFxuICBMaWJyYXJ5LFxuICBMSUJSQVJZX05BTUVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuZXhwb3J0IHtcbiAgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBjYXN0VG8sXG4gIGNsb25lV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0eSxcbiAgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wLFxuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgZ2V0QWxsRW50cmllcyxcbiAgZ2V0QWxsS2V5cyxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgZ2V0UHJvdG90eXBlT2YsXG4gIGlzRGVlcEVxdWFsLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuZXhwb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRlbGltaXRlcixcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgZm9ybWF0LFxuICBnZXRGaWxlTmFtZSxcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgaXNBYnNvbHV0ZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lLFxuICBub3JtYWxpemVJZlJlbGF0aXZlLFxuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZSxcbiAgcG9zaXgsXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICBzZXBhcmF0b3IsXG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmV4cG9ydCB7XG4gIEFMV0FZU19NQVRDSF9SRUdfRVhQLFxuICBlc2NhcGVSZWdFeHAsXG4gIGdldE1hbmRhdG9yeU5hbWVkR3JvdXAsXG4gIGdldE9wdGlvbmFsTmFtZWRHcm91cCxcbiAgaXNWYWxpZFJlZ0V4cCxcbiAgTkVWRVJfTUFUQ0hfUkVHX0VYUCxcbiAgb25lT2YsXG4gIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmV4cG9ydCB7XG4gIEVNUFRZLFxuICBlbnN1cmVFbmRzV2l0aCxcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBlbnN1cmVTdGFydHNXaXRoLFxuICBlc2NhcGUsXG4gIGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIsXG4gIGhhc1NpbmdsZU9jY3VycmVuY2UsXG4gIGluZGVudCxcbiAgaW5zZXJ0QXQsXG4gIG1ha2VWYWxpZFZhcmlhYmxlTmFtZSxcbiAgbm9ybWFsaXplU3RyaW5nLFxuICByZXBsYWNlLFxuICByZXBsYWNlQWxsLFxuICByZXBsYWNlQWxsQXN5bmMsXG4gIHRyaW1FbmQsXG4gIHRyaW1TdGFydCxcbiAgdW5lc2NhcGUsXG4gIHVuaW5kZW50XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuZXhwb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NldC10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R3by13YXktbWFwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R5cGVkLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR3b1dheU1hcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90d28td2F5LW1hcCc7XG5leHBvcnQgeyBUeXBlQXNzZXJ0ZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5leHBvcnQge1xuICBhcnJheVR5cGVHdWFyZCxcbiAgYXNzZXJ0LFxuICBhc3NlcnRHZW5lcmljT2JqZWN0LFxuICBhc3NlcnROZXZlcixcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZUdlbmVyaWNPYmplY3QsXG4gIGVuc3VyZU5vbk51bGxhYmxlLFxuICBmdW5jdGlvblR5cGVHdWFyZCxcbiAgaW5zdGFuY2VPZlR5cGVHdWFyZCxcbiAgaXNCb29sZWFuLFxuICBpc0Z1bmN0aW9uLFxuICBpc051bGwsXG4gIGlzTnVtYmVyLFxuICBpc09iamVjdCxcbiAgaXNTdHJpbmcsXG4gIGlzU3RyaW5nQXJyYXksXG4gIGlzVW5kZWZpbmVkLFxuICBsaXRlcmFsVHlwZUd1YXJkLFxuICBudWxsYWJsZVR5cGVHdWFyZCxcbiAgb2JqZWN0VHlwZUd1YXJkLFxuICBvcHRpb25hbFR5cGVHdWFyZCxcbiAgdW5pb25UeXBlR3VhcmRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmV4cG9ydCB7XG4gIGdldFR5cGVzY3JpcHRMaWJTdGF0ZSxcbiAgZ2V0VHlwZXNjcmlwdExpYlN0YXRlU2xvdCxcbiAgcmVzZXRUeXBlc2NyaXB0TGliU3RhdGUsXG4gIFRZUEVTQ1JJUFRfTElCX1NUQVRFX0tFWSxcbiAgVFlQRVNDUklQVF9MSUJfU1RBVEVfVkVSU0lPTlxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZXNjcmlwdC1saWItc3RhdGUnO1xuZXhwb3J0IHtcbiAgZW5jb2RlVXJsLFxuICBpc0ZpbGVVcmwsXG4gIGlzVXJsLFxuICBub3JtYWxpemVGaWxlVXJsLFxuICBwYXRoVG9GaWxlVXJsXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi91cmwnO1xuZXhwb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3ZhbHVlLXByb3ZpZGVyJztcbmV4cG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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
|
|
@@ -81,8 +81,8 @@ export { DEFAULT_NS, initI18N, t } from './i18n/i18n.cjs';
|
|
|
81
81
|
export { en } from './i18n/locales/en.cjs';
|
|
82
82
|
export { DEFAULT_LANGUAGE, defaultTranslationsMap } from './i18n/locales/translations-map.cjs';
|
|
83
83
|
export { isInObsidian } from './is-in-obsidian.cjs';
|
|
84
|
-
export { injectLibraryStyles,
|
|
85
|
-
export {
|
|
84
|
+
export { injectLibraryStyles, LAST_LIBRARY_VERSION_KEY, LIBRARY_STYLES_ELEMENT_ID } from './library-styles.cjs';
|
|
85
|
+
export { OBSIDIAN_LIBRARY_NAME, ObsidianLibrary } from './library.cjs';
|
|
86
86
|
export { normalizeLinkName } from './link-name.cjs';
|
|
87
87
|
export { buildBacklinksSnapshot, convertLink, editBacklinks, editBacklinksSnapshot, editLinks, editLinksInContent, extractLinkFile, generateMarkdownLink, generateRawMarkdownLink, getGenerateMarkdownLinkDefaultParamsFns, hasAngleBrackets, hasEmbedSyntax, hasLeadingDot, hasLeadingSlash, hasWikilinkSyntax, LinkPathStyle, LinkStyle, shouldResetAlias, splitSubpath, updateFileUrlLinksInContent, updateFileUrlLinksInFile, updateLink, updateLinksInContent, updateLinksInFile } from './link.cjs';
|
|
88
88
|
export { invokeAsyncAndLog } from './logger.cjs';
|
|
@@ -104,7 +104,7 @@ export { selectOption } from './modals/select-option.cjs';
|
|
|
104
104
|
export { SuggestModalCommandBuilder } from './modals/suggest-modal-command-builder.cjs';
|
|
105
105
|
export { filterHighestPriorityNotePaths, findNoPriorityWinnerReason, findNotePriorityRank, NO_PRIORITY_MATCH, NoPriorityWinnerReason, pickHighestPriorityNotePath } from './note-priority.cjs';
|
|
106
106
|
export { NOTEBOOK_NAVIGATOR_MENU_SOURCE, NOTEBOOK_NAVIGATOR_PLUGIN_ID, resolveNotebookNavigatorApi } from './notebook-navigator.cjs';
|
|
107
|
-
export {
|
|
107
|
+
export { getObsidianLibState, resetObsidianLibState } from './obsidian-lib-state.cjs';
|
|
108
108
|
export { PluginObsidianProtocolHandlerRegistrar } from './obsidian-protocol-handler-registrar.cjs';
|
|
109
109
|
export { getNewLinkFormat, isSpellcheckEnabled, isSpellcheckEnabledForMode, shouldUseWikilinks, SpellcheckMode } from './obsidian-settings.cjs';
|
|
110
110
|
export { escapeAlias, isParseLinkFrontmatterReference, isParseLinkReference, parseFrontmatterLinks, parseLink, parseLinks, toParseLinkReference, unescapeAlias } from './parse-link.cjs';
|
|
@@ -115,7 +115,7 @@ export { findPluginApi, getValidatePluginApiPayloadsDebugSwitch, PluginApiPayloa
|
|
|
115
115
|
export { addPluginCssClasses, initDebugController, initPluginContext } from './plugin/plugin-context.cjs';
|
|
116
116
|
export { PluginEventSourceImpl } from './plugin/plugin-event-source.cjs';
|
|
117
117
|
export { getInstalledPluginState, getInstalledPluginVersion, installAndEnablePlugin, InstalledPluginState, updatePlugin } from './plugin/plugin-install-state.cjs';
|
|
118
|
-
export {
|
|
118
|
+
export { PLUGIN_LOADED_EVENT_NAME, PLUGIN_UNLOADED_EVENT_NAME, triggerPluginLifecycleEvent } from './plugin/plugin-lifecycle-events.cjs';
|
|
119
119
|
export { PluginSettingsTabBase, SAVE_TO_FILE_CONTEXT } from './plugin/plugin-settings-tab.cjs';
|
|
120
120
|
export { PluginBase, reloadPlugin, showErrorAndDisablePlugin } from './plugin/plugin.cjs';
|
|
121
121
|
export { getSettingsMigrationApiContract } from './plugin/settings-migration-api.cjs';
|
|
@@ -125,7 +125,7 @@ export { showPopover } from './popovers/popover.cjs';
|
|
|
125
125
|
export { checkPropertyEntryMatches, isPropertyEntry, PROPERTY_ENTRY_PREFIX } from './property-entry.cjs';
|
|
126
126
|
export { addToQueue, addToQueueAndWait, flushQueue } from './queue.cjs';
|
|
127
127
|
export { AppContext, useApp } from './react/app-context.cjs';
|
|
128
|
-
export { isCanvasFileNodeReference, isCanvasReference, isCanvasTextNodeReference, isReferenceInOffsetRange, referenceToFileChange, sortReferences } from './reference.cjs';
|
|
128
|
+
export { getReferenceLinkText, isCanvasFileNodeReference, isCanvasReference, isCanvasTextNodeReference, isReferenceInOffsetRange, referenceToFileChange, sortReferences } from './reference.cjs';
|
|
129
129
|
export { isResourceLockedForPath, isResourceLockedForPathByAncestor, lockResourceForPath, requestResourceUnlockForPath, ResourceLockComponent, ResourceLockedError, unlockResourceForPath } from './resource-lock.cjs';
|
|
130
130
|
export { relativePathToResourceUrl } from './resource-url.cjs';
|
|
131
131
|
export { PluginRibbonIconRegistrar } from './ribbon-icon-registrar.cjs';
|
|
@@ -145,23 +145,23 @@ function onTimeoutNotice(context, pluginNoticeComponent, content) {
|
|
|
145
145
|
const cleanup = { intervalId: 0 };
|
|
146
146
|
const notice = pluginNoticeComponent.showNotice(createFragment((f) => {
|
|
147
147
|
if (context.operationName) {
|
|
148
|
-
f.appendText((0, import_i18n.t)(($) => $.
|
|
148
|
+
f.appendText((0, import_i18n.t)(($) => $.obsidianLib.asyncWithNotice.operation));
|
|
149
149
|
f.appendText(": ");
|
|
150
150
|
f.appendText(context.operationName);
|
|
151
151
|
f.createEl("br");
|
|
152
152
|
}
|
|
153
|
-
f.appendText((0, import_i18n.t)(($) => $.
|
|
153
|
+
f.appendText((0, import_i18n.t)(($) => $.obsidianLib.asyncWithNotice.timedOut, { duration: context.duration }));
|
|
154
154
|
f.createEl("br");
|
|
155
|
-
f.appendText((0, import_i18n.t)(($) => $.
|
|
155
|
+
f.appendText((0, import_i18n.t)(($) => $.obsidianLib.asyncWithNotice.runningFor));
|
|
156
156
|
f.appendText(" ");
|
|
157
157
|
runningTimeEl = f.createSpan();
|
|
158
158
|
f.appendText(" ");
|
|
159
|
-
f.appendText((0, import_i18n.t)(($) => $.
|
|
159
|
+
f.appendText((0, import_i18n.t)(($) => $.obsidianLib.asyncWithNotice.milliseconds));
|
|
160
160
|
f.createEl("br");
|
|
161
|
-
f.appendText((0, import_i18n.t)(($) => $.
|
|
161
|
+
f.appendText((0, import_i18n.t)(($) => $.obsidianLib.asyncWithNotice.terminateOperation));
|
|
162
162
|
f.createEl("br");
|
|
163
163
|
const button = f.createEl("button", {
|
|
164
|
-
text: (0, import_i18n.t)(($) => $.
|
|
164
|
+
text: (0, import_i18n.t)(($) => $.obsidianLib.buttons.cancel)
|
|
165
165
|
});
|
|
166
166
|
button.addEventListener("click", () => {
|
|
167
167
|
context.terminateOperation();
|
|
@@ -214,4 +214,4 @@ function showCustomContentNotice(context, pluginNoticeComponent, content) {
|
|
|
214
214
|
retryWithTimeoutNotice,
|
|
215
215
|
runWithTimeoutNotice
|
|
216
216
|
});
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hc3luYy13aXRoLW5vdGljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXMgYSB1dGlsaXR5IHRvIGV4ZWN1dGUgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHdpdGggYSBub3RpY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBSZXRyeU9wdGlvbnMsXG4gIFRpbWVvdXRDb250ZXh0XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdmFsdWUtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBpbnZva2VBc3luY1NhZmVseSxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS1wcm92aWRlcic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gY29udGVudCB0byBzaG93IGluIHRoZSBub3RpY2UgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0aW1lZC1vdXQgbWVzc2FnZS4gUmVzb2x2ZWQgb25seSBpZlxuICAgKiB0aGUgb3BlcmF0aW9uIGV4Y2VlZHMgdGhlIHRpbWVvdXQsIHNob3duIGFzIGEgcGVybWFuZW50IG5vdGljZSwgYW5kIGhpZGRlbiB3aGVuIHRoZSBvcGVyYXRpb25cbiAgICogY29tcGxldGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudD86IFZhbHVlUHJvdmlkZXI8RG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHNob3cgdGhlIHRpbWVvdXQgbm90aWNlLiBXaGVuIGBudWxsYCAob3IgYHNob3VsZFNob3dUaW1lb3V0Tm90aWNlYFxuICAgKiBpcyBgZmFsc2VgKSwgbm8gbm90aWNlIGlzIHNob3duIGFuZCB0aGUgdGltZW91dCBpcyBvbmx5IGxvZ2dlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogbnVsbCB8IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIHJldHJ5IG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSByZXRyeU9wdGlvbnM/OiBSZXRyeU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHRpbWVvdXQgbm90aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dUaW1lb3V0Tm90aWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRyYWNlIG9mIHRoZSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBydW5XaXRoVGltZW91dH0uXG4gKlxuICogQHR5cGVQYXJhbSBSZXN1bHQgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIG9wZXJhdGlvbiBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5XaXRoVGltZW91dE5vdGljZVBhcmFtczxSZXN1bHQ+IHtcbiAgLyoqXG4gICAqIEN1c3RvbSBjb250ZW50IHRvIHNob3cgaW4gdGhlIG5vdGljZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHRpbWVkLW91dCBtZXNzYWdlLiBSZXNvbHZlZCBvbmx5IGlmXG4gICAqIHRoZSBvcGVyYXRpb24gZXhjZWVkcyB7QGxpbmsgUnVuV2l0aFRpbWVvdXROb3RpY2VQYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzfSwgc2hvd24gYXMgYVxuICAgKiBwZXJtYW5lbnQgbm90aWNlLCBhbmQgaGlkZGVuIHdoZW4gdGhlIG9wZXJhdGlvbiBjb21wbGV0ZXMuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50PzogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8UmVzdWx0PjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBub3RpY2UgY29tcG9uZW50IHVzZWQgdG8gc2hvdyB0aGUgdGltZW91dCBub3RpY2UuIFdoZW4gYG51bGxgIChvciBgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2VgXG4gICAqIGlzIGBmYWxzZWApLCBubyBub3RpY2UgaXMgc2hvd24gYW5kIHRoZSB0aW1lb3V0IGlzIG9ubHkgbG9nZ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBudWxsIHwgUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgYHRydWVgIG9yIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQgYW5kIGRpc3BsYXlzIGEgbm90aWNlIGlmIHRoZSBmdW5jdGlvbiB0aW1lcyBvdXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShwYXJhbXM6IFJldHJ5V2l0aFRpbWVvdXROb3RpY2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHJldHJ5V2l0aFRpbWVvdXQoe1xuICAgIC4uLnBhcmFtcyxcbiAgICBvblRpbWVvdXQ6IHJlc29sdmVPblRpbWVvdXQocGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlLCBwYXJhbXMucGx1Z2luTm90aWNlQ29tcG9uZW50LCBwYXJhbXMuY29udGVudClcbiAgfSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGEgdGltZW91dCBhbmQgZGlzcGxheXMgYSBub3RpY2UgaWYgdGhlIGZ1bmN0aW9uIHRpbWVzIG91dC5cbiAqXG4gKiBAdHlwZVBhcmFtIFJlc3VsdCAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0Tm90aWNlPFJlc3VsdD4ocGFyYW1zOiBSdW5XaXRoVGltZW91dE5vdGljZVBhcmFtczxSZXN1bHQ+KTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgcmV0dXJuIHJ1bldpdGhUaW1lb3V0KHtcbiAgICAuLi5wYXJhbXMsXG4gICAgb25UaW1lb3V0OiByZXNvbHZlT25UaW1lb3V0KHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSwgcGFyYW1zLnBsdWdpbk5vdGljZUNvbXBvbmVudCwgcGFyYW1zLmNvbnRlbnQpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvblRpbWVvdXROb3RpY2UoY29udGV4dDogVGltZW91dENvbnRleHQsIHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50LCBjb250ZW50PzogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPik6IHZvaWQge1xuICBpZiAoY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgc2hvd0N1c3RvbUNvbnRlbnROb3RpY2UoY29udGV4dCwgcGx1Z2luTm90aWNlQ29tcG9uZW50LCBjb250ZW50KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdGFydFRpbWUgPSBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gY29udGV4dC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuICBjb25zdCBjbGVhbnVwID0geyBpbnRlcnZhbElkOiAwIH07XG5cbiAgY29uc3Qgbm90aWNlID0gcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY29udGV4dC5vcGVyYXRpb25OYW1lKSB7XG4gICAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5vcGVyYXRpb24pKTtcbiAgICAgIGYuYXBwZW5kVGV4dCgnOiAnKTtcbiAgICAgIGYuYXBwZW5kVGV4dChjb250ZXh0Lm9wZXJhdGlvbk5hbWUpO1xuICAgICAgZi5jcmVhdGVFbCgnYnInKTtcbiAgICB9XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UudGltZWRPdXQsIHsgZHVyYXRpb246IGNvbnRleHQuZHVyYXRpb24gfSkpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5taWxsaXNlY29uZHMpKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRlcm1pbmF0ZU9wZXJhdGlvbikpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgY29uc3QgYnV0dG9uID0gZi5jcmVhdGVFbCgnYnV0dG9uJywge1xuICAgICAgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGNvbnRleHQudGVybWluYXRlT3BlcmF0aW9uKCk7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChjbGVhbnVwLmludGVydmFsSWQpO1xuICAgICAgbm90aWNlLmhpZGUoKTtcbiAgICB9KTtcbiAgfSkpO1xuXG4gIHVwZGF0ZVJ1bm5pbmdUaW1lKCk7XG4gIGNsZWFudXAuaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY29udGV4dC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgd2luZG93LmNsZWFySW50ZXJ2YWwoY2xlYW51cC5pbnRlcnZhbElkKTtcbiAgICBub3RpY2UuaGlkZSgpO1xuICB9KTtcblxuICBmdW5jdGlvbiB1cGRhdGVSdW5uaW5nVGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCBydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzID0gTWF0aC5tYXgoY29udGV4dC5kdXJhdGlvbiwgTWF0aC5yb3VuZCgocGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWUpIC8gU0VDT05EX0lOX01JTExJU0VDT05EUykgKiBTRUNPTkRfSU5fTUlMTElTRUNPTkRTKTtcbiAgICBydW5uaW5nVGltZUVsLnRleHRDb250ZW50ID0gU3RyaW5nKHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uVGltZW91dFdpdGhvdXROb3RpY2UoY29udGV4dDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGNvbnRleHQuZHVyYXRpb24pO1xuXG4gIGNvbnRleHQub25PcGVyYXRpb25Db21wbGV0ZWQoKCkgPT4ge1xuICAgIGdldERlYnVnZ2VyKCdBc3luY1dpdGhOb3RpY2U6b25UaW1lb3V0V2l0aG91dE5vdGljZScpKCdPcGVyYXRpb24gY29tcGxldGVkIGFmdGVyIHRpbWVvdXQnLCB7XG4gICAgICBvcGVyYXRpb25OYW1lOiBjb250ZXh0Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBTZWxlY3RzIHRoZSB0aW1lb3V0IGhhbmRsZXIgZm9yIHtAbGluayByZXRyeVdpdGhUaW1lb3V0Tm90aWNlfSAvIHtAbGluayBydW5XaXRoVGltZW91dE5vdGljZX0uIEEgbm90aWNlXG4gKiBpcyBzaG93biBvbmx5IHdoZW4gbm90aWNlcyBhcmUgZW5hYmxlZCBBTkQgYSByZWFsIHtAbGluayBQbHVnaW5Ob3RpY2VDb21wb25lbnR9IGlzIHN1cHBsaWVkOyBvdGhlcndpc2VcbiAqIHRoZSB0aW1lb3V0IGlzIHNpbGVudGx5IGxvZ2dlZC5cbiAqXG4gKiBAcGFyYW0gc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UgLSBXaGV0aGVyIGEgdGltZW91dCBub3RpY2UgaXMgcmVxdWVzdGVkIChkZWZhdWx0cyB0byBgdHJ1ZWApLlxuICogQHBhcmFtIHBsdWdpbk5vdGljZUNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdXNlZCB0byBzaG93IHRoZSBub3RpY2UsIGlmIGFueS5cbiAqIEBwYXJhbSBjb250ZW50IC0gT3B0aW9uYWwgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBub3RpY2UuXG4gKiBAcmV0dXJucyBUaGUgdGltZW91dCBoYW5kbGVyIHRvIHBhc3MgdG8gdGhlIHVuZGVybHlpbmcgcmV0cnkvcnVuIGhlbHBlci5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZU9uVGltZW91dChcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIHBsdWdpbk5vdGljZUNvbXBvbmVudDogbnVsbCB8IFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgY29udGVudD86IFZhbHVlUHJvdmlkZXI8RG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZz5cbik6IChjb250ZXh0OiBUaW1lb3V0Q29udGV4dCkgPT4gdm9pZCB7XG4gIHJldHVybiAhKHNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUpIHx8IHBsdWdpbk5vdGljZUNvbXBvbmVudCA9PT0gbnVsbFxuICAgID8gb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICAgIDogKGNvbnRleHQpOiB2b2lkID0+IHtcbiAgICAgIG9uVGltZW91dE5vdGljZShjb250ZXh0LCBwbHVnaW5Ob3RpY2VDb21wb25lbnQsIGNvbnRlbnQpO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIHNob3dDdXN0b21Db250ZW50Tm90aWNlKGNvbnRleHQ6IFRpbWVvdXRDb250ZXh0LCBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudCwgY29udGVudDogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPik6IHZvaWQge1xuICBsZXQgaXNPcGVyYXRpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgbGV0IG5vdGljZTogTm90aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgY29udGV4dC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgaXNPcGVyYXRpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgIG5vdGljZT8uaGlkZSgpO1xuICB9KTtcblxuICBpbnZva2VBc3luY1NhZmVseShhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRDb250ZW50ID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvbnRlbnQsIHt9KTtcbiAgICAvLyBUaGUgb3BlcmF0aW9uIG1heSBoYXZlIGNvbXBsZXRlZCB3aGlsZSB0aGUgY29udGVudCB3YXMgcmVzb2x2aW5nOyBpZiBzbywgZG8gbm90IHNob3cgYSBzdGFsZSBub3RpY2UuXG4gICAgaWYgKGlzT3BlcmF0aW9uQ29tcGxldGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG5vdGljZSA9IHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKHJlc29sdmVkQ29udGVudCwgeyBpc1Blcm1hbmVudDogdHJ1ZSB9KTtcbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7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
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hc3luYy13aXRoLW5vdGljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXMgYSB1dGlsaXR5IHRvIGV4ZWN1dGUgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHdpdGggYSBub3RpY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBSZXRyeU9wdGlvbnMsXG4gIFRpbWVvdXRDb250ZXh0XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdmFsdWUtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBpbnZva2VBc3luY1NhZmVseSxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS1wcm92aWRlcic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gY29udGVudCB0byBzaG93IGluIHRoZSBub3RpY2UgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0aW1lZC1vdXQgbWVzc2FnZS4gUmVzb2x2ZWQgb25seSBpZlxuICAgKiB0aGUgb3BlcmF0aW9uIGV4Y2VlZHMgdGhlIHRpbWVvdXQsIHNob3duIGFzIGEgcGVybWFuZW50IG5vdGljZSwgYW5kIGhpZGRlbiB3aGVuIHRoZSBvcGVyYXRpb25cbiAgICogY29tcGxldGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudD86IFZhbHVlUHJvdmlkZXI8RG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHNob3cgdGhlIHRpbWVvdXQgbm90aWNlLiBXaGVuIGBudWxsYCAob3IgYHNob3VsZFNob3dUaW1lb3V0Tm90aWNlYFxuICAgKiBpcyBgZmFsc2VgKSwgbm8gbm90aWNlIGlzIHNob3duIGFuZCB0aGUgdGltZW91dCBpcyBvbmx5IGxvZ2dlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogbnVsbCB8IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIHJldHJ5IG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSByZXRyeU9wdGlvbnM/OiBSZXRyeU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHRpbWVvdXQgbm90aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dUaW1lb3V0Tm90aWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRyYWNlIG9mIHRoZSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBydW5XaXRoVGltZW91dH0uXG4gKlxuICogQHR5cGVQYXJhbSBSZXN1bHQgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIG9wZXJhdGlvbiBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5XaXRoVGltZW91dE5vdGljZVBhcmFtczxSZXN1bHQ+IHtcbiAgLyoqXG4gICAqIEN1c3RvbSBjb250ZW50IHRvIHNob3cgaW4gdGhlIG5vdGljZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHRpbWVkLW91dCBtZXNzYWdlLiBSZXNvbHZlZCBvbmx5IGlmXG4gICAqIHRoZSBvcGVyYXRpb24gZXhjZWVkcyB7QGxpbmsgUnVuV2l0aFRpbWVvdXROb3RpY2VQYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzfSwgc2hvd24gYXMgYVxuICAgKiBwZXJtYW5lbnQgbm90aWNlLCBhbmQgaGlkZGVuIHdoZW4gdGhlIG9wZXJhdGlvbiBjb21wbGV0ZXMuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50PzogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8UmVzdWx0PjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBub3RpY2UgY29tcG9uZW50IHVzZWQgdG8gc2hvdyB0aGUgdGltZW91dCBub3RpY2UuIFdoZW4gYG51bGxgIChvciBgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2VgXG4gICAqIGlzIGBmYWxzZWApLCBubyBub3RpY2UgaXMgc2hvd24gYW5kIHRoZSB0aW1lb3V0IGlzIG9ubHkgbG9nZ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBudWxsIHwgUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgYHRydWVgIG9yIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQgYW5kIGRpc3BsYXlzIGEgbm90aWNlIGlmIHRoZSBmdW5jdGlvbiB0aW1lcyBvdXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShwYXJhbXM6IFJldHJ5V2l0aFRpbWVvdXROb3RpY2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHJldHJ5V2l0aFRpbWVvdXQoe1xuICAgIC4uLnBhcmFtcyxcbiAgICBvblRpbWVvdXQ6IHJlc29sdmVPblRpbWVvdXQocGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlLCBwYXJhbXMucGx1Z2luTm90aWNlQ29tcG9uZW50LCBwYXJhbXMuY29udGVudClcbiAgfSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGEgdGltZW91dCBhbmQgZGlzcGxheXMgYSBub3RpY2UgaWYgdGhlIGZ1bmN0aW9uIHRpbWVzIG91dC5cbiAqXG4gKiBAdHlwZVBhcmFtIFJlc3VsdCAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0Tm90aWNlPFJlc3VsdD4ocGFyYW1zOiBSdW5XaXRoVGltZW91dE5vdGljZVBhcmFtczxSZXN1bHQ+KTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgcmV0dXJuIHJ1bldpdGhUaW1lb3V0KHtcbiAgICAuLi5wYXJhbXMsXG4gICAgb25UaW1lb3V0OiByZXNvbHZlT25UaW1lb3V0KHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSwgcGFyYW1zLnBsdWdpbk5vdGljZUNvbXBvbmVudCwgcGFyYW1zLmNvbnRlbnQpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvblRpbWVvdXROb3RpY2UoY29udGV4dDogVGltZW91dENvbnRleHQsIHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50LCBjb250ZW50PzogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPik6IHZvaWQge1xuICBpZiAoY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgc2hvd0N1c3RvbUNvbnRlbnROb3RpY2UoY29udGV4dCwgcGx1Z2luTm90aWNlQ29tcG9uZW50LCBjb250ZW50KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdGFydFRpbWUgPSBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gY29udGV4dC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuICBjb25zdCBjbGVhbnVwID0geyBpbnRlcnZhbElkOiAwIH07XG5cbiAgY29uc3Qgbm90aWNlID0gcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY29udGV4dC5vcGVyYXRpb25OYW1lKSB7XG4gICAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5hc3luY1dpdGhOb3RpY2Uub3BlcmF0aW9uKSk7XG4gICAgICBmLmFwcGVuZFRleHQoJzogJyk7XG4gICAgICBmLmFwcGVuZFRleHQoY29udGV4dC5vcGVyYXRpb25OYW1lKTtcbiAgICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgfVxuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmFzeW5jV2l0aE5vdGljZS50aW1lZE91dCwgeyBkdXJhdGlvbjogY29udGV4dC5kdXJhdGlvbiB9KSk7XG4gICAgZi5jcmVhdGVFbCgnYnInKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5hc3luY1dpdGhOb3RpY2UubWlsbGlzZWNvbmRzKSk7XG4gICAgZi5jcmVhdGVFbCgnYnInKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5hc3luY1dpdGhOb3RpY2UudGVybWluYXRlT3BlcmF0aW9uKSk7XG4gICAgZi5jcmVhdGVFbCgnYnInKTtcbiAgICBjb25zdCBidXR0b24gPSBmLmNyZWF0ZUVsKCdidXR0b24nLCB7XG4gICAgICB0ZXh0OiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGNvbnRleHQudGVybWluYXRlT3BlcmF0aW9uKCk7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChjbGVhbnVwLmludGVydmFsSWQpO1xuICAgICAgbm90aWNlLmhpZGUoKTtcbiAgICB9KTtcbiAgfSkpO1xuXG4gIHVwZGF0ZVJ1bm5pbmdUaW1lKCk7XG4gIGNsZWFudXAuaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY29udGV4dC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgd2luZG93LmNsZWFySW50ZXJ2YWwoY2xlYW51cC5pbnRlcnZhbElkKTtcbiAgICBub3RpY2UuaGlkZSgpO1xuICB9KTtcblxuICBmdW5jdGlvbiB1cGRhdGVSdW5uaW5nVGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCBydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzID0gTWF0aC5tYXgoY29udGV4dC5kdXJhdGlvbiwgTWF0aC5yb3VuZCgocGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWUpIC8gU0VDT05EX0lOX01JTExJU0VDT05EUykgKiBTRUNPTkRfSU5fTUlMTElTRUNPTkRTKTtcbiAgICBydW5uaW5nVGltZUVsLnRleHRDb250ZW50ID0gU3RyaW5nKHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uVGltZW91dFdpdGhvdXROb3RpY2UoY29udGV4dDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGNvbnRleHQuZHVyYXRpb24pO1xuXG4gIGNvbnRleHQub25PcGVyYXRpb25Db21wbGV0ZWQoKCkgPT4ge1xuICAgIGdldERlYnVnZ2VyKCdBc3luY1dpdGhOb3RpY2U6b25UaW1lb3V0V2l0aG91dE5vdGljZScpKCdPcGVyYXRpb24gY29tcGxldGVkIGFmdGVyIHRpbWVvdXQnLCB7XG4gICAgICBvcGVyYXRpb25OYW1lOiBjb250ZXh0Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBTZWxlY3RzIHRoZSB0aW1lb3V0IGhhbmRsZXIgZm9yIHtAbGluayByZXRyeVdpdGhUaW1lb3V0Tm90aWNlfSAvIHtAbGluayBydW5XaXRoVGltZW91dE5vdGljZX0uIEEgbm90aWNlXG4gKiBpcyBzaG93biBvbmx5IHdoZW4gbm90aWNlcyBhcmUgZW5hYmxlZCBBTkQgYSByZWFsIHtAbGluayBQbHVnaW5Ob3RpY2VDb21wb25lbnR9IGlzIHN1cHBsaWVkOyBvdGhlcndpc2VcbiAqIHRoZSB0aW1lb3V0IGlzIHNpbGVudGx5IGxvZ2dlZC5cbiAqXG4gKiBAcGFyYW0gc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UgLSBXaGV0aGVyIGEgdGltZW91dCBub3RpY2UgaXMgcmVxdWVzdGVkIChkZWZhdWx0cyB0byBgdHJ1ZWApLlxuICogQHBhcmFtIHBsdWdpbk5vdGljZUNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdXNlZCB0byBzaG93IHRoZSBub3RpY2UsIGlmIGFueS5cbiAqIEBwYXJhbSBjb250ZW50IC0gT3B0aW9uYWwgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBub3RpY2UuXG4gKiBAcmV0dXJucyBUaGUgdGltZW91dCBoYW5kbGVyIHRvIHBhc3MgdG8gdGhlIHVuZGVybHlpbmcgcmV0cnkvcnVuIGhlbHBlci5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZU9uVGltZW91dChcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIHBsdWdpbk5vdGljZUNvbXBvbmVudDogbnVsbCB8IFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgY29udGVudD86IFZhbHVlUHJvdmlkZXI8RG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZz5cbik6IChjb250ZXh0OiBUaW1lb3V0Q29udGV4dCkgPT4gdm9pZCB7XG4gIHJldHVybiAhKHNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUpIHx8IHBsdWdpbk5vdGljZUNvbXBvbmVudCA9PT0gbnVsbFxuICAgID8gb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICAgIDogKGNvbnRleHQpOiB2b2lkID0+IHtcbiAgICAgIG9uVGltZW91dE5vdGljZShjb250ZXh0LCBwbHVnaW5Ob3RpY2VDb21wb25lbnQsIGNvbnRlbnQpO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIHNob3dDdXN0b21Db250ZW50Tm90aWNlKGNvbnRleHQ6IFRpbWVvdXRDb250ZXh0LCBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudCwgY29udGVudDogVmFsdWVQcm92aWRlcjxEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nPik6IHZvaWQge1xuICBsZXQgaXNPcGVyYXRpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgbGV0IG5vdGljZTogTm90aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgY29udGV4dC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgaXNPcGVyYXRpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgIG5vdGljZT8uaGlkZSgpO1xuICB9KTtcblxuICBpbnZva2VBc3luY1NhZmVseShhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRDb250ZW50ID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvbnRlbnQsIHt9KTtcbiAgICAvLyBUaGUgb3BlcmF0aW9uIG1heSBoYXZlIGNvbXBsZXRlZCB3aGlsZSB0aGUgY29udGVudCB3YXMgcmVzb2x2aW5nOyBpZiBzbywgZG8gbm90IHNob3cgYSBzdGFsZSBub3RpY2UuXG4gICAgaWYgKGlzT3BlcmF0aW9uQ29tcGxldGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG5vdGljZSA9IHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKHJlc29sdmVkQ29udGVudCwgeyBpc1Blcm1hbmVudDogdHJ1ZSB9KTtcbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
@@ -119,7 +119,7 @@ __export(backlink_index_exports, {
|
|
|
119
119
|
module.exports = __toCommonJS(backlink_index_exports);
|
|
120
120
|
var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
|
|
121
121
|
var import_implementations = require('@obsidian-typings/obsidian-public-latest/implementations');
|
|
122
|
-
var
|
|
122
|
+
var import_obsidian_lib_state = require('./obsidian-lib-state.cjs');
|
|
123
123
|
const MARKDOWN_SUFFIX = ".md";
|
|
124
124
|
function getIndexedBacklinksForFile(app, file) {
|
|
125
125
|
const data = getBacklinkIndexData(app);
|
|
@@ -148,7 +148,7 @@ function getIndexedBacklinksForFile(app, file) {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
function getBacklinkIndexData(app) {
|
|
151
|
-
const indexes = (0,
|
|
151
|
+
const indexes = (0, import_obsidian_lib_state.getObsidianLibState)("backlinkIndexesByAppV1", /* @__PURE__ */ new WeakMap()).value;
|
|
152
152
|
let data = indexes.get(app);
|
|
153
153
|
if (!data) {
|
|
154
154
|
data = {
|
|
@@ -228,4 +228,4 @@ function removeSource(data, sourcePath) {
|
|
|
228
228
|
0 && (module.exports = {
|
|
229
229
|
getIndexedBacklinksForFile
|
|
230
230
|
});
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrbGluay1pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQW5zd2VycyBcIndoaWNoIHJlZmVyZW5jZXMgcmVzb2x2ZSB0byB0aGlzIGZpbGU/XCIgYnkgbG9va2luZyBvbmx5IGF0IHRoZSBub3RlcyB0aGF0IENPVUxEIGhvbGQgb25lLCBpbnN0ZWFkIG9mXG4gKiByZXNvbHZpbmcgZXZlcnkgcmVmZXJlbmNlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBtZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIGlzIG5vdCBhbiBpbmRleCBsb29rdXAuIFJlYWQgb3V0IG9mIHRoZSAxLjE0LjIgYnVuZGxlLCBpdCBpc1xuICogYGl0ZXJhdGVBbGxSZWZzYCDigJQgZXZlcnkgYGZyb250bWF0dGVyTGlua3NgLCBgbGlua3NgIGFuZCBgZW1iZWRzYCBlbnRyeSBvZiBldmVyeSBjYWNoZWQgbm90ZSwgcGx1cyBldmVyeVxuICogcmVmZXJlbmNlIGVhY2ggYGxpbmtVcGRhdGVyc2AgZW50cnkgKHRoZSBjYW52YXMgb25lKSByZXBvcnRzIOKAlCB3aXRoIG9uZSBgZ2V0Rmlyc3RMaW5rcGF0aERlc3RgIHBlciByZWZlcmVuY2UsXG4gKiBrZWVwaW5nIHRob3NlIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAuIFRoYXQgaXMgfjExNSBtcyBhdCAxMDBrIHJlZmVyZW5jZXMgYW5kIH4zMjAgbXMgYXQgMjUwaywgcGFpZCBvbmNlIHBlciBmaWxlXG4gKiBieSBldmVyeSBwZXItZmlsZSBiYWNrbGluayBsb29rdXAsIHNvIGEgMTAwMC1ub3RlIGZvbGRlciByZW5hbWUgaW4gYSA1MGstbm90ZSB2YXVsdCB0b29rIDkyNCBzLlxuICpcbiAqIFdoYXQgbWFrZXMgYSBuYXJyb3dlciBhbnN3ZXIgZXhhY3QgaXMgYSBwcm9wZXJ0eSBvZiBPYnNpZGlhbidzIGBnZXRMaW5rcGF0aERlc3RgOiBldmVyeSBicmFuY2ggb2YgaXQgY2FuIG9ubHlcbiAqIHJldHVybiBhIGZpbGUgd2hvc2UgbG93ZXJjYXNlZCBuYW1lIGlzIHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgdGhlIGxpbmtwYXRoLCBvciB0aGF0IHNlZ21lbnQgcGx1c1xuICogYC5tZGAuIFRoZSBvbmUgZXhjZXB0aW9uIGlzIHRoZSBlbXB0eSBsaW5rcGF0aCAoYFtbI0hlYWRpbmddXWApLCB3aGljaCByZXR1cm5zIHRoZSBzb3VyY2Ugbm90ZSBpdHNlbGYuIFNvIGFcbiAqIG5vdGUgY2FuIGhvbGQgYSByZWZlcmVuY2UgdG8gYGZpbGVgIG9ubHkgaWYgaXQgaG9sZHMgYSByZWZlcmVuY2Ugd2hvc2UgbGFzdCBzZWdtZW50IG1hdGNoZXMgb25lIG9mIGBmaWxlYCdzXG4gKiBuYW1lIGtleXMsIG9yIGlmIGl0IElTIGBmaWxlYC4gVGhpcyBtb2R1bGUgaW5kZXhlcyBub3RlcyBieSB0aG9zZSBzZWdtZW50cywgdGFrZXMgdGhlIGNhbmRpZGF0ZXMgZm9yIGBmaWxlYCxcbiAqIGFuZCBydW5zIE9ic2lkaWFuJ3Mgb3duIHByZWRpY2F0ZSDigJQgYGdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmtwYXRoLCBzb3VyY2UpID09PSBmaWxlYCDigJQgb3ZlciB0aGUgY2FuZGlkYXRlcydcbiAqIHJlZmVyZW5jZXMgb25seS4gVGhlIGNhbmRpZGF0ZXMgYXJlIGEgc3VwZXJzZXQgb2YgdGhlIHJlYWwgYmFja2xpbmtzIGFuZCB0aGUgcHJlZGljYXRlIGlzIHRoZSBzYW1lIG9uZSwgc29cbiAqIHRoZSBhbnN3ZXIgaXMgdGhlIG9uZSB0aGUgZnVsbCB3YWxrIGdpdmVzLCBhIGZpbGUgcmVnaXN0ZXJlZCBhdCBhIG5vbi1leGlzdGluZyBwYXRoIGluY2x1ZGVkLiBPbmx5IHRoZSBPUkRFUlxuICogb2YgdGhlIG5vdGVzIGluIHRoZSBhbnN3ZXIgZGlmZmVyczogdGhlIGZpbGUgaXRzZWxmIGZpcnN0LCB0aGVuIHRoZSBjYW5kaWRhdGVzIGluIGluZGV4IG9yZGVyLlxuICpcbiAqIFRoZSBpbmRleCBpcyBrZXB0IGZyZXNoIHdpdGhvdXQgbGlzdGVuaW5nIHRvIGFueXRoaW5nLiBgbWV0YWRhdGFDYWNoZS5maWxlQ2FjaGVgIG1hcHMgYSBub3RlIHRvIHRoZSBoYXNoIG9mXG4gKiBpdHMgY29udGVudCwgYW5kIHRoZSByZWZlcmVuY2VzIGFyZSBhIGZ1bmN0aW9uIG9mIHRoYXQgaGFzaCwgc28gZWFjaCBxdWVyeSBjb21wYXJlcyBldmVyeSBub3RlJ3MgaGFzaFxuICogYWdhaW5zdCB0aGUgb25lIGl0IHdhcyBpbmRleGVkIGF0IGFuZCByZS1yZWFkcyBvbmx5IHRoZSBub3RlcyB0aGF0IGNoYW5nZWQuIFRoYXQgaXMgb25lIHByb3BlcnR5IGNvbXBhcmlzb25cbiAqIHBlciBub3RlIGFuZCBubyByZXNvbHV0aW9uIGF0IGFsbCwgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHNjYW4gT2JzaWRpYW4gaXRzZWxmIHJ1bnMgb24gZXZlcnkgcmVuYW1lXG4gKiAoYHVwZGF0ZVJlbGF0ZWRMaW5rc2ApLiBEZXBlbmRpbmcgb24gbm8gZXZlbnQgYWxzbyBtZWFucyBkZXBlbmRpbmcgb24gbm8gZXZlbnQgT1JERVIsIHdoaWNoIG1hdHRlcnMgYmVjYXVzZVxuICogcmVuYW1lIGhhbmRsZXJzIHF1ZXJ5IGZyb20gaW5zaWRlIHRoZSB2YXVsdCBgcmVuYW1lYCBldmVudC5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgaW5kZXggcGVyIGBBcHBgLCBoZWxkIGluIHRoZSByZWFsbS1nbG9iYWwgc2hhcmVkLXN0YXRlIGJhZywgc28gZXZlcnkgcGx1Z2luIGJ1bmRsaW5nIHRoaXMgbGlicmFyeVxuICogc2hhcmVzIGl0IHJhdGhlciB0aGFuIGVhY2ggYnVpbGRpbmcgaXRzIG93bi4gV2hhdCBpcyBzdG9yZWQgdGhlcmUgaXMgcGxhaW4gZGF0YSByZWFkIHN0cnVjdHVyYWxseSAobWFwcyBhbmRcbiAqIHNldHMsIG5ldmVyIGEgY2xhc3MgaW5zdGFuY2UpLCBiZWNhdXNlIHRoZSBiYWcgY3Jvc3NlcyBjb3BpZXMgb2YgdGhpcyBsaWJyYXJ5IGF0IGRpZmZlcmVudCB2ZXJzaW9ucy4gVGhlIGtleVxuICogY2FycmllcyBhIHZlcnNpb246IGEgY2hhbmdlIHRvIHdoYXQgYSBrZXkgTUVBTlMgKGhvdyBhIG5hbWUga2V5IGlzIGRlcml2ZWQpIG11c3QgbW92ZSB0byBhIG5ldyBrZXksIHNvIGFuIG9sZGVyXG4gKiBjb3B5IG5ldmVyIHJlYWRzIGFuIGluZGV4IGJ1aWx0IGJ5IGRpZmZlcmVudCBydWxlcy5cbiAqXG4gKiBUaGUgYGxpbmtVcGRhdGVyc2Agc2lkZSBpcyBzdGlsbCB3YWxrZWQgaW4gZnVsbCBvbiBldmVyeSBxdWVyeS4gSW4gMS4xNC4yIHRoZSBvbmx5IHVwZGF0ZXIgaXMgdGhlIGNhbnZhc1xuICogb25lLCB3aG9zZSByZWZlcmVuY2VzIGxpdmUgaW4gdGhlIGNhbnZhcyBpbmRleCByYXRoZXIgdGhhbiBpbiBgZmlsZUNhY2hlYCwgc28gdGhlcmUgaXMgbm8gaGFzaCB0byBrZXkgdGhlbVxuICogYnk7IGEgdmF1bHQncyBjYW52YXNlcyBob2xkIGEgc21hbGwgZnJhY3Rpb24gb2YgaXRzIHJlZmVyZW5jZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDYWNoZWRNZXRhZGF0YSxcbiAgUmVmZXJlbmNlLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IEN1c3RvbUFycmF5RGljdEltcGwgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcblxuaW50ZXJmYWNlIEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgcmVhZG9ubHkgaW5kZXhlZEhhc2hlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgbmFtZUtleVNvdXJjZVBhdGhzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj47XG4gIHJlYWRvbmx5IHNvdXJjZVBhdGhOYW1lS2V5czogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+O1xufVxuXG5jb25zdCBNQVJLRE9XTl9TVUZGSVggPSAnLm1kJztcblxuLyoqXG4gKiBUaGUgc2FtZSBhbnN3ZXIgYXMgYGFwcC5tZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIChPYnNpZGlhbidzIG93biwgdW5wYXRjaGVkKSwgZnJvbSB0aGUgY2FuZGlkYXRlXG4gKiBub3RlcyBvbmx5LiBTZWUgdGhlIGZpbGUgaGVhZGVyIGZvciB3aHkgdGhlIGFuc3dlciBpcyBleGFjdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgd2hvc2UgYmFja2xpbmtzIHRvIGZpbmQuIEl0IG1heSBiZSBhIG5vbi1leGlzdGluZyBmaWxlIHJlZ2lzdGVyZWQgZm9yIHRoZSBxdWVyeS5cbiAqIEByZXR1cm5zIFRoZSByZWZlcmVuY2VzIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAsIGtleWVkIGJ5IHRoZSBwYXRoIG9mIHRoZSBub3RlIG9yIGNhbnZhcyBob2xkaW5nIHRoZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRleGVkQmFja2xpbmtzRm9yRmlsZShhcHA6IEFwcCwgZmlsZTogVEZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGRhdGEgPSBnZXRCYWNrbGlua0luZGV4RGF0YShhcHApO1xuICByZWZyZXNoKGFwcCwgZGF0YSk7XG5cbiAgY29uc3QgbWV0YWRhdGFDYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xuICBjb25zdCBiYWNrbGlua3MgPSBuZXcgQ3VzdG9tQXJyYXlEaWN0SW1wbDxSZWZlcmVuY2U+KCk7XG5cbiAgLy8gVGhlIGZpbGUgaXRzZWxmIGlzIGEgY2FuZGlkYXRlIGZvciBpdHMgb3duIGBbWyNIZWFkaW5nXV1gIHJlZmVyZW5jZXMsIHdob3NlIGVtcHR5IGxpbmtwYXRoIG5hbWVzIG5vIHNlZ21lbnQuXG4gIGNvbnN0IGNhbmRpZGF0ZVNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KFtmaWxlLnBhdGhdKTtcbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIGdldFRhcmdldE5hbWVLZXlzKGZpbGUubmFtZSkpIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZVBhdGggb2YgZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpID8/IFtdKSB7XG4gICAgICBjYW5kaWRhdGVTb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIGNhbmRpZGF0ZVNvdXJjZVBhdGhzKSB7XG4gICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGdldENhY2hlZE1ldGFkYXRhKGFwcCwgc291cmNlUGF0aCkpKSB7XG4gICAgICBjb2xsZWN0KHNvdXJjZVBhdGgsIHJlZmVyZW5jZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBsaW5rVXBkYXRlciBvZiBPYmplY3QudmFsdWVzKG1ldGFkYXRhQ2FjaGUubGlua1VwZGF0ZXJzKSkge1xuICAgIGxpbmtVcGRhdGVyPy5pdGVyYXRlUmVmZXJlbmNlcyhjb2xsZWN0KTtcbiAgfVxuXG4gIHJldHVybiBiYWNrbGlua3M7XG5cbiAgZnVuY3Rpb24gY29sbGVjdChzb3VyY2VQYXRoOiBzdHJpbmcsIHJlZmVyZW5jZTogUmVmZXJlbmNlKTogdm9pZCB7XG4gICAgaWYgKG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZ2V0TGlua3BhdGgocmVmZXJlbmNlLmxpbmspLCBzb3VyY2VQYXRoKSA9PT0gZmlsZSkge1xuICAgICAgYmFja2xpbmtzLmFkZChzb3VyY2VQYXRoLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRCYWNrbGlua0luZGV4RGF0YShhcHA6IEFwcCk6IEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgY29uc3QgaW5kZXhlcyA9IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgnYmFja2xpbmtJbmRleGVzQnlBcHBWMScsIG5ldyBXZWFrTWFwPEFwcCwgQmFja2xpbmtJbmRleERhdGE+KCkpLnZhbHVlO1xuICBsZXQgZGF0YSA9IGluZGV4ZXMuZ2V0KGFwcCk7XG4gIGlmICghZGF0YSkge1xuICAgIGRhdGEgPSB7XG4gICAgICBpbmRleGVkSGFzaGVzOiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgICAgbmFtZUtleVNvdXJjZVBhdGhzOiBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCksXG4gICAgICBzb3VyY2VQYXRoTmFtZUtleXM6IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKVxuICAgIH07XG4gICAgaW5kZXhlcy5zZXQoYXBwLCBkYXRhKTtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FjaGVkTWV0YWRhdGEoYXBwOiBBcHAsIHNvdXJjZVBhdGg6IHN0cmluZyk6IENhY2hlZE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaGFzaCA9IGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZVtzb3VyY2VQYXRoXT8uaGFzaDtcbiAgcmV0dXJuIGhhc2ggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGFwcC5tZXRhZGF0YUNhY2hlLm1ldGFkYXRhQ2FjaGVbaGFzaF07XG59XG5cbi8qKlxuICogTGlzdHMgYSBjYWNoZWQgbm90ZSdzIHJlZmVyZW5jZXMgaW4gdGhlIG9yZGVyIE9ic2lkaWFuJ3Mgb3duIHdhbGsgdmlzaXRzIHRoZW06IGBmcm9udG1hdHRlckxpbmtzYCwgdGhlblxuICogYGxpbmtzYCwgdGhlbiBgZW1iZWRzYC5cbiAqXG4gKiBAcGFyYW0gY2FjaGUgLSBUaGUgbm90ZSdzIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFRoZSBub3RlJ3MgcmVmZXJlbmNlcy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IHVuZGVmaW5lZCk6IFJlZmVyZW5jZVtdIHtcbiAgcmV0dXJuIGNhY2hlID8gWy4uLmNhY2hlLmZyb250bWF0dGVyTGlua3MgPz8gW10sIC4uLmNhY2hlLmxpbmtzID8/IFtdLCAuLi5jYWNoZS5lbWJlZHMgPz8gW11dIDogW107XG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBzdWJwYXRoIGZyb20gYSBsaW5rLCB0aGUgd2F5IE9ic2lkaWFuJ3MgYGdldExpbmtwYXRoYCBkb2VzLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIGxpbmsgdGV4dCwgc3VjaCBhcyBgZm9sZGVyL05vdGUjSGVhZGluZ2AuXG4gKiBAcmV0dXJucyBUaGUgbGlua3BhdGgsIHN1Y2ggYXMgYGZvbGRlci9Ob3RlYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TGlua3BhdGgobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gbGluay5pbmRleE9mKCcjJyk7XG4gIHJldHVybiBoYXNoSW5kZXggPT09IC0xID8gbGluayA6IGxpbmsuc2xpY2UoMCwgaGFzaEluZGV4KTtcbn1cblxuLyoqXG4gKiBUaGUga2V5IGEgcmVmZXJlbmNlIGlzIGluZGV4ZWQgdW5kZXI6IHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgaXRzIGxpbmtwYXRoLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIHJlZmVyZW5jZSdzIGxpbmsgdGV4dC5cbiAqIEByZXR1cm5zIFRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIGdldFJlZmVyZW5jZU5hbWVLZXkobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGlua3BhdGggPSBnZXRMaW5rcGF0aChsaW5rKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbGlua3BhdGguc2xpY2UobGlua3BhdGgubGFzdEluZGV4T2YoJy8nKSArIDEpO1xufVxuXG4vKipcbiAqIFRoZSBrZXlzIHVuZGVyIHdoaWNoIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSB3aXRoIHRoaXMgbmFtZSBjYW4gYmUgaW5kZXhlZC4gYGdldExpbmtwYXRoRGVzdGAgbWF0Y2hlcyBhXG4gKiBzZWdtZW50IGFnYWluc3QgdGhlIGZpbGUncyBuYW1lLCBhbmQgYWdhaW5zdCB0aGUgbmFtZSB3aXRoIGAubWRgIGFwcGVuZGVkLCBzbyBhIG5vdGUgbmFtZWQgYE5vdGUubWRgIGlzXG4gKiByZWFjaGFibGUgZnJvbSBib3RoIGBub3RlLm1kYCBhbmQgYG5vdGVgLlxuICpcbiAqIEBwYXJhbSBmaWxlTmFtZSAtIFRoZSBmaWxlJ3MgbmFtZSwgZXh0ZW5zaW9uIGluY2x1ZGVkLlxuICogQHJldHVybnMgVGhlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGdldFRhcmdldE5hbWVLZXlzKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG5hbWVLZXkgPSBmaWxlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbmFtZUtleS5lbmRzV2l0aChNQVJLRE9XTl9TVUZGSVgpID8gW25hbWVLZXksIG5hbWVLZXkuc2xpY2UoMCwgLU1BUktET1dOX1NVRkZJWC5sZW5ndGgpXSA6IFtuYW1lS2V5XTtcbn1cblxuZnVuY3Rpb24gaW5kZXhTb3VyY2UoYXBwOiBBcHAsIGRhdGE6IEJhY2tsaW5rSW5kZXhEYXRhLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IHZvaWQge1xuICByZW1vdmVTb3VyY2UoZGF0YSwgc291cmNlUGF0aCk7XG4gIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUubWV0YWRhdGFDYWNoZVtoYXNoXTtcbiAgLypcbiAgICogQSBub3RlJ3MgYGZpbGVDYWNoZWAgZW50cnkgY2FuIGNhcnJ5IGl0cyBuZXcgaGFzaCBiZWZvcmUgdGhlIG1ldGFkYXRhIGZvciB0aGF0IGhhc2ggaXMgc3RvcmVkLiBSZWNvcmRpbmdcbiAgICogdGhlIGhhc2ggdGhlbiB3b3VsZCBwaW4gdGhlIG5vdGUgYXQgXCJubyByZWZlcmVuY2VzXCIgdW50aWwgaXRzIGNvbnRlbnQgY2hhbmdlZCBhZ2Fpbiwgc28gbGVhdmUgaXRcbiAgICogdW5yZWNvcmRlZCBhbmQgbGV0IHRoZSBuZXh0IHF1ZXJ5IGxvb2sgYWdhaW4uXG4gICAqL1xuICBpZiAoIWNhY2hlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmFtZUtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlKSkge1xuICAgIG5hbWVLZXlzLmFkZChnZXRSZWZlcmVuY2VOYW1lS2V5KHJlZmVyZW5jZS5saW5rKSk7XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIG5hbWVLZXlzKSB7XG4gICAgbGV0IHNvdXJjZVBhdGhzID0gZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpO1xuICAgIGlmICghc291cmNlUGF0aHMpIHtcbiAgICAgIHNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5zZXQobmFtZUtleSwgc291cmNlUGF0aHMpO1xuICAgIH1cbiAgICBzb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gIH1cbiAgZGF0YS5zb3VyY2VQYXRoTmFtZUtleXMuc2V0KHNvdXJjZVBhdGgsIG5hbWVLZXlzKTtcbiAgZGF0YS5pbmRleGVkSGFzaGVzLnNldChzb3VyY2VQYXRoLCBoYXNoKTtcbn1cblxuZnVuY3Rpb24gcmVmcmVzaChhcHA6IEFwcCwgZGF0YTogQmFja2xpbmtJbmRleERhdGEpOiB2b2lkIHtcbiAgY29uc3QgZmlsZUNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZUNhY2hlO1xuXG4gIGZvciAoY29uc3Qgc291cmNlUGF0aCBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5rZXlzKCkpIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oZmlsZUNhY2hlLCBzb3VyY2VQYXRoKSkge1xuICAgICAgcmVtb3ZlU291cmNlKGRhdGEsIHNvdXJjZVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgW3NvdXJjZVBhdGgsIHsgaGFzaCB9XSBvZiBPYmplY3QuZW50cmllcyhmaWxlQ2FjaGUpKSB7XG4gICAgaWYgKGRhdGEuaW5kZXhlZEhhc2hlcy5nZXQoc291cmNlUGF0aCkgIT09IGhhc2gpIHtcbiAgICAgIGluZGV4U291cmNlKGFwcCwgZGF0YSwgc291cmNlUGF0aCwgaGFzaCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVNvdXJjZShkYXRhOiBCYWNrbGlua0luZGV4RGF0YSwgc291cmNlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgbmFtZUtleSBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5nZXQoc291cmNlUGF0aCkgPz8gW10pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRocyA9IGVuc3VyZU5vbk51bGxhYmxlKGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLmdldChuYW1lS2V5KSk7XG4gICAgc291cmNlUGF0aHMuZGVsZXRlKHNvdXJjZVBhdGgpO1xuICAgIGlmIChzb3VyY2VQYXRocy5zaXplID09PSAwKSB7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5kZWxldGUobmFtZUtleSk7XG4gICAgfVxuICB9XG4gIGRhdGEuc291cmNlUGF0aE5hbWVLZXlzLmRlbGV0ZShzb3VyY2VQYXRoKTtcbiAgZGF0YS5pbmRl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
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrbGluay1pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQW5zd2VycyBcIndoaWNoIHJlZmVyZW5jZXMgcmVzb2x2ZSB0byB0aGlzIGZpbGU/XCIgYnkgbG9va2luZyBvbmx5IGF0IHRoZSBub3RlcyB0aGF0IENPVUxEIGhvbGQgb25lLCBpbnN0ZWFkIG9mXG4gKiByZXNvbHZpbmcgZXZlcnkgcmVmZXJlbmNlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBtZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIGlzIG5vdCBhbiBpbmRleCBsb29rdXAuIFJlYWQgb3V0IG9mIHRoZSAxLjE0LjIgYnVuZGxlLCBpdCBpc1xuICogYGl0ZXJhdGVBbGxSZWZzYCDigJQgZXZlcnkgYGZyb250bWF0dGVyTGlua3NgLCBgbGlua3NgIGFuZCBgZW1iZWRzYCBlbnRyeSBvZiBldmVyeSBjYWNoZWQgbm90ZSwgcGx1cyBldmVyeVxuICogcmVmZXJlbmNlIGVhY2ggYGxpbmtVcGRhdGVyc2AgZW50cnkgKHRoZSBjYW52YXMgb25lKSByZXBvcnRzIOKAlCB3aXRoIG9uZSBgZ2V0Rmlyc3RMaW5rcGF0aERlc3RgIHBlciByZWZlcmVuY2UsXG4gKiBrZWVwaW5nIHRob3NlIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAuIFRoYXQgaXMgfjExNSBtcyBhdCAxMDBrIHJlZmVyZW5jZXMgYW5kIH4zMjAgbXMgYXQgMjUwaywgcGFpZCBvbmNlIHBlciBmaWxlXG4gKiBieSBldmVyeSBwZXItZmlsZSBiYWNrbGluayBsb29rdXAsIHNvIGEgMTAwMC1ub3RlIGZvbGRlciByZW5hbWUgaW4gYSA1MGstbm90ZSB2YXVsdCB0b29rIDkyNCBzLlxuICpcbiAqIFdoYXQgbWFrZXMgYSBuYXJyb3dlciBhbnN3ZXIgZXhhY3QgaXMgYSBwcm9wZXJ0eSBvZiBPYnNpZGlhbidzIGBnZXRMaW5rcGF0aERlc3RgOiBldmVyeSBicmFuY2ggb2YgaXQgY2FuIG9ubHlcbiAqIHJldHVybiBhIGZpbGUgd2hvc2UgbG93ZXJjYXNlZCBuYW1lIGlzIHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgdGhlIGxpbmtwYXRoLCBvciB0aGF0IHNlZ21lbnQgcGx1c1xuICogYC5tZGAuIFRoZSBvbmUgZXhjZXB0aW9uIGlzIHRoZSBlbXB0eSBsaW5rcGF0aCAoYFtbI0hlYWRpbmddXWApLCB3aGljaCByZXR1cm5zIHRoZSBzb3VyY2Ugbm90ZSBpdHNlbGYuIFNvIGFcbiAqIG5vdGUgY2FuIGhvbGQgYSByZWZlcmVuY2UgdG8gYGZpbGVgIG9ubHkgaWYgaXQgaG9sZHMgYSByZWZlcmVuY2Ugd2hvc2UgbGFzdCBzZWdtZW50IG1hdGNoZXMgb25lIG9mIGBmaWxlYCdzXG4gKiBuYW1lIGtleXMsIG9yIGlmIGl0IElTIGBmaWxlYC4gVGhpcyBtb2R1bGUgaW5kZXhlcyBub3RlcyBieSB0aG9zZSBzZWdtZW50cywgdGFrZXMgdGhlIGNhbmRpZGF0ZXMgZm9yIGBmaWxlYCxcbiAqIGFuZCBydW5zIE9ic2lkaWFuJ3Mgb3duIHByZWRpY2F0ZSDigJQgYGdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmtwYXRoLCBzb3VyY2UpID09PSBmaWxlYCDigJQgb3ZlciB0aGUgY2FuZGlkYXRlcydcbiAqIHJlZmVyZW5jZXMgb25seS4gVGhlIGNhbmRpZGF0ZXMgYXJlIGEgc3VwZXJzZXQgb2YgdGhlIHJlYWwgYmFja2xpbmtzIGFuZCB0aGUgcHJlZGljYXRlIGlzIHRoZSBzYW1lIG9uZSwgc29cbiAqIHRoZSBhbnN3ZXIgaXMgdGhlIG9uZSB0aGUgZnVsbCB3YWxrIGdpdmVzLCBhIGZpbGUgcmVnaXN0ZXJlZCBhdCBhIG5vbi1leGlzdGluZyBwYXRoIGluY2x1ZGVkLiBPbmx5IHRoZSBPUkRFUlxuICogb2YgdGhlIG5vdGVzIGluIHRoZSBhbnN3ZXIgZGlmZmVyczogdGhlIGZpbGUgaXRzZWxmIGZpcnN0LCB0aGVuIHRoZSBjYW5kaWRhdGVzIGluIGluZGV4IG9yZGVyLlxuICpcbiAqIFRoZSBpbmRleCBpcyBrZXB0IGZyZXNoIHdpdGhvdXQgbGlzdGVuaW5nIHRvIGFueXRoaW5nLiBgbWV0YWRhdGFDYWNoZS5maWxlQ2FjaGVgIG1hcHMgYSBub3RlIHRvIHRoZSBoYXNoIG9mXG4gKiBpdHMgY29udGVudCwgYW5kIHRoZSByZWZlcmVuY2VzIGFyZSBhIGZ1bmN0aW9uIG9mIHRoYXQgaGFzaCwgc28gZWFjaCBxdWVyeSBjb21wYXJlcyBldmVyeSBub3RlJ3MgaGFzaFxuICogYWdhaW5zdCB0aGUgb25lIGl0IHdhcyBpbmRleGVkIGF0IGFuZCByZS1yZWFkcyBvbmx5IHRoZSBub3RlcyB0aGF0IGNoYW5nZWQuIFRoYXQgaXMgb25lIHByb3BlcnR5IGNvbXBhcmlzb25cbiAqIHBlciBub3RlIGFuZCBubyByZXNvbHV0aW9uIGF0IGFsbCwgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHNjYW4gT2JzaWRpYW4gaXRzZWxmIHJ1bnMgb24gZXZlcnkgcmVuYW1lXG4gKiAoYHVwZGF0ZVJlbGF0ZWRMaW5rc2ApLiBEZXBlbmRpbmcgb24gbm8gZXZlbnQgYWxzbyBtZWFucyBkZXBlbmRpbmcgb24gbm8gZXZlbnQgT1JERVIsIHdoaWNoIG1hdHRlcnMgYmVjYXVzZVxuICogcmVuYW1lIGhhbmRsZXJzIHF1ZXJ5IGZyb20gaW5zaWRlIHRoZSB2YXVsdCBgcmVuYW1lYCBldmVudC5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgaW5kZXggcGVyIGBBcHBgLCBoZWxkIGluIHRoZSByZWFsbS1nbG9iYWwgc2hhcmVkLXN0YXRlIGJhZywgc28gZXZlcnkgcGx1Z2luIGJ1bmRsaW5nIHRoaXMgbGlicmFyeVxuICogc2hhcmVzIGl0IHJhdGhlciB0aGFuIGVhY2ggYnVpbGRpbmcgaXRzIG93bi4gV2hhdCBpcyBzdG9yZWQgdGhlcmUgaXMgcGxhaW4gZGF0YSByZWFkIHN0cnVjdHVyYWxseSAobWFwcyBhbmRcbiAqIHNldHMsIG5ldmVyIGEgY2xhc3MgaW5zdGFuY2UpLCBiZWNhdXNlIHRoZSBiYWcgY3Jvc3NlcyBjb3BpZXMgb2YgdGhpcyBsaWJyYXJ5IGF0IGRpZmZlcmVudCB2ZXJzaW9ucy4gVGhlIGtleVxuICogY2FycmllcyBhIHZlcnNpb246IGEgY2hhbmdlIHRvIHdoYXQgYSBrZXkgTUVBTlMgKGhvdyBhIG5hbWUga2V5IGlzIGRlcml2ZWQpIG11c3QgbW92ZSB0byBhIG5ldyBrZXksIHNvIGFuIG9sZGVyXG4gKiBjb3B5IG5ldmVyIHJlYWRzIGFuIGluZGV4IGJ1aWx0IGJ5IGRpZmZlcmVudCBydWxlcy5cbiAqXG4gKiBUaGUgYGxpbmtVcGRhdGVyc2Agc2lkZSBpcyBzdGlsbCB3YWxrZWQgaW4gZnVsbCBvbiBldmVyeSBxdWVyeS4gSW4gMS4xNC4yIHRoZSBvbmx5IHVwZGF0ZXIgaXMgdGhlIGNhbnZhc1xuICogb25lLCB3aG9zZSByZWZlcmVuY2VzIGxpdmUgaW4gdGhlIGNhbnZhcyBpbmRleCByYXRoZXIgdGhhbiBpbiBgZmlsZUNhY2hlYCwgc28gdGhlcmUgaXMgbm8gaGFzaCB0byBrZXkgdGhlbVxuICogYnk7IGEgdmF1bHQncyBjYW52YXNlcyBob2xkIGEgc21hbGwgZnJhY3Rpb24gb2YgaXRzIHJlZmVyZW5jZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDYWNoZWRNZXRhZGF0YSxcbiAgUmVmZXJlbmNlLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IEN1c3RvbUFycmF5RGljdEltcGwgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuTGliU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbmludGVyZmFjZSBCYWNrbGlua0luZGV4RGF0YSB7XG4gIHJlYWRvbmx5IGluZGV4ZWRIYXNoZXM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IG5hbWVLZXlTb3VyY2VQYXRoczogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+O1xuICByZWFkb25seSBzb3VyY2VQYXRoTmFtZUtleXM6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+Pjtcbn1cblxuY29uc3QgTUFSS0RPV05fU1VGRklYID0gJy5tZCc7XG5cbi8qKlxuICogVGhlIHNhbWUgYW5zd2VyIGFzIGBhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlKGZpbGUpYCAoT2JzaWRpYW4ncyBvd24sIHVucGF0Y2hlZCksIGZyb20gdGhlIGNhbmRpZGF0ZVxuICogbm90ZXMgb25seS4gU2VlIHRoZSBmaWxlIGhlYWRlciBmb3Igd2h5IHRoZSBhbnN3ZXIgaXMgZXhhY3QuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHdob3NlIGJhY2tsaW5rcyB0byBmaW5kLiBJdCBtYXkgYmUgYSBub24tZXhpc3RpbmcgZmlsZSByZWdpc3RlcmVkIGZvciB0aGUgcXVlcnkuXG4gKiBAcmV0dXJucyBUaGUgcmVmZXJlbmNlcyB0aGF0IHJlc29sdmUgdG8gYGZpbGVgLCBrZXllZCBieSB0aGUgcGF0aCBvZiB0aGUgbm90ZSBvciBjYW52YXMgaG9sZGluZyB0aGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5kZXhlZEJhY2tsaW5rc0ZvckZpbGUoYXBwOiBBcHAsIGZpbGU6IFRGaWxlKTogQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4ge1xuICBjb25zdCBkYXRhID0gZ2V0QmFja2xpbmtJbmRleERhdGEoYXBwKTtcbiAgcmVmcmVzaChhcHAsIGRhdGEpO1xuXG4gIGNvbnN0IG1ldGFkYXRhQ2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZTtcbiAgY29uc3QgYmFja2xpbmtzID0gbmV3IEN1c3RvbUFycmF5RGljdEltcGw8UmVmZXJlbmNlPigpO1xuXG4gIC8vIFRoZSBmaWxlIGl0c2VsZiBpcyBhIGNhbmRpZGF0ZSBmb3IgaXRzIG93biBgW1sjSGVhZGluZ11dYCByZWZlcmVuY2VzLCB3aG9zZSBlbXB0eSBsaW5rcGF0aCBuYW1lcyBubyBzZWdtZW50LlxuICBjb25zdCBjYW5kaWRhdGVTb3VyY2VQYXRocyA9IG5ldyBTZXQ8c3RyaW5nPihbZmlsZS5wYXRoXSk7XG4gIGZvciAoY29uc3QgbmFtZUtleSBvZiBnZXRUYXJnZXROYW1lS2V5cyhmaWxlLm5hbWUpKSB7XG4gICAgZm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLmdldChuYW1lS2V5KSA/PyBbXSkge1xuICAgICAgY2FuZGlkYXRlU291cmNlUGF0aHMuYWRkKHNvdXJjZVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qgc291cmNlUGF0aCBvZiBjYW5kaWRhdGVTb3VyY2VQYXRocykge1xuICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIGdldENhY2hlUmVmZXJlbmNlcyhnZXRDYWNoZWRNZXRhZGF0YShhcHAsIHNvdXJjZVBhdGgpKSkge1xuICAgICAgY29sbGVjdChzb3VyY2VQYXRoLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgbGlua1VwZGF0ZXIgb2YgT2JqZWN0LnZhbHVlcyhtZXRhZGF0YUNhY2hlLmxpbmtVcGRhdGVycykpIHtcbiAgICBsaW5rVXBkYXRlcj8uaXRlcmF0ZVJlZmVyZW5jZXMoY29sbGVjdCk7XG4gIH1cblxuICByZXR1cm4gYmFja2xpbmtzO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3Qoc291cmNlUGF0aDogc3RyaW5nLCByZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xuICAgIGlmIChtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGdldExpbmtwYXRoKHJlZmVyZW5jZS5saW5rKSwgc291cmNlUGF0aCkgPT09IGZpbGUpIHtcbiAgICAgIGJhY2tsaW5rcy5hZGQoc291cmNlUGF0aCwgcmVmZXJlbmNlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QmFja2xpbmtJbmRleERhdGEoYXBwOiBBcHApOiBCYWNrbGlua0luZGV4RGF0YSB7XG4gIGNvbnN0IGluZGV4ZXMgPSBnZXRPYnNpZGlhbkxpYlN0YXRlKCdiYWNrbGlua0luZGV4ZXNCeUFwcFYxJywgbmV3IFdlYWtNYXA8QXBwLCBCYWNrbGlua0luZGV4RGF0YT4oKSkudmFsdWU7XG4gIGxldCBkYXRhID0gaW5kZXhlcy5nZXQoYXBwKTtcbiAgaWYgKCFkYXRhKSB7XG4gICAgZGF0YSA9IHtcbiAgICAgIGluZGV4ZWRIYXNoZXM6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCksXG4gICAgICBuYW1lS2V5U291cmNlUGF0aHM6IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKSxcbiAgICAgIHNvdXJjZVBhdGhOYW1lS2V5czogbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpXG4gICAgfTtcbiAgICBpbmRleGVzLnNldChhcHAsIGRhdGEpO1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBnZXRDYWNoZWRNZXRhZGF0YShhcHA6IEFwcCwgc291cmNlUGF0aDogc3RyaW5nKTogQ2FjaGVkTWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCBoYXNoID0gYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZUNhY2hlW3NvdXJjZVBhdGhdPy5oYXNoO1xuICByZXR1cm4gaGFzaCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXBwLm1ldGFkYXRhQ2FjaGUubWV0YWRhdGFDYWNoZVtoYXNoXTtcbn1cblxuLyoqXG4gKiBMaXN0cyBhIGNhY2hlZCBub3RlJ3MgcmVmZXJlbmNlcyBpbiB0aGUgb3JkZXIgT2JzaWRpYW4ncyBvd24gd2FsayB2aXNpdHMgdGhlbTogYGZyb250bWF0dGVyTGlua3NgLCB0aGVuXG4gKiBgbGlua3NgLCB0aGVuIGBlbWJlZHNgLlxuICpcbiAqIEBwYXJhbSBjYWNoZSAtIFRoZSBub3RlJ3MgY2FjaGVkIG1ldGFkYXRhLlxuICogQHJldHVybnMgVGhlIG5vdGUncyByZWZlcmVuY2VzLlxuICovXG5mdW5jdGlvbiBnZXRDYWNoZVJlZmVyZW5jZXMoY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgdW5kZWZpbmVkKTogUmVmZXJlbmNlW10ge1xuICByZXR1cm4gY2FjaGUgPyBbLi4uY2FjaGUuZnJvbnRtYXR0ZXJMaW5rcyA/PyBbXSwgLi4uY2FjaGUubGlua3MgPz8gW10sIC4uLmNhY2hlLmVtYmVkcyA/PyBbXV0gOiBbXTtcbn1cblxuLyoqXG4gKiBTdHJpcHMgdGhlIHN1YnBhdGggZnJvbSBhIGxpbmssIHRoZSB3YXkgT2JzaWRpYW4ncyBgZ2V0TGlua3BhdGhgIGRvZXMuXG4gKlxuICogQHBhcmFtIGxpbmsgLSBUaGUgbGluayB0ZXh0LCBzdWNoIGFzIGBmb2xkZXIvTm90ZSNIZWFkaW5nYC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rcGF0aCwgc3VjaCBhcyBgZm9sZGVyL05vdGVgLlxuICovXG5mdW5jdGlvbiBnZXRMaW5rcGF0aChsaW5rOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBoYXNoSW5kZXggPSBsaW5rLmluZGV4T2YoJyMnKTtcbiAgcmV0dXJuIGhhc2hJbmRleCA9PT0gLTEgPyBsaW5rIDogbGluay5zbGljZSgwLCBoYXNoSW5kZXgpO1xufVxuXG4vKipcbiAqIFRoZSBrZXkgYSByZWZlcmVuY2UgaXMgaW5kZXhlZCB1bmRlcjogdGhlIGxvd2VyY2FzZWQgbGFzdCBgL2Agc2VnbWVudCBvZiBpdHMgbGlua3BhdGguXG4gKlxuICogQHBhcmFtIGxpbmsgLSBUaGUgcmVmZXJlbmNlJ3MgbGluayB0ZXh0LlxuICogQHJldHVybnMgVGhlIGtleS5cbiAqL1xuZnVuY3Rpb24gZ2V0UmVmZXJlbmNlTmFtZUtleShsaW5rOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5rcGF0aCA9IGdldExpbmtwYXRoKGxpbmspLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBsaW5rcGF0aC5zbGljZShsaW5rcGF0aC5sYXN0SW5kZXhPZignLycpICsgMSk7XG59XG5cbi8qKlxuICogVGhlIGtleXMgdW5kZXIgd2hpY2ggYSByZWZlcmVuY2UgdG8gYSBmaWxlIHdpdGggdGhpcyBuYW1lIGNhbiBiZSBpbmRleGVkLiBgZ2V0TGlua3BhdGhEZXN0YCBtYXRjaGVzIGFcbiAqIHNlZ21lbnQgYWdhaW5zdCB0aGUgZmlsZSdzIG5hbWUsIGFuZCBhZ2FpbnN0IHRoZSBuYW1lIHdpdGggYC5tZGAgYXBwZW5kZWQsIHNvIGEgbm90ZSBuYW1lZCBgTm90ZS5tZGAgaXNcbiAqIHJlYWNoYWJsZSBmcm9tIGJvdGggYG5vdGUubWRgIGFuZCBgbm90ZWAuXG4gKlxuICogQHBhcmFtIGZpbGVOYW1lIC0gVGhlIGZpbGUncyBuYW1lLCBleHRlbnNpb24gaW5jbHVkZWQuXG4gKiBAcmV0dXJucyBUaGUga2V5cy5cbiAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0TmFtZUtleXMoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbmFtZUtleSA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBuYW1lS2V5LmVuZHNXaXRoKE1BUktET1dOX1NVRkZJWCkgPyBbbmFtZUtleSwgbmFtZUtleS5zbGljZSgwLCAtTUFSS0RPV05fU1VGRklYLmxlbmd0aCldIDogW25hbWVLZXldO1xufVxuXG5mdW5jdGlvbiBpbmRleFNvdXJjZShhcHA6IEFwcCwgZGF0YTogQmFja2xpbmtJbmRleERhdGEsIHNvdXJjZVBhdGg6IHN0cmluZywgaGFzaDogc3RyaW5nKTogdm9pZCB7XG4gIHJlbW92ZVNvdXJjZShkYXRhLCBzb3VyY2VQYXRoKTtcbiAgY29uc3QgY2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5tZXRhZGF0YUNhY2hlW2hhc2hdO1xuICAvKlxuICAgKiBBIG5vdGUncyBgZmlsZUNhY2hlYCBlbnRyeSBjYW4gY2FycnkgaXRzIG5ldyBoYXNoIGJlZm9yZSB0aGUgbWV0YWRhdGEgZm9yIHRoYXQgaGFzaCBpcyBzdG9yZWQuIFJlY29yZGluZ1xuICAgKiB0aGUgaGFzaCB0aGVuIHdvdWxkIHBpbiB0aGUgbm90ZSBhdCBcIm5vIHJlZmVyZW5jZXNcIiB1bnRpbCBpdHMgY29udGVudCBjaGFuZ2VkIGFnYWluLCBzbyBsZWF2ZSBpdFxuICAgKiB1bnJlY29yZGVkIGFuZCBsZXQgdGhlIG5leHQgcXVlcnkgbG9vayBhZ2Fpbi5cbiAgICovXG4gIGlmICghY2FjaGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBuYW1lS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiBnZXRDYWNoZVJlZmVyZW5jZXMoY2FjaGUpKSB7XG4gICAgbmFtZUtleXMuYWRkKGdldFJlZmVyZW5jZU5hbWVLZXkocmVmZXJlbmNlLmxpbmspKTtcbiAgfVxuICBmb3IgKGNvbnN0IG5hbWVLZXkgb2YgbmFtZUtleXMpIHtcbiAgICBsZXQgc291cmNlUGF0aHMgPSBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5nZXQobmFtZUtleSk7XG4gICAgaWYgKCFzb3VyY2VQYXRocykge1xuICAgICAgc291cmNlUGF0aHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgIGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLnNldChuYW1lS2V5LCBzb3VyY2VQYXRocyk7XG4gICAgfVxuICAgIHNvdXJjZVBhdGhzLmFkZChzb3VyY2VQYXRoKTtcbiAgfVxuICBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5zZXQoc291cmNlUGF0aCwgbmFtZUtleXMpO1xuICBkYXRhLmluZGV4ZWRIYXNoZXMuc2V0KHNvdXJjZVBhdGgsIGhhc2gpO1xufVxuXG5mdW5jdGlvbiByZWZyZXNoKGFwcDogQXBwLCBkYXRhOiBCYWNrbGlua0luZGV4RGF0YSk6IHZvaWQge1xuICBjb25zdCBmaWxlQ2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5maWxlQ2FjaGU7XG5cbiAgZm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIGRhdGEuc291cmNlUGF0aE5hbWVLZXlzLmtleXMoKSkge1xuICAgIGlmICghT2JqZWN0Lmhhc093bihmaWxlQ2FjaGUsIHNvdXJjZVBhdGgpKSB7XG4gICAgICByZW1vdmVTb3VyY2UoZGF0YSwgc291cmNlUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBbc291cmNlUGF0aCwgeyBoYXNoIH1dIG9mIE9iamVjdC5lbnRyaWVzKGZpbGVDYWNoZSkpIHtcbiAgICBpZiAoZGF0YS5pbmRleGVkSGFzaGVzLmdldChzb3VyY2VQYXRoKSAhPT0gaGFzaCkge1xuICAgICAgaW5kZXhTb3VyY2UoYXBwLCBkYXRhLCBzb3VyY2VQYXRoLCBoYXNoKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlU291cmNlKGRhdGE6IEJhY2tsaW5rSW5kZXhEYXRhLCBzb3VyY2VQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIGRhdGEuc291cmNlUGF0aE5hbWVLZXlzLmdldChzb3VyY2VQYXRoKSA/PyBbXSkge1xuICAgIGNvbnN0IHNvdXJjZVBhdGhzID0gZW5zdXJlTm9uTnVsbGFibGUoZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpKTtcbiAgICBzb3VyY2VQYXRocy5kZWxldGUoc291cmNlUGF0aCk7XG4gICAgaWYgKHNvdXJjZVBhdGhzLnNpemUgPT09IDApIHtcbiAgICAgIGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLmRlbGV0ZShuYW1lS2V5KTtcbiAgICB9XG4gIH1cbiAgZGF0YS5zb3VyY2VQYXRoTmFtZUtleXMuZGVsZXRlKHNvdXJjZVBhdGgpO1xuICBkYXRhLmluZGV4ZWRIYXNoZXMuZGVsZXRl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
|