@mnaoumov/obsidian-lib 10.8.0 → 10.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +4 -0
  2. package/codemirror/editor-mode-extension/package.json +6 -0
  3. package/dist/lib/cjs/__merged.cjs +42 -1
  4. package/dist/lib/cjs/__merged.d.cts +7 -2
  5. package/dist/lib/cjs/code-block-render-handoff.cjs +2 -5
  6. package/dist/lib/cjs/codemirror/editor-mode-extension.cjs +180 -0
  7. package/dist/lib/cjs/codemirror/editor-mode-extension.d.cts +50 -0
  8. package/dist/lib/cjs/codemirror/index.cjs +4 -1
  9. package/dist/lib/cjs/codemirror/index.d.cts +1 -0
  10. package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +4 -7
  11. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +2 -2
  12. package/dist/lib/cjs/community-plugins.cjs +2 -2
  13. package/dist/lib/cjs/components/all-windows-event-component.cjs +86 -14
  14. package/dist/lib/cjs/components/all-windows-event-component.d.cts +54 -3
  15. package/dist/lib/cjs/components/monkey-around-component.cjs +1 -1
  16. package/dist/lib/cjs/components/plugin-notice-component.cjs +2 -6
  17. package/dist/lib/cjs/components/plugin-settings-component.cjs +4 -3
  18. package/dist/lib/cjs/components/plugin-settings-component.d.cts +2 -1
  19. package/dist/lib/cjs/components/style-sheet-component.cjs +1 -4
  20. package/dist/lib/cjs/css-class.cjs +7 -1
  21. package/dist/lib/cjs/css-class.d.cts +24 -0
  22. package/dist/lib/cjs/data-stores/shared-data-store.cjs +15 -4
  23. package/dist/lib/cjs/desktop-bulk-operation-git.cjs +5 -5
  24. package/dist/lib/cjs/folder-note.cjs +5 -5
  25. package/dist/lib/cjs/formula-function.cjs +152 -0
  26. package/dist/lib/cjs/formula-function.d.cts +98 -0
  27. package/dist/lib/cjs/frontmatter-formatting.cjs +2 -2
  28. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  29. package/dist/lib/cjs/i18n/i18n.cjs +38 -10
  30. package/dist/lib/cjs/i18n/i18n.d.cts +29 -2
  31. package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
  32. package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
  33. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
  34. package/dist/lib/cjs/index.cjs +7 -1
  35. package/dist/lib/cjs/index.d.cts +2 -0
  36. package/dist/lib/cjs/link.cjs +12 -12
  37. package/dist/lib/cjs/markdown.cjs +7 -7
  38. package/dist/lib/cjs/modals/code-block-builder.cjs +486 -0
  39. package/dist/lib/cjs/modals/code-block-builder.d.cts +321 -0
  40. package/dist/lib/cjs/modals/index.cjs +4 -1
  41. package/dist/lib/cjs/modals/index.d.cts +1 -0
  42. package/dist/lib/cjs/plugin/index.cjs +4 -1
  43. package/dist/lib/cjs/plugin/index.d.cts +1 -0
  44. package/dist/lib/cjs/plugin/plugin-async-cleanup.cjs +189 -0
  45. package/dist/lib/cjs/plugin/plugin-async-cleanup.d.cts +111 -0
  46. package/dist/lib/cjs/plugin/plugin.cjs +47 -2
  47. package/dist/lib/cjs/plugin/plugin.d.cts +25 -1
  48. package/dist/lib/cjs/vault.cjs +2 -2
  49. package/dist/lib/cjs/virtual-file.cjs +340 -0
  50. package/dist/lib/cjs/virtual-file.d.cts +48 -0
  51. package/dist/lib/esm/__merged.d.mts +7 -2
  52. package/dist/lib/esm/__merged.mjs +48 -2
  53. package/dist/lib/esm/code-block-render-handoff.mjs +2 -5
  54. package/dist/lib/esm/codemirror/editor-mode-extension.d.mts +50 -0
  55. package/dist/lib/esm/codemirror/editor-mode-extension.mjs +93 -0
  56. package/dist/lib/esm/codemirror/index.d.mts +1 -0
  57. package/dist/lib/esm/codemirror/index.mjs +3 -1
  58. package/dist/lib/esm/codemirror/inline-token-widgets.mjs +3 -9
  59. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +2 -2
  60. package/dist/lib/esm/community-plugins.mjs +2 -2
  61. package/dist/lib/esm/components/all-windows-event-component.d.mts +54 -3
  62. package/dist/lib/esm/components/all-windows-event-component.mjs +87 -14
  63. package/dist/lib/esm/components/monkey-around-component.mjs +1 -1
  64. package/dist/lib/esm/components/plugin-notice-component.mjs +2 -6
  65. package/dist/lib/esm/components/plugin-settings-component.d.mts +2 -1
  66. package/dist/lib/esm/components/plugin-settings-component.mjs +4 -3
  67. package/dist/lib/esm/components/style-sheet-component.mjs +1 -4
  68. package/dist/lib/esm/css-class.d.mts +24 -0
  69. package/dist/lib/esm/css-class.mjs +7 -1
  70. package/dist/lib/esm/data-stores/shared-data-store.mjs +15 -4
  71. package/dist/lib/esm/desktop-bulk-operation-git.mjs +5 -5
  72. package/dist/lib/esm/folder-note.mjs +5 -5
  73. package/dist/lib/esm/formula-function.d.mts +98 -0
  74. package/dist/lib/esm/formula-function.mjs +62 -0
  75. package/dist/lib/esm/frontmatter-formatting.mjs +2 -2
  76. package/dist/lib/esm/generated-during-build.mjs +2 -2
  77. package/dist/lib/esm/i18n/i18n.d.mts +29 -2
  78. package/dist/lib/esm/i18n/i18n.mjs +40 -10
  79. package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
  80. package/dist/lib/esm/i18n/locales/en.mjs +13 -1
  81. package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
  82. package/dist/lib/esm/index.d.mts +2 -0
  83. package/dist/lib/esm/index.mjs +5 -1
  84. package/dist/lib/esm/link.mjs +12 -12
  85. package/dist/lib/esm/markdown.mjs +7 -7
  86. package/dist/lib/esm/modals/code-block-builder.d.mts +321 -0
  87. package/dist/lib/esm/modals/code-block-builder.mjs +408 -0
  88. package/dist/lib/esm/modals/index.d.mts +1 -0
  89. package/dist/lib/esm/modals/index.mjs +3 -1
  90. package/dist/lib/esm/plugin/index.d.mts +1 -0
  91. package/dist/lib/esm/plugin/index.mjs +3 -1
  92. package/dist/lib/esm/plugin/plugin-async-cleanup.d.mts +111 -0
  93. package/dist/lib/esm/plugin/plugin-async-cleanup.mjs +96 -0
  94. package/dist/lib/esm/plugin/plugin.d.mts +25 -1
  95. package/dist/lib/esm/plugin/plugin.mjs +52 -2
  96. package/dist/lib/esm/vault.mjs +2 -2
  97. package/dist/lib/esm/virtual-file.d.mts +48 -0
  98. package/dist/lib/esm/virtual-file.mjs +264 -0
  99. package/dist/styles.css +31 -1
  100. package/modals/code-block-builder/package.json +6 -0
  101. package/package.json +5 -5
  102. package/plugin/plugin-async-cleanup/package.json +6 -0
@@ -118,6 +118,11 @@ import {
118
118
  recordCodeBlockRenderHandoff,
119
119
  restoreCodeBlockFocus
120
120
  } from "./code-block-render-handoff.mjs";
121
+ import {
122
+ createLivePreviewOnlyExtension,
123
+ createSourceModeOnlyExtension,
124
+ isLivePreview
125
+ } from "./codemirror/editor-mode-extension.mjs";
121
126
  import { createIncrementalParseStateField } from "./codemirror/incremental-parse-state-field.mjs";
122
127
  import {
123
128
  createInlineTokenWidgetsExtension,
@@ -164,7 +169,11 @@ import {
164
169
  UpdateCommunityPluginResult
165
170
  } from "./community-plugins.mjs";
166
171
  import { AbortSignalComponent } from "./components/abort-signal-component.mjs";
167
- import { AllWindowsEventComponent } from "./components/all-windows-event-component.mjs";
172
+ import {
173
+ AllWindowsEventComponent,
174
+ forEachWindow,
175
+ registerBodyClass
176
+ } from "./components/all-windows-event-component.mjs";
168
177
  import { AsyncErrorHandlerComponent } from "./components/async-error-handler-component.mjs";
169
178
  import { registerAsyncEvent } from "./components/async-events-component.mjs";
170
179
  import { BulkOperationCommitComponent } from "./components/bulk-operation-commit-component.mjs";
@@ -357,6 +366,11 @@ import {
357
366
  resolveFolderNote,
358
367
  resolveFolderNoteConfig
359
368
  } from "./folder-note.mjs";
369
+ import {
370
+ createFormulaFunction,
371
+ createFormulaFunctionParameter,
372
+ registerFormulaFunction
373
+ } from "./formula-function.mjs";
360
374
  import {
361
375
  enableFrontmatterFormattingPreservation,
362
376
  preserveFrontmatterFormatting
@@ -396,6 +410,7 @@ import {
396
410
  } from "./html-element.mjs";
397
411
  import {
398
412
  DEFAULT_NS,
413
+ getLanguagesToLoad,
399
414
  initI18N,
400
415
  t
401
416
  } from "./i18n/i18n.mjs";
@@ -492,6 +507,10 @@ import {
492
507
  } from "./metadata-cache.mjs";
493
508
  import { getMobileAppInfo } from "./mobile-app-info.mjs";
494
509
  import { alert } from "./modals/alert.mjs";
510
+ import {
511
+ formatCodeBlock,
512
+ showCodeBlockBuilder
513
+ } from "./modals/code-block-builder.mjs";
495
514
  import { confirm } from "./modals/confirm.mjs";
496
515
  import { MinimizableModal } from "./modals/minimizable-modal.mjs";
497
516
  import {
@@ -565,6 +584,14 @@ import {
565
584
  publishPluginApi,
566
585
  watchPluginApi
567
586
  } from "./plugin/plugin-api.mjs";
587
+ import {
588
+ DEFAULT_PLUGIN_ASYNC_CLEANUP_TIMEOUT_IN_MILLISECONDS,
589
+ didPluginAsyncCleanupsSettle,
590
+ hasPendingPluginAsyncCleanups,
591
+ PLUGIN_ASYNC_CLEANUPS_STATE_KEY,
592
+ registerPluginAsyncCleanup,
593
+ trackPluginAsyncCleanup
594
+ } from "./plugin/plugin-async-cleanup.mjs";
568
595
  import {
569
596
  addPluginCssClasses,
570
597
  initDebugController,
@@ -769,6 +796,7 @@ import {
769
796
  trashSafe
770
797
  } from "./vault.mjs";
771
798
  import { PluginViewRegistrar } from "./view-registrar.mjs";
799
+ import { registerVirtualFile } from "./virtual-file.mjs";
772
800
  import {
773
801
  ensureLayoutReady,
774
802
  getAllContainers,
@@ -1146,6 +1174,7 @@ export {
1146
1174
  DEFAULT_INLINE_TOKEN_SKIP_SELECTOR,
1147
1175
  DEFAULT_LANGUAGE,
1148
1176
  DEFAULT_NS,
1177
+ DEFAULT_PLUGIN_ASYNC_CLEANUP_TIMEOUT_IN_MILLISECONDS,
1149
1178
  DUMMY_PATH,
1150
1179
  DataStoreLocations,
1151
1180
  DataStoreReplica,
@@ -1236,6 +1265,7 @@ export {
1236
1265
  OpenFeatureRequestCommandHandler,
1237
1266
  OpenGitHubCommandHandler,
1238
1267
  OpenSettingsCommandHandler,
1268
+ PLUGIN_ASYNC_CLEANUPS_STATE_KEY,
1239
1269
  PLUGIN_LOADED_EVENT_NAME,
1240
1270
  PLUGIN_TRAILER_KEY,
1241
1271
  PLUGIN_UNLOADED_EVENT_NAME,
@@ -1410,15 +1440,19 @@ export {
1410
1440
  createElAsync,
1411
1441
  createExpectedTypeGuard,
1412
1442
  createFolderSafe,
1443
+ createFormulaFunction,
1444
+ createFormulaFunctionParameter,
1413
1445
  createFragmentAsync,
1414
1446
  createFragmentWithCodeBlocks,
1415
1447
  createFunction,
1416
1448
  createIncrementalParseStateField,
1417
1449
  createInlineTokenPostProcessor,
1418
1450
  createInlineTokenWidgetsExtension,
1451
+ createLivePreviewOnlyExtension,
1419
1452
  createObsidianMentionRegExp,
1420
1453
  createRequestUrlFetch,
1421
1454
  createSettingsFacet,
1455
+ createSourceModeOnlyExtension,
1422
1456
  createSpanAsync,
1423
1457
  createSvgAsync,
1424
1458
  createTemporaryFile,
@@ -1434,6 +1468,7 @@ export {
1434
1468
  deleteProperties,
1435
1469
  deleteProperty,
1436
1470
  delimiter,
1471
+ didPluginAsyncCleanupsSettle,
1437
1472
  dirname,
1438
1473
  disableCommunityPlugin,
1439
1474
  dispatchToAllMarkdownEditorViews,
@@ -1480,9 +1515,11 @@ export {
1480
1515
  findPluginApi,
1481
1516
  fixTitle,
1482
1517
  flushQueue,
1518
+ forEachWindow,
1483
1519
  format,
1484
1520
  formatBugReportEnvironment,
1485
1521
  formatBytes,
1522
+ formatCodeBlock,
1486
1523
  formatDebugGuideReference,
1487
1524
  formatHotkey,
1488
1525
  formatOperationId,
@@ -1551,6 +1588,7 @@ export {
1551
1588
  getIndexedBacklinksForFile,
1552
1589
  getInstalledPluginState,
1553
1590
  getInstalledPluginVersion,
1591
+ getLanguagesToLoad,
1554
1592
  getLatestReleaseVersion,
1555
1593
  getLfNormalizedOffsetToOriginalOffsetMapper,
1556
1594
  getLibDebugger,
@@ -1606,6 +1644,7 @@ export {
1606
1644
  hasLeadingSlash,
1607
1645
  hasOwnAttachmentFolder,
1608
1646
  hasPatchToken,
1647
+ hasPendingPluginAsyncCleanups,
1609
1648
  hasSingleOccurrence,
1610
1649
  hasWikilinkSyntax,
1611
1650
  hasWindowsTrailingChars,
@@ -1669,6 +1708,7 @@ export {
1669
1708
  isFunction,
1670
1709
  isImageFile,
1671
1710
  isInObsidian,
1711
+ isLivePreview,
1672
1712
  isLoaded,
1673
1713
  isMarkdownFile,
1674
1714
  isNote,
@@ -1779,16 +1819,20 @@ export {
1779
1819
  referenceToFileChange,
1780
1820
  registerAsyncErrorEventHandler,
1781
1821
  registerAsyncEvent,
1822
+ registerBodyClass,
1782
1823
  registerBulkOperationProgressListener,
1783
1824
  registerDebugSwitch,
1784
1825
  registerFileCacheForNonExistingFile,
1785
1826
  registerFiles,
1786
1827
  registerFoldHandlers,
1787
1828
  registerFootnoteLinkHandler,
1829
+ registerFormulaFunction,
1788
1830
  registerFrontmatterFormattingPreserver,
1789
1831
  registerInlineTokenRenderer,
1790
1832
  registerLinkHandlers,
1833
+ registerPluginAsyncCleanup,
1791
1834
  registerStyle,
1835
+ registerVirtualFile,
1792
1836
  relative,
1793
1837
  relativePathToResourceUrl,
1794
1838
  reloadCurrentFileCache,
@@ -1845,6 +1889,7 @@ export {
1845
1889
  setTimeoutAsync,
1846
1890
  shouldResetAlias,
1847
1891
  shouldUseWikilinks,
1892
+ showCodeBlockBuilder,
1848
1893
  showErrorAndDisablePlugin,
1849
1894
  showInitialDebugMessage,
1850
1895
  showModal,
@@ -1881,6 +1926,7 @@ export {
1881
1926
  toggleEnableCommunityPlugin,
1882
1927
  toggleInstallCommunityPlugin,
1883
1928
  tokenizeObsidianWords,
1929
+ trackPluginAsyncCleanup,
1884
1930
  trashSafe,
1885
1931
  triggerPluginLifecycleEvent,
1886
1932
  trimEnd,
@@ -1918,4 +1964,4 @@ export {
1918
1964
  watchPluginApi,
1919
1965
  wrapForCallout
1920
1966
  };
1921
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9fX21lcmdlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBBbmNob3JlZFN1Z2dlc3QgfSBmcm9tICcuL2FuY2hvcmVkLXN1Z2dlc3QudHMnO1xuZXhwb3J0IHsgZ2V0QXBwIH0gZnJvbSAnLi9hcHAudHMnO1xuZXhwb3J0IHtcbiAgcmV0cnlXaXRoVGltZW91dE5vdGljZSxcbiAgcnVuV2l0aFRpbWVvdXROb3RpY2Vcbn0gZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQge1xuICBBdHRhY2htZW50UGF0aENvbnRleHQsXG4gIENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX1BMVUdJTl9JRCxcbiAgRFVNTVlfUEFUSCxcbiAgZ2V0QXR0YWNobWVudEZpbGVQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhGb3JBdHRhY2htZW50LFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0SW5kZXhlZEJhY2tsaW5rc0ZvckZpbGUsXG4gIGl0ZXJhdGVSZWZlcmVuY2VzQWZmZWN0ZWRCeVJlbmFtZVxufSBmcm9tICcuL2JhY2tsaW5rLWluZGV4LnRzJztcbmV4cG9ydCB7XG4gIHJlbmRlckJhY2tsaW5rc1RhYmxlLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyXG59IGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0IHsgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBCcm9rZW5MaW5rQ2FuZGlkYXRlRmluZGVyLFxuICBCcm9rZW5MaW5rRXZpZGVuY2VLaW5kLFxuICBnZXRQYXJlbnRQYXRoLFxuICBnZXRQYXRoTWFwcGluZ1xufSBmcm9tICcuL2Jyb2tlbi1saW5rLWNhbmRpZGF0ZXMudHMnO1xuZXhwb3J0IHtcbiAgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFLFxuICBCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkLFxuICBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudCxcbiAgZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQsXG4gIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybCxcbiAgZ2V0R2l0SHViSXNzdWVGb3JtVXJsXG59IGZyb20gJy4vYnVnLXJlcG9ydC50cyc7XG5leHBvcnQge1xuICBCVUxLX09QRVJBVElPTl9IT0xEX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyxcbiAgaG9sZEJ1bGtPcGVyYXRpb25XaGlsZSxcbiAgcmVnaXN0ZXJCdWxrT3BlcmF0aW9uUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgcmVwb3J0QnVsa09wZXJhdGlvblByb2dyZXNzXG59IGZyb20gJy4vYnVsay1vcGVyYXRpb24tcHJvZ3Jlc3MudHMnO1xuZXhwb3J0IHtcbiAgYnVpbGRCZWZvcmVPcGVyYXRpb25Db21taXRTdWJqZWN0LFxuICBidWlsZE9wZXJhdGlvbkNvbW1pdE1lc3NhZ2UsXG4gIEJVTEtfT1BFUkFUSU9OX0xPQ0tfRklMRV9OQU1FLFxuICBCVUxLX09QRVJBVElPTl9MT0NLX1NUQUxFX0FGVEVSX0lOX01JTExJU0VDT05EUyxcbiAgZm9ybWF0T3BlcmF0aW9uSWQsXG4gIGdldE5leHRPcGVyYXRpb25JZCxcbiAgaXNCdWxrT3BlcmF0aW9uTG9jayxcbiAgaXNCdWxrT3BlcmF0aW9uTG9ja1N0YWxlLFxuICBPUEVSQVRJT05fVFJBSUxFUl9LRVksXG4gIHBhcnNlQnVsa09wZXJhdGlvbkNvbW1pdCxcbiAgcGFyc2VPcGVyYXRpb25OdW1iZXIsXG4gIFBMVUdJTl9UUkFJTEVSX0tFWVxufSBmcm9tICcuL2J1bGstb3BlcmF0aW9uLnRzJztcbmV4cG9ydCB7XG4gIENhbGxvdXRNb2RlLFxuICByZW5kZXJDYWxsb3V0LFxuICB3cmFwRm9yQ2FsbG91dFxufSBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0IHsgZ2V0Q2FudmFzUmVmZXJlbmNlcyB9IGZyb20gJy4vY2FudmFzLnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCB7XG4gIGNhcHR1cmVDb2RlQmxvY2tGb2N1cyxcbiAgY2xhaW1Db2RlQmxvY2tSZW5kZXJIYW5kb2ZmLFxuICBDT0RFX0JMT0NLX1JFTkRFUl9IQU5ET0ZGX0xJRkVUSU1FX0lOX01JTExJU0VDT05EUyxcbiAgcmVjb3JkQ29kZUJsb2NrUmVuZGVySGFuZG9mZixcbiAgcmVzdG9yZUNvZGVCbG9ja0ZvY3VzXG59IGZyb20gJy4vY29kZS1ibG9jay1yZW5kZXItaGFuZG9mZi50cyc7XG5leHBvcnQgeyBjcmVhdGVJbmNyZW1lbnRhbFBhcnNlU3RhdGVGaWVsZCB9IGZyb20gJy4vY29kZW1pcnJvci9pbmNyZW1lbnRhbC1wYXJzZS1zdGF0ZS1maWVsZC50cyc7XG5leHBvcnQge1xuICBjcmVhdGVJbmxpbmVUb2tlbldpZGdldHNFeHRlbnNpb24sXG4gIGV4ZWNBbGwsXG4gIHRvR2xvYmFsUmVnRXhwXG59IGZyb20gJy4vY29kZW1pcnJvci9pbmxpbmUtdG9rZW4td2lkZ2V0cy50cyc7XG5leHBvcnQge1xuICBkaXNwYXRjaFRvQWxsTWFya2Rvd25FZGl0b3JWaWV3cyxcbiAgZ2V0QWxsTWFya2Rvd25FZGl0b3JWaWV3c1xufSBmcm9tICcuL2NvZGVtaXJyb3IvbWFya2Rvd24tZWRpdG9yLXZpZXdzLnRzJztcbmV4cG9ydCB7IHJhbmdlU2V0VG9BcnJheSB9IGZyb20gJy4vY29kZW1pcnJvci9yYW5nZS1zZXQudHMnO1xuZXhwb3J0IHsgY3JlYXRlU2V0dGluZ3NGYWNldCB9IGZyb20gJy4vY29kZW1pcnJvci9zZXR0aW5ncy1mYWNldC50cyc7XG5leHBvcnQgeyBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9hYnN0cmFjdC1maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBDb21tYW5kSGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBFZGl0b3JDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9lZGl0b3ItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZpbGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9maWxlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBGb2xkZXJDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9mb2xkZXItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEdsb2JhbENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2dsb2JhbC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkJ1Z1JlcG9ydENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tYnVnLXJlcG9ydC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkRlbW9WYXVsdENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tZGVtby12YXVsdC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkRpc2N1c3Npb25Db21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9vcGVuLWRpc2N1c3Npb24tY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5GZWF0dXJlUmVxdWVzdENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tZmVhdHVyZS1yZXF1ZXN0LWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuR2l0SHViQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1naXQtaHViLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmRvQnVsa09wZXJhdGlvbkNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL3VuZG8tYnVsay1vcGVyYXRpb24tY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IFVubG9ja0FjdGl2ZU5vdGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGNvbmZpZ3VyZUNvbW11bml0eVBsdWdpbixcbiAgQ29uZmlndXJlQ29tbXVuaXR5UGx1Z2luUmVzdWx0LFxuICBkaXNhYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBlbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uLFxuICBpbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29uZmlndXJlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBQbHVnaW5FbmFibGVSZWZ1c2VkRXJyb3IsXG4gIHNlYXJjaENvbW11bml0eVBsdWdpbnMsXG4gIHRvZ2dsZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgdG9nZ2xlSW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgdW5pbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1cGRhdGVDb21tdW5pdHlQbHVnaW4sXG4gIFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdFxufSBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQWxsV2luZG93c0V2ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBCdWxrT3BlcmF0aW9uQ29tbWl0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb3JlUGx1Z2luVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgYXNEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEVtYmVkRXh0ZW5zaW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWJlZC1leHRlbnNpb25zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEZpbGVFeHBsb3JlclJvb3RNZW51Q29tcG9uZW50LFxuICBGaWxlRXhwbG9yZXJSb290TWVudVNwb3QsXG4gIFZBVUxUX05BTUVfU0VMRUNUT1JTXG59IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgR2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLW1hcmtkb3duLWxpbmstZGVmYXVsdC1wYXJhbXMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEluY3JlbWVudGFsRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2luY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIENhbGxiYWNrTGF5b3V0UmVhZHlDb21wb25lbnQsXG4gIExheW91dFJlYWR5Q29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQtcmVhZHktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYXJvdW5kLFxuICBoYXNQYXRjaFRva2VuLFxuICBNb25rZXlBcm91bmRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luQ29uZmxpY3RTZXZlcml0eSxcbiAgUGx1Z2luR2F0ZUNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWdhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlTW9kZVxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudCxcbiAgU3VnZ2VzdGVkUGx1Z2luU3RhdGVcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQb2ludGVyUG9zaXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVjb25maWd1cmFibGVFZGl0b3JFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVjb25maWd1cmFibGUtZWRpdG9yLWV4dGVuc2lvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFJlbGVhc2VOb3Rlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWxlYXNlLW5vdGVzLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBFbXB0eUZvbGRlckJlaGF2aW9yLFxuICBSZW5hbWVEZWxldGVIYW5kbGVyQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9yZW5hbWUtZGVsZXRlLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIE5PVF9FTVBUWV9ESVJFQ1RPUllfRVJST1JfQ09ERSxcbiAgUm1kaXJHdWFyZENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcm1kaXItZ3VhcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFNldHRpbmdzRmFjZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJTdHlsZSxcbiAgU3R5bGVTaGVldENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvc3R5bGUtc2hlZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRGF0YVN0b3JlTG9jYXRpb25zIH0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLWxvY2F0aW9ucy50cyc7XG5leHBvcnQge1xuICBEYXRhU3RvcmVSZXBsaWNhLFxuICBpc0RhdGFTdG9yZUpzb25WYWx1ZSxcbiAgaXNEYXRhU3RvcmVPcGVyYXRpb25cbn0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXJlcGxpY2EudHMnO1xuZXhwb3J0IHtcbiAgRGF0YVN0b3JlU2VlZHMsXG4gIHZhbGlkYXRlRGF0YVN0b3JlU2VlZFxufSBmcm9tICcuL2RhdGEtc3RvcmVzL2RhdGEtc3RvcmUtc2VlZHMudHMnO1xuZXhwb3J0IHsgRGF0YVN0b3JlVHJhbnNwb3J0IH0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyc7XG5leHBvcnQgeyBMb2NhbERhdGFTdG9yZSB9IGZyb20gJy4vZGF0YS1zdG9yZXMvbG9jYWwtZGF0YS1zdG9yZS50cyc7XG5leHBvcnQgeyBTaGFyZWREYXRhU3RvcmUgfSBmcm9tICcuL2RhdGEtc3RvcmVzL3NoYXJlZC1kYXRhLXN0b3JlLnRzJztcbmV4cG9ydCB7XG4gIGZpeFRpdGxlLFxuICBtYWtlTGlua1dpdGhQYXRoXG59IGZyb20gJy4vZGF0YXZpZXctbGluay50cyc7XG5leHBvcnQge1xuICBnZXRSZW5kZXJlZENvbnRhaW5lcixcbiAgaW5zZXJ0Q29kZUJsb2NrLFxuICByZWxvYWRDdXJyZW50RmlsZUNhY2hlLFxuICByZW5kZXJJZnJhbWUsXG4gIHJlbmRlclBhZ2luYXRlZExpc3QsXG4gIHJlbmRlclBhZ2luYXRlZFRhYmxlXG59IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcixcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7XG4gIEJ1bGtPcGVyYXRpb25HaXRSZXBvLFxuICBHaXRDb21tYW5kRXJyb3Jcbn0gZnJvbSAnLi9kZXNrdG9wLWJ1bGstb3BlcmF0aW9uLWdpdC50cyc7XG5leHBvcnQgeyBvcGVuRGVtb1ZhdWx0IH0gZnJvbSAnLi9kZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyLnRzJztcbmV4cG9ydCB7IGNyZWF0ZURlc2t0b3BHaXRSdW5uZXIgfSBmcm9tICcuL2Rlc2t0b3AtZ2l0LXJ1bm5lci50cyc7XG5leHBvcnQgeyBnZXREZXNrdG9wT3BlcmF0aW5nU3lzdGVtIH0gZnJvbSAnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnO1xuZXhwb3J0IHsgb3BlbkRlc2t0b3BSZXF1ZXN0VXJsU3RyZWFtIH0gZnJvbSAnLi9kZXNrdG9wLXJlcXVlc3QtdXJsLXN0cmVhbS50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JFeHRlbnNpb25SZWdpc3RyYXIgfSBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IFBsdWdpbkVkaXRvclN1Z2dlc3RSZWdpc3RyYXIgfSBmcm9tICcuL2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBDb21tYW5kRWRpdG9yU3VnZ2VzdCxcbiAgcHJpb3JpdGl6ZUVkaXRvclN1Z2dlc3Rcbn0gZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC50cyc7XG5leHBvcnQge1xuICBzeW5jT3BlbkVkaXRvckJ1ZmZlcnNGb3JQYXRoLFxuICB0b2dnbGVFZGl0b3JSZWFkT25seVxufSBmcm9tICcuL2VkaXRvci50cyc7XG5leHBvcnQge1xuICBFdmVudFJlZkRpc3Bvc2FibGUsXG4gIHN1YnNjcmliZURpc3Bvc2FibGVFdmVudCxcbiAgc3Vic2NyaWJlRXZlbnRcbn0gZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0IHsgUGx1Z2luRXh0ZW5zaW9uc1JlZ2lzdHJhciB9IGZyb20gJy4vZXh0ZW5zaW9ucy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgRkVBVFVSRV9SRVFVRVNUX0lTU1VFX0ZPUk1fVEVNUExBVEUsXG4gIEZlYXR1cmVSZXF1ZXN0SXNzdWVGb3JtRmllbGRJZCxcbiAgZ2V0RmVhdHVyZVJlcXVlc3RJc3N1ZUZvcm1Vcmxcbn0gZnJvbSAnLi9mZWF0dXJlLXJlcXVlc3QudHMnO1xuZXhwb3J0IHtcbiAgYXBwbHlDb250ZW50Q2hhbmdlcyxcbiAgYXBwbHlGaWxlQ2hhbmdlcyxcbiAgaXNDYW52YXNDaGFuZ2UsXG4gIGlzQ2FudmFzRmlsZU5vZGVDaGFuZ2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVDaGFuZ2UsXG4gIGlzQ29udGVudENoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgeyByZXZlYWxJbkZpbGVFeHBsb3JlciB9IGZyb20gJy4vZmlsZS1leHBsb3Jlci50cyc7XG5leHBvcnQge1xuICBhZGRBbGlhcyxcbiAgZGVsZXRlQWxpYXMsXG4gIHByb2Nlc3NGcm9udG1hdHRlcixcbiAgd2FpdEZvclBlbmRpbmdMaW5rVXBkYXRlc1xufSBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQge1xuICBhc0FycmF5T2ZGaWxlcyxcbiAgYXNBcnJheU9mRm9sZGVycyxcbiAgYXNGaWxlLFxuICBhc0ZpbGVPck51bGwsXG4gIGFzRm9sZGVyLFxuICBhc0ZvbGRlck9yTnVsbCxcbiAgQkFTRV9GSUxFX0VYVEVOU0lPTixcbiAgQ0FOVkFTX0ZJTEVfRVhURU5TSU9OLFxuICBjaGVja0V4dGVuc2lvbixcbiAgZG9lc0V4aXN0LFxuICBGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0QWJzdHJhY3RGaWxlLFxuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldEJhc2VuYW1lLFxuICBnZXRFeHRlbnNpb24sXG4gIGdldEZpbGUsXG4gIGdldEZpbGVPck51bGwsXG4gIGdldEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRGb2xkZXIsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgZ2V0TWFya2Rvd25GaWxlcyxcbiAgZ2V0T3JDcmVhdGVGaWxlLFxuICBnZXRPckNyZWF0ZUZvbGRlcixcbiAgZ2V0UGF0aCxcbiAgaXNBYnN0cmFjdEZpbGUsXG4gIGlzQmFzZUZpbGUsXG4gIGlzQ2FudmFzRmlsZSxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlcixcbiAgaXNNYXJrZG93bkZpbGUsXG4gIGlzTm90ZSxcbiAgaXNQYXRoT3JGaWxlLFxuICBpc1RyZWF0ZWRBc0F0dGFjaG1lbnQsXG4gIE1BUktET1dOX0ZJTEVfRVhURU5TSU9OLFxuICBNaXNzaW5nUGF0aFRyZWF0bWVudCxcbiAgdHJpbU1hcmtkb3duRXh0ZW5zaW9uXG59IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0IHtcbiAgRk9MREVSX05PVEVTX1BMVUdJTl9JRCxcbiAgRm9sZGVyTm90ZUxvY2F0aW9uLFxuICBnZXRGb2xkZXJOb3RlRm9sZGVyLFxuICByZXNvbHZlRm9sZGVyTm90ZSxcbiAgcmVzb2x2ZUZvbGRlck5vdGVDb25maWdcbn0gZnJvbSAnLi9mb2xkZXItbm90ZS50cyc7XG5leHBvcnQge1xuICBlbmFibGVGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2YXRpb24sXG4gIHByZXNlcnZlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nXG59IGZyb20gJy4vZnJvbnRtYXR0ZXItZm9ybWF0dGluZy50cyc7XG5leHBvcnQge1xuICBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMsXG4gIHRvRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0c1xufSBmcm9tICcuL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzJztcbmV4cG9ydCB7XG4gIGNoZWNrSXNQbGFpbk9iamVjdCxcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgcmVnaXN0ZXJGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXIsXG4gIHJlbW92ZUVtcHR5RnJvbnRtYXR0ZXJWYWx1ZXMsXG4gIHNldEZyb250bWF0dGVyXG59IGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0IHtcbiAgTElCUkFSWV9TVFlMRVMsXG4gIExJQlJBUllfVkVSU0lPTlxufSBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0IHsgZ2V0R2l0SHViRGlzY3Vzc2lvblVybCB9IGZyb20gJy4vZ2l0LWh1Yi1kaXNjdXNzaW9uLnRzJztcbmV4cG9ydCB7XG4gIGxvYWRHaXRSZW5hbWVzLFxuICBwYXJzZUdpdFJlbmFtZUxvZ1xufSBmcm9tICcuL2dpdC1yZW5hbWUtaGlzdG9yeS50cyc7XG5leHBvcnQge1xuICBmb3JtYXRIb3RrZXksXG4gIGdldEhvdGtleUZyb21LZXlib2FyZEV2ZW50LFxuICBpc1NhbWVIb3RrZXlcbn0gZnJvbSAnLi9ob3RrZXkudHMnO1xuZXhwb3J0IHsgUGx1Z2luSG92ZXJMaW5rU291cmNlUmVnaXN0cmFyIH0gZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgYXBwZW5kQ29kZUJsb2NrLFxuICBhcHBlbmRUZXh0T3JGcmFnbWVudENsb25lLFxuICBhcHBseVNwZWxsY2hlY2tNb2RlLFxuICBhc0NvZGVCbG9jayxcbiAgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc1xufSBmcm9tICcuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX05TLFxuICBpbml0STE4TixcbiAgdFxufSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5leHBvcnQgeyBlbiB9IGZyb20gJy4vaTE4bi9sb2NhbGVzL2VuLnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5leHBvcnQge1xuICBjcmVhdGVJbmxpbmVUb2tlblBvc3RQcm9jZXNzb3IsXG4gIERFRkFVTFRfSU5MSU5FX1RPS0VOX1NLSVBfU0VMRUNUT1IsXG4gIHJlZ2lzdGVySW5saW5lVG9rZW5SZW5kZXJlclxufSBmcm9tICcuL2lubGluZS10b2tlbi1yZW5kZXJlci50cyc7XG5leHBvcnQgeyBpc0luT2JzaWRpYW4gfSBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCB7XG4gIGluamVjdExpYnJhcnlTdHlsZXMsXG4gIExBU1RfTElCUkFSWV9WRVJTSU9OX0tFWSxcbiAgTElCUkFSWV9TVFlMRVNfRUxFTUVOVF9JRFxufSBmcm9tICcuL2xpYnJhcnktc3R5bGVzLnRzJztcbmV4cG9ydCB7XG4gIE9CU0lESUFOX0xJQlJBUllfTkFNRSxcbiAgT2JzaWRpYW5MaWJyYXJ5XG59IGZyb20gJy4vbGlicmFyeS50cyc7XG5leHBvcnQge1xuICBnZXRMaW5rQW5kVGFnQ29tcGxldGlvblRyaWdnZXIsXG4gIGdldFZhdWx0VGFnU3VnZ2VzdGlvbnMsXG4gIExpbmtBbmRUYWdDb21wbGV0aW9uS2luZCxcbiAgTGlua0FuZFRhZ0lucHV0U3VnZ2VzdFxufSBmcm9tICcuL2xpbmstYW5kLXRhZy1pbnB1dC1zdWdnZXN0LnRzJztcbmV4cG9ydCB7IG5vcm1hbGl6ZUxpbmtOYW1lIH0gZnJvbSAnLi9saW5rLW5hbWUudHMnO1xuZXhwb3J0IHtcbiAgYnVpbGRCYWNrbGlua3NTbmFwc2hvdCxcbiAgY29udmVydExpbmssXG4gIGVkaXRCYWNrbGlua3MsXG4gIGVkaXRCYWNrbGlua3NTbmFwc2hvdCxcbiAgZWRpdFJlZmVyZW5jZXMsXG4gIGVkaXRSZWZlcmVuY2VzSW5Db250ZW50LFxuICBleHRyYWN0UmVmZXJlbmNlRmlsZSxcbiAgZ2VuZXJhdGVNYXJrZG93bkxpbmssXG4gIGdlbmVyYXRlUmF3TWFya2Rvd25MaW5rLFxuICBnZXRHZW5lcmF0ZU1hcmtkb3duTGlua0RlZmF1bHRQYXJhbXNGbnMsXG4gIGhhc0FuZ2xlQnJhY2tldHMsXG4gIGhhc0VtYmVkU3ludGF4LFxuICBoYXNMZWFkaW5nRG90LFxuICBoYXNMZWFkaW5nU2xhc2gsXG4gIGhhc1dpa2lsaW5rU3ludGF4LFxuICBMaW5rUGF0aFN0eWxlLFxuICBMaW5rU3R5bGUsXG4gIHNob3VsZFJlc2V0QWxpYXMsXG4gIHNwbGl0U3VicGF0aCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5Db250ZW50LFxuICB1cGRhdGVGaWxlVXJsTGlua3NJbkZpbGUsXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZVJlZmVyZW5jZXNJbkNvbnRlbnQsXG4gIHVwZGF0ZVJlZmVyZW5jZXNJbkZpbGVcbn0gZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0IHsgbG9vcCB9IGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyxcbiAgaW5zZXJ0QWZ0ZXJDb2RlQmxvY2ssXG4gIGluc2VydEJlZm9yZUNvZGVCbG9jayxcbiAgcmVtb3ZlQ29kZUJsb2NrLFxuICByZXBsYWNlQ29kZUJsb2NrXG59IGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgZ2V0RnVsbENvbnRlbnRIdG1sIH0gZnJvbSAnLi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCB7XG4gIGZ1bGxSZW5kZXIsXG4gIG1hcmtkb3duVG9IdG1sLFxuICByZWdpc3RlckxpbmtIYW5kbGVycyxcbiAgcmVuZGVyRXh0ZXJuYWxMaW5rLFxuICByZW5kZXJJbnRlcm5hbExpbmtcbn0gZnJvbSAnLi9tYXJrZG93bi50cyc7XG5leHBvcnQgeyBhZGRTaW5nbGVDaG9pY2VNZW51SXRlbXMgfSBmcm9tICcuL21lbnUudHMnO1xuZXhwb3J0IHtcbiAgQURWQU5DRURfTUVUQURBVEFfQ0FDSEVfUExVR0lOX0lELFxuICBCQUNLTElOS19DQUNIRV9QTFVHSU5fSUQsXG4gIENhY2hlZE1ldGFkYXRhRXhGZWF0dXJlLFxuICBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHksXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgsXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlLFxuICBnZXRDYWNoZVNhZmUsXG4gIGdldEZyb250bWF0dGVyU2FmZSxcbiAgZ2V0UmVmZXJlbmNlcyxcbiAgaGFzQmFja2xpbmtDYWNoZVBsdWdpbixcbiAgaXNDYWNoZWRNZXRhZGF0YUV4LFxuICBwYXJzZU1ldGFkYXRhLFxuICByZWdpc3RlckZpbGVDYWNoZUZvck5vbkV4aXN0aW5nRmlsZSxcbiAgcmVnaXN0ZXJGaWxlcyxcbiAgdW5yZWdpc3RlckZpbGVDYWNoZUZvck5vbkV4aXN0aW5nRmlsZSxcbiAgdW5yZWdpc3RlckZpbGVzXG59IGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuZXhwb3J0IHsgZ2V0TW9iaWxlQXBwSW5mbyB9IGZyb20gJy4vbW9iaWxlLWFwcC1pbmZvLnRzJztcbmV4cG9ydCB7IGFsZXJ0IH0gZnJvbSAnLi9tb2RhbHMvYWxlcnQudHMnO1xuZXhwb3J0IHsgY29uZmlybSB9IGZyb20gJy4vbW9kYWxzL2NvbmZpcm0udHMnO1xuZXhwb3J0IHsgTWluaW1pemFibGVNb2RhbCB9IGZyb20gJy4vbW9kYWxzL21pbmltaXphYmxlLW1vZGFsLnRzJztcbmV4cG9ydCB7XG4gIE1vZGFsQ29tbWFuZEJ1aWxkZXIsXG4gIE1vZGFsQ29tbWFuZHNSZW5kZXJNb2RlXG59IGZyb20gJy4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQge1xuICBNb2RhbEJhc2UsXG4gIHNob3dNb2RhbFxufSBmcm9tICcuL21vZGFscy9tb2RhbC50cyc7XG5leHBvcnQgeyBwcm9tcHQgfSBmcm9tICcuL21vZGFscy9wcm9tcHQudHMnO1xuZXhwb3J0IHsgc2VsZWN0SXRlbSB9IGZyb20gJy4vbW9kYWxzL3NlbGVjdC1pdGVtLnRzJztcbmV4cG9ydCB7IHNlbGVjdE9wdGlvbiB9IGZyb20gJy4vbW9kYWxzL3NlbGVjdC1vcHRpb24udHMnO1xuZXhwb3J0IHsgU3VnZ2VzdE1vZGFsQ29tbWFuZEJ1aWxkZXIgfSBmcm9tICcuL21vZGFscy9zdWdnZXN0LW1vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aHMsXG4gIGZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uLFxuICBmaW5kTm90ZVByaW9yaXR5UmFuayxcbiAgTk9fUFJJT1JJVFlfTUFUQ0gsXG4gIE5vUHJpb3JpdHlXaW5uZXJSZWFzb24sXG4gIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aFxufSBmcm9tICcuL25vdGUtcHJpb3JpdHkudHMnO1xuZXhwb3J0IHtcbiAgTk9URUJPT0tfTkFWSUdBVE9SX01FTlVfU09VUkNFLFxuICBOT1RFQk9PS19OQVZJR0FUT1JfUExVR0lOX0lELFxuICByZXNvbHZlTm90ZWJvb2tOYXZpZ2F0b3JBcGlcbn0gZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5MaWJTdGF0ZSxcbiAgcmVzZXRPYnNpZGlhbkxpYlN0YXRlXG59IGZyb20gJy4vb2JzaWRpYW4tbGliLXN0YXRlLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBpc1NwZWxsY2hlY2tFbmFibGVkLFxuICBpc1NwZWxsY2hlY2tFbmFibGVkRm9yTW9kZSxcbiAgc2hvdWxkVXNlV2lraWxpbmtzLFxuICBTcGVsbGNoZWNrTW9kZVxufSBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCB7XG4gIGNhbm9uaWNhbGl6ZU9ic2lkaWFuVGV4dCxcbiAgY3JlYXRlT2JzaWRpYW5NZW50aW9uUmVnRXhwLFxuICBnZXRPYnNpZGlhbk5hbWVUb2tlbnMsXG4gIGlzT2JzaWRpYW5Xb3JkQ2hhcmFjdGVyLFxuICB0b2tlbml6ZU9ic2lkaWFuV29yZHNcbn0gZnJvbSAnLi9vYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMudHMnO1xuZXhwb3J0IHtcbiAgZXNjYXBlQWxpYXMsXG4gIGlzUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2UsXG4gIGlzUGFyc2VMaW5rUmVmZXJlbmNlLFxuICBwYXJzZUZyb250bWF0dGVyTGlua3MsXG4gIHBhcnNlTGluayxcbiAgcGFyc2VMaW5rcyxcbiAgdG9QYXJzZUxpbmtSZWZlcmVuY2UsXG4gIHVuZXNjYXBlQWxpYXNcbn0gZnJvbSAnLi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCB7XG4gIFBhdGhTZXR0aW5ncyxcbiAgcGF0aHNWYWxpZGF0b3Jcbn0gZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCB7IHByaW50VG9QZGYgfSBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgeyBQbHVnaW5DbGlIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGZpbmRQbHVnaW5BcGksXG4gIGdldFZhbGlkYXRlUGx1Z2luQXBpUGF5bG9hZHNEZWJ1Z1N3aXRjaCxcbiAgUGx1Z2luQXBpUGF5bG9hZEtpbmQsXG4gIFBsdWdpbkFwaVJldm9rZWRFcnJvcixcbiAgUGx1Z2luQXBpVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFBsdWdpbkFwaVVuYXZhaWxhYmxlRXJyb3IsXG4gIFBsdWdpbkFwaVZhbGlkYXRpb25FcnJvcixcbiAgcHVibGlzaFBsdWdpbkFwaSxcbiAgd2F0Y2hQbHVnaW5BcGlcbn0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWFwaS50cyc7XG5leHBvcnQge1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzLFxuICBpbml0RGVidWdDb250cm9sbGVyLFxuICBpbml0UGx1Z2luQ29udGV4dFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCB7XG4gIGdldEluc3RhbGxlZFBsdWdpblN0YXRlLFxuICBnZXRJbnN0YWxsZWRQbHVnaW5WZXJzaW9uLFxuICBpbnN0YWxsQW5kRW5hYmxlUGx1Z2luLFxuICBJbnN0YWxsZWRQbHVnaW5TdGF0ZSxcbiAgdXBkYXRlUGx1Z2luXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1pbnN0YWxsLXN0YXRlLnRzJztcbmV4cG9ydCB7XG4gIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRSxcbiAgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUUsXG4gIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cy50cyc7XG5leHBvcnQge1xuICBQbHVnaW5TZXR0aW5nc1RhYkJhc2UsXG4gIFNBVkVfVE9fRklMRV9DT05URVhUXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1zZXR0aW5ncy10YWIudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luQmFzZSxcbiAgcmVsb2FkUGx1Z2luLFxuICBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi50cyc7XG5leHBvcnQgeyBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0IH0gZnJvbSAnLi9wbHVnaW4vc2V0dGluZ3MtbWlncmF0aW9uLWFwaS50cyc7XG5leHBvcnQgeyBlZGl0RmllbGRzSW5Qb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVycy9maWVsZC1wb3BvdmVyLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUFuY2hvckZyb21Eb2N1bWVudENlbnRlcixcbiAgY3JlYXRlQW5jaG9yRnJvbUVsZW1lbnQsXG4gIGNyZWF0ZUFuY2hvckZyb21Qb2ludCxcbiAgY3JlYXRlQW5jaG9yRnJvbVNlbGVjdGlvblxufSBmcm9tICcuL3BvcG92ZXJzL3BvcG92ZXItYW5jaG9yLnRzJztcbmV4cG9ydCB7IHNob3dQb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVycy9wb3BvdmVyLnRzJztcbmV4cG9ydCB7XG4gIGlzUG9zaXRpb25Jbk9mZnNldFJhbmdlLFxuICBpc1Bvc2l0aW9uSW5zaWRlLFxuICBpc1Bvc2l0aW9uSW5zaWRlU29tZVxufSBmcm9tICcuL3Bvc2l0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMsXG4gIGlzUHJvcGVydHlFbnRyeSxcbiAgUFJPUEVSVFlfRU5UUllfUFJFRklYXG59IGZyb20gJy4vcHJvcGVydHktZW50cnkudHMnO1xuZXhwb3J0IHtcbiAgYWRkVG9RdWV1ZSxcbiAgYWRkVG9RdWV1ZUFuZFdhaXQsXG4gIGZsdXNoUXVldWVcbn0gZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQge1xuICBBcHBDb250ZXh0LFxuICB1c2VBcHBcbn0gZnJvbSAnLi9yZWFjdC9hcHAtY29udGV4dC50cyc7XG5leHBvcnQge1xuICBnZXRSZWZlcmVuY2VMaW5rVGV4dCxcbiAgaXNDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSxcbiAgaXNDYW52YXNSZWZlcmVuY2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UsXG4gIGlzUmVmZXJlbmNlSW5IZWFkaW5nLFxuICBpc1JlZmVyZW5jZUluT2Zmc2V0UmFuZ2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNPd25lZEJ5UmVuZGVyZWRNYXJrZG93bixcbiAgcmVnaXN0ZXJGb2xkSGFuZGxlcnMsXG4gIHJlZ2lzdGVyRm9vdG5vdGVMaW5rSGFuZGxlclxufSBmcm9tICcuL3JlbmRlcmVkLW1hcmtkb3duLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZVJlcXVlc3RVcmxGZXRjaCxcbiAgZW5jb2RlUmVxdWVzdFVybFJlcXVlc3QsXG4gIFJlcXVlc3RVcmxFcnJvcixcbiAgcmVxdWVzdFVybEV4LFxuICByZXF1ZXN0VXJsU3RyZWFtXG59IGZyb20gJy4vcmVxdWVzdC11cmwudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoQnlBbmNlc3RvcixcbiAgbG9ja1Jlc291cmNlRm9yUGF0aCxcbiAgcmVxdWVzdFJlc291cmNlVW5sb2NrRm9yUGF0aCxcbiAgUmVzb3VyY2VMb2NrQ29tcG9uZW50LFxuICBSZXNvdXJjZUxvY2tlZEVycm9yLFxuICB1bmxvY2tSZXNvdXJjZUZvclBhdGhcbn0gZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgeyBQbHVnaW5SaWJib25JY29uUmVnaXN0cmFyIH0gZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS10aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2VtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgRm9sZGVySW5wdXRTdWdnZXN0LFxuICBGb2xkZXJMaXN0Q29tcG9uZW50XG59IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2ZvbGRlci1saXN0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBIb3RrZXlDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9ob3RrZXktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9saXN0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNb250aENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL21vbnRoLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRW1haWxDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtdGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbnVtYmVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3Bhc3N3b3JkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnQtd3JhcHBlci50cyc7XG5leHBvcnQge1xuICBUYWdJbnB1dFN1Z2dlc3QsXG4gIFRhZ0xpc3RDb21wb25lbnRcbn0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGFnLWxpc3QtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RlbGVwaG9uZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1yYW5nZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFRleHRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy91cmwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3dlZWstY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFkb3B0U2V0dGluZ0V4LFxuICBTZXR0aW5nRXhcbn0gZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCB7IFNldHRpbmdHcm91cEV4IH0gZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCB7IG9wZW5TZXR0aW5nVGFiIH0gZnJvbSAnLi9zZXR0aW5ncy1tb2RhbC50cyc7XG5leHBvcnQgeyBTZXR0aW5nc1RhYnMgfSBmcm9tICcuL3NldHRpbmdzLXRhYnMudHMnO1xuZXhwb3J0IHsgUGx1Z2luU3RhdHVzQmFySXRlbVJlZ2lzdHJhciB9IGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRUZW1wbGF0ZXJGdW5jdGlvbnMsXG4gIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUsXG4gIHBhcnNlVGVtcGxhdGUsXG4gIHJlcXVpcmVUZW1wbGF0ZXJBcGksXG4gIHJlc29sdmVUZW1wbGF0ZXJBcGksXG4gIFRFTVBMQVRFUl9QTFVHSU5fSUQsXG4gIFRlbXBsYXRlckFjdGl2ZUZpbGVQcm92aWRlcixcbiAgVGVtcGxhdGVyUnVuTW9kZSxcbiAgVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3Jcbn0gZnJvbSAnLi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2R1cmF0aW9uLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7XG4gIGNsaWNrRWxlbWVudCxcbiAgY2xpY2tNb3VzZSxcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7XG4gIEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMsXG4gIGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyLFxuICBpc1dpbmRvd3NSZXNlcnZlZE5hbWUsXG4gIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyxcbiAgdHJpbVdpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBVTklYX1VOU0FGRV9QQVRIX0NIQVJTLFxuICBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTXG59IGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQge1xuICBkZWxldGVJZk5vdFVzZWQsXG4gIERlbGV0ZUlmTm90VXNlZFJlc3VsdFxufSBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgeyBWYXVsdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQge1xuICBjbGVhbnVwRW1wdHlGb2xkZXJzLFxuICBjb3B5U2FmZSxcbiAgY3JlYXRlRm9sZGVyU2FmZSxcbiAgQ3JlYXRlRm9sZGVyU2FmZVJlc3VsdCxcbiAgY3JlYXRlVGVtcG9yYXJ5RmlsZSxcbiAgY3JlYXRlVGVtcG9yYXJ5Rm9sZGVyLFxuICBkZWxldGVFbXB0eUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHksXG4gIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlLFxuICBnZXRBdmFpbGFibGVQYXRoLFxuICBnZXRGaWxlUGF0aFNhZmUsXG4gIGdldEZvbGRlclBhdGhTYWZlLFxuICBnZXRNYXJrZG93bkZpbGVzU29ydGVkLFxuICBnZXROb3RlRmlsZXNTb3J0ZWQsXG4gIGdldE9yQ3JlYXRlQWJzdHJhY3RGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXJTYWZlLFxuICBnZXRTYWZlUmVuYW1lUGF0aCxcbiAgSW52b2tlRmlsZUFjdGlvblNhZmVSZXN1bHQsXG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgaXNDaGlsZCxcbiAgaXNDaGlsZE9yU2VsZixcbiAgaXNFbXB0eUZvbGRlcixcbiAgbGlzdFNhZmUsXG4gIHByb2Nlc3MsXG4gIHJlYWRTYWZlLFxuICByZW5hbWVTYWZlLFxuICBzYXZlTm90ZSxcbiAgdHJhc2hTYWZlXG59IGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luVmlld1JlZ2lzdHJhciB9IGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZW5zdXJlTGF5b3V0UmVhZHksXG4gIGdldEFsbENvbnRhaW5lcnMsXG4gIGdldEFsbERvbVdpbmRvd3MsXG4gIGdldE1haW5XaW5kb3csXG4gIHN3aXRjaFRvTWFpbldpbmRvdyxcbiAgc3dpdGNoVG9XaW5kb3dcbn0gZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyLFxuICBnZXRTaGFyZWRBYm9ydFNpZ25hbCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcixcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmV4cG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZUVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FnZ3JlZ2F0ZS1lcnJvcic7XG5leHBvcnQge1xuICBhcnJheUd1YXJkLFxuICBCT09MRUFOX0dVQVJELFxuICBjcmVhdGVBcGlDb250cmFjdFNjaGVtYUJ1aWxkZXJzLFxuICBjcmVhdGVBcmd1bWVudHNTY2hlbWEsXG4gIGNyZWF0ZUV4cGVjdGVkVHlwZUd1YXJkLFxuICBjcmVhdGVUeXBlR3VhcmRTY2hlbWEsXG4gIGRlZmluZUFwaUNvbnRyYWN0LFxuICBpbnN0YW5jZU9mR3VhcmQsXG4gIGxpdGVyYWxHdWFyZCxcbiAgbnVsbGFibGVHdWFyZCxcbiAgTlVNQkVSX0dVQVJELFxuICBvYmplY3RHdWFyZCxcbiAgb3B0aW9uYWxHdWFyZCxcbiAgb3B0aW9uc0d1YXJkLFxuICBTVFJJTkdfQVJSQVlfR1VBUkQsXG4gIFNUUklOR19HVUFSRCxcbiAgVU5ERUZJTkVEX0dVQVJELFxuICB1bmlvbkd1YXJkXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcGktY29udHJhY3QnO1xuZXhwb3J0IHtcbiAgdmFsaWRhdGVTeW5jLFxuICB2ZXJpZnlBcGlDb250cmFjdFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0LXZlcmlmaWVyJztcbmV4cG9ydCB7XG4gIGZpbHRlckluUGxhY2UsXG4gIHNuYXBzaG90LFxuICB1bmlxdWUsXG4gIHVuaXF1ZUluUGxhY2Vcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FycmF5JztcbmV4cG9ydCB7IHRvQXJyYXlCdWZmZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXJyYXktYnVmZmVyJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBoYW5kbGVTaWxlbnRFcnJvcixcbiAgaWdub3JlRXJyb3IsXG4gIGludm9rZUFzeW5jU2FmZWx5LFxuICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXksXG4gIGlzVGVybWluYXRpb25PblRpbWVvdXRFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUZXJtaW5hdGlvbk9uVGltZW91dEVuYWJsZWQsXG4gIHNldFRpbWVvdXRBc3luYyxcbiAgc2xlZXAsXG4gIHRpbWVvdXQsXG4gIHRvQXJyYXlcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmV4cG9ydCB7XG4gIEFzeW5jRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBBc3luY0V2ZW50cyxcbiAgQXN5bmNFdmVudHNCYXNlLFxuICBtaXhpbkFzeW5jRXZlbnRzLFxuICBzdWJzY3JpYmVBc3luY0Rpc3Bvc2FibGVFdmVudFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMtZXZlbnRzJztcbmV4cG9ydCB7XG4gIEFTWU5DX09QRVJBVElPTl9IT09LX0tFWSxcbiAgQVNZTkNfT1BFUkFUSU9OX0hPT0tfVkVSU0lPTixcbiAgZ2V0QXN5bmNPcGVyYXRpb25Ib29rLFxuICBub3RpZnlBc3luY09wZXJhdGlvblN0YXJ0ZWQsXG4gIHNldEFzeW5jT3BlcmF0aW9uSG9va1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMtb3BlcmF0aW9uLWhvb2snO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2JlZXBlcic7XG5leHBvcnQge1xuICBibG9iVG9BcnJheUJ1ZmZlcixcbiAgYmxvYlRvRGF0YVVybCxcbiAgYmxvYlRvSnBlZ0FycmF5QnVmZmVyLFxuICBkYXRhVXJsVG9BcnJheUJ1ZmZlcixcbiAgaXNJbWFnZUZpbGVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Jsb2InO1xuZXhwb3J0IHsgZm9ybWF0Qnl0ZXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYnl0ZXMnO1xuZXhwb3J0IHtcbiAgZW5hYmxlTGlicmFyeURlYnVnZ2VycyxcbiAgZm9ybWF0RGVidWdHdWlkZVJlZmVyZW5jZSxcbiAgZ2V0RGVidWdDb250cm9sbGVyLFxuICBnZXREZWJ1Z2dlcixcbiAgZ2V0TGliRGVidWdnZXIsXG4gIGlzRGVidWdOYW1lc3BhY2VFbmFibGVkLFxuICBwcmludFdpdGhTdGFja1RyYWNlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5leHBvcnQge1xuICBnZXREZWJ1Z1N3aXRjaCxcbiAgZ2V0RGVidWdTd2l0Y2hlcyxcbiAgZ2V0VGVybWluYXRlT25UaW1lb3V0RGVidWdTd2l0Y2gsXG4gIG9uRGVidWdTd2l0Y2hDaGFuZ2VkLFxuICByZWdpc3RlckRlYnVnU3dpdGNoLFxuICBzZXREZWJ1Z1N3aXRjaFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWctc3dpdGNoZXMnO1xuZXhwb3J0IHsgZXh0cmFjdFppcEFyY2hpdmUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVza3RvcC16aXAtZXh0cmFjdG9yJztcbmV4cG9ydCB7XG4gIEFzeW5jQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBBc3luY0Rpc3Bvc2FibGVCYXNlLFxuICBDYWxsYmFja0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVBc3luY0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVEaXNwb3NhYmxlLFxuICBEaXNwb3NhYmxlQmFzZSxcbiAgZGlzcG9zZSxcbiAgZGlzcG9zZUFzeW5jLFxuICBEaXNwb3NlRXJyb3JCZWhhdmlvcixcbiAgRGlzcG9zZU9yZGVyLFxuICBpc0FzeW5jRGlzcG9zYWJsZSxcbiAgaXNBc3luY0Rpc3Bvc2FibGVFeCxcbiAgaXNEaXNwb3NhYmxlLFxuICBpc0Rpc3Bvc2FibGVFeCxcbiAgTXVsdGlwbGVEaXNwb3NlQmVoYXZpb3IsXG4gIHRvQXN5bmNEaXNwb3NhYmxlRXgsXG4gIHRvRGlzcG9zYWJsZUV4XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kaXNwb3NhYmxlJztcbmV4cG9ydCB7XG4gIGdldEVudW1LZXksXG4gIGdldEVudW1WYWx1ZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZW51bSc7XG5leHBvcnQge1xuICBBU1lOQ19XUkFQUEVSX0VSUk9SX01FU1NBR0UsXG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZHJhaW5Db2xsZWN0ZWRVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgZW1pdEFzeW5jRXJyb3JFdmVudCxcbiAgZXJyb3JUb1N0cmluZyxcbiAgRXJyb3JXcmFwcGVyLFxuICBnZXRTdGFja1RyYWNlLFxuICBpc0FzeW5jRXJyb3JJZ25vcmVDb250ZXh0QWN0aXZlLFxuICBwcmludEVycm9yLFxuICByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIsXG4gIFNpbGVudEVycm9yLFxuICBzdGFydEFzeW5jRXJyb3JJZ25vcmVDb250ZXh0LFxuICBzdGFydENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgc3RvcENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgdGhyb3dFeHByZXNzaW9uXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9lcnJvcic7XG5leHBvcnQge1xuICBjbG9uZUZ1bmN0aW9uLFxuICBjcmVhdGVGdW5jdGlvbixcbiAgZ2V0RnVuY3Rpb25FeHByZXNzaW9uU3RyaW5nLFxuICBub29wLFxuICBub29wQXN5bmMsXG4gIG5vb3BBc3luY1NpbmdsZXRvblByb21pc2UsXG4gIG9taXRBc3luY1JldHVyblR5cGUsXG4gIG9taXRSZXR1cm5UeXBlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5leHBvcnQge1xuICBjcmVhdGVEaXZBc3luYyxcbiAgY3JlYXRlRWxBc3luYyxcbiAgY3JlYXRlRnJhZ21lbnRBc3luYyxcbiAgY3JlYXRlU3BhbkFzeW5jLFxuICBjcmVhdGVTdmdBc3luYyxcbiAgZW5zdXJlTG9hZGVkLFxuICBnZXREb2N1bWVudFdpbmRvdyxcbiAgZ2V0WkluZGV4LFxuICBpc0VsZW1lbnRWaXNpYmxlSW5PZmZzZXRQYXJlbnQsXG4gIGlzTG9hZGVkLFxuICBvbkFuY2VzdG9yU2Nyb2xsT3JSZXNpemUsXG4gIHRvUHgsXG4gIHdhaXRVbnRpbENvbm5lY3RlZFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvaHRtbC1lbGVtZW50JztcbmV4cG9ydCB7XG4gIGV4dHJhY3RKcGVnTWV0YWRhdGFTZWdtZW50cyxcbiAgaW5qZWN0SnBlZ01ldGFkYXRhU2VnbWVudHNcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2pwZWctbWV0YWRhdGEnO1xuZXhwb3J0IHtcbiAgREVGQVVMVF9ERUJVR19OQU1FU1BBQ0UsXG4gIExpYnJhcnksXG4gIExJQlJBUllfTkFNRVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvbGlicmFyeSc7XG5leHBvcnQge1xuICBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGNhc3RUbyxcbiAgY2xvbmVXaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnR5LFxuICBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AsXG4gIEZ1bmN0aW9uSGFuZGxpbmdNb2RlLFxuICBnZXRBbGxFbnRyaWVzLFxuICBnZXRBbGxLZXlzLFxuICBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICBnZXRQcm90b3R5cGVPZixcbiAgaXNEZWVwRXF1YWwsXG4gIG5hbWVvZixcbiAgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzLFxuICByZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzLFxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICB0b0pzb25cbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5leHBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGVsaW1pdGVyLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBmb3JtYXQsXG4gIGdldEZpbGVOYW1lLFxuICBnZXRGb2xkZXJOYW1lLFxuICBpc0Fic29sdXRlLFxuICBqb2luLFxuICBtYWtlRmlsZU5hbWUsXG4gIG5vcm1hbGl6ZUlmUmVsYXRpdmUsXG4gIG5vcm1hbGl6ZVBhdGgsXG4gIHBhcnNlLFxuICBwb3NpeCxcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHNlcGFyYXRvcixcbiAgdG9Qb3NpeEJ1ZmZlcixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuZXhwb3J0IHtcbiAgQUxXQVlTX01BVENIX1JFR19FWFAsXG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCxcbiAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQLFxuICBvbmVPZixcbiAgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuZXhwb3J0IHtcbiAgRU1QVFksXG4gIGVuc3VyZUVuZHNXaXRoLFxuICBlbnN1cmVMZkVuZGluZ3MsXG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIGVzY2FwZSxcbiAgZ2V0TGZOb3JtYWxpemVkT2Zmc2V0VG9PcmlnaW5hbE9mZnNldE1hcHBlcixcbiAgaGFzU2luZ2xlT2NjdXJyZW5jZSxcbiAgaW5kZW50LFxuICBpbnNlcnRBdCxcbiAgbWFrZVZhbGlkVmFyaWFibGVOYW1lLFxuICBub3JtYWxpemVTdHJpbmcsXG4gIHJlcGxhY2UsXG4gIHJlcGxhY2VBbGwsXG4gIHJlcGxhY2VBbGxBc3luYyxcbiAgdHJpbUVuZCxcbiAgdHJpbVN0YXJ0LFxuICB1bmVzY2FwZSxcbiAgdW5pbmRlbnRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5leHBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL2RhdGUtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgR3JvdXBUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvZ3JvdXAtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL21hcC10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBTZXRUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvc2V0LXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvc2tpcC1wcml2YXRlLXByb3BlcnR5LXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy90cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUd29XYXlNYXBUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvdHdvLXdheS1tYXAtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgVHlwZWRUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvdHlwZWQtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgVHdvV2F5TWFwIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R3by13YXktbWFwJztcbmV4cG9ydCB7IFR5cGVBc3NlcnRlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlJztcbmV4cG9ydCB7XG4gIGFycmF5VHlwZUd1YXJkLFxuICBhc3NlcnQsXG4gIGFzc2VydEdlbmVyaWNPYmplY3QsXG4gIGFzc2VydE5ldmVyLFxuICBhc3NlcnROb25OdWxsYWJsZSxcbiAgZW5zdXJlR2VuZXJpY09iamVjdCxcbiAgZW5zdXJlTm9uTnVsbGFibGUsXG4gIGZ1bmN0aW9uVHlwZUd1YXJkLFxuICBpbnN0YW5jZU9mVHlwZUd1YXJkLFxuICBpc0Jvb2xlYW4sXG4gIGlzRnVuY3Rpb24sXG4gIGlzTnVsbCxcbiAgaXNOdW1iZXIsXG4gIGlzT2JqZWN0LFxuICBpc1N0cmluZyxcbiAgaXNTdHJpbmdBcnJheSxcbiAgaXNVbmRlZmluZWQsXG4gIGxpdGVyYWxUeXBlR3VhcmQsXG4gIG51bGxhYmxlVHlwZUd1YXJkLFxuICBvYmplY3RUeXBlR3VhcmQsXG4gIG9wdGlvbmFsVHlwZUd1YXJkLFxuICB1bmlvblR5cGVHdWFyZFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuZXhwb3J0IHtcbiAgZ2V0VHlwZXNjcmlwdExpYlN0YXRlLFxuICBnZXRUeXBlc2NyaXB0TGliU3RhdGVTbG90LFxuICByZXNldFR5cGVzY3JpcHRMaWJTdGF0ZSxcbiAgVFlQRVNDUklQVF9MSUJfU1RBVEVfS0VZLFxuICBUWVBFU0NSSVBUX0xJQl9TVEFURV9WRVJTSU9OXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlc2NyaXB0LWxpYi1zdGF0ZSc7XG5leHBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGlzRmlsZVVybCxcbiAgaXNVcmwsXG4gIG5vcm1hbGl6ZUZpbGVVcmwsXG4gIHBhdGhUb0ZpbGVVcmxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3VybCc7XG5leHBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdmFsdWUtcHJvdmlkZXInO1xuZXhwb3J0IHsgVmFsdWVXcmFwcGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3ZhbHVlLXdyYXBwZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVMsNkJBQTZCO0FBQ3RD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QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDhCQUE4QjtBQUN2QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsc0NBQXNDO0FBQy9DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxVQUFVO0FBQ25CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxvQkFBb0I7QUFDN0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx5QkFBeUI7QUFDbEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVB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LG9CQUFvQjtBQUM3QixTQUFTLG9DQUFvQztBQUM3QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUywyQkFBMkI7QUFDcEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx3QkFBd0I7QUFDakM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDJCQUEyQjtBQUNwQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDRCQUE0QjtBQUNyQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHFCQUFxQjtBQUM5QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG1CQUFtQjtBQUM1QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx5QkFBeUI7QUFDbEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLG9CQUFvQjtBQUM3QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsb0JBQW9COyIsIm5hbWVzIjpbXX0=
1967
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9fX21lcmdlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBBbmNob3JlZFN1Z2dlc3QgfSBmcm9tICcuL2FuY2hvcmVkLXN1Z2dlc3QudHMnO1xuZXhwb3J0IHsgZ2V0QXBwIH0gZnJvbSAnLi9hcHAudHMnO1xuZXhwb3J0IHtcbiAgcmV0cnlXaXRoVGltZW91dE5vdGljZSxcbiAgcnVuV2l0aFRpbWVvdXROb3RpY2Vcbn0gZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQge1xuICBBdHRhY2htZW50UGF0aENvbnRleHQsXG4gIENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX1BMVUdJTl9JRCxcbiAgRFVNTVlfUEFUSCxcbiAgZ2V0QXR0YWNobWVudEZpbGVQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhGb3JBdHRhY2htZW50LFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0SW5kZXhlZEJhY2tsaW5rc0ZvckZpbGUsXG4gIGl0ZXJhdGVSZWZlcmVuY2VzQWZmZWN0ZWRCeVJlbmFtZVxufSBmcm9tICcuL2JhY2tsaW5rLWluZGV4LnRzJztcbmV4cG9ydCB7XG4gIHJlbmRlckJhY2tsaW5rc1RhYmxlLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyXG59IGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0IHsgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBCcm9rZW5MaW5rQ2FuZGlkYXRlRmluZGVyLFxuICBCcm9rZW5MaW5rRXZpZGVuY2VLaW5kLFxuICBnZXRQYXJlbnRQYXRoLFxuICBnZXRQYXRoTWFwcGluZ1xufSBmcm9tICcuL2Jyb2tlbi1saW5rLWNhbmRpZGF0ZXMudHMnO1xuZXhwb3J0IHtcbiAgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFLFxuICBCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkLFxuICBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudCxcbiAgZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQsXG4gIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybCxcbiAgZ2V0R2l0SHViSXNzdWVGb3JtVXJsXG59IGZyb20gJy4vYnVnLXJlcG9ydC50cyc7XG5leHBvcnQge1xuICBCVUxLX09QRVJBVElPTl9IT0xEX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyxcbiAgaG9sZEJ1bGtPcGVyYXRpb25XaGlsZSxcbiAgcmVnaXN0ZXJCdWxrT3BlcmF0aW9uUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgcmVwb3J0QnVsa09wZXJhdGlvblByb2dyZXNzXG59IGZyb20gJy4vYnVsay1vcGVyYXRpb24tcHJvZ3Jlc3MudHMnO1xuZXhwb3J0IHtcbiAgYnVpbGRCZWZvcmVPcGVyYXRpb25Db21taXRTdWJqZWN0LFxuICBidWlsZE9wZXJhdGlvbkNvbW1pdE1lc3NhZ2UsXG4gIEJVTEtfT1BFUkFUSU9OX0xPQ0tfRklMRV9OQU1FLFxuICBCVUxLX09QRVJBVElPTl9MT0NLX1NUQUxFX0FGVEVSX0lOX01JTExJU0VDT05EUyxcbiAgZm9ybWF0T3BlcmF0aW9uSWQsXG4gIGdldE5leHRPcGVyYXRpb25JZCxcbiAgaXNCdWxrT3BlcmF0aW9uTG9jayxcbiAgaXNCdWxrT3BlcmF0aW9uTG9ja1N0YWxlLFxuICBPUEVSQVRJT05fVFJBSUxFUl9LRVksXG4gIHBhcnNlQnVsa09wZXJhdGlvbkNvbW1pdCxcbiAgcGFyc2VPcGVyYXRpb25OdW1iZXIsXG4gIFBMVUdJTl9UUkFJTEVSX0tFWVxufSBmcm9tICcuL2J1bGstb3BlcmF0aW9uLnRzJztcbmV4cG9ydCB7XG4gIENhbGxvdXRNb2RlLFxuICByZW5kZXJDYWxsb3V0LFxuICB3cmFwRm9yQ2FsbG91dFxufSBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0IHsgZ2V0Q2FudmFzUmVmZXJlbmNlcyB9IGZyb20gJy4vY2FudmFzLnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCB7XG4gIGNhcHR1cmVDb2RlQmxvY2tGb2N1cyxcbiAgY2xhaW1Db2RlQmxvY2tSZW5kZXJIYW5kb2ZmLFxuICBDT0RFX0JMT0NLX1JFTkRFUl9IQU5ET0ZGX0xJRkVUSU1FX0lOX01JTExJU0VDT05EUyxcbiAgcmVjb3JkQ29kZUJsb2NrUmVuZGVySGFuZG9mZixcbiAgcmVzdG9yZUNvZGVCbG9ja0ZvY3VzXG59IGZyb20gJy4vY29kZS1ibG9jay1yZW5kZXItaGFuZG9mZi50cyc7XG5leHBvcnQge1xuICBjcmVhdGVMaXZlUHJldmlld09ubHlFeHRlbnNpb24sXG4gIGNyZWF0ZVNvdXJjZU1vZGVPbmx5RXh0ZW5zaW9uLFxuICBpc0xpdmVQcmV2aWV3XG59IGZyb20gJy4vY29kZW1pcnJvci9lZGl0b3ItbW9kZS1leHRlbnNpb24udHMnO1xuZXhwb3J0IHsgY3JlYXRlSW5jcmVtZW50YWxQYXJzZVN0YXRlRmllbGQgfSBmcm9tICcuL2NvZGVtaXJyb3IvaW5jcmVtZW50YWwtcGFyc2Utc3RhdGUtZmllbGQudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlSW5saW5lVG9rZW5XaWRnZXRzRXh0ZW5zaW9uLFxuICBleGVjQWxsLFxuICB0b0dsb2JhbFJlZ0V4cFxufSBmcm9tICcuL2NvZGVtaXJyb3IvaW5saW5lLXRva2VuLXdpZGdldHMudHMnO1xuZXhwb3J0IHtcbiAgZGlzcGF0Y2hUb0FsbE1hcmtkb3duRWRpdG9yVmlld3MsXG4gIGdldEFsbE1hcmtkb3duRWRpdG9yVmlld3Ncbn0gZnJvbSAnLi9jb2RlbWlycm9yL21hcmtkb3duLWVkaXRvci12aWV3cy50cyc7XG5leHBvcnQgeyByYW5nZVNldFRvQXJyYXkgfSBmcm9tICcuL2NvZGVtaXJyb3IvcmFuZ2Utc2V0LnRzJztcbmV4cG9ydCB7IGNyZWF0ZVNldHRpbmdzRmFjZXQgfSBmcm9tICcuL2NvZGVtaXJyb3Ivc2V0dGluZ3MtZmFjZXQudHMnO1xuZXhwb3J0IHsgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvYWJzdHJhY3QtZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRWRpdG9yQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRm9sZGVyQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvZm9sZGVyLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBHbG9iYWxDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9nbG9iYWwtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5CdWdSZXBvcnRDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9vcGVuLWJ1Zy1yZXBvcnQtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5EZW1vVmF1bHRDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9vcGVuLWRlbW8tdmF1bHQtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5EaXNjdXNzaW9uQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1kaXNjdXNzaW9uLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuRmVhdHVyZVJlcXVlc3RDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9vcGVuLWZlYXR1cmUtcmVxdWVzdC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlbkdpdEh1YkNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL29wZW4tZ2l0LWh1Yi1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgT3BlblNldHRpbmdzQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1zZXR0aW5ncy1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgVW5kb0J1bGtPcGVyYXRpb25Db21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy91bmRvLWJ1bGstb3BlcmF0aW9uLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvbixcbiAgaW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgaW5zdGFsbENvbmZpZ3VyZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgUGx1Z2luRW5hYmxlUmVmdXNlZEVycm9yLFxuICBzZWFyY2hDb21tdW5pdHlQbHVnaW5zLFxuICB0b2dnbGVFbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIHRvZ2dsZUluc3RhbGxDb21tdW5pdHlQbHVnaW4sXG4gIHVuaW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgdXBkYXRlQ29tbXVuaXR5UGx1Z2luLFxuICBVcGRhdGVDb21tdW5pdHlQbHVnaW5SZXN1bHRcbn0gZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCxcbiAgZm9yRWFjaFdpbmRvdyxcbiAgcmVnaXN0ZXJCb2R5Q2xhc3Ncbn0gZnJvbSAnLi9jb21wb25lbnRzL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBCdWxrT3BlcmF0aW9uQ29tbWl0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb3JlUGx1Z2luVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgYXNEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEVtYmVkRXh0ZW5zaW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWJlZC1leHRlbnNpb25zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEZpbGVFeHBsb3JlclJvb3RNZW51Q29tcG9uZW50LFxuICBGaWxlRXhwbG9yZXJSb290TWVudVNwb3QsXG4gIFZBVUxUX05BTUVfU0VMRUNUT1JTXG59IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgR2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLW1hcmtkb3duLWxpbmstZGVmYXVsdC1wYXJhbXMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEluY3JlbWVudGFsRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2luY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIENhbGxiYWNrTGF5b3V0UmVhZHlDb21wb25lbnQsXG4gIExheW91dFJlYWR5Q29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQtcmVhZHktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYXJvdW5kLFxuICBoYXNQYXRjaFRva2VuLFxuICBNb25rZXlBcm91bmRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luQ29uZmxpY3RTZXZlcml0eSxcbiAgUGx1Z2luR2F0ZUNvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWdhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlTW9kZVxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudCxcbiAgU3VnZ2VzdGVkUGx1Z2luU3RhdGVcbn0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQb2ludGVyUG9zaXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVjb25maWd1cmFibGVFZGl0b3JFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVjb25maWd1cmFibGUtZWRpdG9yLWV4dGVuc2lvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFJlbGVhc2VOb3Rlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWxlYXNlLW5vdGVzLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBFbXB0eUZvbGRlckJlaGF2aW9yLFxuICBSZW5hbWVEZWxldGVIYW5kbGVyQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy9yZW5hbWUtZGVsZXRlLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIE5PVF9FTVBUWV9ESVJFQ1RPUllfRVJST1JfQ09ERSxcbiAgUm1kaXJHdWFyZENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvcm1kaXItZ3VhcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFNldHRpbmdzRmFjZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJTdHlsZSxcbiAgU3R5bGVTaGVldENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMvc3R5bGUtc2hlZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRGF0YVN0b3JlTG9jYXRpb25zIH0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLWxvY2F0aW9ucy50cyc7XG5leHBvcnQge1xuICBEYXRhU3RvcmVSZXBsaWNhLFxuICBpc0RhdGFTdG9yZUpzb25WYWx1ZSxcbiAgaXNEYXRhU3RvcmVPcGVyYXRpb25cbn0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXJlcGxpY2EudHMnO1xuZXhwb3J0IHtcbiAgRGF0YVN0b3JlU2VlZHMsXG4gIHZhbGlkYXRlRGF0YVN0b3JlU2VlZFxufSBmcm9tICcuL2RhdGEtc3RvcmVzL2RhdGEtc3RvcmUtc2VlZHMudHMnO1xuZXhwb3J0IHsgRGF0YVN0b3JlVHJhbnNwb3J0IH0gZnJvbSAnLi9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyc7XG5leHBvcnQgeyBMb2NhbERhdGFTdG9yZSB9IGZyb20gJy4vZGF0YS1zdG9yZXMvbG9jYWwtZGF0YS1zdG9yZS50cyc7XG5leHBvcnQgeyBTaGFyZWREYXRhU3RvcmUgfSBmcm9tICcuL2RhdGEtc3RvcmVzL3NoYXJlZC1kYXRhLXN0b3JlLnRzJztcbmV4cG9ydCB7XG4gIGZpeFRpdGxlLFxuICBtYWtlTGlua1dpdGhQYXRoXG59IGZyb20gJy4vZGF0YXZpZXctbGluay50cyc7XG5leHBvcnQge1xuICBnZXRSZW5kZXJlZENvbnRhaW5lcixcbiAgaW5zZXJ0Q29kZUJsb2NrLFxuICByZWxvYWRDdXJyZW50RmlsZUNhY2hlLFxuICByZW5kZXJJZnJhbWUsXG4gIHJlbmRlclBhZ2luYXRlZExpc3QsXG4gIHJlbmRlclBhZ2luYXRlZFRhYmxlXG59IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcixcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7XG4gIEJ1bGtPcGVyYXRpb25HaXRSZXBvLFxuICBHaXRDb21tYW5kRXJyb3Jcbn0gZnJvbSAnLi9kZXNrdG9wLWJ1bGstb3BlcmF0aW9uLWdpdC50cyc7XG5leHBvcnQgeyBvcGVuRGVtb1ZhdWx0IH0gZnJvbSAnLi9kZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyLnRzJztcbmV4cG9ydCB7IGNyZWF0ZURlc2t0b3BHaXRSdW5uZXIgfSBmcm9tICcuL2Rlc2t0b3AtZ2l0LXJ1bm5lci50cyc7XG5leHBvcnQgeyBnZXREZXNrdG9wT3BlcmF0aW5nU3lzdGVtIH0gZnJvbSAnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnO1xuZXhwb3J0IHsgb3BlbkRlc2t0b3BSZXF1ZXN0VXJsU3RyZWFtIH0gZnJvbSAnLi9kZXNrdG9wLXJlcXVlc3QtdXJsLXN0cmVhbS50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JFeHRlbnNpb25SZWdpc3RyYXIgfSBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IFBsdWdpbkVkaXRvclN1Z2dlc3RSZWdpc3RyYXIgfSBmcm9tICcuL2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBDb21tYW5kRWRpdG9yU3VnZ2VzdCxcbiAgcHJpb3JpdGl6ZUVkaXRvclN1Z2dlc3Rcbn0gZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC50cyc7XG5leHBvcnQge1xuICBzeW5jT3BlbkVkaXRvckJ1ZmZlcnNGb3JQYXRoLFxuICB0b2dnbGVFZGl0b3JSZWFkT25seVxufSBmcm9tICcuL2VkaXRvci50cyc7XG5leHBvcnQge1xuICBFdmVudFJlZkRpc3Bvc2FibGUsXG4gIHN1YnNjcmliZURpc3Bvc2FibGVFdmVudCxcbiAgc3Vic2NyaWJlRXZlbnRcbn0gZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0IHsgUGx1Z2luRXh0ZW5zaW9uc1JlZ2lzdHJhciB9IGZyb20gJy4vZXh0ZW5zaW9ucy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgRkVBVFVSRV9SRVFVRVNUX0lTU1VFX0ZPUk1fVEVNUExBVEUsXG4gIEZlYXR1cmVSZXF1ZXN0SXNzdWVGb3JtRmllbGRJZCxcbiAgZ2V0RmVhdHVyZVJlcXVlc3RJc3N1ZUZvcm1Vcmxcbn0gZnJvbSAnLi9mZWF0dXJlLXJlcXVlc3QudHMnO1xuZXhwb3J0IHtcbiAgYXBwbHlDb250ZW50Q2hhbmdlcyxcbiAgYXBwbHlGaWxlQ2hhbmdlcyxcbiAgaXNDYW52YXNDaGFuZ2UsXG4gIGlzQ2FudmFzRmlsZU5vZGVDaGFuZ2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVDaGFuZ2UsXG4gIGlzQ29udGVudENoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgeyByZXZlYWxJbkZpbGVFeHBsb3JlciB9IGZyb20gJy4vZmlsZS1leHBsb3Jlci50cyc7XG5leHBvcnQge1xuICBhZGRBbGlhcyxcbiAgZGVsZXRlQWxpYXMsXG4gIHByb2Nlc3NGcm9udG1hdHRlcixcbiAgd2FpdEZvclBlbmRpbmdMaW5rVXBkYXRlc1xufSBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQge1xuICBhc0FycmF5T2ZGaWxlcyxcbiAgYXNBcnJheU9mRm9sZGVycyxcbiAgYXNGaWxlLFxuICBhc0ZpbGVPck51bGwsXG4gIGFzRm9sZGVyLFxuICBhc0ZvbGRlck9yTnVsbCxcbiAgQkFTRV9GSUxFX0VYVEVOU0lPTixcbiAgQ0FOVkFTX0ZJTEVfRVhURU5TSU9OLFxuICBjaGVja0V4dGVuc2lvbixcbiAgZG9lc0V4aXN0LFxuICBGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0QWJzdHJhY3RGaWxlLFxuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldEJhc2VuYW1lLFxuICBnZXRFeHRlbnNpb24sXG4gIGdldEZpbGUsXG4gIGdldEZpbGVPck51bGwsXG4gIGdldEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRGb2xkZXIsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgZ2V0TWFya2Rvd25GaWxlcyxcbiAgZ2V0T3JDcmVhdGVGaWxlLFxuICBnZXRPckNyZWF0ZUZvbGRlcixcbiAgZ2V0UGF0aCxcbiAgaXNBYnN0cmFjdEZpbGUsXG4gIGlzQmFzZUZpbGUsXG4gIGlzQ2FudmFzRmlsZSxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlcixcbiAgaXNNYXJrZG93bkZpbGUsXG4gIGlzTm90ZSxcbiAgaXNQYXRoT3JGaWxlLFxuICBpc1RyZWF0ZWRBc0F0dGFjaG1lbnQsXG4gIE1BUktET1dOX0ZJTEVfRVhURU5TSU9OLFxuICBNaXNzaW5nUGF0aFRyZWF0bWVudCxcbiAgdHJpbU1hcmtkb3duRXh0ZW5zaW9uXG59IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0IHtcbiAgRk9MREVSX05PVEVTX1BMVUdJTl9JRCxcbiAgRm9sZGVyTm90ZUxvY2F0aW9uLFxuICBnZXRGb2xkZXJOb3RlRm9sZGVyLFxuICByZXNvbHZlRm9sZGVyTm90ZSxcbiAgcmVzb2x2ZUZvbGRlck5vdGVDb25maWdcbn0gZnJvbSAnLi9mb2xkZXItbm90ZS50cyc7XG5leHBvcnQge1xuICBjcmVhdGVGb3JtdWxhRnVuY3Rpb24sXG4gIGNyZWF0ZUZvcm11bGFGdW5jdGlvblBhcmFtZXRlcixcbiAgcmVnaXN0ZXJGb3JtdWxhRnVuY3Rpb25cbn0gZnJvbSAnLi9mb3JtdWxhLWZ1bmN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGVuYWJsZUZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZhdGlvbixcbiAgcHJlc2VydmVGcm9udG1hdHRlckZvcm1hdHRpbmdcbn0gZnJvbSAnLi9mcm9udG1hdHRlci1mb3JtYXR0aW5nLnRzJztcbmV4cG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0IHtcbiAgY2hlY2tJc1BsYWluT2JqZWN0LFxuICBwYXJzZUZyb250bWF0dGVyLFxuICByZWdpc3RlckZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlcixcbiAgcmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlcyxcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQge1xuICBMSUJSQVJZX1NUWUxFUyxcbiAgTElCUkFSWV9WRVJTSU9OXG59IGZyb20gJy4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5leHBvcnQgeyBnZXRHaXRIdWJEaXNjdXNzaW9uVXJsIH0gZnJvbSAnLi9naXQtaHViLWRpc2N1c3Npb24udHMnO1xuZXhwb3J0IHtcbiAgbG9hZEdpdFJlbmFtZXMsXG4gIHBhcnNlR2l0UmVuYW1lTG9nXG59IGZyb20gJy4vZ2l0LXJlbmFtZS1oaXN0b3J5LnRzJztcbmV4cG9ydCB7XG4gIGZvcm1hdEhvdGtleSxcbiAgZ2V0SG90a2V5RnJvbUtleWJvYXJkRXZlbnQsXG4gIGlzU2FtZUhvdGtleVxufSBmcm9tICcuL2hvdGtleS50cyc7XG5leHBvcnQgeyBQbHVnaW5Ib3ZlckxpbmtTb3VyY2VSZWdpc3RyYXIgfSBmcm9tICcuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBhcHBlbmRDb2RlQmxvY2ssXG4gIGFwcGVuZFRleHRPckZyYWdtZW50Q2xvbmUsXG4gIGFwcGx5U3BlbGxjaGVja01vZGUsXG4gIGFzQ29kZUJsb2NrLFxuICBjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzXG59IGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTlMsXG4gIGdldExhbmd1YWdlc1RvTG9hZCxcbiAgaW5pdEkxOE4sXG4gIHRcbn0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuZXhwb3J0IHsgZW4gfSBmcm9tICcuL2kxOG4vbG9jYWxlcy9lbi50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX0xBTkdVQUdFLFxuICBkZWZhdWx0VHJhbnNsYXRpb25zTWFwXG59IGZyb20gJy4vaTE4bi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlSW5saW5lVG9rZW5Qb3N0UHJvY2Vzc29yLFxuICBERUZBVUxUX0lOTElORV9UT0tFTl9TS0lQX1NFTEVDVE9SLFxuICByZWdpc3RlcklubGluZVRva2VuUmVuZGVyZXJcbn0gZnJvbSAnLi9pbmxpbmUtdG9rZW4tcmVuZGVyZXIudHMnO1xuZXhwb3J0IHsgaXNJbk9ic2lkaWFuIH0gZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQge1xuICBpbmplY3RMaWJyYXJ5U3R5bGVzLFxuICBMQVNUX0xJQlJBUllfVkVSU0lPTl9LRVksXG4gIExJQlJBUllfU1RZTEVTX0VMRU1FTlRfSURcbn0gZnJvbSAnLi9saWJyYXJ5LXN0eWxlcy50cyc7XG5leHBvcnQge1xuICBPQlNJRElBTl9MSUJSQVJZX05BTUUsXG4gIE9ic2lkaWFuTGlicmFyeVxufSBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0IHtcbiAgZ2V0TGlua0FuZFRhZ0NvbXBsZXRpb25UcmlnZ2VyLFxuICBnZXRWYXVsdFRhZ1N1Z2dlc3Rpb25zLFxuICBMaW5rQW5kVGFnQ29tcGxldGlvbktpbmQsXG4gIExpbmtBbmRUYWdJbnB1dFN1Z2dlc3Rcbn0gZnJvbSAnLi9saW5rLWFuZC10YWctaW5wdXQtc3VnZ2VzdC50cyc7XG5leHBvcnQgeyBub3JtYWxpemVMaW5rTmFtZSB9IGZyb20gJy4vbGluay1uYW1lLnRzJztcbmV4cG9ydCB7XG4gIGJ1aWxkQmFja2xpbmtzU25hcHNob3QsXG4gIGNvbnZlcnRMaW5rLFxuICBlZGl0QmFja2xpbmtzLFxuICBlZGl0QmFja2xpbmtzU25hcHNob3QsXG4gIGVkaXRSZWZlcmVuY2VzLFxuICBlZGl0UmVmZXJlbmNlc0luQ29udGVudCxcbiAgZXh0cmFjdFJlZmVyZW5jZUZpbGUsXG4gIGdlbmVyYXRlTWFya2Rvd25MaW5rLFxuICBnZW5lcmF0ZVJhd01hcmtkb3duTGluayxcbiAgZ2V0R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zRm5zLFxuICBoYXNBbmdsZUJyYWNrZXRzLFxuICBoYXNFbWJlZFN5bnRheCxcbiAgaGFzTGVhZGluZ0RvdCxcbiAgaGFzTGVhZGluZ1NsYXNoLFxuICBoYXNXaWtpbGlua1N5bnRheCxcbiAgTGlua1BhdGhTdHlsZSxcbiAgTGlua1N0eWxlLFxuICBzaG91bGRSZXNldEFsaWFzLFxuICBzcGxpdFN1YnBhdGgsXG4gIHVwZGF0ZUZpbGVVcmxMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5GaWxlLFxuICB1cGRhdGVMaW5rLFxuICB1cGRhdGVSZWZlcmVuY2VzSW5Db250ZW50LFxuICB1cGRhdGVSZWZlcmVuY2VzSW5GaWxlXG59IGZyb20gJy4vbGluay50cyc7XG5leHBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCB7IGxvb3AgfSBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8sXG4gIGluc2VydEFmdGVyQ29kZUJsb2NrLFxuICBpbnNlcnRCZWZvcmVDb2RlQmxvY2ssXG4gIHJlbW92ZUNvZGVCbG9jayxcbiAgcmVwbGFjZUNvZGVCbG9ja1xufSBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCB7IFBsdWdpbk1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IGdldEZ1bGxDb250ZW50SHRtbCB9IGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQge1xuICBmdWxsUmVuZGVyLFxuICBtYXJrZG93blRvSHRtbCxcbiAgcmVnaXN0ZXJMaW5rSGFuZGxlcnMsXG4gIHJlbmRlckV4dGVybmFsTGluayxcbiAgcmVuZGVySW50ZXJuYWxMaW5rXG59IGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0IHsgYWRkU2luZ2xlQ2hvaWNlTWVudUl0ZW1zIH0gZnJvbSAnLi9tZW51LnRzJztcbmV4cG9ydCB7XG4gIEFEVkFOQ0VEX01FVEFEQVRBX0NBQ0hFX1BMVUdJTl9JRCxcbiAgQkFDS0xJTktfQ0FDSEVfUExVR0lOX0lELFxuICBDYWNoZWRNZXRhZGF0YUV4RmVhdHVyZSxcbiAgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5LFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICBnZXRGcm9udG1hdHRlclNhZmUsXG4gIGdldFJlZmVyZW5jZXMsXG4gIGhhc0JhY2tsaW5rQ2FjaGVQbHVnaW4sXG4gIGlzQ2FjaGVkTWV0YWRhdGFFeCxcbiAgcGFyc2VNZXRhZGF0YSxcbiAgcmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHJlZ2lzdGVyRmlsZXMsXG4gIHVucmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHVucmVnaXN0ZXJGaWxlc1xufSBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCB7IGdldE1vYmlsZUFwcEluZm8gfSBmcm9tICcuL21vYmlsZS1hcHAtaW5mby50cyc7XG5leHBvcnQgeyBhbGVydCB9IGZyb20gJy4vbW9kYWxzL2FsZXJ0LnRzJztcbmV4cG9ydCB7XG4gIGZvcm1hdENvZGVCbG9jayxcbiAgc2hvd0NvZGVCbG9ja0J1aWxkZXJcbn0gZnJvbSAnLi9tb2RhbHMvY29kZS1ibG9jay1idWlsZGVyLnRzJztcbmV4cG9ydCB7IGNvbmZpcm0gfSBmcm9tICcuL21vZGFscy9jb25maXJtLnRzJztcbmV4cG9ydCB7IE1pbmltaXphYmxlTW9kYWwgfSBmcm9tICcuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9tb2RhbHMvbW9kYWwudHMnO1xuZXhwb3J0IHsgcHJvbXB0IH0gZnJvbSAnLi9tb2RhbHMvcHJvbXB0LnRzJztcbmV4cG9ydCB7IHNlbGVjdEl0ZW0gfSBmcm9tICcuL21vZGFscy9zZWxlY3QtaXRlbS50cyc7XG5leHBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcbmV4cG9ydCB7IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzLFxuICBmaW5kTm9Qcmlvcml0eVdpbm5lclJlYXNvbixcbiAgZmluZE5vdGVQcmlvcml0eVJhbmssXG4gIE5PX1BSSU9SSVRZX01BVENILFxuICBOb1ByaW9yaXR5V2lubmVyUmVhc29uLFxuICBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhcbn0gZnJvbSAnLi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCB7XG4gIE5PVEVCT09LX05BVklHQVRPUl9NRU5VX1NPVVJDRSxcbiAgTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCxcbiAgcmVzb2x2ZU5vdGVib29rTmF2aWdhdG9yQXBpXG59IGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCB7XG4gIGdldE9ic2lkaWFuTGliU3RhdGUsXG4gIHJlc2V0T2JzaWRpYW5MaWJTdGF0ZVxufSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5leHBvcnQgeyBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0TmV3TGlua0Zvcm1hdCxcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZCxcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZEZvck1vZGUsXG4gIHNob3VsZFVzZVdpa2lsaW5rcyxcbiAgU3BlbGxjaGVja01vZGVcbn0gZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQge1xuICBjYW5vbmljYWxpemVPYnNpZGlhblRleHQsXG4gIGNyZWF0ZU9ic2lkaWFuTWVudGlvblJlZ0V4cCxcbiAgZ2V0T2JzaWRpYW5OYW1lVG9rZW5zLFxuICBpc09ic2lkaWFuV29yZENoYXJhY3RlcixcbiAgdG9rZW5pemVPYnNpZGlhbldvcmRzXG59IGZyb20gJy4vb2JzaWRpYW4td29yZC1jaGFyYWN0ZXJzLnRzJztcbmV4cG9ydCB7XG4gIGVzY2FwZUFsaWFzLFxuICBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlLFxuICBpc1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgcGFyc2VGcm9udG1hdHRlckxpbmtzLFxuICBwYXJzZUxpbmssXG4gIHBhcnNlTGlua3MsXG4gIHRvUGFyc2VMaW5rUmVmZXJlbmNlLFxuICB1bmVzY2FwZUFsaWFzXG59IGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQge1xuICBQYXRoU2V0dGluZ3MsXG4gIHBhdGhzVmFsaWRhdG9yXG59IGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgeyBwcmludFRvUGRmIH0gZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ2xpSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBmaW5kUGx1Z2luQXBpLFxuICBnZXRWYWxpZGF0ZVBsdWdpbkFwaVBheWxvYWRzRGVidWdTd2l0Y2gsXG4gIFBsdWdpbkFwaVBheWxvYWRLaW5kLFxuICBQbHVnaW5BcGlSZXZva2VkRXJyb3IsXG4gIFBsdWdpbkFwaVVuYXZhaWxhYmlsaXR5UmVhc29uLFxuICBQbHVnaW5BcGlVbmF2YWlsYWJsZUVycm9yLFxuICBQbHVnaW5BcGlWYWxpZGF0aW9uRXJyb3IsXG4gIHB1Ymxpc2hQbHVnaW5BcGksXG4gIHdhdGNoUGx1Z2luQXBpXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1hcGkudHMnO1xuZXhwb3J0IHtcbiAgREVGQVVMVF9QTFVHSU5fQVNZTkNfQ0xFQU5VUF9USU1FT1VUX0lOX01JTExJU0VDT05EUyxcbiAgZGlkUGx1Z2luQXN5bmNDbGVhbnVwc1NldHRsZSxcbiAgaGFzUGVuZGluZ1BsdWdpbkFzeW5jQ2xlYW51cHMsXG4gIFBMVUdJTl9BU1lOQ19DTEVBTlVQU19TVEFURV9LRVksXG4gIHJlZ2lzdGVyUGx1Z2luQXN5bmNDbGVhbnVwLFxuICB0cmFja1BsdWdpbkFzeW5jQ2xlYW51cFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tYXN5bmMtY2xlYW51cC50cyc7XG5leHBvcnQge1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzLFxuICBpbml0RGVidWdDb250cm9sbGVyLFxuICBpbml0UGx1Z2luQ29udGV4dFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCB7XG4gIGdldEluc3RhbGxlZFBsdWdpblN0YXRlLFxuICBnZXRJbnN0YWxsZWRQbHVnaW5WZXJzaW9uLFxuICBpbnN0YWxsQW5kRW5hYmxlUGx1Z2luLFxuICBJbnN0YWxsZWRQbHVnaW5TdGF0ZSxcbiAgdXBkYXRlUGx1Z2luXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1pbnN0YWxsLXN0YXRlLnRzJztcbmV4cG9ydCB7XG4gIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRSxcbiAgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUUsXG4gIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudFxufSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cy50cyc7XG5leHBvcnQge1xuICBQbHVnaW5TZXR0aW5nc1RhYkJhc2UsXG4gIFNBVkVfVE9fRklMRV9DT05URVhUXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1zZXR0aW5ncy10YWIudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luQmFzZSxcbiAgcmVsb2FkUGx1Z2luLFxuICBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luXG59IGZyb20gJy4vcGx1Z2luL3BsdWdpbi50cyc7XG5leHBvcnQgeyBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0IH0gZnJvbSAnLi9wbHVnaW4vc2V0dGluZ3MtbWlncmF0aW9uLWFwaS50cyc7XG5leHBvcnQgeyBlZGl0RmllbGRzSW5Qb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVycy9maWVsZC1wb3BvdmVyLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUFuY2hvckZyb21Eb2N1bWVudENlbnRlcixcbiAgY3JlYXRlQW5jaG9yRnJvbUVsZW1lbnQsXG4gIGNyZWF0ZUFuY2hvckZyb21Qb2ludCxcbiAgY3JlYXRlQW5jaG9yRnJvbVNlbGVjdGlvblxufSBmcm9tICcuL3BvcG92ZXJzL3BvcG92ZXItYW5jaG9yLnRzJztcbmV4cG9ydCB7IHNob3dQb3BvdmVyIH0gZnJvbSAnLi9wb3BvdmVycy9wb3BvdmVyLnRzJztcbmV4cG9ydCB7XG4gIGlzUG9zaXRpb25Jbk9mZnNldFJhbmdlLFxuICBpc1Bvc2l0aW9uSW5zaWRlLFxuICBpc1Bvc2l0aW9uSW5zaWRlU29tZVxufSBmcm9tICcuL3Bvc2l0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMsXG4gIGlzUHJvcGVydHlFbnRyeSxcbiAgUFJPUEVSVFlfRU5UUllfUFJFRklYXG59IGZyb20gJy4vcHJvcGVydHktZW50cnkudHMnO1xuZXhwb3J0IHtcbiAgYWRkVG9RdWV1ZSxcbiAgYWRkVG9RdWV1ZUFuZFdhaXQsXG4gIGZsdXNoUXVldWVcbn0gZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQge1xuICBBcHBDb250ZXh0LFxuICB1c2VBcHBcbn0gZnJvbSAnLi9yZWFjdC9hcHAtY29udGV4dC50cyc7XG5leHBvcnQge1xuICBnZXRSZWZlcmVuY2VMaW5rVGV4dCxcbiAgaXNDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSxcbiAgaXNDYW52YXNSZWZlcmVuY2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UsXG4gIGlzUmVmZXJlbmNlSW5IZWFkaW5nLFxuICBpc1JlZmVyZW5jZUluT2Zmc2V0UmFuZ2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNPd25lZEJ5UmVuZGVyZWRNYXJrZG93bixcbiAgcmVnaXN0ZXJGb2xkSGFuZGxlcnMsXG4gIHJlZ2lzdGVyRm9vdG5vdGVMaW5rSGFuZGxlclxufSBmcm9tICcuL3JlbmRlcmVkLW1hcmtkb3duLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZVJlcXVlc3RVcmxGZXRjaCxcbiAgZW5jb2RlUmVxdWVzdFVybFJlcXVlc3QsXG4gIFJlcXVlc3RVcmxFcnJvcixcbiAgcmVxdWVzdFVybEV4LFxuICByZXF1ZXN0VXJsU3RyZWFtXG59IGZyb20gJy4vcmVxdWVzdC11cmwudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoQnlBbmNlc3RvcixcbiAgbG9ja1Jlc291cmNlRm9yUGF0aCxcbiAgcmVxdWVzdFJlc291cmNlVW5sb2NrRm9yUGF0aCxcbiAgUmVzb3VyY2VMb2NrQ29tcG9uZW50LFxuICBSZXNvdXJjZUxvY2tlZEVycm9yLFxuICB1bmxvY2tSZXNvdXJjZUZvclBhdGhcbn0gZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgeyBQbHVnaW5SaWJib25JY29uUmVnaXN0cmFyIH0gZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS10aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2VtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgRm9sZGVySW5wdXRTdWdnZXN0LFxuICBGb2xkZXJMaXN0Q29tcG9uZW50XG59IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2ZvbGRlci1saXN0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBIb3RrZXlDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9ob3RrZXktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9saXN0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNb250aENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL21vbnRoLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRW1haWxDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtdGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvbnVtYmVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3Bhc3N3b3JkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnQtd3JhcHBlci50cyc7XG5leHBvcnQge1xuICBUYWdJbnB1dFN1Z2dlc3QsXG4gIFRhZ0xpc3RDb21wb25lbnRcbn0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGFnLWxpc3QtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RlbGVwaG9uZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1yYW5nZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFRleHRDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy91cmwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL3dlZWstY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFkb3B0U2V0dGluZ0V4LFxuICBTZXR0aW5nRXhcbn0gZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCB7IFNldHRpbmdHcm91cEV4IH0gZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCB7IG9wZW5TZXR0aW5nVGFiIH0gZnJvbSAnLi9zZXR0aW5ncy1tb2RhbC50cyc7XG5leHBvcnQgeyBTZXR0aW5nc1RhYnMgfSBmcm9tICcuL3NldHRpbmdzLXRhYnMudHMnO1xuZXhwb3J0IHsgUGx1Z2luU3RhdHVzQmFySXRlbVJlZ2lzdHJhciB9IGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRUZW1wbGF0ZXJGdW5jdGlvbnMsXG4gIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUsXG4gIHBhcnNlVGVtcGxhdGUsXG4gIHJlcXVpcmVUZW1wbGF0ZXJBcGksXG4gIHJlc29sdmVUZW1wbGF0ZXJBcGksXG4gIFRFTVBMQVRFUl9QTFVHSU5fSUQsXG4gIFRlbXBsYXRlckFjdGl2ZUZpbGVQcm92aWRlcixcbiAgVGVtcGxhdGVyUnVuTW9kZSxcbiAgVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3Jcbn0gZnJvbSAnLi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2R1cmF0aW9uLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7XG4gIGNsaWNrRWxlbWVudCxcbiAgY2xpY2tNb3VzZSxcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7XG4gIEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMsXG4gIGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyLFxuICBpc1dpbmRvd3NSZXNlcnZlZE5hbWUsXG4gIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyxcbiAgdHJpbVdpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBVTklYX1VOU0FGRV9QQVRIX0NIQVJTLFxuICBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTXG59IGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQge1xuICBkZWxldGVJZk5vdFVzZWQsXG4gIERlbGV0ZUlmTm90VXNlZFJlc3VsdFxufSBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgeyBWYXVsdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQge1xuICBjbGVhbnVwRW1wdHlGb2xkZXJzLFxuICBjb3B5U2FmZSxcbiAgY3JlYXRlRm9sZGVyU2FmZSxcbiAgQ3JlYXRlRm9sZGVyU2FmZVJlc3VsdCxcbiAgY3JlYXRlVGVtcG9yYXJ5RmlsZSxcbiAgY3JlYXRlVGVtcG9yYXJ5Rm9sZGVyLFxuICBkZWxldGVFbXB0eUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHksXG4gIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlLFxuICBnZXRBdmFpbGFibGVQYXRoLFxuICBnZXRGaWxlUGF0aFNhZmUsXG4gIGdldEZvbGRlclBhdGhTYWZlLFxuICBnZXRNYXJrZG93bkZpbGVzU29ydGVkLFxuICBnZXROb3RlRmlsZXNTb3J0ZWQsXG4gIGdldE9yQ3JlYXRlQWJzdHJhY3RGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXJTYWZlLFxuICBnZXRTYWZlUmVuYW1lUGF0aCxcbiAgSW52b2tlRmlsZUFjdGlvblNhZmVSZXN1bHQsXG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgaXNDaGlsZCxcbiAgaXNDaGlsZE9yU2VsZixcbiAgaXNFbXB0eUZvbGRlcixcbiAgbGlzdFNhZmUsXG4gIHByb2Nlc3MsXG4gIHJlYWRTYWZlLFxuICByZW5hbWVTYWZlLFxuICBzYXZlTm90ZSxcbiAgdHJhc2hTYWZlXG59IGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luVmlld1JlZ2lzdHJhciB9IGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJWaXJ0dWFsRmlsZSB9IGZyb20gJy4vdmlydHVhbC1maWxlLnRzJztcbmV4cG9ydCB7XG4gIGVuc3VyZUxheW91dFJlYWR5LFxuICBnZXRBbGxDb250YWluZXJzLFxuICBnZXRBbGxEb21XaW5kb3dzLFxuICBnZXRNYWluV2luZG93LFxuICBzd2l0Y2hUb01haW5XaW5kb3csXG4gIHN3aXRjaFRvV2luZG93XG59IGZyb20gJy4vd29ya3NwYWNlLnRzJztcbmV4cG9ydCB7XG4gIGFib3J0U2lnbmFsQW55LFxuICBhYm9ydFNpZ25hbE5ldmVyLFxuICBhYm9ydFNpZ25hbFRpbWVvdXQsXG4gIGdldFNoYXJlZEFib3J0Q29udHJvbGxlcixcbiAgZ2V0U2hhcmVkQWJvcnRTaWduYWwsXG4gIElORklOSVRFX1RJTUVPVVQsXG4gIG9uQWJvcnQsXG4gIFJlc2V0dGFibGVBYm9ydENvbnRyb2xsZXIsXG4gIHdhaXRGb3JBYm9ydFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYWJvcnQtY29udHJvbGxlcic7XG5leHBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVFcnJvciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hZ2dyZWdhdGUtZXJyb3InO1xuZXhwb3J0IHtcbiAgYXJyYXlHdWFyZCxcbiAgQk9PTEVBTl9HVUFSRCxcbiAgY3JlYXRlQXBpQ29udHJhY3RTY2hlbWFCdWlsZGVycyxcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVFeHBlY3RlZFR5cGVHdWFyZCxcbiAgY3JlYXRlVHlwZUd1YXJkU2NoZW1hLFxuICBkZWZpbmVBcGlDb250cmFjdCxcbiAgaW5zdGFuY2VPZkd1YXJkLFxuICBsaXRlcmFsR3VhcmQsXG4gIG51bGxhYmxlR3VhcmQsXG4gIE5VTUJFUl9HVUFSRCxcbiAgb2JqZWN0R3VhcmQsXG4gIG9wdGlvbmFsR3VhcmQsXG4gIG9wdGlvbnNHdWFyZCxcbiAgU1RSSU5HX0FSUkFZX0dVQVJELFxuICBTVFJJTkdfR1VBUkQsXG4gIFVOREVGSU5FRF9HVUFSRCxcbiAgdW5pb25HdWFyZFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0JztcbmV4cG9ydCB7XG4gIHZhbGlkYXRlU3luYyxcbiAgdmVyaWZ5QXBpQ29udHJhY3Rcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdC12ZXJpZmllcic7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcnJheSc7XG5leHBvcnQgeyB0b0FycmF5QnVmZmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FycmF5LWJ1ZmZlcic7XG5leHBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGFzeW5jRmlsdGVyLFxuICBhc3luY0ZpbHRlckluUGxhY2UsXG4gIGFzeW5jRmxhdE1hcCxcbiAgYXN5bmNNYXAsXG4gIGNoYWluLFxuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGNvbnZlcnRTeW5jVG9Bc3luYyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc1Rlcm1pbmF0aW9uT25UaW1lb3V0RW5hYmxlZCxcbiAgbWFya3NBc1Rlcm1pbmF0ZVJldHJ5LFxuICBuZXZlckVuZHMsXG4gIG5leHRUaWNrQXN5bmMsXG4gIG5vcm1hbGl6ZVByb21pc2FibGUsXG4gIHByb21pc2VBbGxBc3luY0Zuc1NlcXVlbnRpYWxseSxcbiAgcHJvbWlzZUFsbFNlcXVlbnRpYWxseSxcbiAgcXVldWVNaWNyb3Rhc2tBc3luYyxcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMsXG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0LFxuICBzZXRJbW1lZGlhdGVBc3luYyxcbiAgc2V0VGVybWluYXRpb25PblRpbWVvdXRFbmFibGVkLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5leHBvcnQge1xuICBBc3luY0V2ZW50UmVmRGlzcG9zYWJsZSxcbiAgQXN5bmNFdmVudHMsXG4gIEFzeW5jRXZlbnRzQmFzZSxcbiAgbWl4aW5Bc3luY0V2ZW50cyxcbiAgc3Vic2NyaWJlQXN5bmNEaXNwb3NhYmxlRXZlbnRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5leHBvcnQge1xuICBBU1lOQ19PUEVSQVRJT05fSE9PS19LRVksXG4gIEFTWU5DX09QRVJBVElPTl9IT09LX1ZFUlNJT04sXG4gIGdldEFzeW5jT3BlcmF0aW9uSG9vayxcbiAgbm90aWZ5QXN5bmNPcGVyYXRpb25TdGFydGVkLFxuICBzZXRBc3luY09wZXJhdGlvbkhvb2tcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLW9wZXJhdGlvbi1ob29rJztcbmV4cG9ydCB7IEJlZXBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9iZWVwZXInO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9ibG9iJztcbmV4cG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2J5dGVzJztcbmV4cG9ydCB7XG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMsXG4gIGZvcm1hdERlYnVnR3VpZGVSZWZlcmVuY2UsXG4gIGdldERlYnVnQ29udHJvbGxlcixcbiAgZ2V0RGVidWdnZXIsXG4gIGdldExpYkRlYnVnZ2VyLFxuICBpc0RlYnVnTmFtZXNwYWNlRW5hYmxlZCxcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGVidWcnO1xuZXhwb3J0IHtcbiAgZ2V0RGVidWdTd2l0Y2gsXG4gIGdldERlYnVnU3dpdGNoZXMsXG4gIGdldFRlcm1pbmF0ZU9uVGltZW91dERlYnVnU3dpdGNoLFxuICBvbkRlYnVnU3dpdGNoQ2hhbmdlZCxcbiAgcmVnaXN0ZXJEZWJ1Z1N3aXRjaCxcbiAgc2V0RGVidWdTd2l0Y2hcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLXN3aXRjaGVzJztcbmV4cG9ydCB7IGV4dHJhY3RaaXBBcmNoaXZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Rlc2t0b3AtemlwLWV4dHJhY3Rvcic7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQXN5bmNEaXNwb3NhYmxlQmFzZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zYWJsZUJhc2UsXG4gIGRpc3Bvc2UsXG4gIGRpc3Bvc2VBc3luYyxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZGlzcG9zYWJsZSc7XG5leHBvcnQge1xuICBnZXRFbnVtS2V5LFxuICBnZXRFbnVtVmFsdWVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2VudW0nO1xuZXhwb3J0IHtcbiAgQVNZTkNfV1JBUFBFUl9FUlJPUl9NRVNTQUdFLFxuICBDdXN0b21TdGFja1RyYWNlRXJyb3IsXG4gIGRyYWluQ29sbGVjdGVkVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGVycm9yVG9TdHJpbmcsXG4gIEVycm9yV3JhcHBlcixcbiAgZ2V0U3RhY2tUcmFjZSxcbiAgaXNBc3luY0Vycm9ySWdub3JlQ29udGV4dEFjdGl2ZSxcbiAgcHJpbnRFcnJvcixcbiAgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyLFxuICBTaWxlbnRFcnJvcixcbiAgc3RhcnRBc3luY0Vycm9ySWdub3JlQ29udGV4dCxcbiAgc3RhcnRDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHN0b3BDb2xsZWN0aW5nVW5oYW5kbGVkQXN5bmNFcnJvcnMsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgY3JlYXRlRGl2QXN5bmMsXG4gIGNyZWF0ZUVsQXN5bmMsXG4gIGNyZWF0ZUZyYWdtZW50QXN5bmMsXG4gIGNyZWF0ZVNwYW5Bc3luYyxcbiAgY3JlYXRlU3ZnQXN5bmMsXG4gIGVuc3VyZUxvYWRlZCxcbiAgZ2V0RG9jdW1lbnRXaW5kb3csXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5leHBvcnQge1xuICBleHRyYWN0SnBlZ01ldGFkYXRhU2VnbWVudHMsXG4gIGluamVjdEpwZWdNZXRhZGF0YVNlZ21lbnRzXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9qcGVnLW1ldGFkYXRhJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfREVCVUdfTkFNRVNQQUNFLFxuICBMaWJyYXJ5LFxuICBMSUJSQVJZX05BTUVcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuZXhwb3J0IHtcbiAgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBjYXN0VG8sXG4gIGNsb25lV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0eSxcbiAgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wLFxuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgZ2V0QWxsRW50cmllcyxcbiAgZ2V0QWxsS2V5cyxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgZ2V0UHJvdG90eXBlT2YsXG4gIGlzRGVlcEVxdWFsLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuZXhwb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRlbGltaXRlcixcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgZm9ybWF0LFxuICBnZXRGaWxlTmFtZSxcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgaXNBYnNvbHV0ZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lLFxuICBub3JtYWxpemVJZlJlbGF0aXZlLFxuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZSxcbiAgcG9zaXgsXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICBzZXBhcmF0b3IsXG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmV4cG9ydCB7XG4gIEFMV0FZU19NQVRDSF9SRUdfRVhQLFxuICBlc2NhcGVSZWdFeHAsXG4gIGdldE1hbmRhdG9yeU5hbWVkR3JvdXAsXG4gIGdldE9wdGlvbmFsTmFtZWRHcm91cCxcbiAgaXNWYWxpZFJlZ0V4cCxcbiAgTkVWRVJfTUFUQ0hfUkVHX0VYUCxcbiAgb25lT2YsXG4gIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmV4cG9ydCB7XG4gIEVNUFRZLFxuICBlbnN1cmVFbmRzV2l0aCxcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBlbnN1cmVTdGFydHNXaXRoLFxuICBlc2NhcGUsXG4gIGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIsXG4gIGhhc1NpbmdsZU9jY3VycmVuY2UsXG4gIGluZGVudCxcbiAgaW5zZXJ0QXQsXG4gIG1ha2VWYWxpZFZhcmlhYmxlTmFtZSxcbiAgbm9ybWFsaXplU3RyaW5nLFxuICByZXBsYWNlLFxuICByZXBsYWNlQWxsLFxuICByZXBsYWNlQWxsQXN5bmMsXG4gIHRyaW1FbmQsXG4gIHRyaW1TdGFydCxcbiAgdW5lc2NhcGUsXG4gIHVuaW5kZW50XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuZXhwb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NldC10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUcmFuc2Zvcm1lciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXInO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R3by13YXktbWFwLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHJhbnNmb3JtZXJzL3R5cGVkLXRyYW5zZm9ybWVyJztcbmV4cG9ydCB7IFR3b1dheU1hcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90d28td2F5LW1hcCc7XG5leHBvcnQgeyBUeXBlQXNzZXJ0ZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5leHBvcnQge1xuICBhcnJheVR5cGVHdWFyZCxcbiAgYXNzZXJ0LFxuICBhc3NlcnRHZW5lcmljT2JqZWN0LFxuICBhc3NlcnROZXZlcixcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZUdlbmVyaWNPYmplY3QsXG4gIGVuc3VyZU5vbk51bGxhYmxlLFxuICBmdW5jdGlvblR5cGVHdWFyZCxcbiAgaW5zdGFuY2VPZlR5cGVHdWFyZCxcbiAgaXNCb29sZWFuLFxuICBpc0Z1bmN0aW9uLFxuICBpc051bGwsXG4gIGlzTnVtYmVyLFxuICBpc09iamVjdCxcbiAgaXNTdHJpbmcsXG4gIGlzU3RyaW5nQXJyYXksXG4gIGlzVW5kZWZpbmVkLFxuICBsaXRlcmFsVHlwZUd1YXJkLFxuICBudWxsYWJsZVR5cGVHdWFyZCxcbiAgb2JqZWN0VHlwZUd1YXJkLFxuICBvcHRpb25hbFR5cGVHdWFyZCxcbiAgdW5pb25UeXBlR3VhcmRcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmV4cG9ydCB7XG4gIGdldFR5cGVzY3JpcHRMaWJTdGF0ZSxcbiAgZ2V0VHlwZXNjcmlwdExpYlN0YXRlU2xvdCxcbiAgcmVzZXRUeXBlc2NyaXB0TGliU3RhdGUsXG4gIFRZUEVTQ1JJUFRfTElCX1NUQVRFX0tFWSxcbiAgVFlQRVNDUklQVF9MSUJfU1RBVEVfVkVSU0lPTlxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZXNjcmlwdC1saWItc3RhdGUnO1xuZXhwb3J0IHtcbiAgZW5jb2RlVXJsLFxuICBpc0ZpbGVVcmwsXG4gIGlzVXJsLFxuICBub3JtYWxpemVGaWxlVXJsLFxuICBwYXRoVG9GaWxlVXJsXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi91cmwnO1xuZXhwb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3ZhbHVlLXByb3ZpZGVyJztcbmV4cG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtB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bUM7QUFDNUMsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyxvQ0FBb0M7QUFDN0M7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsNEJBQTRCO0FBQ3JDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyw4QkFBOEI7QUFDdkM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHNDQUFzQztBQUMvQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFVBQVU7QUFDbkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtB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RUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyw0QkFBNEI7QUFDckM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxxQkFBcUI7QUFDOUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxjQUFjO0FBQ3ZCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxtQkFBbUI7QUFDNUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxvQkFBb0I7QUFDN0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLG9CQUFvQjsiLCJuYW1lcyI6W119
@@ -144,10 +144,7 @@ function getLanguageFromElement(element) {
144
144
  return [...element.classList].find((cls) => cls.startsWith(BLOCK_LANGUAGE_PREFIX))?.slice(BLOCK_LANGUAGE_PREFIX.length) ?? "";
145
145
  }
146
146
  function getTextSelection(element) {
147
- if (!isTextSelectionElement(element)) {
148
- return null;
149
- }
150
- if (element.selectionStart === null || element.selectionEnd === null) {
147
+ if (!isTextSelectionElement(element) || element.selectionStart === null || element.selectionEnd === null) {
151
148
  return null;
152
149
  }
153
150
  return {
@@ -180,4 +177,4 @@ export {
180
177
  recordCodeBlockRenderHandoff,
181
178
  restoreCodeBlockFocus
182
179
  };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2RlLWJsb2NrLXJlbmRlci1oYW5kb2ZmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDYXJyaWVzIGZvY3VzIGFuZCBwbHVnaW4gc3RhdGUgZnJvbSBhIGNvZGUgYmxvY2sgdG8gaXRzIG5leHQgcmVuZGVyLlxuICpcbiAqIE9ic2lkaWFuIHJlbmRlcnMgYSBjb2RlIGJsb2NrIGFnYWluIHdoZW5ldmVyIGl0cyBzb3VyY2UgdGV4dCBjaGFuZ2VzOiBSZWFkaW5nIHZpZXcgcmUtcmVuZGVycyB0aGUgc2VjdGlvbiBhbmQgTGl2ZVxuICogUHJldmlldyByZXBsYWNlcyB0aGUgd2lkZ2V0LiBTbyBhIGJsb2NrIHRoYXQgZWRpdHMgaXRzIG93biBzb3VyY2UgKGEgY291bnRlciwgYSBjaGVja2JveCwgYSBzZXR0aW5ncyBmb3JtKSBsb3NlcyB0aGVcbiAqIGVsZW1lbnQgdGhlIHVzZXIgd2FzIGludGVyYWN0aW5nIHdpdGgsIGl0cyBmb2N1cyBhbmQgd2hhdGV2ZXIgdGhlIHBsdWdpbiBrZXB0IG9uIGl0LiBUaGUgZWxlbWVudCBpdHNlbGYgY2Fubm90IGJlXG4gKiBrZXB0IHdpdGhvdXQgcGF0Y2hpbmcgT2JzaWRpYW4ncyByZW5kZXJlcnMsIHNvIHRoZSB3cml0ZSByZWNvcmRzIGEgaGFuZG9mZiBpbnN0ZWFkLCBhbmQgdGhlIHByb2Nlc3NvciByZW5kZXJpbmcgdGhlXG4gKiBuZXcgc291cmNlIGNsYWltcyBpdDogaXQgZ2V0cyBiYWNrIHRoZSBzdGF0ZSB0aGUgd3JpdGUgcGFzc2VkIGFuZCBjYW4gcHV0IHRoZSBmb2N1cyBiYWNrIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG4gKlxuICogVGhlIGhhbmRvZmYgaXMgbWF0Y2hlZCBieSBzb3VyY2UgcGF0aCwgbGFuZ3VhZ2UgYW5kIHRoZSBuZXcgYmxvY2sgY29udGVudCwgYW5kIGl0IGxpdmVzIGZvclxuICoge0BsaW5rIENPREVfQkxPQ0tfUkVOREVSX0hBTkRPRkZfTElGRVRJTUVfSU5fTUlMTElTRUNPTkRTfS4gVGhlIGZpcnN0IHJlbmRlciB0byBjbGFpbSBpdCBjb25zdW1lcyBpdCwgc28gd2hlbiB0aGVcbiAqIG5vdGUgaXMgb3BlbiBpbiB0d28gcGFuZXMgb25seSBvbmUgb2YgdGhlIG5ldyByZW5kZXJzIGdldHMgaXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQge1xuICBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwLFxuICBnZXRPcHRpb25hbE5hbWVkR3JvdXBcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuaW1wb3J0IHsgZW5zdXJlTGZFbmRpbmdzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5cbmltcG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuTGliU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogSG93IGxvbmcgYSByZWNvcmRlZCBoYW5kb2ZmIHdhaXRzIGZvciB0aGUgcmVuZGVyIHRoYXQgY2xhaW1zIGl0LlxuICovXG5leHBvcnQgY29uc3QgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMgPSAxMF8wMDA7XG5cbmNvbnN0IEhBTkRPRkZfU1RBVEVfS0VZID0gJ2NvZGVCbG9ja1JlbmRlckhhbmRvZmZWMSc7XG5jb25zdCBNQVhfRlJBTUVTX1RPX1dBSVRfRk9SX0NPTk5FQ1RJT04gPSA2MDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgY2xhaW1Db2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSB0aGUgcHJvY2Vzc29yIHJlY2VpdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhlIHByb2Nlc3NvciByZW5kZXJzIGludG8uXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgdGhlIHByb2Nlc3NvciByZWNlaXZlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoZXJlIHRoZSBmb2N1cyB3YXMgaW5zaWRlIGEgcmVuZGVyZWQgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQmxvY2tGb2N1c1NuYXBzaG90IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBpbmRpY2VzIGxlYWRpbmcgZnJvbSB0aGUgY29kZSBibG9jayBlbGVtZW50IHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBjaGlsZEluZGV4UGF0aDogcmVhZG9ubHkgbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHNlbGVjdGlvbiBvZiBhIGZvY3VzZWQgaW5wdXQgb3IgdGV4dCBhcmVhLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0aW9uOiBudWxsIHwgVGV4dFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBBIGhhbmRvZmYgY2xhaW1lZCBieSB0aGUgcmVuZGVyIG9mIGEgY29kZSBibG9jayB3aG9zZSBzb3VyY2UgYSB3cml0ZSBqdXN0IGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJsb2NrUmVuZGVySGFuZG9mZiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB3cml0ZSByZWNvcmRlZCBhIGZvY3VzZWQgZWxlbWVudCB0byByZXN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzRm9jdXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW5zaWRlIHRoZSBuZXcgcmVuZGVyLCB3aXRoIHRoZSBzYW1lIHRleHQgc2VsZWN0aW9uLlxuICAgKlxuICAgKiBDYWxsIGl0IG9uY2UgdGhlIHByb2Nlc3NvciBoYXMgcmVuZGVyZWQgdGhlIGJsb2NrLiBJdCB3YWl0cyBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgYXR0YWNoZWQgdG8gYSBkb2N1bWVudC5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciBhbiBlbGVtZW50IHdhcyBmb2N1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdG9yZUZvY3VzOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGUgcGFzc2VkIHRvIHRoZSB3cml0ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBub25lIHdhcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmb2N1cyBjYXB0dXJlZCBmcm9tIHRoZSBvbGQgcmVuZGVyIHdpdGgge0BsaW5rIGNhcHR1cmVDb2RlQmxvY2tGb2N1c30uXG4gICAqL1xuICByZWFkb25seSBmb2N1czogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIGJsb2NrIHdyaXR0ZW4gdG8gdGhlIG5vdGUsIGZlbmNlcyBpbmNsdWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5ld0NvZGVCbG9jazogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgbm90ZSB0aGUgY29kZSBibG9jayBpcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRlIHRvIHBhc3MgdG8gdGhlIG5leHQgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGU6IHVua25vd247XG59XG5cbmludGVyZmFjZSBIYW5kb2ZmRW50cnkge1xuICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgZm9jdXM6IENvZGVCbG9ja0ZvY3VzU25hcHNob3QgfCBudWxsO1xuICByZWFkb25seSBzdGF0ZTogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIFRleHRTZWxlY3Rpb24ge1xuICByZWFkb25seSBkaXJlY3Rpb246ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZSc7XG4gIHJlYWRvbmx5IGVuZDogbnVtYmVyO1xuICByZWFkb25seSBzdGFydDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVGV4dFNlbGVjdGlvbkVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkRpcmVjdGlvbjogJ2JhY2t3YXJkJyB8ICdmb3J3YXJkJyB8ICdub25lJyB8IG51bGw7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkVuZDogbnVsbCB8IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uU3RhcnQ6IG51bGwgfCBudW1iZXI7XG4gIHJlYWRvbmx5IHNldFNlbGVjdGlvblJhbmdlOiAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIGRpcmVjdGlvbj86ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZScpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgd2hlcmUgdGhlIGZvY3VzIGlzIGluc2lkZSBhIHJlbmRlcmVkIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIGVsIC0gVGhlIGNvZGUgYmxvY2sgZWxlbWVudC5cbiAqIEByZXR1cm5zIFRoZSBzbmFwc2hvdCwgb3IgYG51bGxgIHdoZW4gdGhlIGZvY3VzIGlzIG5vdCBpbnNpZGUgdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlQ29kZUJsb2NrRm9jdXMoZWw6IEhUTUxFbGVtZW50KTogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGwge1xuICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWwub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQgfHwgYWN0aXZlRWxlbWVudCA9PT0gZWwgfHwgIWVsLmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGlsZEluZGV4UGF0aDogbnVtYmVyW10gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6IEVsZW1lbnQgfCBudWxsID0gYWN0aXZlRWxlbWVudDtcbiAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gZWwpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAobGV0IHNpYmxpbmcgPSBjdXJyZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuICAgIGNoaWxkSW5kZXhQYXRoLnVuc2hpZnQoaW5kZXgpO1xuICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoaWxkSW5kZXhQYXRoLFxuICAgIHNlbGVjdGlvbjogZ2V0VGV4dFNlbGVjdGlvbihhY3RpdmVFbGVtZW50KVxuICB9O1xufVxuXG4vKipcbiAqIENsYWltcyB0aGUgaGFuZG9mZiBhIHdyaXRlIHJlY29yZGVkIGZvciB0aGUgY29kZSBibG9jayBiZWluZyByZW5kZXJlZC5cbiAqXG4gKiBDYWxsIGl0IGZyb20gYSBjb2RlIGJsb2NrIHByb2Nlc3Nvci4gSXQgcmV0dXJucyBgbnVsbGAgd2hlbiBubyB3cml0ZSBpcyB3YWl0aW5nIGZvciB0aGlzIHJlbmRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBoYW5kb2ZmLCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmYocGFyYW1zOiBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmIHwgbnVsbCB7XG4gIGNvbnN0IHsgY29udGV4dCwgZWwsIHNvdXJjZSB9ID0gcGFyYW1zO1xuICBjb25zdCBlbnRyaWVzID0gZ2V0SGFuZG9mZkVudHJpZXMoKTtcbiAgcHJ1bmVFeHBpcmVkRW50cmllcyhlbnRyaWVzKTtcblxuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KGNvbnRleHQuc291cmNlUGF0aCwgZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbCksIGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpKTtcbiAgY29uc3QgcXVldWUgPSBlbnRyaWVzLmdldChrZXkpO1xuICBjb25zdCBlbnRyeSA9IHF1ZXVlPy5zaGlmdCgpO1xuICBpZiAoIXF1ZXVlIHx8ICFlbnRyeSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgIGVudHJpZXMuZGVsZXRlKGtleSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhhc0ZvY3VzOiBlbnRyeS5mb2N1cyAhPT0gbnVsbCxcbiAgICBhc3luYyByZXN0b3JlRm9jdXMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICByZXR1cm4gZW50cnkuZm9jdXMgPyAoYXdhaXQgcmVzdG9yZUNvZGVCbG9ja0ZvY3VzKGVsLCBlbnRyeS5mb2N1cykpIDogZmFsc2U7XG4gICAgfSxcbiAgICBzdGF0ZTogZW50cnkuc3RhdGVcbiAgfTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIGEgaGFuZG9mZiBmb3IgdGhlIG5leHQgcmVuZGVyIG9mIGEgY29kZSBibG9jayBhIHdyaXRlIGlzIGFib3V0IHRvIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBoYW5kb2ZmIHdhcyByZWNvcmRlZDogYGZhbHNlYCB3aGVuIHRoZSBuZXcgdGV4dCBpcyBub3QgZXhhY3RseSBvbmUgY29kZSBibG9jay5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWUgLS0gQSB2ZXJiIG5hbWVzIHRoZSBhY3Rpb247IHRoZSBib29sZWFuIG9ubHkgcmVwb3J0cyB3aGV0aGVyIGl0IHRvb2sgcGxhY2UuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQ29kZUJsb2NrUmVuZGVySGFuZG9mZihwYXJhbXM6IFJlY29yZENvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmb2N1cywgbmV3Q29kZUJsb2NrLCBzb3VyY2VQYXRoLCBzdGF0ZSB9ID0gcGFyYW1zO1xuICBjb25zdCBtYXRjaGVzID0gWy4uLmVuc3VyZUxmRW5kaW5ncyhuZXdDb2RlQmxvY2spLm1hdGNoQWxsKGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCgpKV07XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlc1swXTtcbiAgaWYgKG1hdGNoZXMubGVuZ3RoICE9PSAxIHx8ICFtYXRjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVQcmVmaXggPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAnTGluZVByZWZpeCcpO1xuICBjb25zdCBsYW5ndWFnZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdDb2RlQmxvY2tMYW5ndWFnZScpO1xuICBjb25zdCBjb250ZW50ID0gKGdldE9wdGlvbmFsTmFtZWRHcm91cChtYXRjaCwgJ0NvZGVCbG9ja0NvbnRlbnQnKSA/PyAnJykuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShsaW5lUHJlZml4Lmxlbmd0aCkpLmpvaW4oJ1xcbicpO1xuXG4gIGNvbnN0IGVudHJpZXMgPSBnZXRIYW5kb2ZmRW50cmllcygpO1xuICBwcnVuZUV4cGlyZWRFbnRyaWVzKGVudHJpZXMpO1xuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KHNvdXJjZVBhdGgsIGxhbmd1YWdlLCBjb250ZW50KTtcbiAgbGV0IHF1ZXVlID0gZW50cmllcy5nZXQoa2V5KTtcbiAgaWYgKCFxdWV1ZSkge1xuICAgIHF1ZXVlID0gW107XG4gICAgZW50cmllcy5zZXQoa2V5LCBxdWV1ZSk7XG4gIH1cbiAgcXVldWUucHVzaCh7XG4gICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMsXG4gICAgZm9jdXMsXG4gICAgc3RhdGVcbiAgfSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYSB7QGxpbmsgQ29kZUJsb2NrRm9jdXNTbmFwc2hvdH0gZGVzY3JpYmVzLlxuICpcbiAqIEBwYXJhbSBlbCAtIFRoZSBuZXcgY29kZSBibG9jayBlbGVtZW50LlxuICogQHBhcmFtIGZvY3VzIC0gVGhlIHNuYXBzaG90IGNhcHR1cmVkIGZyb20gdGhlIG9sZCByZW5kZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGFuIGVsZW1lbnQgd2FzIGZvY3VzZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtYm9vbGVhbi1uYW1lIC0tIEEgdmVyYiBuYW1lcyB0aGUgYWN0aW9uOyB0aGUgYm9vbGVhbiBvbmx5IHJlcG9ydHMgd2hldGhlciBpdCB0b29rIHBsYWNlLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVDb2RlQmxvY2tGb2N1cyhlbDogSFRNTEVsZW1lbnQsIGZvY3VzOiBDb2RlQmxvY2tGb2N1c1NuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGZvciAobGV0IGZyYW1lID0gMDsgIWVsLmlzQ29ubmVjdGVkICYmIGZyYW1lIDwgTUFYX0ZSQU1FU19UT19XQUlUX0ZPUl9DT05ORUNUSU9OOyBmcmFtZSsrKSB7XG4gICAgYXdhaXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMoKTtcbiAgfVxuXG4gIGlmICghZWwuaXNDb25uZWN0ZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgdGFyZ2V0OiBFbGVtZW50IHwgdW5kZWZpbmVkID0gZWw7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgZm9jdXMuY2hpbGRJbmRleFBhdGgpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY2hpbGRyZW5baW5kZXhdO1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc0hUTUxFbGVtZW50TGlrZSh0YXJnZXQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdGFyZ2V0LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgaWYgKGVsLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGZvY3VzLnNlbGVjdGlvbiAmJiBpc1RleHRTZWxlY3Rpb25FbGVtZW50KHRhcmdldCkpIHtcbiAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UoZm9jdXMuc2VsZWN0aW9uLnN0YXJ0LCBmb2N1cy5zZWxlY3Rpb24uZW5kLCBmb2N1cy5zZWxlY3Rpb24uZGlyZWN0aW9uKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBnZXRIYW5kb2ZmRW50cmllcygpOiBNYXA8c3RyaW5nLCBIYW5kb2ZmRW50cnlbXT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5MaWJTdGF0ZShIQU5ET0ZGX1NUQVRFX0tFWSwgbmV3IE1hcDxzdHJpbmcsIEhhbmRvZmZFbnRyeVtdPigpKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0SGFuZG9mZktleShzb3VyY2VQYXRoOiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbc291cmNlUGF0aCwgbGFuZ3VhZ2UsIGNvbnRlbnRdKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IEJMT0NLX0xBTkdVQUdFX1BSRUZJWCA9ICdibG9jay1sYW5ndWFnZS0nO1xuICByZXR1cm4gWy4uLmVsZW1lbnQuY2xhc3NMaXN0XS5maW5kKChjbHMpID0+IGNscy5zdGFydHNXaXRoKEJMT0NLX0xBTkdVQUdFX1BSRUZJWCkpPy5zbGljZShCTE9DS19MQU5HVUFHRV9QUkVGSVgubGVuZ3RoKSA/PyAnJztcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dFNlbGVjdGlvbihlbGVtZW50OiBFbGVtZW50KTogbnVsbCB8IFRleHRTZWxlY3Rpb24ge1xuICBpZiAoIWlzVGV4dFNlbGVjdGlvbkVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEFuIGlucHV0IHR5cGUgd2l0aG91dCBhIHRleHQgc2VsZWN0aW9uIChhIGNoZWNrYm94LCBhIG51bWJlciBmaWVsZCkgcmVhZHMgYG51bGxgIGhlcmUuXG4gIGlmIChlbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSBudWxsIHx8IGVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRpcmVjdGlvbjogZWxlbWVudC5zZWxlY3Rpb25EaXJlY3Rpb24gPz8gJ25vbmUnLFxuICAgIGVuZDogZWxlbWVudC5zZWxlY3Rpb25FbmQsXG4gICAgc3RhcnQ6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNIVE1MRWxlbWVudExpa2UoZWxlbWVudDogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQge1xuICByZXR1cm4gdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8SFRNTEVsZW1lbnQ+KS5mb2N1cyA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZnVuY3Rpb24gaXNUZXh0U2VsZWN0aW9uRWxlbWVudChlbGVtZW50OiBFbGVtZW50KTogZWxlbWVudCBpcyBUZXh0U2VsZWN0aW9uRWxlbWVudCB7XG4gIHJldHVybiBlbGVtZW50LnRhZ05hbWUgPT09ICdJTlBVVCcgfHwgZWxlbWVudC50YWdOYW1lID09PSAnVEVYVEFSRUEnO1xufVxuXG5mdW5jdGlvbiBwcnVuZUV4cGlyZWRFbnRyaWVzKGVudHJpZXM6IE1hcDxzdHJpbmcsIEhhbmRvZmZFbnRyeVtdPik6IHZvaWQge1xuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IFtrZXksIHF1ZXVlXSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgbGl2ZUVudHJpZXMgPSBxdWV1ZS5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeS5leHBpcmVzQXQgPiBub3cpO1xuICAgIGlmIChsaXZlRW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGVudHJpZXMuZGVsZXRlKGtleSk7XG4gICAgfSBlbHNlIGlmIChsaXZlRW50cmllcy5sZW5ndGggIT09IHF1ZXVlLmxlbmd0aCkge1xuICAgICAgZW50cmllcy5zZXQoa2V5LCBsaXZlRW50cmllcyk7XG4gICAgfVxuICB9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
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2RlLWJsb2NrLXJlbmRlci1oYW5kb2ZmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDYXJyaWVzIGZvY3VzIGFuZCBwbHVnaW4gc3RhdGUgZnJvbSBhIGNvZGUgYmxvY2sgdG8gaXRzIG5leHQgcmVuZGVyLlxuICpcbiAqIE9ic2lkaWFuIHJlbmRlcnMgYSBjb2RlIGJsb2NrIGFnYWluIHdoZW5ldmVyIGl0cyBzb3VyY2UgdGV4dCBjaGFuZ2VzOiBSZWFkaW5nIHZpZXcgcmUtcmVuZGVycyB0aGUgc2VjdGlvbiBhbmQgTGl2ZVxuICogUHJldmlldyByZXBsYWNlcyB0aGUgd2lkZ2V0LiBTbyBhIGJsb2NrIHRoYXQgZWRpdHMgaXRzIG93biBzb3VyY2UgKGEgY291bnRlciwgYSBjaGVja2JveCwgYSBzZXR0aW5ncyBmb3JtKSBsb3NlcyB0aGVcbiAqIGVsZW1lbnQgdGhlIHVzZXIgd2FzIGludGVyYWN0aW5nIHdpdGgsIGl0cyBmb2N1cyBhbmQgd2hhdGV2ZXIgdGhlIHBsdWdpbiBrZXB0IG9uIGl0LiBUaGUgZWxlbWVudCBpdHNlbGYgY2Fubm90IGJlXG4gKiBrZXB0IHdpdGhvdXQgcGF0Y2hpbmcgT2JzaWRpYW4ncyByZW5kZXJlcnMsIHNvIHRoZSB3cml0ZSByZWNvcmRzIGEgaGFuZG9mZiBpbnN0ZWFkLCBhbmQgdGhlIHByb2Nlc3NvciByZW5kZXJpbmcgdGhlXG4gKiBuZXcgc291cmNlIGNsYWltcyBpdDogaXQgZ2V0cyBiYWNrIHRoZSBzdGF0ZSB0aGUgd3JpdGUgcGFzc2VkIGFuZCBjYW4gcHV0IHRoZSBmb2N1cyBiYWNrIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG4gKlxuICogVGhlIGhhbmRvZmYgaXMgbWF0Y2hlZCBieSBzb3VyY2UgcGF0aCwgbGFuZ3VhZ2UgYW5kIHRoZSBuZXcgYmxvY2sgY29udGVudCwgYW5kIGl0IGxpdmVzIGZvclxuICoge0BsaW5rIENPREVfQkxPQ0tfUkVOREVSX0hBTkRPRkZfTElGRVRJTUVfSU5fTUlMTElTRUNPTkRTfS4gVGhlIGZpcnN0IHJlbmRlciB0byBjbGFpbSBpdCBjb25zdW1lcyBpdCwgc28gd2hlbiB0aGVcbiAqIG5vdGUgaXMgb3BlbiBpbiB0d28gcGFuZXMgb25seSBvbmUgb2YgdGhlIG5ldyByZW5kZXJzIGdldHMgaXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQge1xuICBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwLFxuICBnZXRPcHRpb25hbE5hbWVkR3JvdXBcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuaW1wb3J0IHsgZW5zdXJlTGZFbmRpbmdzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5cbmltcG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuTGliU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogSG93IGxvbmcgYSByZWNvcmRlZCBoYW5kb2ZmIHdhaXRzIGZvciB0aGUgcmVuZGVyIHRoYXQgY2xhaW1zIGl0LlxuICovXG5leHBvcnQgY29uc3QgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMgPSAxMF8wMDA7XG5cbmNvbnN0IEhBTkRPRkZfU1RBVEVfS0VZID0gJ2NvZGVCbG9ja1JlbmRlckhhbmRvZmZWMSc7XG5jb25zdCBNQVhfRlJBTUVTX1RPX1dBSVRfRk9SX0NPTk5FQ1RJT04gPSA2MDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgY2xhaW1Db2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSB0aGUgcHJvY2Vzc29yIHJlY2VpdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhlIHByb2Nlc3NvciByZW5kZXJzIGludG8uXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgdGhlIHByb2Nlc3NvciByZWNlaXZlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoZXJlIHRoZSBmb2N1cyB3YXMgaW5zaWRlIGEgcmVuZGVyZWQgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQmxvY2tGb2N1c1NuYXBzaG90IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBpbmRpY2VzIGxlYWRpbmcgZnJvbSB0aGUgY29kZSBibG9jayBlbGVtZW50IHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBjaGlsZEluZGV4UGF0aDogcmVhZG9ubHkgbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHNlbGVjdGlvbiBvZiBhIGZvY3VzZWQgaW5wdXQgb3IgdGV4dCBhcmVhLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0aW9uOiBudWxsIHwgVGV4dFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBBIGhhbmRvZmYgY2xhaW1lZCBieSB0aGUgcmVuZGVyIG9mIGEgY29kZSBibG9jayB3aG9zZSBzb3VyY2UgYSB3cml0ZSBqdXN0IGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJsb2NrUmVuZGVySGFuZG9mZiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB3cml0ZSByZWNvcmRlZCBhIGZvY3VzZWQgZWxlbWVudCB0byByZXN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzRm9jdXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW5zaWRlIHRoZSBuZXcgcmVuZGVyLCB3aXRoIHRoZSBzYW1lIHRleHQgc2VsZWN0aW9uLlxuICAgKlxuICAgKiBDYWxsIGl0IG9uY2UgdGhlIHByb2Nlc3NvciBoYXMgcmVuZGVyZWQgdGhlIGJsb2NrLiBJdCB3YWl0cyBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgYXR0YWNoZWQgdG8gYSBkb2N1bWVudC5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciBhbiBlbGVtZW50IHdhcyBmb2N1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdG9yZUZvY3VzOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGUgcGFzc2VkIHRvIHRoZSB3cml0ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBub25lIHdhcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmb2N1cyBjYXB0dXJlZCBmcm9tIHRoZSBvbGQgcmVuZGVyIHdpdGgge0BsaW5rIGNhcHR1cmVDb2RlQmxvY2tGb2N1c30uXG4gICAqL1xuICByZWFkb25seSBmb2N1czogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIGJsb2NrIHdyaXR0ZW4gdG8gdGhlIG5vdGUsIGZlbmNlcyBpbmNsdWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5ld0NvZGVCbG9jazogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgbm90ZSB0aGUgY29kZSBibG9jayBpcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRlIHRvIHBhc3MgdG8gdGhlIG5leHQgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGU6IHVua25vd247XG59XG5cbmludGVyZmFjZSBIYW5kb2ZmRW50cnkge1xuICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgZm9jdXM6IENvZGVCbG9ja0ZvY3VzU25hcHNob3QgfCBudWxsO1xuICByZWFkb25seSBzdGF0ZTogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIFRleHRTZWxlY3Rpb24ge1xuICByZWFkb25seSBkaXJlY3Rpb246ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZSc7XG4gIHJlYWRvbmx5IGVuZDogbnVtYmVyO1xuICByZWFkb25seSBzdGFydDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVGV4dFNlbGVjdGlvbkVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkRpcmVjdGlvbjogJ2JhY2t3YXJkJyB8ICdmb3J3YXJkJyB8ICdub25lJyB8IG51bGw7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkVuZDogbnVsbCB8IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uU3RhcnQ6IG51bGwgfCBudW1iZXI7XG4gIHJlYWRvbmx5IHNldFNlbGVjdGlvblJhbmdlOiAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIGRpcmVjdGlvbj86ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZScpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgd2hlcmUgdGhlIGZvY3VzIGlzIGluc2lkZSBhIHJlbmRlcmVkIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIGVsIC0gVGhlIGNvZGUgYmxvY2sgZWxlbWVudC5cbiAqIEByZXR1cm5zIFRoZSBzbmFwc2hvdCwgb3IgYG51bGxgIHdoZW4gdGhlIGZvY3VzIGlzIG5vdCBpbnNpZGUgdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlQ29kZUJsb2NrRm9jdXMoZWw6IEhUTUxFbGVtZW50KTogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGwge1xuICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWwub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQgfHwgYWN0aXZlRWxlbWVudCA9PT0gZWwgfHwgIWVsLmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGlsZEluZGV4UGF0aDogbnVtYmVyW10gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6IEVsZW1lbnQgfCBudWxsID0gYWN0aXZlRWxlbWVudDtcbiAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gZWwpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAobGV0IHNpYmxpbmcgPSBjdXJyZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuICAgIGNoaWxkSW5kZXhQYXRoLnVuc2hpZnQoaW5kZXgpO1xuICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoaWxkSW5kZXhQYXRoLFxuICAgIHNlbGVjdGlvbjogZ2V0VGV4dFNlbGVjdGlvbihhY3RpdmVFbGVtZW50KVxuICB9O1xufVxuXG4vKipcbiAqIENsYWltcyB0aGUgaGFuZG9mZiBhIHdyaXRlIHJlY29yZGVkIGZvciB0aGUgY29kZSBibG9jayBiZWluZyByZW5kZXJlZC5cbiAqXG4gKiBDYWxsIGl0IGZyb20gYSBjb2RlIGJsb2NrIHByb2Nlc3Nvci4gSXQgcmV0dXJucyBgbnVsbGAgd2hlbiBubyB3cml0ZSBpcyB3YWl0aW5nIGZvciB0aGlzIHJlbmRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBoYW5kb2ZmLCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmYocGFyYW1zOiBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmIHwgbnVsbCB7XG4gIGNvbnN0IHsgY29udGV4dCwgZWwsIHNvdXJjZSB9ID0gcGFyYW1zO1xuICBjb25zdCBlbnRyaWVzID0gZ2V0SGFuZG9mZkVudHJpZXMoKTtcbiAgcHJ1bmVFeHBpcmVkRW50cmllcyhlbnRyaWVzKTtcblxuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KGNvbnRleHQuc291cmNlUGF0aCwgZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbCksIGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpKTtcbiAgY29uc3QgcXVldWUgPSBlbnRyaWVzLmdldChrZXkpO1xuICBjb25zdCBlbnRyeSA9IHF1ZXVlPy5zaGlmdCgpO1xuICBpZiAoIXF1ZXVlIHx8ICFlbnRyeSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgIGVudHJpZXMuZGVsZXRlKGtleSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhhc0ZvY3VzOiBlbnRyeS5mb2N1cyAhPT0gbnVsbCxcbiAgICBhc3luYyByZXN0b3JlRm9jdXMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICByZXR1cm4gZW50cnkuZm9jdXMgPyAoYXdhaXQgcmVzdG9yZUNvZGVCbG9ja0ZvY3VzKGVsLCBlbnRyeS5mb2N1cykpIDogZmFsc2U7XG4gICAgfSxcbiAgICBzdGF0ZTogZW50cnkuc3RhdGVcbiAgfTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIGEgaGFuZG9mZiBmb3IgdGhlIG5leHQgcmVuZGVyIG9mIGEgY29kZSBibG9jayBhIHdyaXRlIGlzIGFib3V0IHRvIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBoYW5kb2ZmIHdhcyByZWNvcmRlZDogYGZhbHNlYCB3aGVuIHRoZSBuZXcgdGV4dCBpcyBub3QgZXhhY3RseSBvbmUgY29kZSBibG9jay5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWUgLS0gQSB2ZXJiIG5hbWVzIHRoZSBhY3Rpb247IHRoZSBib29sZWFuIG9ubHkgcmVwb3J0cyB3aGV0aGVyIGl0IHRvb2sgcGxhY2UuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQ29kZUJsb2NrUmVuZGVySGFuZG9mZihwYXJhbXM6IFJlY29yZENvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmb2N1cywgbmV3Q29kZUJsb2NrLCBzb3VyY2VQYXRoLCBzdGF0ZSB9ID0gcGFyYW1zO1xuICBjb25zdCBtYXRjaGVzID0gWy4uLmVuc3VyZUxmRW5kaW5ncyhuZXdDb2RlQmxvY2spLm1hdGNoQWxsKGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCgpKV07XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlc1swXTtcbiAgaWYgKG1hdGNoZXMubGVuZ3RoICE9PSAxIHx8ICFtYXRjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVQcmVmaXggPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAnTGluZVByZWZpeCcpO1xuICBjb25zdCBsYW5ndWFnZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdDb2RlQmxvY2tMYW5ndWFnZScpO1xuICBjb25zdCBjb250ZW50ID0gKGdldE9wdGlvbmFsTmFtZWRHcm91cChtYXRjaCwgJ0NvZGVCbG9ja0NvbnRlbnQnKSA/PyAnJykuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShsaW5lUHJlZml4Lmxlbmd0aCkpLmpvaW4oJ1xcbicpO1xuXG4gIGNvbnN0IGVudHJpZXMgPSBnZXRIYW5kb2ZmRW50cmllcygpO1xuICBwcnVuZUV4cGlyZWRFbnRyaWVzKGVudHJpZXMpO1xuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KHNvdXJjZVBhdGgsIGxhbmd1YWdlLCBjb250ZW50KTtcbiAgbGV0IHF1ZXVlID0gZW50cmllcy5nZXQoa2V5KTtcbiAgaWYgKCFxdWV1ZSkge1xuICAgIHF1ZXVlID0gW107XG4gICAgZW50cmllcy5zZXQoa2V5LCBxdWV1ZSk7XG4gIH1cbiAgcXVldWUucHVzaCh7XG4gICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMsXG4gICAgZm9jdXMsXG4gICAgc3RhdGVcbiAgfSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYSB7QGxpbmsgQ29kZUJsb2NrRm9jdXNTbmFwc2hvdH0gZGVzY3JpYmVzLlxuICpcbiAqIEBwYXJhbSBlbCAtIFRoZSBuZXcgY29kZSBibG9jayBlbGVtZW50LlxuICogQHBhcmFtIGZvY3VzIC0gVGhlIHNuYXBzaG90IGNhcHR1cmVkIGZyb20gdGhlIG9sZCByZW5kZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGFuIGVsZW1lbnQgd2FzIGZvY3VzZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtYm9vbGVhbi1uYW1lIC0tIEEgdmVyYiBuYW1lcyB0aGUgYWN0aW9uOyB0aGUgYm9vbGVhbiBvbmx5IHJlcG9ydHMgd2hldGhlciBpdCB0b29rIHBsYWNlLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVDb2RlQmxvY2tGb2N1cyhlbDogSFRNTEVsZW1lbnQsIGZvY3VzOiBDb2RlQmxvY2tGb2N1c1NuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGZvciAobGV0IGZyYW1lID0gMDsgIWVsLmlzQ29ubmVjdGVkICYmIGZyYW1lIDwgTUFYX0ZSQU1FU19UT19XQUlUX0ZPUl9DT05ORUNUSU9OOyBmcmFtZSsrKSB7XG4gICAgYXdhaXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMoKTtcbiAgfVxuXG4gIGlmICghZWwuaXNDb25uZWN0ZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgdGFyZ2V0OiBFbGVtZW50IHwgdW5kZWZpbmVkID0gZWw7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgZm9jdXMuY2hpbGRJbmRleFBhdGgpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY2hpbGRyZW5baW5kZXhdO1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc0hUTUxFbGVtZW50TGlrZSh0YXJnZXQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdGFyZ2V0LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgaWYgKGVsLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGZvY3VzLnNlbGVjdGlvbiAmJiBpc1RleHRTZWxlY3Rpb25FbGVtZW50KHRhcmdldCkpIHtcbiAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UoZm9jdXMuc2VsZWN0aW9uLnN0YXJ0LCBmb2N1cy5zZWxlY3Rpb24uZW5kLCBmb2N1cy5zZWxlY3Rpb24uZGlyZWN0aW9uKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBnZXRIYW5kb2ZmRW50cmllcygpOiBNYXA8c3RyaW5nLCBIYW5kb2ZmRW50cnlbXT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5MaWJTdGF0ZShIQU5ET0ZGX1NUQVRFX0tFWSwgbmV3IE1hcDxzdHJpbmcsIEhhbmRvZmZFbnRyeVtdPigpKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0SGFuZG9mZktleShzb3VyY2VQYXRoOiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbc291cmNlUGF0aCwgbGFuZ3VhZ2UsIGNvbnRlbnRdKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IEJMT0NLX0xBTkdVQUdFX1BSRUZJWCA9ICdibG9jay1sYW5ndWFnZS0nO1xuICByZXR1cm4gWy4uLmVsZW1lbnQuY2xhc3NMaXN0XS5maW5kKChjbHMpID0+IGNscy5zdGFydHNXaXRoKEJMT0NLX0xBTkdVQUdFX1BSRUZJWCkpPy5zbGljZShCTE9DS19MQU5HVUFHRV9QUkVGSVgubGVuZ3RoKSA/PyAnJztcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dFNlbGVjdGlvbihlbGVtZW50OiBFbGVtZW50KTogbnVsbCB8IFRleHRTZWxlY3Rpb24ge1xuICAvLyBBbiBpbnB1dCB0eXBlIHdpdGhvdXQgYSB0ZXh0IHNlbGVjdGlvbiAoYSBjaGVja2JveCwgYSBudW1iZXIgZmllbGQpIHJlYWRzIGBudWxsYCBoZXJlLlxuICBpZiAoIWlzVGV4dFNlbGVjdGlvbkVsZW1lbnQoZWxlbWVudCkgfHwgZWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gbnVsbCB8fCBlbGVtZW50LnNlbGVjdGlvbkVuZCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkaXJlY3Rpb246IGVsZW1lbnQuc2VsZWN0aW9uRGlyZWN0aW9uID8/ICdub25lJyxcbiAgICBlbmQ6IGVsZW1lbnQuc2VsZWN0aW9uRW5kLFxuICAgIHN0YXJ0OiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnRMaWtlKGVsZW1lbnQ6IEVsZW1lbnQpOiBlbGVtZW50IGlzIEhUTUxFbGVtZW50IHtcbiAgcmV0dXJuIHR5cGVvZiAoZWxlbWVudCBhcyBQYXJ0aWFsPEhUTUxFbGVtZW50PikuZm9jdXMgPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzVGV4dFNlbGVjdGlvbkVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IGVsZW1lbnQgaXMgVGV4dFNlbGVjdGlvbkVsZW1lbnQge1xuICByZXR1cm4gZWxlbWVudC50YWdOYW1lID09PSAnSU5QVVQnIHx8IGVsZW1lbnQudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJztcbn1cblxuZnVuY3Rpb24gcHJ1bmVFeHBpcmVkRW50cmllcyhlbnRyaWVzOiBNYXA8c3RyaW5nLCBIYW5kb2ZmRW50cnlbXT4pOiB2b2lkIHtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgZm9yIChjb25zdCBba2V5LCBxdWV1ZV0gb2YgZW50cmllcykge1xuICAgIGNvbnN0IGxpdmVFbnRyaWVzID0gcXVldWUuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuZXhwaXJlc0F0ID4gbm93KTtcbiAgICBpZiAobGl2ZUVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBlbnRyaWVzLmRlbGV0ZShrZXkpO1xuICAgIH0gZWxzZSBpZiAobGl2ZUVudHJpZXMubGVuZ3RoICE9PSBxdWV1ZS5sZW5ndGgpIHtcbiAgICAgIGVudHJpZXMuc2V0KGtleSwgbGl2ZUVudHJpZXMpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7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
@@ -0,0 +1,50 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Scopes an editor extension to one editor mode: {@link createLivePreviewOnlyExtension} keeps it in Live Preview only,
6
+ * and {@link createSourceModeOnlyExtension} in Source mode only. The extension is switched on and off as a whole, so its
7
+ * decorations, view plugins and state fields need no mode check of their own.
8
+ *
9
+ * The mode is Obsidian's `editorLivePreviewField`. Read from Obsidian `1.15.1`, a Markdown editor gets the field from
10
+ * `editorLivePreviewField.init()` whenever its state is built, and a mode switch dispatches one transaction carrying a
11
+ * private effect that sets the field, beside the reconfigure of its dynamic extensions. So the field changes only in a
12
+ * transaction with effects, or with a new state.
13
+ *
14
+ * Each call wraps the extension in a {@link Compartment} of its own, which holds the extension or nothing in every
15
+ * editor separately. A transaction extender reconfigures it in the same transaction that changes the mode, so no update
16
+ * ever renders with the wrong content. A new state cannot be read before it exists, so it starts with the content the
17
+ * Live Preview default calls for, and a view plugin corrects it in a microtask, which runs before the browser paints.
18
+ *
19
+ * Outside an Obsidian Markdown editor there is no `editorLivePreviewField`, and the editor counts as Live Preview.
20
+ */
21
+ import type { Extension } from '@codemirror/state';
22
+ import { EditorState } from '@codemirror/state';
23
+ /**
24
+ * Wraps an extension so it is active only while the editor is in Live Preview, and switched off in Source mode.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * this.registerEditorExtension(createLivePreviewOnlyExtension(myDecorationsPlugin));
29
+ * ```
30
+ *
31
+ * @param extension - The extension to scope.
32
+ * @returns The scoped extension.
33
+ */
34
+ export declare function createLivePreviewOnlyExtension(extension: Extension): Extension;
35
+ /**
36
+ * Wraps an extension so it is active only while the editor is in Source mode, and switched off in Live Preview.
37
+ *
38
+ * Outside an Obsidian Markdown editor the editor counts as Live Preview, so the extension stays off there.
39
+ *
40
+ * @param extension - The extension to scope.
41
+ * @returns The scoped extension.
42
+ */
43
+ export declare function createSourceModeOnlyExtension(extension: Extension): Extension;
44
+ /**
45
+ * Tells whether an editor state is in Live Preview.
46
+ *
47
+ * @param state - The editor state.
48
+ * @returns `true` in Live Preview and outside an Obsidian Markdown editor, `false` in Source mode.
49
+ */
50
+ export declare function isLivePreview(state: EditorState): boolean;