@nlabs/metropolisjs 0.3.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/actions/appActions/appActions.d.ts.map +1 -1
  2. package/lib/actions/awsRumActions/awsRumActions.d.ts +4 -3
  3. package/lib/actions/awsRumActions/awsRumActions.d.ts.map +1 -1
  4. package/lib/actions/awsRumActions/awsRumActions.js +50 -27
  5. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -1
  6. package/lib/actions/contentActions/contentActions.d.ts.map +1 -1
  7. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -1
  8. package/lib/actions/crmActions/crmActions.d.ts +32 -32
  9. package/lib/actions/crmActions/crmActions.d.ts.map +1 -1
  10. package/lib/actions/eventActions/eventActions.d.ts.map +1 -1
  11. package/lib/actions/groupActions/groupActions.d.ts.map +1 -1
  12. package/lib/actions/imageActions/imageActions.d.ts.map +1 -1
  13. package/lib/actions/locationActions/locationActions.d.ts.map +1 -1
  14. package/lib/actions/messageActions/messageActions.d.ts.map +1 -1
  15. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -1
  16. package/lib/actions/personaActions/personaActions.d.ts.map +1 -1
  17. package/lib/actions/postActions/postActions.d.ts.map +1 -1
  18. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -1
  19. package/lib/actions/restActions/restActions.d.ts +2 -2
  20. package/lib/actions/restActions/restActions.d.ts.map +1 -1
  21. package/lib/actions/sseActions/sseActions.d.ts.map +1 -1
  22. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -1
  23. package/lib/actions/tagActions/tagActions.d.ts.map +1 -1
  24. package/lib/actions/translationActions/translationActions.d.ts.map +1 -1
  25. package/lib/actions/userActions/userActions.d.ts.map +1 -1
  26. package/lib/actions/videoActions/videoActions.d.ts.map +1 -1
  27. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -1
  28. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -1
  29. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -1
  30. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -1
  31. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -1
  32. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -1
  33. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -1
  34. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -1
  35. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -1
  36. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -1
  37. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -1
  38. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -1
  39. package/lib/adapters/permissionAdapter/permissionAdapter.js +1 -1
  40. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -1
  41. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -1
  42. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -1
  43. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -1
  44. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -1
  45. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -1
  46. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -1
  47. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -1
  48. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -1
  49. package/lib/config/index.d.ts +1 -0
  50. package/lib/config/index.d.ts.map +1 -1
  51. package/lib/config/index.js +1 -1
  52. package/lib/constants/Collections.d.ts +43 -43
  53. package/lib/constants/Collections.d.ts.map +1 -1
  54. package/lib/constants/MetropolisConstants.d.ts.map +1 -1
  55. package/lib/index.d.ts +1 -0
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +30 -1
  58. package/lib/stores/appStore.d.ts +13 -13
  59. package/lib/stores/appStore.d.ts.map +1 -1
  60. package/lib/stores/contentStore.d.ts +11 -11
  61. package/lib/stores/contentStore.d.ts.map +1 -1
  62. package/lib/stores/conversationStore.d.ts +11 -11
  63. package/lib/stores/conversationStore.d.ts.map +1 -1
  64. package/lib/stores/eventStore.d.ts +13 -16
  65. package/lib/stores/eventStore.d.ts.map +1 -1
  66. package/lib/stores/groupStore.d.ts +11 -14
  67. package/lib/stores/groupStore.d.ts.map +1 -1
  68. package/lib/stores/imageStore.d.ts +16 -19
  69. package/lib/stores/imageStore.d.ts.map +1 -1
  70. package/lib/stores/locationStore.d.ts +12 -14
  71. package/lib/stores/locationStore.d.ts.map +1 -1
  72. package/lib/stores/messageStore.d.ts +14 -19
  73. package/lib/stores/messageStore.d.ts.map +1 -1
  74. package/lib/stores/notificationStore.d.ts +3 -5
  75. package/lib/stores/notificationStore.d.ts.map +1 -1
  76. package/lib/stores/permissionStore.d.ts +13 -13
  77. package/lib/stores/permissionStore.d.ts.map +1 -1
  78. package/lib/stores/personaStore.d.ts +1 -1
  79. package/lib/stores/personaStore.d.ts.map +1 -1
  80. package/lib/stores/postStore.d.ts +11 -13
  81. package/lib/stores/postStore.d.ts.map +1 -1
  82. package/lib/stores/reactionStore.d.ts +9 -9
  83. package/lib/stores/reactionStore.d.ts.map +1 -1
  84. package/lib/stores/subscriptionStore.d.ts +13 -13
  85. package/lib/stores/subscriptionStore.d.ts.map +1 -1
  86. package/lib/stores/tagStore.d.ts +16 -18
  87. package/lib/stores/tagStore.d.ts.map +1 -1
  88. package/lib/stores/translationStore.d.ts +8 -8
  89. package/lib/stores/translationStore.d.ts.map +1 -1
  90. package/lib/stores/userStore.d.ts +39 -39
  91. package/lib/stores/userStore.d.ts.map +1 -1
  92. package/lib/stores/videoStore.d.ts +12 -12
  93. package/lib/stores/videoStore.d.ts.map +1 -1
  94. package/lib/stores/websocketStore.d.ts +5 -5
  95. package/lib/stores/websocketStore.d.ts.map +1 -1
  96. package/lib/tests/testGraphQLServer.d.ts.map +1 -1
  97. package/lib/tests/testGraphQLServerSimple.d.ts.map +1 -1
  98. package/lib/utils/MetropolisProvider.d.ts.map +1 -1
  99. package/lib/utils/actionFactory.d.ts +2 -2
  100. package/lib/utils/actionFactory.d.ts.map +1 -1
  101. package/lib/utils/actionFactory.js +27 -2
  102. package/lib/utils/api.d.ts.map +1 -1
  103. package/lib/utils/api.js +2 -2
  104. package/lib/utils/app.d.ts.map +1 -1
  105. package/lib/utils/baseActionFactory.d.ts.map +1 -1
  106. package/lib/utils/configUtils.d.ts.map +1 -1
  107. package/lib/utils/dateUtils.d.ts.map +1 -1
  108. package/lib/utils/file.d.ts.map +1 -1
  109. package/lib/utils/i18n.d.ts.map +1 -1
  110. package/lib/utils/location.d.ts +1 -1
  111. package/lib/utils/location.d.ts.map +1 -1
  112. package/lib/utils/requestCache.d.ts.map +1 -1
  113. package/lib/utils/session.d.ts.map +1 -1
  114. package/lib/utils/useConversationTyping.d.ts.map +1 -1
  115. package/lib/utils/useMetropolis.d.ts.map +1 -1
  116. package/lib/utils/useMetropolis.js +9 -5
  117. package/lib/utils/useTranslations.d.ts.map +1 -1
  118. package/lib/utils/validatorFactory.d.ts.map +1 -1
  119. package/package.json +1 -1
@@ -21,11 +21,36 @@ import { createTranslationActions } from '../actions/translationActions/translat
21
21
  import { createUserActions } from '../actions/userActions/userActions.js';
22
22
  import { createVideoActions } from '../actions/videoActions/videoActions.js';
23
23
  import { createWebsocketActions } from '../actions/websocketActions/websocketActions.js';
24
+ const awsRumActionCache = new WeakMap();
24
25
  const websocketActionCache = new WeakMap();
26
+ const createAwsRumOptionsKey = (options = {})=>JSON.stringify({
27
+ appId: options.appId,
28
+ debounceMs: options.debounceMs,
29
+ dedupeMs: options.dedupeMs,
30
+ enabled: options.enabled,
31
+ respectPrivacySignals: options.respectPrivacySignals,
32
+ throttleMs: options.throttleMs
33
+ });
25
34
  export const createAction = (actionType, flux, options)=>{
26
35
  switch(actionType){
27
36
  case 'awsRum':
28
- return createAwsRumActions(flux, options);
37
+ {
38
+ const awsRumOptions = options;
39
+ const optionsKey = createAwsRumOptionsKey(awsRumOptions);
40
+ const cached = awsRumActionCache.get(flux);
41
+ if (!cached || cached.optionsKey !== optionsKey) {
42
+ if (cached) {
43
+ void cached.actions.destroy();
44
+ }
45
+ const actions = createAwsRumActions(flux, awsRumOptions);
46
+ awsRumActionCache.set(flux, {
47
+ actions,
48
+ optionsKey
49
+ });
50
+ return actions;
51
+ }
52
+ return cached.actions;
53
+ }
29
54
  case 'content':
30
55
  return createContentActions(flux, options);
31
56
  case 'crm':
@@ -104,4 +129,4 @@ export const createAllActions = (flux, options)=>{
104
129
  return createActions(allActionTypes, flux, options);
105
130
  };
106
131
 
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYWN0aW9uRmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVDb250ZW50QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9jb250ZW50QWN0aW9ucy9jb250ZW50QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUF3c1J1bUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvYXdzUnVtQWN0aW9ucy9hd3NSdW1BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlQ3JtQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9jcm1BY3Rpb25zL2NybUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVFdmVudEFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvZXZlbnRBY3Rpb25zL2V2ZW50QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUdyb3VwQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9ncm91cEFjdGlvbnMvZ3JvdXBBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlSW1hZ2VBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL2ltYWdlQWN0aW9ucy9pbWFnZUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVMb2NhdGlvbkFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbG9jYXRpb25BY3Rpb25zL2xvY2F0aW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZU1lc3NhZ2VBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL21lc3NhZ2VBY3Rpb25zL21lc3NhZ2VBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlUGVybWlzc2lvbkFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbkFjdGlvbnMvcGVybWlzc2lvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVQb3N0QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wb3N0QWN0aW9ucy9wb3N0QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVBlcnNvbmFBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3BlcnNvbmFBY3Rpb25zL3BlcnNvbmFBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlUmVhY3Rpb25BY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy9yZWFjdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVSZXN0QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9yZXN0QWN0aW9ucy9yZXN0QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNTRUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvc3NlQWN0aW9ucy9zc2VBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlU3Vic2NyaXB0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zdWJzY3JpcHRpb25BY3Rpb25zL3N1YnNjcmlwdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVUYWdBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVRyYW5zbGF0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlVXNlckFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVWaWRlb0FjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvd2Vic29ja2V0QWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7Q29udGVudEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRlbnRBY3Rpb25zL2NvbnRlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtBd3NSdW1BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9hd3NSdW1BY3Rpb25zL2F3c1J1bUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0NybUFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2NybUFjdGlvbnMvY3JtQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7RXZlbnRBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9ldmVudEFjdGlvbnMvZXZlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtHcm91cEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2dyb3VwQWN0aW9ucy9ncm91cEFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0ltYWdlQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvaW1hZ2VBY3Rpb25zL2ltYWdlQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7TG9jYXRpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtNZXNzYWdlQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1Blcm1pc3Npb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UG9zdEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtQZXJzb25hQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1JlYWN0aW9uQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcmVhY3Rpb25BY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UmVzdEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Jlc3RBY3Rpb25zL3Jlc3RBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtTU0VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zc2VBY3Rpb25zL3NzZUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1RhZ0FjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7VHJhbnNsYXRpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1ZpZGVvQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5cbmNvbnN0IHdlYnNvY2tldEFjdGlvbkNhY2hlID0gbmV3IFdlYWtNYXA8Rmx1eEZyYW1ld29yaywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz4+KCk7XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGUgPVxuICB8ICdhd3NSdW0nXG4gIHwgJ2NvbnRlbnQnXG4gIHwgJ2NybSdcbiAgfCAnZXZlbnQnXG4gIHwgJ2dyb3VwJ1xuICB8ICdpbWFnZSdcbiAgfCAnbG9jYXRpb24nXG4gIHwgJ21lc3NhZ2UnXG4gIHwgJ3Blcm1pc3Npb24nXG4gIHwgJ3Bvc3QnXG4gIHwgJ3BlcnNvbmEnXG4gIHwgJ3JlYWN0aW9uJ1xuICB8ICdyZXN0J1xuICB8ICdzc2UnXG4gIHwgJ3N1YnNjcmlwdGlvbidcbiAgfCAndGFnJ1xuICB8ICd0cmFuc2xhdGlvbidcbiAgfCAndXNlcidcbiAgfCAndmlkZW8nXG4gIHwgJ3dlYnNvY2tldCc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk9wdGlvbnMgPVxuICB8IEF3c1J1bUFjdGlvbnNPcHRpb25zXG4gIHwgQ29udGVudEFjdGlvbnNPcHRpb25zXG4gIHwgQ3JtQWN0aW9uc09wdGlvbnNcbiAgfCBFdmVudEFjdGlvbnNPcHRpb25zXG4gIHwgR3JvdXBBY3Rpb25zT3B0aW9uc1xuICB8IEltYWdlQWN0aW9uc09wdGlvbnNcbiAgfCBMb2NhdGlvbkFjdGlvbnNPcHRpb25zXG4gIHwgTWVzc2FnZUFjdGlvbnNPcHRpb25zXG4gIHwgUGVybWlzc2lvbkFjdGlvbnNPcHRpb25zXG4gIHwgUG9zdEFjdGlvbnNPcHRpb25zXG4gIHwgUGVyc29uYUFjdGlvbnNPcHRpb25zXG4gIHwgUmVhY3Rpb25BY3Rpb25zT3B0aW9uc1xuICB8IFJlc3RBY3Rpb25zT3B0aW9uc1xuICB8IFNTRUFjdGlvbnNPcHRpb25zXG4gIHwgVGFnQWN0aW9uc09wdGlvbnNcbiAgfCBUcmFuc2xhdGlvbkFjdGlvbnNPcHRpb25zXG4gIHwgVXNlckFjdGlvbnNPcHRpb25zXG4gIHwgVmlkZW9BY3Rpb25zT3B0aW9uc1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvbiA9IDxUIGV4dGVuZHMgQWN0aW9uVHlwZT4oXG4gIGFjdGlvblR5cGU6IFQsXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBBY3Rpb25PcHRpb25zXG4pID0+IHtcbiAgc3dpdGNoKGFjdGlvblR5cGUpIHtcbiAgICBjYXNlICdhd3NSdW0nOlxuICAgICAgcmV0dXJuIGNyZWF0ZUF3c1J1bUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBBd3NSdW1BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdjb250ZW50JzpcbiAgICAgIHJldHVybiBjcmVhdGVDb250ZW50QWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIENvbnRlbnRBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdjcm0nOlxuICAgICAgcmV0dXJuIGNyZWF0ZUNybUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBDcm1BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdldmVudCc6XG4gICAgICByZXR1cm4gY3JlYXRlRXZlbnRBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgRXZlbnRBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdncm91cCc6XG4gICAgICByZXR1cm4gY3JlYXRlR3JvdXBBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgR3JvdXBBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdpbWFnZSc6XG4gICAgICByZXR1cm4gY3JlYXRlSW1hZ2VBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgSW1hZ2VBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdsb2NhdGlvbic6XG4gICAgICByZXR1cm4gY3JlYXRlTG9jYXRpb25BY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgTG9jYXRpb25BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdtZXNzYWdlJzpcbiAgICAgIHJldHVybiBjcmVhdGVNZXNzYWdlQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIE1lc3NhZ2VBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdwZXJtaXNzaW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVQZXJtaXNzaW9uQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFBlcm1pc3Npb25BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdwb3N0JzpcbiAgICAgIHJldHVybiBjcmVhdGVQb3N0QWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFBvc3RBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdwZXJzb25hJzpcbiAgICAgIHJldHVybiBjcmVhdGVQZXJzb25hQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFBlcnNvbmFBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdyZWFjdGlvbic6XG4gICAgICByZXR1cm4gY3JlYXRlUmVhY3Rpb25BY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUmVhY3Rpb25BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdyZXN0JzpcbiAgICAgIHJldHVybiBjcmVhdGVSZXN0QWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFJlc3RBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdzc2UnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVNTRUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBTU0VBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICdzdWJzY3JpcHRpb24nOlxuICAgICAgcmV0dXJuIGNyZWF0ZVN1YnNjcmlwdGlvbkFjdGlvbnMoZmx1eCk7XG5cbiAgICBjYXNlICd0YWcnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVRhZ0FjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBUYWdBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICd0cmFuc2xhdGlvbic6XG4gICAgICByZXR1cm4gY3JlYXRlVHJhbnNsYXRpb25BY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgVHJhbnNsYXRpb25BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICd1c2VyJzpcbiAgICAgIHJldHVybiBjcmVhdGVVc2VyQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFVzZXJBY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICd2aWRlbyc6XG4gICAgICByZXR1cm4gY3JlYXRlVmlkZW9BY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgVmlkZW9BY3Rpb25zT3B0aW9ucyk7XG5cbiAgICBjYXNlICd3ZWJzb2NrZXQnOlxuICAgICAgaWYoIXdlYnNvY2tldEFjdGlvbkNhY2hlLmhhcyhmbHV4KSkge1xuICAgICAgICB3ZWJzb2NrZXRBY3Rpb25DYWNoZS5zZXQoZmx1eCwgY3JlYXRlV2Vic29ja2V0QWN0aW9ucyhmbHV4KSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB3ZWJzb2NrZXRBY3Rpb25DYWNoZS5nZXQoZmx1eCkgYXMgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFjdGlvbiB0eXBlOiAke2FjdGlvblR5cGV9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBY3Rpb25zID0gKFxuICBhY3Rpb25UeXBlczogQWN0aW9uVHlwZVtdLFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogUGFydGlhbDxSZWNvcmQ8QWN0aW9uVHlwZSwgQWN0aW9uT3B0aW9ucz4+XG4pOiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25SZXR1cm5UeXBlPEFjdGlvblR5cGU+Pj4gPT4ge1xuICBjb25zdCBhY3Rpb25zOiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25SZXR1cm5UeXBlPEFjdGlvblR5cGU+Pj4gPSB7fTtcblxuICBhY3Rpb25UeXBlcy5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgYWN0aW9uc1t0eXBlXSA9IGNyZWF0ZUFjdGlvbih0eXBlLCBmbHV4LCBvcHRpb25zPy5bdHlwZV0pIGFzIEFjdGlvblJldHVyblR5cGU8QWN0aW9uVHlwZT47XG4gIH0pO1xuXG4gIHJldHVybiBhY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFsbEFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zPj5cbikgPT4ge1xuICBjb25zdCBhbGxBY3Rpb25UeXBlczogQWN0aW9uVHlwZVtdID0gW1xuICAgICdhd3NSdW0nLFxuICAgICdjb250ZW50JyxcbiAgICAnY3JtJyxcbiAgICAnZXZlbnQnLFxuICAgICdncm91cCcsXG4gICAgJ2ltYWdlJyxcbiAgICAnbG9jYXRpb24nLFxuICAgICdtZXNzYWdlJyxcbiAgICAncGVybWlzc2lvbicsXG4gICAgJ3Bvc3QnLFxuICAgICdwZXJzb25hJyxcbiAgICAncmVhY3Rpb24nLFxuICAgICdyZXN0JyxcbiAgICAnc3NlJyxcbiAgICAnc3Vic2NyaXB0aW9uJyxcbiAgICAndGFnJyxcbiAgICAndHJhbnNsYXRpb24nLFxuICAgICd1c2VyJyxcbiAgICAndmlkZW8nLFxuICAgICd3ZWJzb2NrZXQnXG4gIF07XG5cbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbnMoYWxsQWN0aW9uVHlwZXMsIGZsdXgsIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBbGxBY3Rpb25zPjtcbmV4cG9ydCB0eXBlIEFjdGlvblJldHVyblR5cGU8VCBleHRlbmRzIEFjdGlvblR5cGU+ID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQWN0aW9uPFQ+PjtcbiJdLCJuYW1lcyI6WyJjcmVhdGVDb250ZW50QWN0aW9ucyIsImNyZWF0ZUF3c1J1bUFjdGlvbnMiLCJjcmVhdGVDcm1BY3Rpb25zIiwiY3JlYXRlRXZlbnRBY3Rpb25zIiwiY3JlYXRlR3JvdXBBY3Rpb25zIiwiY3JlYXRlSW1hZ2VBY3Rpb25zIiwiY3JlYXRlTG9jYXRpb25BY3Rpb25zIiwiY3JlYXRlTWVzc2FnZUFjdGlvbnMiLCJjcmVhdGVQZXJtaXNzaW9uQWN0aW9ucyIsImNyZWF0ZVBvc3RBY3Rpb25zIiwiY3JlYXRlUGVyc29uYUFjdGlvbnMiLCJjcmVhdGVSZWFjdGlvbkFjdGlvbnMiLCJjcmVhdGVSZXN0QWN0aW9ucyIsImNyZWF0ZVNTRUFjdGlvbnMiLCJjcmVhdGVTdWJzY3JpcHRpb25BY3Rpb25zIiwiY3JlYXRlVGFnQWN0aW9ucyIsImNyZWF0ZVRyYW5zbGF0aW9uQWN0aW9ucyIsImNyZWF0ZVVzZXJBY3Rpb25zIiwiY3JlYXRlVmlkZW9BY3Rpb25zIiwiY3JlYXRlV2Vic29ja2V0QWN0aW9ucyIsIndlYnNvY2tldEFjdGlvbkNhY2hlIiwiV2Vha01hcCIsImNyZWF0ZUFjdGlvbiIsImFjdGlvblR5cGUiLCJmbHV4Iiwib3B0aW9ucyIsImhhcyIsInNldCIsImdldCIsIkVycm9yIiwiY3JlYXRlQWN0aW9ucyIsImFjdGlvblR5cGVzIiwiYWN0aW9ucyIsImZvckVhY2giLCJ0eXBlIiwiY3JlYXRlQWxsQWN0aW9ucyIsImFsbEFjdGlvblR5cGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxvQkFBb0IsUUFBTyw4Q0FBOEM7QUFDakYsU0FBUUMsbUJBQW1CLFFBQU8sNENBQTRDO0FBQzlFLFNBQVFDLGdCQUFnQixRQUFPLHNDQUFzQztBQUNyRSxTQUFRQyxrQkFBa0IsUUFBTywwQ0FBMEM7QUFDM0UsU0FBUUMsa0JBQWtCLFFBQU8sMENBQTBDO0FBQzNFLFNBQVFDLGtCQUFrQixRQUFPLDBDQUEwQztBQUMzRSxTQUFRQyxxQkFBcUIsUUFBTyxnREFBZ0Q7QUFDcEYsU0FBUUMsb0JBQW9CLFFBQU8sOENBQThDO0FBQ2pGLFNBQVFDLHVCQUF1QixRQUFPLG9EQUFvRDtBQUMxRixTQUFRQyxpQkFBaUIsUUFBTyx3Q0FBd0M7QUFDeEUsU0FBUUMsb0JBQW9CLFFBQU8sOENBQThDO0FBQ2pGLFNBQVFDLHFCQUFxQixRQUFPLGdEQUFnRDtBQUNwRixTQUFRQyxpQkFBaUIsUUFBTyx3Q0FBd0M7QUFDeEUsU0FBUUMsZ0JBQWdCLFFBQU8sc0NBQXNDO0FBQ3JFLFNBQVFDLHlCQUF5QixRQUFPLHdEQUF3RDtBQUNoRyxTQUFRQyxnQkFBZ0IsUUFBTyxzQ0FBc0M7QUFDckUsU0FBUUMsd0JBQXdCLFFBQU8sc0RBQXNEO0FBQzdGLFNBQVFDLGlCQUFpQixRQUFPLHdDQUF3QztBQUN4RSxTQUFRQyxrQkFBa0IsUUFBTywwQ0FBMEM7QUFDM0UsU0FBUUMsc0JBQXNCLFFBQU8sa0RBQWtEO0FBc0J2RixNQUFNQyx1QkFBdUIsSUFBSUM7QUE2Q2pDLE9BQU8sTUFBTUMsZUFBZSxDQUMxQkMsWUFDQUMsTUFDQUM7SUFFQSxPQUFPRjtRQUNMLEtBQUs7WUFDSCxPQUFPdEIsb0JBQW9CdUIsTUFBTUM7UUFFbkMsS0FBSztZQUNILE9BQU96QixxQkFBcUJ3QixNQUFNQztRQUVwQyxLQUFLO1lBQ0gsT0FBT3ZCLGlCQUFpQnNCLE1BQU1DO1FBRWhDLEtBQUs7WUFDSCxPQUFPdEIsbUJBQW1CcUIsTUFBTUM7UUFFbEMsS0FBSztZQUNILE9BQU9yQixtQkFBbUJvQixNQUFNQztRQUVsQyxLQUFLO1lBQ0gsT0FBT3BCLG1CQUFtQm1CLE1BQU1DO1FBRWxDLEtBQUs7WUFDSCxPQUFPbkIsc0JBQXNCa0IsTUFBTUM7UUFFckMsS0FBSztZQUNILE9BQU9sQixxQkFBcUJpQixNQUFNQztRQUVwQyxLQUFLO1lBQ0gsT0FBT2pCLHdCQUF3QmdCLE1BQU1DO1FBRXZDLEtBQUs7WUFDSCxPQUFPaEIsa0JBQWtCZSxNQUFNQztRQUVqQyxLQUFLO1lBQ0gsT0FBT2YscUJBQXFCYyxNQUFNQztRQUVwQyxLQUFLO1lBQ0gsT0FBT2Qsc0JBQXNCYSxNQUFNQztRQUVyQyxLQUFLO1lBQ0gsT0FBT2Isa0JBQWtCWSxNQUFNQztRQUVqQyxLQUFLO1lBQ0gsT0FBT1osaUJBQWlCVyxNQUFNQztRQUVoQyxLQUFLO1lBQ0gsT0FBT1gsMEJBQTBCVTtRQUVuQyxLQUFLO1lBQ0gsT0FBT1QsaUJBQWlCUyxNQUFNQztRQUVoQyxLQUFLO1lBQ0gsT0FBT1QseUJBQXlCUSxNQUFNQztRQUV4QyxLQUFLO1lBQ0gsT0FBT1Isa0JBQWtCTyxNQUFNQztRQUVqQyxLQUFLO1lBQ0gsT0FBT1AsbUJBQW1CTSxNQUFNQztRQUVsQyxLQUFLO1lBQ0gsSUFBRyxDQUFDTCxxQkFBcUJNLEdBQUcsQ0FBQ0YsT0FBTztnQkFDbENKLHFCQUFxQk8sR0FBRyxDQUFDSCxNQUFNTCx1QkFBdUJLO1lBQ3hEO1lBRUEsT0FBT0oscUJBQXFCUSxHQUFHLENBQUNKO1FBRWxDO1lBQ0UsTUFBTSxJQUFJSyxNQUFNLENBQUMscUJBQXFCLEVBQUVOLFlBQVk7SUFDeEQ7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNTyxnQkFBZ0IsQ0FDM0JDLGFBQ0FQLE1BQ0FDO0lBRUEsTUFBTU8sVUFBcUUsQ0FBQztJQUU1RUQsWUFBWUUsT0FBTyxDQUFDLENBQUNDO1FBQ25CRixPQUFPLENBQUNFLEtBQUssR0FBR1osYUFBYVksTUFBTVYsTUFBTUMsU0FBUyxDQUFDUyxLQUFLO0lBQzFEO0lBRUEsT0FBT0Y7QUFDVCxFQUFFO0FBRUYsT0FBTyxNQUFNRyxtQkFBbUIsQ0FDOUJYLE1BQ0FDO0lBRUEsTUFBTVcsaUJBQStCO1FBQ25DO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDRDtJQUVELE9BQU9OLGNBQWNNLGdCQUFnQlosTUFBTUM7QUFDN0MsRUFBRSJ9
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYWN0aW9uRmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVDb250ZW50QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9jb250ZW50QWN0aW9ucy9jb250ZW50QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUF3c1J1bUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvYXdzUnVtQWN0aW9ucy9hd3NSdW1BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlQ3JtQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9jcm1BY3Rpb25zL2NybUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVFdmVudEFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvZXZlbnRBY3Rpb25zL2V2ZW50QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUdyb3VwQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9ncm91cEFjdGlvbnMvZ3JvdXBBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlSW1hZ2VBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL2ltYWdlQWN0aW9ucy9pbWFnZUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVMb2NhdGlvbkFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbG9jYXRpb25BY3Rpb25zL2xvY2F0aW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZU1lc3NhZ2VBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL21lc3NhZ2VBY3Rpb25zL21lc3NhZ2VBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlUGVybWlzc2lvbkFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbkFjdGlvbnMvcGVybWlzc2lvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVQb3N0QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wb3N0QWN0aW9ucy9wb3N0QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVBlcnNvbmFBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3BlcnNvbmFBY3Rpb25zL3BlcnNvbmFBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlUmVhY3Rpb25BY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy9yZWFjdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVSZXN0QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9yZXN0QWN0aW9ucy9yZXN0QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNTRUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvc3NlQWN0aW9ucy9zc2VBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlU3Vic2NyaXB0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zdWJzY3JpcHRpb25BY3Rpb25zL3N1YnNjcmlwdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVUYWdBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVRyYW5zbGF0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlVXNlckFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVWaWRlb0FjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvd2Vic29ja2V0QWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7Q29udGVudEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRlbnRBY3Rpb25zL2NvbnRlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtBd3NSdW1BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9hd3NSdW1BY3Rpb25zL2F3c1J1bUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0NybUFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2NybUFjdGlvbnMvY3JtQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7RXZlbnRBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9ldmVudEFjdGlvbnMvZXZlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtHcm91cEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2dyb3VwQWN0aW9ucy9ncm91cEFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0ltYWdlQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvaW1hZ2VBY3Rpb25zL2ltYWdlQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7TG9jYXRpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtNZXNzYWdlQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1Blcm1pc3Npb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UG9zdEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtQZXJzb25hQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1JlYWN0aW9uQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcmVhY3Rpb25BY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UmVzdEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Jlc3RBY3Rpb25zL3Jlc3RBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtTU0VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zc2VBY3Rpb25zL3NzZUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1RhZ0FjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7VHJhbnNsYXRpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1ZpZGVvQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5cbmNvbnN0IGF3c1J1bUFjdGlvbkNhY2hlID0gbmV3IFdlYWtNYXA8Rmx1eEZyYW1ld29yaywge1xuICByZWFkb25seSBhY3Rpb25zOiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBd3NSdW1BY3Rpb25zPjtcbiAgcmVhZG9ubHkgb3B0aW9uc0tleTogc3RyaW5nO1xufT4oKTtcbmNvbnN0IHdlYnNvY2tldEFjdGlvbkNhY2hlID0gbmV3IFdlYWtNYXA8Rmx1eEZyYW1ld29yaywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz4+KCk7XG5cbmNvbnN0IGNyZWF0ZUF3c1J1bU9wdGlvbnNLZXkgPSAob3B0aW9uczogQXdzUnVtQWN0aW9uc09wdGlvbnMgPSB7fSk6IHN0cmluZyA9PiBKU09OLnN0cmluZ2lmeSh7XG4gIGFwcElkOiBvcHRpb25zLmFwcElkLFxuICBkZWJvdW5jZU1zOiBvcHRpb25zLmRlYm91bmNlTXMsXG4gIGRlZHVwZU1zOiBvcHRpb25zLmRlZHVwZU1zLFxuICBlbmFibGVkOiBvcHRpb25zLmVuYWJsZWQsXG4gIHJlc3BlY3RQcml2YWN5U2lnbmFsczogb3B0aW9ucy5yZXNwZWN0UHJpdmFjeVNpZ25hbHMsXG4gIHRocm90dGxlTXM6IG9wdGlvbnMudGhyb3R0bGVNc1xufSk7XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGUgPVxuICB8ICdhd3NSdW0nXG4gIHwgJ2NvbnRlbnQnXG4gIHwgJ2NybSdcbiAgfCAnZXZlbnQnXG4gIHwgJ2dyb3VwJ1xuICB8ICdpbWFnZSdcbiAgfCAnbG9jYXRpb24nXG4gIHwgJ21lc3NhZ2UnXG4gIHwgJ3Blcm1pc3Npb24nXG4gIHwgJ3Bvc3QnXG4gIHwgJ3BlcnNvbmEnXG4gIHwgJ3JlYWN0aW9uJ1xuICB8ICdyZXN0J1xuICB8ICdzc2UnXG4gIHwgJ3N1YnNjcmlwdGlvbidcbiAgfCAndGFnJ1xuICB8ICd0cmFuc2xhdGlvbidcbiAgfCAndXNlcidcbiAgfCAndmlkZW8nXG4gIHwgJ3dlYnNvY2tldCc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk9wdGlvbnMgPVxuICB8IEF3c1J1bUFjdGlvbnNPcHRpb25zXG4gIHwgQ29udGVudEFjdGlvbnNPcHRpb25zXG4gIHwgQ3JtQWN0aW9uc09wdGlvbnNcbiAgfCBFdmVudEFjdGlvbnNPcHRpb25zXG4gIHwgR3JvdXBBY3Rpb25zT3B0aW9uc1xuICB8IEltYWdlQWN0aW9uc09wdGlvbnNcbiAgfCBMb2NhdGlvbkFjdGlvbnNPcHRpb25zXG4gIHwgTWVzc2FnZUFjdGlvbnNPcHRpb25zXG4gIHwgUGVybWlzc2lvbkFjdGlvbnNPcHRpb25zXG4gIHwgUG9zdEFjdGlvbnNPcHRpb25zXG4gIHwgUGVyc29uYUFjdGlvbnNPcHRpb25zXG4gIHwgUmVhY3Rpb25BY3Rpb25zT3B0aW9uc1xuICB8IFJlc3RBY3Rpb25zT3B0aW9uc1xuICB8IFNTRUFjdGlvbnNPcHRpb25zXG4gIHwgVGFnQWN0aW9uc09wdGlvbnNcbiAgfCBUcmFuc2xhdGlvbkFjdGlvbnNPcHRpb25zXG4gIHwgVXNlckFjdGlvbnNPcHRpb25zXG4gIHwgVmlkZW9BY3Rpb25zT3B0aW9uc1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvbiA9IDxUIGV4dGVuZHMgQWN0aW9uVHlwZT4oXG4gIGFjdGlvblR5cGU6IFQsXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBBY3Rpb25PcHRpb25zXG4pID0+IHtcbiAgc3dpdGNoKGFjdGlvblR5cGUpIHtcbiAgICBjYXNlICdhd3NSdW0nOiB7XG4gICAgICBjb25zdCBhd3NSdW1PcHRpb25zID0gb3B0aW9ucyBhcyBBd3NSdW1BY3Rpb25zT3B0aW9ucztcbiAgICAgIGNvbnN0IG9wdGlvbnNLZXkgPSBjcmVhdGVBd3NSdW1PcHRpb25zS2V5KGF3c1J1bU9wdGlvbnMpO1xuICAgICAgY29uc3QgY2FjaGVkID0gYXdzUnVtQWN0aW9uQ2FjaGUuZ2V0KGZsdXgpO1xuXG4gICAgICBpZighY2FjaGVkIHx8IGNhY2hlZC5vcHRpb25zS2V5ICE9PSBvcHRpb25zS2V5KSB7XG4gICAgICAgIGlmKGNhY2hlZCkge1xuICAgICAgICAgIHZvaWQgY2FjaGVkLmFjdGlvbnMuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IGNyZWF0ZUF3c1J1bUFjdGlvbnMoZmx1eCwgYXdzUnVtT3B0aW9ucyk7XG4gICAgICAgIGF3c1J1bUFjdGlvbkNhY2hlLnNldChmbHV4LCB7YWN0aW9ucywgb3B0aW9uc0tleX0pO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNhY2hlZC5hY3Rpb25zO1xuICAgIH1cblxuICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRlbnRBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgQ29udGVudEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2NybSc6XG4gICAgICByZXR1cm4gY3JlYXRlQ3JtQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIENybUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2V2ZW50JzpcbiAgICAgIHJldHVybiBjcmVhdGVFdmVudEFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBFdmVudEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2dyb3VwJzpcbiAgICAgIHJldHVybiBjcmVhdGVHcm91cEFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBHcm91cEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgIHJldHVybiBjcmVhdGVJbWFnZUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBJbWFnZUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2xvY2F0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVMb2NhdGlvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBMb2NhdGlvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgcmV0dXJuIGNyZWF0ZU1lc3NhZ2VBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgTWVzc2FnZUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3Blcm1pc3Npb24nOlxuICAgICAgcmV0dXJuIGNyZWF0ZVBlcm1pc3Npb25BY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUGVybWlzc2lvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVBvc3RBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUG9zdEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3BlcnNvbmEnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVBlcnNvbmFBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUGVyc29uYUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3JlYWN0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVSZWFjdGlvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBSZWFjdGlvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3Jlc3QnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3RBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUmVzdEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3NzZSc6XG4gICAgICByZXR1cm4gY3JlYXRlU1NFQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFNTRUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6XG4gICAgICByZXR1cm4gY3JlYXRlU3Vic2NyaXB0aW9uQWN0aW9ucyhmbHV4KTtcblxuICAgIGNhc2UgJ3RhZyc6XG4gICAgICByZXR1cm4gY3JlYXRlVGFnQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFRhZ0FjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3RyYW5zbGF0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVUcmFuc2xhdGlvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBUcmFuc2xhdGlvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIGNyZWF0ZVVzZXJBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgVXNlckFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICAgIHJldHVybiBjcmVhdGVWaWRlb0FjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBWaWRlb0FjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3dlYnNvY2tldCc6XG4gICAgICBpZighd2Vic29ja2V0QWN0aW9uQ2FjaGUuaGFzKGZsdXgpKSB7XG4gICAgICAgIHdlYnNvY2tldEFjdGlvbkNhY2hlLnNldChmbHV4LCBjcmVhdGVXZWJzb2NrZXRBY3Rpb25zKGZsdXgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHdlYnNvY2tldEFjdGlvbkNhY2hlLmdldChmbHV4KSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVXZWJzb2NrZXRBY3Rpb25zPjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uIHR5cGU6ICR7YWN0aW9uVHlwZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvbnMgPSAoXG4gIGFjdGlvblR5cGVzOiBBY3Rpb25UeXBlW10sXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zPj5cbik6IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvblJldHVyblR5cGU8QWN0aW9uVHlwZT4+PiA9PiB7XG4gIGNvbnN0IGFjdGlvbnM6IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvblJldHVyblR5cGU8QWN0aW9uVHlwZT4+PiA9IHt9O1xuXG4gIGFjdGlvblR5cGVzLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICBhY3Rpb25zW3R5cGVdID0gY3JlYXRlQWN0aW9uKHR5cGUsIGZsdXgsIG9wdGlvbnM/Llt0eXBlXSkgYXMgQWN0aW9uUmV0dXJuVHlwZTxBY3Rpb25UeXBlPjtcbiAgfSk7XG5cbiAgcmV0dXJuIGFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWxsQWN0aW9ucyA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnM+PlxuKSA9PiB7XG4gIGNvbnN0IGFsbEFjdGlvblR5cGVzOiBBY3Rpb25UeXBlW10gPSBbXG4gICAgJ2F3c1J1bScsXG4gICAgJ2NvbnRlbnQnLFxuICAgICdjcm0nLFxuICAgICdldmVudCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnaW1hZ2UnLFxuICAgICdsb2NhdGlvbicsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdwZXJtaXNzaW9uJyxcbiAgICAncG9zdCcsXG4gICAgJ3BlcnNvbmEnLFxuICAgICdyZWFjdGlvbicsXG4gICAgJ3Jlc3QnLFxuICAgICdzc2UnLFxuICAgICdzdWJzY3JpcHRpb24nLFxuICAgICd0YWcnLFxuICAgICd0cmFuc2xhdGlvbicsXG4gICAgJ3VzZXInLFxuICAgICd2aWRlbycsXG4gICAgJ3dlYnNvY2tldCdcbiAgXTtcblxuICByZXR1cm4gY3JlYXRlQWN0aW9ucyhhbGxBY3Rpb25UeXBlcywgZmx1eCwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlcyA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUFsbEFjdGlvbnM+O1xuZXhwb3J0IHR5cGUgQWN0aW9uUmV0dXJuVHlwZTxUIGV4dGVuZHMgQWN0aW9uVHlwZT4gPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBY3Rpb248VD4+O1xuIl0sIm5hbWVzIjpbImNyZWF0ZUNvbnRlbnRBY3Rpb25zIiwiY3JlYXRlQXdzUnVtQWN0aW9ucyIsImNyZWF0ZUNybUFjdGlvbnMiLCJjcmVhdGVFdmVudEFjdGlvbnMiLCJjcmVhdGVHcm91cEFjdGlvbnMiLCJjcmVhdGVJbWFnZUFjdGlvbnMiLCJjcmVhdGVMb2NhdGlvbkFjdGlvbnMiLCJjcmVhdGVNZXNzYWdlQWN0aW9ucyIsImNyZWF0ZVBlcm1pc3Npb25BY3Rpb25zIiwiY3JlYXRlUG9zdEFjdGlvbnMiLCJjcmVhdGVQZXJzb25hQWN0aW9ucyIsImNyZWF0ZVJlYWN0aW9uQWN0aW9ucyIsImNyZWF0ZVJlc3RBY3Rpb25zIiwiY3JlYXRlU1NFQWN0aW9ucyIsImNyZWF0ZVN1YnNjcmlwdGlvbkFjdGlvbnMiLCJjcmVhdGVUYWdBY3Rpb25zIiwiY3JlYXRlVHJhbnNsYXRpb25BY3Rpb25zIiwiY3JlYXRlVXNlckFjdGlvbnMiLCJjcmVhdGVWaWRlb0FjdGlvbnMiLCJjcmVhdGVXZWJzb2NrZXRBY3Rpb25zIiwiYXdzUnVtQWN0aW9uQ2FjaGUiLCJXZWFrTWFwIiwid2Vic29ja2V0QWN0aW9uQ2FjaGUiLCJjcmVhdGVBd3NSdW1PcHRpb25zS2V5Iiwib3B0aW9ucyIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcHBJZCIsImRlYm91bmNlTXMiLCJkZWR1cGVNcyIsImVuYWJsZWQiLCJyZXNwZWN0UHJpdmFjeVNpZ25hbHMiLCJ0aHJvdHRsZU1zIiwiY3JlYXRlQWN0aW9uIiwiYWN0aW9uVHlwZSIsImZsdXgiLCJhd3NSdW1PcHRpb25zIiwib3B0aW9uc0tleSIsImNhY2hlZCIsImdldCIsImFjdGlvbnMiLCJkZXN0cm95Iiwic2V0IiwiaGFzIiwiRXJyb3IiLCJjcmVhdGVBY3Rpb25zIiwiYWN0aW9uVHlwZXMiLCJmb3JFYWNoIiwidHlwZSIsImNyZWF0ZUFsbEFjdGlvbnMiLCJhbGxBY3Rpb25UeXBlcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsb0JBQW9CLFFBQU8sOENBQThDO0FBQ2pGLFNBQVFDLG1CQUFtQixRQUFPLDRDQUE0QztBQUM5RSxTQUFRQyxnQkFBZ0IsUUFBTyxzQ0FBc0M7QUFDckUsU0FBUUMsa0JBQWtCLFFBQU8sMENBQTBDO0FBQzNFLFNBQVFDLGtCQUFrQixRQUFPLDBDQUEwQztBQUMzRSxTQUFRQyxrQkFBa0IsUUFBTywwQ0FBMEM7QUFDM0UsU0FBUUMscUJBQXFCLFFBQU8sZ0RBQWdEO0FBQ3BGLFNBQVFDLG9CQUFvQixRQUFPLDhDQUE4QztBQUNqRixTQUFRQyx1QkFBdUIsUUFBTyxv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
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
package/lib/utils/api.js CHANGED
@@ -235,7 +235,7 @@ export const publicMutation = (flux, name, dataType, queryVariables, returnPrope
235
235
  export const rumMutation = (flux, name, dataType, queryVariables, returnProperties, options = {})=>{
236
236
  const query = createMutation(name, dataType, queryVariables, returnProperties);
237
237
  const config = getConfigFromFlux(flux);
238
- const rumUrl = config.app?.api?.rum || '';
238
+ const rumUrl = config.app?.api?.rum || config.app?.api?.public || '';
239
239
  return getGraphql(flux, rumUrl, false, query, options);
240
240
  };
241
241
  export const uploadImage = (flux, image, options = {})=>{
@@ -338,4 +338,4 @@ export const refreshSession = async (flux, token, expires)=>{
338
338
  }
339
339
  };
340
340
 
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYXBpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBpRXJyb3IsIGFqYXgsIGRlbCwgZ2V0LCBncmFwaHFsUXVlcnksIHBvc3QsIHB1dH0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjYW1lbENhc2UsIGlzRW1wdHksIHVwcGVyRmlyc3R9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7QVBQX0NPTlNUQU5UU30gZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlLmpzJztcbmltcG9ydCB7VVNFUl9DT05TVEFOVFN9IGZyb20gJy4uL3N0b3Jlcy91c2VyU3RvcmUuanMnO1xuaW1wb3J0IHtnZXRDb25maWdGcm9tRmx1eH0gZnJvbSAnLi9jb25maWdVdGlscy5qcyc7XG5pbXBvcnQge2NsZWFyUGVyc2lzdGVkU2Vzc2lvbiwgZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMsIGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UsIHBhcnNlSnd0RXhwaXJ5TXMsIHN0b3JlU2Vzc2lvbn0gZnJvbSAnLi9zZXNzaW9uLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhBY3Rpb24sIEZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7SHVudGVyT3B0aW9uc1R5cGUsIEh1bnRlclF1ZXJ5VHlwZX0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMge1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBQcm9taXNlPEZsdXhBY3Rpb24+O1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdE1ldGhvZCA9ICdERUxFVEUnIHwgJ0dFVCcgfCAnUEFUQ0gnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAoc3RyaW5nICYge30pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RBcGlPcHRpb25zIGV4dGVuZHMgSHVudGVyT3B0aW9uc1R5cGUge1xuICByZWFkb25seSBhdXRoZW50aWNhdGU/OiBib29sZWFuO1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb24gPVxuICAnYXBwcycgfFxuICAnY29ubmVjdGlvbnMnIHxcbiAgJ2NvbnRlbnRzJyB8XG4gICdjb252ZXJzYXRpb25zJyB8XG4gICdjcm0nIHxcbiAgJ2V2ZW50cycgfFxuICAnZmlsZXMnIHxcbiAgJ2dyb3VwcycgfFxuICAnaW1hZ2VzJyB8XG4gICdsb2NhdGlvbnMnIHxcbiAgJ21lc3NhZ2VzJyB8XG4gICdub3RpZmljYXRpb25zJyB8XG4gICdwYXltZW50cycgfFxuICAncGVybWlzc2lvbnMnIHxcbiAgJ3Bvc3RzJyB8XG4gICdwZXJzb25hcycgfFxuICAncmVhY3Rpb25zJyB8XG4gICdydW0nIHxcbiAgJ3N1YnNjcmlwdGlvbnMnIHxcbiAgJ3RhZ3MnIHxcbiAgJ3RyYW5zbGF0aW9ucycgfFxuICAndXNlcnMnIHxcbiAgJ3ZpZGVvcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUXVlcnlWYXJpYWJsZVR5cGUge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVF1ZXJ5VmFyaWFibGVzIHtcbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogQXBpUXVlcnlWYXJpYWJsZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzdWx0c1R5cGUge1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5VHlwZSB7XG4gIHJlYWRvbmx5IHF1ZXJ5PzogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW107XG4gIHJlYWRvbmx5IHJlcXVlc3Q/OiB7XG4gICAgcmVhZG9ubHkgbWV0aG9kOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcGFyYW1zPzogdW5rbm93bjtcbiAgICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgfTtcbiAgcmVhZG9ubHkgcmVzcG9uc2VNZXRob2Q6IChyZXN1bHRzOiBBcGlSZXN1bHRzVHlwZSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uVHlwZSB7XG4gIHJlYWRvbmx5IGV4cGlyZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGlzc3VlZD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfUkVGUkVTSF9XSU5ET1dfTUlOVVRFUyA9IDU7XG5jb25zdCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMgPSAxNTtcblxuY29uc3QgZ2V0TWludXRlc1VudGlsID0gKGV4cGlyZXNBdDogbnVtYmVyKTogbnVtYmVyID0+XG4gIE1hdGgucm91bmQoKGV4cGlyZXNBdCAtIERhdGUubm93KCkpIC8gKDEwMDAgKiA2MCkpO1xuXG5jb25zdCBjbGVhckludmFsaWRTZXNzaW9uU3RhdGUgPSBhc3luYyAoZmx1eDogRmx1eEZyYW1ld29yayk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBhd2FpdCBjbGVhclBlcnNpc3RlZFNlc3Npb24oZmx1eCk7XG4gIGF3YWl0IGZsdXguY2xlYXJBcHBEYXRhKCk7XG4gIGF3YWl0IGZsdXguZGlzcGF0Y2goe3Nlc3Npb246IHt9LCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5TSUdOX09VVF9TVUNDRVNTfSk7XG59O1xuXG5jb25zdCByZXNvbHZlQXV0aFRva2VuID0gYXN5bmMgKGZsdXg6IEZsdXhGcmFtZXdvcmspOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBjb25zdCBzdGF0ZVNlc3Npb246IFNlc3Npb25UeXBlID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicpIHx8IHt9KSBhcyBTZXNzaW9uVHlwZTtcbiAgY29uc3QgaHlkcmF0ZWRTZXNzaW9uOiBTZXNzaW9uVHlwZSA9IHN0YXRlU2Vzc2lvbi50b2tlbiA/IHN0YXRlU2Vzc2lvbiA6IGF3YWl0IGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UoZmx1eCk7XG4gIGNvbnN0IHtcbiAgICBleHBpcmVzOiBhdXRoRXhwaXJlcyA9IDAsXG4gICAgaXNzdWVkOiBhdXRoSXNzdWVkID0gMCxcbiAgICB0b2tlbjogaHlkcmF0ZWRUb2tlblxuICB9OiBTZXNzaW9uVHlwZSA9IGh5ZHJhdGVkU2Vzc2lvbiB8fCB7fTtcbiAgbGV0IHRva2VuID0gaHlkcmF0ZWRUb2tlbiB8fCBzdGF0ZVNlc3Npb24udG9rZW47XG5cbiAgaWYoIXRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKFsnaW52YWxpZF9zZXNzaW9uJ10sICdpbnZhbGlkX3Nlc3Npb24nKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyh0b2tlbik7XG5cbiAgaWYodG9rZW5FeHBpcmVzQXQgPiAwICYmIERhdGUubm93KCkgPj0gdG9rZW5FeHBpcmVzQXQpIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoWydleHBpcmVkX3Nlc3Npb24nXSwgJ2V4cGlyZWRfc2Vzc2lvbicpO1xuICB9XG5cbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IG1pbnV0ZXNVbnRpbEV4cGlyeSA9IGdldE1pbnV0ZXNVbnRpbChOdW1iZXIoYXV0aEV4cGlyZXMgfHwgMCkpO1xuICBjb25zdCBzZXNzaW9uTGlmZXRpbWVNaW51dGVzID0gTWF0aC5yb3VuZCgoYXV0aEV4cGlyZXMgLSBhdXRoSXNzdWVkKSAvICgxMDAwICogNjApKTtcbiAgY29uc3QgcmVmcmVzaFdpbmRvd01pbnV0ZXMgPSBnZXRSZWZyZXNoV2luZG93TWludXRlcyhcbiAgICBzZXNzaW9uTGlmZXRpbWVNaW51dGVzIHx8IERFRkFVTFRfU0VTU0lPTl9NQVhfTUlOVVRFUyxcbiAgICBjb25maWcuYXBwPy5zZXNzaW9uIHx8IHt9XG4gICk7XG4gIGNvbnN0IHJlZnJlc2hFeHBpcmVzTWludXRlcyA9IE1hdGgubWF4KFxuICAgIDEsXG4gICAgTnVtYmVyKGNvbmZpZy5hcHA/LnNlc3Npb24/Lm1heE1pbnV0ZXMgfHwgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyB8fCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMpXG4gICk7XG5cbiAgaWYobWludXRlc1VudGlsRXhwaXJ5ID4gMCAmJiBtaW51dGVzVW50aWxFeHBpcnkgPD0gcmVmcmVzaFdpbmRvd01pbnV0ZXMpIHtcbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uOiB1cGRhdGVkU2Vzc2lvbiA9IHt9XG4gICAgfTogQXBpUmVzdWx0c1R5cGUgPSAoYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4sIHJlZnJlc2hFeHBpcmVzTWludXRlcykpIHx8IHt9O1xuICAgIGNvbnN0IHt0b2tlbjogbmV3VG9rZW59OiBTZXNzaW9uVHlwZSA9ICh1cGRhdGVkU2Vzc2lvbiB8fCB7fSk7XG5cbiAgICBpZighbmV3VG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfc2Vzc2lvbiddLCAnaW52YWxpZF9zZXNzaW9uJyk7XG4gICAgfVxuXG4gICAgdG9rZW4gPSBuZXdUb2tlbjtcbiAgfVxuXG4gIHJldHVybiB0b2tlbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHcmFwaHFsID0gYXN5bmMgKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICB1cmw6IHN0cmluZyxcbiAgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICBxdWVyeTogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnNcbik6IFByb21pc2U8QXBpUmVzdWx0c1R5cGU+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7b25TdWNjZXNzfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmV0cnk6IFJldHJ5VHlwZSA9IHtxdWVyeSwgcmVzcG9uc2VNZXRob2Q6IG9uU3VjY2VzcyB8fCAoKCkgPT4ge30pfTtcbiAgICBjb25zdCBuZXR3b3JrVHlwZTogc3RyaW5nID0gZmx1eC5nZXRTdGF0ZSgnYXBwLm5ldHdvcmtUeXBlJykgYXMgc3RyaW5nO1xuXG4gICAgaWYobmV0d29ya1R5cGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSk7XG4gICAgfVxuXG4gICAgbGV0IHRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZihhdXRoZW50aWNhdGUpIHtcbiAgICAgIHRva2VuID0gYXdhaXQgcmVzb2x2ZUF1dGhUb2tlbihmbHV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhcGhxbFF1ZXJ5KHVybCwgcXVlcnksIHt0b2tlbjogdG9rZW4gfHwgJyd9KVxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgYXdhaXQgZmx1eC5kaXNwYXRjaCh7dHlwZTogQVBQX0NPTlNUQU5UUy5BUElfTkVUV09SS19TVUNDRVNTfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IChvblN1Y2Nlc3MgPyBvblN1Y2Nlc3MoZGF0YSkgOiBkYXRhKSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc3Qge2Vycm9ycyA9IFtdfSA9IGVycm9yO1xuXG4gICAgICAgIGlmKG9uU3VjY2VzcyAmJiBlcnJvcnMuaW5jbHVkZXMoJ25ldHdvcmtfZXJyb3InKSkge1xuICAgICAgICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSBlbHNlIGlmKGVycm9ycy5pbmNsdWRlcygnaW52YWxpZF9zZXNzaW9uJykgfHwgZXJyb3JzLmluY2x1ZGVzKCdleHBpcmVkX3Nlc3Npb24nKSkge1xuICAgICAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yIGluc3RhbmNlb2YgQXBpRXJyb3IgPyBlcnJvci5lcnJvcnMgOiBbXTtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnJztcblxuICAgIGlmKGVycm9ycy5pbmNsdWRlcygnaW52YWxpZF9zZXNzaW9uJykgfHwgZXJyb3JzLmluY2x1ZGVzKCdleHBpcmVkX3Nlc3Npb24nKSB8fCBtZXNzYWdlID09PSAnaW52YWxpZF9zZXNzaW9uJyB8fCBtZXNzYWdlID09PSAnZXhwaXJlZF9zZXNzaW9uJykge1xuICAgICAgYXdhaXQgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlKGZsdXgpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJlc3RFbmRwb2ludCA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgZW5kcG9pbnQ6IHN0cmluZ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGFyZ2V0RW5kcG9pbnQgPSBTdHJpbmcoZW5kcG9pbnQgfHwgJycpLnRyaW0oKTtcblxuICBpZihpc0VtcHR5KHRhcmdldEVuZHBvaW50KSkge1xuICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfdXJsJ10sICdyZXN0X2VuZHBvaW50X3JlcXVpcmVkJyk7XG4gIH1cblxuICBpZigvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KHRhcmdldEVuZHBvaW50KSkge1xuICAgIHJldHVybiB0YXJnZXRFbmRwb2ludDtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCBjb25maWd1cmVkRW5kcG9pbnQgPSBjb25maWcuYXBwPy5hcGk/LmVuZHBvaW50cz8uW3RhcmdldEVuZHBvaW50XSB8fCAnJztcblxuICBpZihpc0VtcHR5KGNvbmZpZ3VyZWRFbmRwb2ludCkpIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoWydpbnZhbGlkX3VybCddLCBgcmVzdF9lbmRwb2ludF9ub3RfY29uZmlndXJlZDoke3RhcmdldEVuZHBvaW50fWApO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZ3VyZWRFbmRwb2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCByZXN0UmVxdWVzdCA9IGFzeW5jIDxUID0gQXBpUmVzdWx0c1R5cGU+KFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBlbmRwb2ludDogc3RyaW5nLFxuICBtZXRob2Q6IFJlc3RNZXRob2QgPSAnR0VUJyxcbiAgcGFyYW1zPzogdW5rbm93bixcbiAgb3B0aW9uczogUmVzdEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHthdXRoZW50aWNhdGUgPSBmYWxzZSwgb25TdWNjZXNzLCAuLi5odW50ZXJPcHRpb25zfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHVybCA9IHJlc29sdmVSZXN0RW5kcG9pbnQoZmx1eCwgZW5kcG9pbnQpO1xuICBjb25zdCByZXF1ZXN0TWV0aG9kID0gU3RyaW5nKG1ldGhvZCB8fCAnR0VUJykudG9VcHBlckNhc2UoKTtcbiAgY29uc3QgcmV0cnk6IFJldHJ5VHlwZSA9IHtcbiAgICByZXF1ZXN0OiB7bWV0aG9kOiByZXF1ZXN0TWV0aG9kLCBwYXJhbXMsIHVybH0sXG4gICAgcmVzcG9uc2VNZXRob2Q6IG9uU3VjY2VzcyB8fCAoKCkgPT4ge30pXG4gIH07XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBuZXR3b3JrVHlwZTogc3RyaW5nID0gZmx1eC5nZXRTdGF0ZSgnYXBwLm5ldHdvcmtUeXBlJykgYXMgc3RyaW5nO1xuXG4gICAgaWYobmV0d29ya1R5cGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSkgYXMgUHJvbWlzZTxUPjtcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbiA9IGF1dGhlbnRpY2F0ZSA/IGF3YWl0IHJlc29sdmVBdXRoVG9rZW4oZmx1eCkgOiBodW50ZXJPcHRpb25zLnRva2VuO1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBIdW50ZXJPcHRpb25zVHlwZSA9IHtcbiAgICAgIC4uLmh1bnRlck9wdGlvbnMsXG4gICAgICAuLi4odG9rZW4gPyB7dG9rZW59IDoge30pXG4gICAgfTtcbiAgICBsZXQgZGF0YTogVDtcblxuICAgIHN3aXRjaChyZXF1ZXN0TWV0aG9kKSB7XG4gICAgICBjYXNlICdERUxFVEUnOlxuICAgICAgICBkYXRhID0gYXdhaXQgZGVsKHVybCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdHRVQnOlxuICAgICAgICBkYXRhID0gYXdhaXQgZ2V0KHVybCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdQT1NUJzpcbiAgICAgICAgZGF0YSA9IGF3YWl0IHBvc3QodXJsLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BVVCc6XG4gICAgICAgIGRhdGEgPSBhd2FpdCBwdXQodXJsLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRhdGEgPSBhd2FpdCBhamF4KHVybCwgcmVxdWVzdE1ldGhvZCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe3R5cGU6IEFQUF9DT05TVEFOVFMuQVBJX05FVFdPUktfU1VDQ0VTU30pO1xuXG4gICAgcmV0dXJuIG9uU3VjY2VzcyA/IG9uU3VjY2VzcyhkYXRhKSA6IGRhdGE7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBlcnJvciBpbnN0YW5jZW9mIEFwaUVycm9yID8gZXJyb3IuZXJyb3JzIDogW107XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJyc7XG5cbiAgICBpZihlcnJvcnMuaW5jbHVkZXMoJ2ludmFsaWRfc2Vzc2lvbicpIHx8IGVycm9ycy5pbmNsdWRlcygnZXhwaXJlZF9zZXNzaW9uJykgfHwgbWVzc2FnZSA9PT0gJ2ludmFsaWRfc2Vzc2lvbicgfHwgbWVzc2FnZSA9PT0gJ2V4cGlyZWRfc2Vzc2lvbicpIHtcbiAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICAgIHJldHVybiB7fSBhcyBUO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnkgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHZhcmlhYmxlczogQXBpUXVlcnlWYXJpYWJsZXMgPSB7fSxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10gPSBbXSxcbiAgdHlwZSA9ICdxdWVyeSdcbikgPT4ge1xuICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHsuLi52YXJpYWJsZXMgfHwge319O1xuICBjb25zdCB2YXJpYWJsZUtleXMgPSBPYmplY3Qua2V5cyhxdWVyeVZhcmlhYmxlcyk7XG4gIGNvbnN0IHF1ZXJ5TmFtZSA9IG5hbWUucmVwbGFjZSgvIC9nLCAnJyk7XG4gIGxldCBxdWVyeTogc3RyaW5nO1xuXG4gIGlmKHR5cGUgPT09ICdtdXRhdGlvbicpIHtcbiAgICBjb25zdCBtdXRhdGlvbk5hbWUgPSB1cHBlckZpcnN0KGNhbWVsQ2FzZShkYXRhVHlwZSkpICsgdXBwZXJGaXJzdChjYW1lbENhc2UocXVlcnlOYW1lKSk7XG4gICAgcXVlcnkgPSBgJHt0eXBlfSAke211dGF0aW9uTmFtZX0ke1xuICAgICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgICA/IGAoJHt2YXJpYWJsZUtleXMubWFwKChrZXkpID0+IGAkJHtrZXl9OiAke3F1ZXJ5VmFyaWFibGVzW2tleV0udHlwZX1gKS5qb2luKCcsICcpfSlgXG4gICAgICAgIDogJydcbiAgICB9IHtcbiAgICAgICR7ZGF0YVR5cGV9IHtcbiAgICAgICAgJHtjYW1lbENhc2UocXVlcnlOYW1lKX0ke1xuICAgICAgICAgIHZhcmlhYmxlS2V5cy5sZW5ndGhcbiAgICAgICAgICAgID8gYCgke3ZhcmlhYmxlS2V5cy5tYXAoKGtleSkgPT4gYCR7a2V5fTogJCR7a2V5fWApLmpvaW4oJywgJyl9KWBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfVxuICAgICAgICAke3JldHVyblByb3BlcnRpZXM/Lmxlbmd0aCA/IGB7JHtyZXR1cm5Qcm9wZXJ0aWVzLmpvaW4oJywgJyl9fWAgOiAnJ31cbiAgICAgIH1cbiAgICB9YDtcbiAgfSBlbHNlIHtcbiAgICBxdWVyeSA9IGAke3R5cGV9ICR7cXVlcnlOYW1lfSR7XG4gICAgICB2YXJpYWJsZUtleXMubGVuZ3RoXG4gICAgICAgID8gYCgke3ZhcmlhYmxlS2V5cy5tYXAoKGtleSkgPT4gYCQke2tleX06ICR7cXVlcnlWYXJpYWJsZXNba2V5XS50eXBlfWApLmpvaW4oJywgJyl9KWBcbiAgICAgICAgOiAnJ1xuICAgIH0ge1xuICAgICAgJHtkYXRhVHlwZX0ge1xuICAgICAgICAke2NhbWVsQ2FzZShxdWVyeU5hbWUpfSR7XG4gICAgICAgICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBgKCR7dmFyaWFibGVLZXlzLm1hcCgoa2V5KSA9PiBgJHtrZXl9OiAkJHtrZXl9YCkuam9pbignLCAnKX0pYFxuICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9XG4gICAgICAgICR7cmV0dXJuUHJvcGVydGllcz8ubGVuZ3RoID8gYHske3JldHVyblByb3BlcnRpZXMuam9pbignLCAnKX19YCA6ICcnfVxuICAgICAgfVxuICAgIH1gO1xuICB9XG5cbiAgY29uc3QgdXBkYXRlZFZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB2YXJpYWJsZUtleXMucmVkdWNlKChxdWVyeURhdGEsIGtleSkgPT4ge1xuICAgIHF1ZXJ5RGF0YVtrZXldID0gcXVlcnlWYXJpYWJsZXNba2V5XS52YWx1ZTtcbiAgICByZXR1cm4gcXVlcnlEYXRhO1xuICB9LCB7fSk7XG5cbiAgcmV0dXJuIHtxdWVyeSwgdmFyaWFibGVzOiB1cGRhdGVkVmFyaWFibGVzfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNdXRhdGlvbiA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgdmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyA9IHt9LFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdXG4pID0+IGNyZWF0ZVF1ZXJ5KG5hbWUsIGRhdGFUeXBlLCB2YXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMsICdtdXRhdGlvbicpO1xuXG5leHBvcnQgY29uc3QgYXBwUXVlcnkgPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IGFwcFVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cmwgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIGFwcFVybCwgdHJ1ZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgYXBwTXV0YXRpb24gPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlTXV0YXRpb24obmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IGFwcFVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cmwgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIGFwcFVybCwgdHJ1ZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgcHVibGljUXVlcnkgPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IHB1YmxpY1VybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy5wdWJsaWMgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIHB1YmxpY1VybCwgZmFsc2UsIHF1ZXJ5LCBvcHRpb25zKSBhcyBQcm9taXNlPFQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IHB1YmxpY011dGF0aW9uID0gPFQ+KFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBuYW1lOiBzdHJpbmcsXG4gIGRhdGFUeXBlOiBSZWFrdG9yRGJDb2xsZWN0aW9uLFxuICBxdWVyeVZhcmlhYmxlczogQXBpUXVlcnlWYXJpYWJsZXMsXG4gIHJldHVyblByb3BlcnRpZXM6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBBcGlPcHRpb25zID0ge31cbik6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCBxdWVyeSA9IGNyZWF0ZU11dGF0aW9uKG5hbWUsIGRhdGFUeXBlLCBxdWVyeVZhcmlhYmxlcywgcmV0dXJuUHJvcGVydGllcyk7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCBwdWJsaWNVcmw6IHN0cmluZyA9IGNvbmZpZy5hcHA/LmFwaT8ucHVibGljIHx8ICcnO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBwdWJsaWNVcmwsIGZhbHNlLCBxdWVyeSwgb3B0aW9ucykgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBjb25zdCBydW1NdXRhdGlvbiA9IDxUPihcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjcmVhdGVNdXRhdGlvbihuYW1lLCBkYXRhVHlwZSwgcXVlcnlWYXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgcnVtVXJsOiBzdHJpbmcgPSBjb25maWcuYXBwPy5hcGk/LnJ1bSB8fCAnJztcbiAgcmV0dXJuIGdldEdyYXBocWwoZmx1eCwgcnVtVXJsLCBmYWxzZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgdXBsb2FkSW1hZ2UgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIGltYWdlLFxuICBvcHRpb25zOiBIdW50ZXJPcHRpb25zVHlwZSA9IHt9XG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCB1cGxvYWRJbWFnZVVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cGxvYWRJbWFnZSB8fCAnJztcbiAgY29uc3QgdG9rZW4gPSBmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nKTtcblxuICBpZihpc0VtcHR5KHVwbG9hZEltYWdlVXJsKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgQXBpRXJyb3IoWydpbnZhbGlkX3VybCddLCAndXBsb2FkX2VuZHBvaW50X25vdF9jb25maWd1cmVkJykpO1xuICB9XG5cbiAgaWYoaXNFbXB0eSh0b2tlbikpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEFwaUVycm9yKFsnaW52YWxpZF9zZXNzaW9uJ10sICdtaXNzaW5nX2F1dGhfdG9rZW4nKSk7XG4gIH1cblxuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dG9rZW59YCk7XG5cbiAgaWYodHlwZW9mIEZvcm1EYXRhICE9PSAndW5kZWZpbmVkJyAmJiBpbWFnZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgaGVhZGVycy5zZXQoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gZmV0Y2godXBsb2FkSW1hZ2VVcmwsIHtcbiAgICAgIGJvZHk6IGltYWdlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCAnJztcbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZVR5cGUuaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICAgICAgICA/IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICA6IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcblxuICAgICAgaWYoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YSAmJiAnZXJyb3InIGluIGRhdGFcbiAgICAgICAgICA/IFN0cmluZygoZGF0YSBhcyB7ZXJyb3I/OiBzdHJpbmd9KS5lcnJvciB8fCByZXNwb25zZS5zdGF0dXNUZXh0KVxuICAgICAgICAgIDogU3RyaW5nKGRhdGEgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ3VwbG9hZF9lcnJvciddLCBtZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzdWx0c1R5cGU7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcG9zdCh1cGxvYWRJbWFnZVVybCwgaW1hZ2UsIHtoZWFkZXJzLCAuLi5vcHRpb25zfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVmcmVzaFNlc3Npb24gPSBhc3luYyAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIHRva2VuPzogc3RyaW5nLFxuICBleHBpcmVzPzogbnVtYmVyXG4pOiBQcm9taXNlPEZsdXhBY3Rpb24gfCBudWxsPiA9PiB7XG4gIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGlzRW1wdHkodG9rZW4pID8gZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJykgOiB0b2tlbjtcblxuICBpZihpc0VtcHR5KHJlZnJlc2hUb2tlbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyhTdHJpbmcocmVmcmVzaFRva2VuKSk7XG5cbiAgaWYodG9rZW5FeHBpcmVzQXQgPiAwICYmIERhdGUubm93KCkgPj0gdG9rZW5FeHBpcmVzQXQpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignZXhwaXJlZF9zZXNzaW9uJyk7XG4gICAgYXdhaXQgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlKGZsdXgpO1xuICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5HRVRfU0VTU0lPTl9FUlJPUn0pO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgICBjb25zdCByZXF1ZXN0ZWRFeHBpcmVzID0gTWF0aC5tYXgoXG4gICAgICAxLFxuICAgICAgTnVtYmVyKGV4cGlyZXMgfHwgY29uZmlnLmFwcD8uc2Vzc2lvbj8ubWF4TWludXRlcyB8fCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMpXG4gICAgKTtcbiAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgIGV4cGlyZXM6IHtcbiAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgIHZhbHVlOiByZXF1ZXN0ZWRFeHBpcmVzXG4gICAgICB9LFxuICAgICAgdG9rZW46IHtcbiAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICB2YWx1ZTogcmVmcmVzaFRva2VuXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvblN1Y2Nlc3MgPSBhc3luYyAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSk6IFByb21pc2U8Rmx1eEFjdGlvbj4gPT4ge1xuICAgICAgY29uc3QgcmF3U2Vzc2lvbkRhdGEgPSAoZGF0YSBhcyB7dXNlcnM/OiB7cmVmcmVzaFNlc3Npb24/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn19KT8udXNlcnM/LnJlZnJlc2hTZXNzaW9uO1xuICAgICAgY29uc3Qgc2Vzc2lvbkRhdGEgPSByYXdTZXNzaW9uRGF0YSAmJiB0eXBlb2YgcmF3U2Vzc2lvbkRhdGEgPT09ICdvYmplY3QnXG4gICAgICAgID8gcmF3U2Vzc2lvbkRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgOiB7fTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBtZXJnZWRTZXNzaW9uID0gYXdhaXQgc3RvcmVTZXNzaW9uKGZsdXgsIHsuLi5jdXJyZW50U2Vzc2lvbiwgLi4uc2Vzc2lvbkRhdGF9KTtcbiAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtzZXNzaW9uOiBtZXJnZWRTZXNzaW9uLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5VUERBVEVfU0VTU0lPTl9TVUNDRVNTfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCBwdWJsaWNNdXRhdGlvbihmbHV4LCAncmVmcmVzaFNlc3Npb24nLCAndXNlcnMnLCBxdWVyeVZhcmlhYmxlcywgWydleHBpcmVzJywgJ2lzc3VlZCcsICd0b2tlbiddLCB7XG4gICAgICBvblN1Y2Nlc3NcbiAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJyc7XG5cbiAgICBpZihlcnJvck1lc3NhZ2UgPT09ICdpbnZhbGlkX3Nlc3Npb24nIHx8IGVycm9yTWVzc2FnZSA9PT0gJ2V4cGlyZWRfc2Vzc2lvbicpIHtcbiAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICB9XG5cbiAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogVVNFUl9DT05TVEFOVFMuR0VUX1NFU1NJT05fRVJST1J9KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJBcGlFcnJvciIsImFqYXgiLCJkZWwiLCJnZXQiLCJncmFwaHFsUXVlcnkiLCJwb3N0IiwicHV0IiwiY2FtZWxDYXNlIiwiaXNFbXB0eSIsInVwcGVyRmlyc3QiLCJBUFBfQ09OU1RBTlRTIiwiVVNFUl9DT05TVEFOVFMiLCJnZXRDb25maWdGcm9tRmx1eCIsImNsZWFyUGVyc2lzdGVkU2Vzc2lvbiIsImdldFJlZnJlc2hXaW5kb3dNaW51dGVzIiwiaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZSIsInBhcnNlSnd0RXhwaXJ5TXMiLCJzdG9yZVNlc3Npb24iLCJERUZBVUxUX1JFRlJFU0hfV0lORE9XX01JTlVURVMiLCJERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMiLCJnZXRNaW51dGVzVW50aWwiLCJleHBpcmVzQXQiLCJNYXRoIiwicm91bmQiLCJEYXRlIiwibm93IiwiY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlIiwiZmx1eCIsImNsZWFyQXBwRGF0YSIsImRpc3BhdGNoIiwic2Vzc2lvbiIsInR5cGUiLCJTSUdOX09VVF9TVUNDRVNTIiwicmVzb2x2ZUF1dGhUb2tlbiIsInN0YXRlU2Vzc2lvbiIsImdldFN0YXRlIiwiaHlkcmF0ZWRTZXNzaW9uIiwidG9rZW4iLCJleHBpcmVzIiwiYXV0aEV4cGlyZXMiLCJpc3N1ZWQiLCJhdXRoSXNzdWVkIiwiaHlkcmF0ZWRUb2tlbiIsInRva2VuRXhwaXJlc0F0IiwiY29uZmlnIiwibWludXRlc1VudGlsRXhwaXJ5IiwiTnVtYmVyIiwic2Vzc2lvbkxpZmV0aW1lTWludXRlcyIsInJlZnJlc2hXaW5kb3dNaW51dGVzIiwiYXBwIiwicmVmcmVzaEV4cGlyZXNNaW51dGVzIiwibWF4IiwibWF4TWludXRlcyIsInVwZGF0ZWRTZXNzaW9uIiwicmVmcmVzaFNlc3Npb24iLCJuZXdUb2tlbiIsImdldEdyYXBocWwiLCJ1cmwiLCJhdXRoZW50aWNhdGUiLCJxdWVyeSIsIm9wdGlvbnMiLCJvblN1Y2Nlc3MiLCJyZXRyeSIsInJlc3BvbnNlTWV0aG9kIiwibmV0d29ya1R5cGUiLCJBUElfTkVUV09SS19FUlJPUiIsInRoZW4iLCJyZXN1bHRzIiwiQVBJX05FVFdPUktfU1VDQ0VTUyIsImRhdGEiLCJjYXRjaCIsImVycm9yIiwiZXJyb3JzIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVqZWN0IiwicmVzb2x2ZSIsIm1lc3NhZ2UiLCJFcnJvciIsInJlc29sdmVSZXN0RW5kcG9pbnQiLCJlbmRwb2ludCIsInRhcmdldEVuZHBvaW50IiwiU3RyaW5nIiwidHJpbSIsInRlc3QiLCJjb25maWd1cmVkRW5kcG9pbnQiLCJhcGkiLCJlbmRwb2ludHMiLCJyZXN0UmVxdWVzdCIsIm1ldGhvZCIsInBhcmFtcyIsImh1bnRlck9wdGlvbnMiLCJyZXF1ZXN0TWV0aG9kIiwidG9VcHBlckNhc2UiLCJyZXF1ZXN0IiwicmVxdWVzdE9wdGlvbnMiLCJjcmVhdGVRdWVyeSIsIm5hbWUiLCJkYXRhVHlwZSIsInZhcmlhYmxlcyIsInJldHVyblByb3BlcnRpZXMiLCJxdWVyeVZhcmlhYmxlcyIsInZhcmlhYmxlS2V5cyIsIk9iamVjdCIsImtleXMiLCJxdWVyeU5hbWUiLCJyZXBsYWNlIiwibXV0YXRpb25OYW1lIiwibGVuZ3RoIiwibWFwIiwia2V5Iiwiam9pbiIsInVwZGF0ZWRWYXJpYWJsZXMiLCJyZWR1Y2UiLCJxdWVyeURhdGEiLCJ2YWx1ZSIsImNyZWF0ZU11dGF0aW9uIiwiYXBwUXVlcnkiLCJhcHBVcmwiLCJhcHBNdXRhdGlvbiIsInB1YmxpY1F1ZXJ5IiwicHVibGljVXJsIiwicHVibGljIiwicHVibGljTXV0YXRpb24iLCJydW1NdXRhdGlvbiIsInJ1bVVybCIsInJ1bSIsInVwbG9hZEltYWdlIiwiaW1hZ2UiLCJ1cGxvYWRJbWFnZVVybCIsImhlYWRlcnMiLCJIZWFkZXJzIiwic2V0IiwiRm9ybURhdGEiLCJmZXRjaCIsImJvZHkiLCJyZXNwb25zZSIsInJlc3BvbnNlVHlwZSIsImpzb24iLCJ0ZXh0Iiwib2siLCJzdGF0dXNUZXh0IiwicmVmcmVzaFRva2VuIiwiR0VUX1NFU1NJT05fRVJST1IiLCJyZXF1ZXN0ZWRFeHBpcmVzIiwicmF3U2Vzc2lvbkRhdGEiLCJ1c2VycyIsInNlc3Npb25EYXRhIiwiY3VycmVudFNlc3Npb24iLCJtZXJnZWRTZXNzaW9uIiwiVVBEQVRFX1NFU1NJT05fU1VDQ0VTUyIsImVycm9yTWVzc2FnZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxZQUFZLEVBQUVDLElBQUksRUFBRUMsR0FBRyxRQUFPLG9CQUFvQjtBQUNwRixTQUFRQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxRQUFPLGVBQWU7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
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYXBpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBpRXJyb3IsIGFqYXgsIGRlbCwgZ2V0LCBncmFwaHFsUXVlcnksIHBvc3QsIHB1dH0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjYW1lbENhc2UsIGlzRW1wdHksIHVwcGVyRmlyc3R9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7QVBQX0NPTlNUQU5UU30gZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlLmpzJztcbmltcG9ydCB7VVNFUl9DT05TVEFOVFN9IGZyb20gJy4uL3N0b3Jlcy91c2VyU3RvcmUuanMnO1xuaW1wb3J0IHtnZXRDb25maWdGcm9tRmx1eH0gZnJvbSAnLi9jb25maWdVdGlscy5qcyc7XG5pbXBvcnQge2NsZWFyUGVyc2lzdGVkU2Vzc2lvbiwgZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMsIGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UsIHBhcnNlSnd0RXhwaXJ5TXMsIHN0b3JlU2Vzc2lvbn0gZnJvbSAnLi9zZXNzaW9uLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhBY3Rpb24sIEZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7SHVudGVyT3B0aW9uc1R5cGUsIEh1bnRlclF1ZXJ5VHlwZX0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMge1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBQcm9taXNlPEZsdXhBY3Rpb24+O1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdE1ldGhvZCA9ICdERUxFVEUnIHwgJ0dFVCcgfCAnUEFUQ0gnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAoc3RyaW5nICYge30pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RBcGlPcHRpb25zIGV4dGVuZHMgSHVudGVyT3B0aW9uc1R5cGUge1xuICByZWFkb25seSBhdXRoZW50aWNhdGU/OiBib29sZWFuO1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb24gPVxuICAnYXBwcycgfFxuICAnY29ubmVjdGlvbnMnIHxcbiAgJ2NvbnRlbnRzJyB8XG4gICdjb252ZXJzYXRpb25zJyB8XG4gICdjcm0nIHxcbiAgJ2V2ZW50cycgfFxuICAnZmlsZXMnIHxcbiAgJ2dyb3VwcycgfFxuICAnaW1hZ2VzJyB8XG4gICdsb2NhdGlvbnMnIHxcbiAgJ21lc3NhZ2VzJyB8XG4gICdub3RpZmljYXRpb25zJyB8XG4gICdwYXltZW50cycgfFxuICAncGVybWlzc2lvbnMnIHxcbiAgJ3Bvc3RzJyB8XG4gICdwZXJzb25hcycgfFxuICAncmVhY3Rpb25zJyB8XG4gICdydW0nIHxcbiAgJ3N1YnNjcmlwdGlvbnMnIHxcbiAgJ3RhZ3MnIHxcbiAgJ3RyYW5zbGF0aW9ucycgfFxuICAndXNlcnMnIHxcbiAgJ3ZpZGVvcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUXVlcnlWYXJpYWJsZVR5cGUge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVF1ZXJ5VmFyaWFibGVzIHtcbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogQXBpUXVlcnlWYXJpYWJsZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzdWx0c1R5cGUge1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5VHlwZSB7XG4gIHJlYWRvbmx5IHF1ZXJ5PzogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW107XG4gIHJlYWRvbmx5IHJlcXVlc3Q/OiB7XG4gICAgcmVhZG9ubHkgbWV0aG9kOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcGFyYW1zPzogdW5rbm93bjtcbiAgICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgfTtcbiAgcmVhZG9ubHkgcmVzcG9uc2VNZXRob2Q6IChyZXN1bHRzOiBBcGlSZXN1bHRzVHlwZSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uVHlwZSB7XG4gIHJlYWRvbmx5IGV4cGlyZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGlzc3VlZD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfUkVGUkVTSF9XSU5ET1dfTUlOVVRFUyA9IDU7XG5jb25zdCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMgPSAxNTtcblxuY29uc3QgZ2V0TWludXRlc1VudGlsID0gKGV4cGlyZXNBdDogbnVtYmVyKTogbnVtYmVyID0+XG4gIE1hdGgucm91bmQoKGV4cGlyZXNBdCAtIERhdGUubm93KCkpIC8gKDEwMDAgKiA2MCkpO1xuXG5jb25zdCBjbGVhckludmFsaWRTZXNzaW9uU3RhdGUgPSBhc3luYyAoZmx1eDogRmx1eEZyYW1ld29yayk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBhd2FpdCBjbGVhclBlcnNpc3RlZFNlc3Npb24oZmx1eCk7XG4gIGF3YWl0IGZsdXguY2xlYXJBcHBEYXRhKCk7XG4gIGF3YWl0IGZsdXguZGlzcGF0Y2goe3Nlc3Npb246IHt9LCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5TSUdOX09VVF9TVUNDRVNTfSk7XG59O1xuXG5jb25zdCByZXNvbHZlQXV0aFRva2VuID0gYXN5bmMgKGZsdXg6IEZsdXhGcmFtZXdvcmspOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBjb25zdCBzdGF0ZVNlc3Npb246IFNlc3Npb25UeXBlID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicpIHx8IHt9KSBhcyBTZXNzaW9uVHlwZTtcbiAgY29uc3QgaHlkcmF0ZWRTZXNzaW9uOiBTZXNzaW9uVHlwZSA9IHN0YXRlU2Vzc2lvbi50b2tlbiA/IHN0YXRlU2Vzc2lvbiA6IGF3YWl0IGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UoZmx1eCk7XG4gIGNvbnN0IHtcbiAgICBleHBpcmVzOiBhdXRoRXhwaXJlcyA9IDAsXG4gICAgaXNzdWVkOiBhdXRoSXNzdWVkID0gMCxcbiAgICB0b2tlbjogaHlkcmF0ZWRUb2tlblxuICB9OiBTZXNzaW9uVHlwZSA9IGh5ZHJhdGVkU2Vzc2lvbiB8fCB7fTtcbiAgbGV0IHRva2VuID0gaHlkcmF0ZWRUb2tlbiB8fCBzdGF0ZVNlc3Npb24udG9rZW47XG5cbiAgaWYoIXRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKFsnaW52YWxpZF9zZXNzaW9uJ10sICdpbnZhbGlkX3Nlc3Npb24nKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyh0b2tlbik7XG5cbiAgaWYodG9rZW5FeHBpcmVzQXQgPiAwICYmIERhdGUubm93KCkgPj0gdG9rZW5FeHBpcmVzQXQpIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoWydleHBpcmVkX3Nlc3Npb24nXSwgJ2V4cGlyZWRfc2Vzc2lvbicpO1xuICB9XG5cbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IG1pbnV0ZXNVbnRpbEV4cGlyeSA9IGdldE1pbnV0ZXNVbnRpbChOdW1iZXIoYXV0aEV4cGlyZXMgfHwgMCkpO1xuICBjb25zdCBzZXNzaW9uTGlmZXRpbWVNaW51dGVzID0gTWF0aC5yb3VuZCgoYXV0aEV4cGlyZXMgLSBhdXRoSXNzdWVkKSAvICgxMDAwICogNjApKTtcbiAgY29uc3QgcmVmcmVzaFdpbmRvd01pbnV0ZXMgPSBnZXRSZWZyZXNoV2luZG93TWludXRlcyhcbiAgICBzZXNzaW9uTGlmZXRpbWVNaW51dGVzIHx8IERFRkFVTFRfU0VTU0lPTl9NQVhfTUlOVVRFUyxcbiAgICBjb25maWcuYXBwPy5zZXNzaW9uIHx8IHt9XG4gICk7XG4gIGNvbnN0IHJlZnJlc2hFeHBpcmVzTWludXRlcyA9IE1hdGgubWF4KFxuICAgIDEsXG4gICAgTnVtYmVyKGNvbmZpZy5hcHA/LnNlc3Npb24/Lm1heE1pbnV0ZXMgfHwgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyB8fCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMpXG4gICk7XG5cbiAgaWYobWludXRlc1VudGlsRXhwaXJ5ID4gMCAmJiBtaW51dGVzVW50aWxFeHBpcnkgPD0gcmVmcmVzaFdpbmRvd01pbnV0ZXMpIHtcbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uOiB1cGRhdGVkU2Vzc2lvbiA9IHt9XG4gICAgfTogQXBpUmVzdWx0c1R5cGUgPSAoYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4sIHJlZnJlc2hFeHBpcmVzTWludXRlcykpIHx8IHt9O1xuICAgIGNvbnN0IHt0b2tlbjogbmV3VG9rZW59OiBTZXNzaW9uVHlwZSA9ICh1cGRhdGVkU2Vzc2lvbiB8fCB7fSk7XG5cbiAgICBpZighbmV3VG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfc2Vzc2lvbiddLCAnaW52YWxpZF9zZXNzaW9uJyk7XG4gICAgfVxuXG4gICAgdG9rZW4gPSBuZXdUb2tlbjtcbiAgfVxuXG4gIHJldHVybiB0b2tlbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHcmFwaHFsID0gYXN5bmMgKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICB1cmw6IHN0cmluZyxcbiAgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICBxdWVyeTogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnNcbik6IFByb21pc2U8QXBpUmVzdWx0c1R5cGU+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7b25TdWNjZXNzfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmV0cnk6IFJldHJ5VHlwZSA9IHtxdWVyeSwgcmVzcG9uc2VNZXRob2Q6IG9uU3VjY2VzcyB8fCAoKCkgPT4ge30pfTtcbiAgICBjb25zdCBuZXR3b3JrVHlwZTogc3RyaW5nID0gZmx1eC5nZXRTdGF0ZSgnYXBwLm5ldHdvcmtUeXBlJykgYXMgc3RyaW5nO1xuXG4gICAgaWYobmV0d29ya1R5cGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSk7XG4gICAgfVxuXG4gICAgbGV0IHRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZihhdXRoZW50aWNhdGUpIHtcbiAgICAgIHRva2VuID0gYXdhaXQgcmVzb2x2ZUF1dGhUb2tlbihmbHV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhcGhxbFF1ZXJ5KHVybCwgcXVlcnksIHt0b2tlbjogdG9rZW4gfHwgJyd9KVxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgYXdhaXQgZmx1eC5kaXNwYXRjaCh7dHlwZTogQVBQX0NPTlNUQU5UUy5BUElfTkVUV09SS19TVUNDRVNTfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IChvblN1Y2Nlc3MgPyBvblN1Y2Nlc3MoZGF0YSkgOiBkYXRhKSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc3Qge2Vycm9ycyA9IFtdfSA9IGVycm9yO1xuXG4gICAgICAgIGlmKG9uU3VjY2VzcyAmJiBlcnJvcnMuaW5jbHVkZXMoJ25ldHdvcmtfZXJyb3InKSkge1xuICAgICAgICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSBlbHNlIGlmKGVycm9ycy5pbmNsdWRlcygnaW52YWxpZF9zZXNzaW9uJykgfHwgZXJyb3JzLmluY2x1ZGVzKCdleHBpcmVkX3Nlc3Npb24nKSkge1xuICAgICAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yIGluc3RhbmNlb2YgQXBpRXJyb3IgPyBlcnJvci5lcnJvcnMgOiBbXTtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnJztcblxuICAgIGlmKGVycm9ycy5pbmNsdWRlcygnaW52YWxpZF9zZXNzaW9uJykgfHwgZXJyb3JzLmluY2x1ZGVzKCdleHBpcmVkX3Nlc3Npb24nKSB8fCBtZXNzYWdlID09PSAnaW52YWxpZF9zZXNzaW9uJyB8fCBtZXNzYWdlID09PSAnZXhwaXJlZF9zZXNzaW9uJykge1xuICAgICAgYXdhaXQgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlKGZsdXgpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJlc3RFbmRwb2ludCA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgZW5kcG9pbnQ6IHN0cmluZ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGFyZ2V0RW5kcG9pbnQgPSBTdHJpbmcoZW5kcG9pbnQgfHwgJycpLnRyaW0oKTtcblxuICBpZihpc0VtcHR5KHRhcmdldEVuZHBvaW50KSkge1xuICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfdXJsJ10sICdyZXN0X2VuZHBvaW50X3JlcXVpcmVkJyk7XG4gIH1cblxuICBpZigvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KHRhcmdldEVuZHBvaW50KSkge1xuICAgIHJldHVybiB0YXJnZXRFbmRwb2ludDtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCBjb25maWd1cmVkRW5kcG9pbnQgPSBjb25maWcuYXBwPy5hcGk/LmVuZHBvaW50cz8uW3RhcmdldEVuZHBvaW50XSB8fCAnJztcblxuICBpZihpc0VtcHR5KGNvbmZpZ3VyZWRFbmRwb2ludCkpIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoWydpbnZhbGlkX3VybCddLCBgcmVzdF9lbmRwb2ludF9ub3RfY29uZmlndXJlZDoke3RhcmdldEVuZHBvaW50fWApO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZ3VyZWRFbmRwb2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCByZXN0UmVxdWVzdCA9IGFzeW5jIDxUID0gQXBpUmVzdWx0c1R5cGU+KFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBlbmRwb2ludDogc3RyaW5nLFxuICBtZXRob2Q6IFJlc3RNZXRob2QgPSAnR0VUJyxcbiAgcGFyYW1zPzogdW5rbm93bixcbiAgb3B0aW9uczogUmVzdEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHthdXRoZW50aWNhdGUgPSBmYWxzZSwgb25TdWNjZXNzLCAuLi5odW50ZXJPcHRpb25zfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHVybCA9IHJlc29sdmVSZXN0RW5kcG9pbnQoZmx1eCwgZW5kcG9pbnQpO1xuICBjb25zdCByZXF1ZXN0TWV0aG9kID0gU3RyaW5nKG1ldGhvZCB8fCAnR0VUJykudG9VcHBlckNhc2UoKTtcbiAgY29uc3QgcmV0cnk6IFJldHJ5VHlwZSA9IHtcbiAgICByZXF1ZXN0OiB7bWV0aG9kOiByZXF1ZXN0TWV0aG9kLCBwYXJhbXMsIHVybH0sXG4gICAgcmVzcG9uc2VNZXRob2Q6IG9uU3VjY2VzcyB8fCAoKCkgPT4ge30pXG4gIH07XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBuZXR3b3JrVHlwZTogc3RyaW5nID0gZmx1eC5nZXRTdGF0ZSgnYXBwLm5ldHdvcmtUeXBlJykgYXMgc3RyaW5nO1xuXG4gICAgaWYobmV0d29ya1R5cGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSkgYXMgUHJvbWlzZTxUPjtcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbiA9IGF1dGhlbnRpY2F0ZSA/IGF3YWl0IHJlc29sdmVBdXRoVG9rZW4oZmx1eCkgOiBodW50ZXJPcHRpb25zLnRva2VuO1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBIdW50ZXJPcHRpb25zVHlwZSA9IHtcbiAgICAgIC4uLmh1bnRlck9wdGlvbnMsXG4gICAgICAuLi4odG9rZW4gPyB7dG9rZW59IDoge30pXG4gICAgfTtcbiAgICBsZXQgZGF0YTogVDtcblxuICAgIHN3aXRjaChyZXF1ZXN0TWV0aG9kKSB7XG4gICAgICBjYXNlICdERUxFVEUnOlxuICAgICAgICBkYXRhID0gYXdhaXQgZGVsKHVybCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdHRVQnOlxuICAgICAgICBkYXRhID0gYXdhaXQgZ2V0KHVybCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdQT1NUJzpcbiAgICAgICAgZGF0YSA9IGF3YWl0IHBvc3QodXJsLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BVVCc6XG4gICAgICAgIGRhdGEgPSBhd2FpdCBwdXQodXJsLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRhdGEgPSBhd2FpdCBhamF4KHVybCwgcmVxdWVzdE1ldGhvZCwgcGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe3R5cGU6IEFQUF9DT05TVEFOVFMuQVBJX05FVFdPUktfU1VDQ0VTU30pO1xuXG4gICAgcmV0dXJuIG9uU3VjY2VzcyA/IG9uU3VjY2VzcyhkYXRhKSA6IGRhdGE7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBlcnJvciBpbnN0YW5jZW9mIEFwaUVycm9yID8gZXJyb3IuZXJyb3JzIDogW107XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJyc7XG5cbiAgICBpZihlcnJvcnMuaW5jbHVkZXMoJ2ludmFsaWRfc2Vzc2lvbicpIHx8IGVycm9ycy5pbmNsdWRlcygnZXhwaXJlZF9zZXNzaW9uJykgfHwgbWVzc2FnZSA9PT0gJ2ludmFsaWRfc2Vzc2lvbicgfHwgbWVzc2FnZSA9PT0gJ2V4cGlyZWRfc2Vzc2lvbicpIHtcbiAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICAgIHJldHVybiB7fSBhcyBUO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnkgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHZhcmlhYmxlczogQXBpUXVlcnlWYXJpYWJsZXMgPSB7fSxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10gPSBbXSxcbiAgdHlwZSA9ICdxdWVyeSdcbikgPT4ge1xuICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHsuLi52YXJpYWJsZXMgfHwge319O1xuICBjb25zdCB2YXJpYWJsZUtleXMgPSBPYmplY3Qua2V5cyhxdWVyeVZhcmlhYmxlcyk7XG4gIGNvbnN0IHF1ZXJ5TmFtZSA9IG5hbWUucmVwbGFjZSgvIC9nLCAnJyk7XG4gIGxldCBxdWVyeTogc3RyaW5nO1xuXG4gIGlmKHR5cGUgPT09ICdtdXRhdGlvbicpIHtcbiAgICBjb25zdCBtdXRhdGlvbk5hbWUgPSB1cHBlckZpcnN0KGNhbWVsQ2FzZShkYXRhVHlwZSkpICsgdXBwZXJGaXJzdChjYW1lbENhc2UocXVlcnlOYW1lKSk7XG4gICAgcXVlcnkgPSBgJHt0eXBlfSAke211dGF0aW9uTmFtZX0ke1xuICAgICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgICA/IGAoJHt2YXJpYWJsZUtleXMubWFwKChrZXkpID0+IGAkJHtrZXl9OiAke3F1ZXJ5VmFyaWFibGVzW2tleV0udHlwZX1gKS5qb2luKCcsICcpfSlgXG4gICAgICAgIDogJydcbiAgICB9IHtcbiAgICAgICR7ZGF0YVR5cGV9IHtcbiAgICAgICAgJHtjYW1lbENhc2UocXVlcnlOYW1lKX0ke1xuICAgICAgICAgIHZhcmlhYmxlS2V5cy5sZW5ndGhcbiAgICAgICAgICAgID8gYCgke3ZhcmlhYmxlS2V5cy5tYXAoKGtleSkgPT4gYCR7a2V5fTogJCR7a2V5fWApLmpvaW4oJywgJyl9KWBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfVxuICAgICAgICAke3JldHVyblByb3BlcnRpZXM/Lmxlbmd0aCA/IGB7JHtyZXR1cm5Qcm9wZXJ0aWVzLmpvaW4oJywgJyl9fWAgOiAnJ31cbiAgICAgIH1cbiAgICB9YDtcbiAgfSBlbHNlIHtcbiAgICBxdWVyeSA9IGAke3R5cGV9ICR7cXVlcnlOYW1lfSR7XG4gICAgICB2YXJpYWJsZUtleXMubGVuZ3RoXG4gICAgICAgID8gYCgke3ZhcmlhYmxlS2V5cy5tYXAoKGtleSkgPT4gYCQke2tleX06ICR7cXVlcnlWYXJpYWJsZXNba2V5XS50eXBlfWApLmpvaW4oJywgJyl9KWBcbiAgICAgICAgOiAnJ1xuICAgIH0ge1xuICAgICAgJHtkYXRhVHlwZX0ge1xuICAgICAgICAke2NhbWVsQ2FzZShxdWVyeU5hbWUpfSR7XG4gICAgICAgICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBgKCR7dmFyaWFibGVLZXlzLm1hcCgoa2V5KSA9PiBgJHtrZXl9OiAkJHtrZXl9YCkuam9pbignLCAnKX0pYFxuICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9XG4gICAgICAgICR7cmV0dXJuUHJvcGVydGllcz8ubGVuZ3RoID8gYHske3JldHVyblByb3BlcnRpZXMuam9pbignLCAnKX19YCA6ICcnfVxuICAgICAgfVxuICAgIH1gO1xuICB9XG5cbiAgY29uc3QgdXBkYXRlZFZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB2YXJpYWJsZUtleXMucmVkdWNlKChxdWVyeURhdGEsIGtleSkgPT4ge1xuICAgIHF1ZXJ5RGF0YVtrZXldID0gcXVlcnlWYXJpYWJsZXNba2V5XS52YWx1ZTtcbiAgICByZXR1cm4gcXVlcnlEYXRhO1xuICB9LCB7fSk7XG5cbiAgcmV0dXJuIHtxdWVyeSwgdmFyaWFibGVzOiB1cGRhdGVkVmFyaWFibGVzfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNdXRhdGlvbiA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgdmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyA9IHt9LFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdXG4pID0+IGNyZWF0ZVF1ZXJ5KG5hbWUsIGRhdGFUeXBlLCB2YXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMsICdtdXRhdGlvbicpO1xuXG5leHBvcnQgY29uc3QgYXBwUXVlcnkgPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IGFwcFVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cmwgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIGFwcFVybCwgdHJ1ZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgYXBwTXV0YXRpb24gPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlTXV0YXRpb24obmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IGFwcFVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cmwgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIGFwcFVybCwgdHJ1ZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgcHVibGljUXVlcnkgPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IHB1YmxpY1VybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy5wdWJsaWMgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIHB1YmxpY1VybCwgZmFsc2UsIHF1ZXJ5LCBvcHRpb25zKSBhcyBQcm9taXNlPFQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IHB1YmxpY011dGF0aW9uID0gPFQ+KFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBuYW1lOiBzdHJpbmcsXG4gIGRhdGFUeXBlOiBSZWFrdG9yRGJDb2xsZWN0aW9uLFxuICBxdWVyeVZhcmlhYmxlczogQXBpUXVlcnlWYXJpYWJsZXMsXG4gIHJldHVyblByb3BlcnRpZXM6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBBcGlPcHRpb25zID0ge31cbik6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCBxdWVyeSA9IGNyZWF0ZU11dGF0aW9uKG5hbWUsIGRhdGFUeXBlLCBxdWVyeVZhcmlhYmxlcywgcmV0dXJuUHJvcGVydGllcyk7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCBwdWJsaWNVcmw6IHN0cmluZyA9IGNvbmZpZy5hcHA/LmFwaT8ucHVibGljIHx8ICcnO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBwdWJsaWNVcmwsIGZhbHNlLCBxdWVyeSwgb3B0aW9ucykgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBjb25zdCBydW1NdXRhdGlvbiA9IDxUPihcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjcmVhdGVNdXRhdGlvbihuYW1lLCBkYXRhVHlwZSwgcXVlcnlWYXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgcnVtVXJsOiBzdHJpbmcgPSBjb25maWcuYXBwPy5hcGk/LnJ1bSB8fCBjb25maWcuYXBwPy5hcGk/LnB1YmxpYyB8fCAnJztcbiAgcmV0dXJuIGdldEdyYXBocWwoZmx1eCwgcnVtVXJsLCBmYWxzZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgdXBsb2FkSW1hZ2UgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIGltYWdlLFxuICBvcHRpb25zOiBIdW50ZXJPcHRpb25zVHlwZSA9IHt9XG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICBjb25zdCB1cGxvYWRJbWFnZVVybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy51cGxvYWRJbWFnZSB8fCAnJztcbiAgY29uc3QgdG9rZW4gPSBmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nKTtcblxuICBpZihpc0VtcHR5KHVwbG9hZEltYWdlVXJsKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgQXBpRXJyb3IoWydpbnZhbGlkX3VybCddLCAndXBsb2FkX2VuZHBvaW50X25vdF9jb25maWd1cmVkJykpO1xuICB9XG5cbiAgaWYoaXNFbXB0eSh0b2tlbikpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEFwaUVycm9yKFsnaW52YWxpZF9zZXNzaW9uJ10sICdtaXNzaW5nX2F1dGhfdG9rZW4nKSk7XG4gIH1cblxuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dG9rZW59YCk7XG5cbiAgaWYodHlwZW9mIEZvcm1EYXRhICE9PSAndW5kZWZpbmVkJyAmJiBpbWFnZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgaGVhZGVycy5zZXQoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gZmV0Y2godXBsb2FkSW1hZ2VVcmwsIHtcbiAgICAgIGJvZHk6IGltYWdlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCAnJztcbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZVR5cGUuaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICAgICAgICA/IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICA6IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcblxuICAgICAgaWYoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YSAmJiAnZXJyb3InIGluIGRhdGFcbiAgICAgICAgICA/IFN0cmluZygoZGF0YSBhcyB7ZXJyb3I/OiBzdHJpbmd9KS5lcnJvciB8fCByZXNwb25zZS5zdGF0dXNUZXh0KVxuICAgICAgICAgIDogU3RyaW5nKGRhdGEgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ3VwbG9hZF9lcnJvciddLCBtZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzdWx0c1R5cGU7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcG9zdCh1cGxvYWRJbWFnZVVybCwgaW1hZ2UsIHtoZWFkZXJzLCAuLi5vcHRpb25zfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVmcmVzaFNlc3Npb24gPSBhc3luYyAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIHRva2VuPzogc3RyaW5nLFxuICBleHBpcmVzPzogbnVtYmVyXG4pOiBQcm9taXNlPEZsdXhBY3Rpb24gfCBudWxsPiA9PiB7XG4gIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGlzRW1wdHkodG9rZW4pID8gZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJykgOiB0b2tlbjtcblxuICBpZihpc0VtcHR5KHJlZnJlc2hUb2tlbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyhTdHJpbmcocmVmcmVzaFRva2VuKSk7XG5cbiAgaWYodG9rZW5FeHBpcmVzQXQgPiAwICYmIERhdGUubm93KCkgPj0gdG9rZW5FeHBpcmVzQXQpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignZXhwaXJlZF9zZXNzaW9uJyk7XG4gICAgYXdhaXQgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlKGZsdXgpO1xuICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5HRVRfU0VTU0lPTl9FUlJPUn0pO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgICBjb25zdCByZXF1ZXN0ZWRFeHBpcmVzID0gTWF0aC5tYXgoXG4gICAgICAxLFxuICAgICAgTnVtYmVyKGV4cGlyZXMgfHwgY29uZmlnLmFwcD8uc2Vzc2lvbj8ubWF4TWludXRlcyB8fCBERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMpXG4gICAgKTtcbiAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgIGV4cGlyZXM6IHtcbiAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgIHZhbHVlOiByZXF1ZXN0ZWRFeHBpcmVzXG4gICAgICB9LFxuICAgICAgdG9rZW46IHtcbiAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICB2YWx1ZTogcmVmcmVzaFRva2VuXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvblN1Y2Nlc3MgPSBhc3luYyAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSk6IFByb21pc2U8Rmx1eEFjdGlvbj4gPT4ge1xuICAgICAgY29uc3QgcmF3U2Vzc2lvbkRhdGEgPSAoZGF0YSBhcyB7dXNlcnM/OiB7cmVmcmVzaFNlc3Npb24/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn19KT8udXNlcnM/LnJlZnJlc2hTZXNzaW9uO1xuICAgICAgY29uc3Qgc2Vzc2lvbkRhdGEgPSByYXdTZXNzaW9uRGF0YSAmJiB0eXBlb2YgcmF3U2Vzc2lvbkRhdGEgPT09ICdvYmplY3QnXG4gICAgICAgID8gcmF3U2Vzc2lvbkRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgOiB7fTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBtZXJnZWRTZXNzaW9uID0gYXdhaXQgc3RvcmVTZXNzaW9uKGZsdXgsIHsuLi5jdXJyZW50U2Vzc2lvbiwgLi4uc2Vzc2lvbkRhdGF9KTtcbiAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtzZXNzaW9uOiBtZXJnZWRTZXNzaW9uLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5VUERBVEVfU0VTU0lPTl9TVUNDRVNTfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCBwdWJsaWNNdXRhdGlvbihmbHV4LCAncmVmcmVzaFNlc3Npb24nLCAndXNlcnMnLCBxdWVyeVZhcmlhYmxlcywgWydleHBpcmVzJywgJ2lzc3VlZCcsICd0b2tlbiddLCB7XG4gICAgICBvblN1Y2Nlc3NcbiAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJyc7XG5cbiAgICBpZihlcnJvck1lc3NhZ2UgPT09ICdpbnZhbGlkX3Nlc3Npb24nIHx8IGVycm9yTWVzc2FnZSA9PT0gJ2V4cGlyZWRfc2Vzc2lvbicpIHtcbiAgICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICB9XG5cbiAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogVVNFUl9DT05TVEFOVFMuR0VUX1NFU1NJT05fRVJST1J9KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJBcGlFcnJvciIsImFqYXgiLCJkZWwiLCJnZXQiLCJncmFwaHFsUXVlcnkiLCJwb3N0IiwicHV0IiwiY2FtZWxDYXNlIiwiaXNFbXB0eSIsInVwcGVyRmlyc3QiLCJBUFBfQ09OU1RBTlRTIiwiVVNFUl9DT05TVEFOVFMiLCJnZXRDb25maWdGcm9tRmx1eCIsImNsZWFyUGVyc2lzdGVkU2Vzc2lvbiIsImdldFJlZnJlc2hXaW5kb3dNaW51dGVzIiwiaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZSIsInBhcnNlSnd0RXhwaXJ5TXMiLCJzdG9yZVNlc3Npb24iLCJERUZBVUxUX1JFRlJFU0hfV0lORE9XX01JTlVURVMiLCJERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMiLCJnZXRNaW51dGVzVW50aWwiLCJleHBpcmVzQXQiLCJNYXRoIiwicm91bmQiLCJEYXRlIiwibm93IiwiY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlIiwiZmx1eCIsImNsZWFyQXBwRGF0YSIsImRpc3BhdGNoIiwic2Vzc2lvbiIsInR5cGUiLCJTSUdOX09VVF9TVUNDRVNTIiwicmVzb2x2ZUF1dGhUb2tlbiIsInN0YXRlU2Vzc2lvbiIsImdldFN0YXRlIiwiaHlkcmF0ZWRTZXNzaW9uIiwidG9rZW4iLCJleHBpcmVzIiwiYXV0aEV4cGlyZXMiLCJpc3N1ZWQiLCJhdXRoSXNzdWVkIiwiaHlkcmF0ZWRUb2tlbiIsInRva2VuRXhwaXJlc0F0IiwiY29uZmlnIiwibWludXRlc1VudGlsRXhwaXJ5IiwiTnVtYmVyIiwic2Vzc2lvbkxpZmV0aW1lTWludXRlcyIsInJlZnJlc2hXaW5kb3dNaW51dGVzIiwiYXBwIiwicmVmcmVzaEV4cGlyZXNNaW51dGVzIiwibWF4IiwibWF4TWludXRlcyIsInVwZGF0ZWRTZXNzaW9uIiwicmVmcmVzaFNlc3Npb24iLCJuZXdUb2tlbiIsImdldEdyYXBocWwiLCJ1cmwiLCJhdXRoZW50aWNhdGUiLCJxdWVyeSIsIm9wdGlvbnMiLCJvblN1Y2Nlc3MiLCJyZXRyeSIsInJlc3BvbnNlTWV0aG9kIiwibmV0d29ya1R5cGUiLCJBUElfTkVUV09SS19FUlJPUiIsInRoZW4iLCJyZXN1bHRzIiwiQVBJX05FVFdPUktfU1VDQ0VTUyIsImRhdGEiLCJjYXRjaCIsImVycm9yIiwiZXJyb3JzIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVqZWN0IiwicmVzb2x2ZSIsIm1lc3NhZ2UiLCJFcnJvciIsInJlc29sdmVSZXN0RW5kcG9pbnQiLCJlbmRwb2ludCIsInRhcmdldEVuZHBvaW50IiwiU3RyaW5nIiwidHJpbSIsInRlc3QiLCJjb25maWd1cmVkRW5kcG9pbnQiLCJhcGkiLCJlbmRwb2ludHMiLCJyZXN0UmVxdWVzdCIsIm1ldGhvZCIsInBhcmFtcyIsImh1bnRlck9wdGlvbnMiLCJyZXF1ZXN0TWV0aG9kIiwidG9VcHBlckNhc2UiLCJyZXF1ZXN0IiwicmVxdWVzdE9wdGlvbnMiLCJjcmVhdGVRdWVyeSIsIm5hbWUiLCJkYXRhVHlwZSIsInZhcmlhYmxlcyIsInJldHVyblByb3BlcnRpZXMiLCJxdWVyeVZhcmlhYmxlcyIsInZhcmlhYmxlS2V5cyIsIk9iamVjdCIsImtleXMiLCJxdWVyeU5hbWUiLCJyZXBsYWNlIiwibXV0YXRpb25OYW1lIiwibGVuZ3RoIiwibWFwIiwia2V5Iiwiam9pbiIsInVwZGF0ZWRWYXJpYWJsZXMiLCJyZWR1Y2UiLCJxdWVyeURhdGEiLCJ2YWx1ZSIsImNyZWF0ZU11dGF0aW9uIiwiYXBwUXVlcnkiLCJhcHBVcmwiLCJhcHBNdXRhdGlvbiIsInB1YmxpY1F1ZXJ5IiwicHVibGljVXJsIiwicHVibGljIiwicHVibGljTXV0YXRpb24iLCJydW1NdXRhdGlvbiIsInJ1bVVybCIsInJ1bSIsInVwbG9hZEltYWdlIiwiaW1hZ2UiLCJ1cGxvYWRJbWFnZVVybCIsImhlYWRlcnMiLCJIZWFkZXJzIiwic2V0IiwiRm9ybURhdGEiLCJmZXRjaCIsImJvZHkiLCJyZXNwb25zZSIsInJlc3BvbnNlVHlwZSIsImpzb24iLCJ0ZXh0Iiwib2siLCJzdGF0dXNUZXh0IiwicmVmcmVzaFRva2VuIiwiR0VUX1NFU1NJT05fRVJST1IiLCJyZXF1ZXN0ZWRFeHBpcmVzIiwicmF3U2Vzc2lvbkRhdGEiLCJ1c2VycyIsInNlc3Npb25EYXRhIiwiY3VycmVudFNlc3Npb24iLCJtZXJnZWRTZXNzaW9uIiwiVVBEQVRFX1NFU1NJT05fU1VDQ0VTUyIsImVycm9yTWVzc2FnZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxZQUFZLEVBQUVDLElBQUksRUFBRUMsR0FBRyxRQUFPLG9CQUFvQjtBQUNwRixTQUFRQyxTQUFTLEVBQUVD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
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/utils/app.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,GACxB,OAAO,MAAM,EACb,cAAc,MAAM,EACpB,mBAAkB,MAAU,KAC3B,UAMF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,KAAG,OACuB,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/utils/app.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,UACjB,MAAM,gBACC,MAAM,qBACF,MAAM,KACvB,UAMF,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,MAAM,cAAc,MAAM,KAAG,OACuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseActionFactory.d.ts","sourceRoot":"","sources":["../../src/utils/baseActionFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IAClF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,kBAAkB,EAC5D,MAAM,aAAa,EACnB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EACtD,UAAU,iBAAiB,CAAC,CAAC,CAAC;2BAWA,CAAC,sBACf,MAAM,YACV,MAAM,kBACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC5B,MAAM,EAAE,eACF,MAAM,aACR,MAAM,cACL,GAAG,MACL,QAAQ,OAAO,KAAG,OAAO,CAAC,CAAC,CAAC;wBAgCb,CAAC,mBACf,MAAM,YACP,MAAM,kBACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC5B,MAAM,EAAE,eACF,MAAM,aACR,MAAM,WACR,GAAG,WACC,OAAO,CAAC,CAAC,CAAC;;;;;;CAiC1B,CAAC"}
1
+ {"version":3,"file":"baseActionFactory.d.ts","sourceRoot":"","sources":["../../src/utils/baseActionFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IAClF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,kBAAkB,QACtD,aAAa,oBACD,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,YAC5C,iBAAiB,CAAC,CAAC,CAAC;2BAWA,CAAC,sBACf,MAAM,YACV,MAAM,kBACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC5B,MAAM,EAAE,eACF,MAAM,aACR,MAAM,cACL,GAAG,cACG,OAAO,KAAG,OAAO,CAAC,CAAC,CAAC;wBAgCb,CAAC,mBACf,MAAM,YACP,MAAM,kBACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAC5B,MAAM,EAAE,eACF,MAAM,aACR,MAAM,WACR,GAAG,WACC,OAAO,CAAC,CAAC,CAAC;;;;;;CAiC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../src/utils/configUtils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa,KAAG,kCASvD,CAAC"}
1
+ {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../src/utils/configUtils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,SAAU,aAAa,KAAG,kCASvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/utils/dateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,QAAQ,WAQ9D,CAAC"}
1
+ {"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/utils/dateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,MAAM,GAAG,QAAQ,WAQ9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAgFA,eAAO,MAAM,uBAAuB,GAClC,MAAM,IAAI,EACV,SAAS,MAAM,EACf,WAAU,MAAmB,KAC5B,OAAO,CAAC,IAAI,CA0Cd,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,IAAI,EACV,SAAS,MAAM,EACf,WAAU,MAAmB,KAC5B,OAAO,CAAC,MAAM,CA2Eb,CAAC"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAgFA,eAAO,MAAM,uBAAuB,SAC5B,IAAI,WACD,MAAM,aACL,MAAM,KACf,OAAO,CAAC,IAAI,CA0Cd,CAAC;AAEF,eAAO,MAAM,mBAAmB,SACxB,IAAI,WACD,MAAM,aACL,MAAM,KACf,OAAO,CAAC,MAAM,CA2Eb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAK3E,eAAO,MAAM,kBAAkB,GAC7B,cAAc,mBAAmB,2DAmBlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,cAAc,kBAAkB,2DAmBjC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,cAAc,kBAAkB,GAAG,mBAAmB,SAoCvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,cAAc,mBAAmB,SAelC,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,KAAK,MAAM,EACX,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,MAAM,MAAM,EACZ,KAAK,MAAM,KACV,MAUF,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAK3E,eAAO,MAAM,kBAAkB,iBACf,mBAAmB,2DAmBlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,iBACrB,kBAAkB,2DAmBjC,CAAC;AAEF,eAAO,MAAM,QAAQ,iBACL,kBAAkB,GAAG,mBAAmB,SAoCvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAChB,mBAAmB,SAelC,CAAC;AAEF,eAAO,MAAM,IAAI,QACV,MAAM,WACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QACtB,MAAM,OACP,MAAM,KACV,MAUF,CAAC"}
@@ -5,6 +5,6 @@
5
5
  import { FluxFramework } from '@nlabs/arkhamjs';
6
6
  import { parseLocation } from '../adapters/locationAdapter/locationAdapter.js';
7
7
  import type { LocationType } from '../adapters/locationAdapter/locationAdapter.js';
8
- export declare const autoCompleteLocation: (this: unknown, flux: FluxFramework, address: string, latitude?: number | undefined, longitude?: number | undefined, locationProps?: string[] | undefined, CustomClass?: ((location: LocationType) => LocationType) | undefined) => Promise<LocationType[]>;
8
+ export declare const autoCompleteLocation: (this: unknown, flux: FluxFramework, address: string, latitude?: number | undefined, longitude?: number | undefined, locationProps?: string[] | undefined, CustomClass?: typeof parseLocation | undefined) => Promise<LocationType[]>;
9
9
  export declare const searchLocations: (flux: FluxFramework, address: string, latitude?: number, longitude?: number, locationProps?: string[], CustomClass?: typeof parseLocation) => Promise<LocationType[]>;
10
10
  //# sourceMappingURL=location.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../src/utils/location.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAKnF,eAAO,MAAM,oBAAoB,6PA4C1B,CAAC;AAER,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,EACnB,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,YAAY,MAAM,EAClB,gBAAe,MAAM,EAAO,EAC5B,cAAa,OAAO,aAA6B,KAChD,OAAO,CAAC,YAAY,EAAE,CAqCxB,CAAC"}
1
+ {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../src/utils/location.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAKnF,eAAO,MAAM,oBAAoB,uOA4C1B,CAAC;AAER,eAAO,MAAM,eAAe,SACpB,aAAa,WACV,MAAM,aACJ,MAAM,cACL,MAAM,kBACH,MAAM,EAAE,gBACV,OAAO,aAAa,KAChC,OAAO,CAAC,YAAY,EAAE,CAqCxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestCache.d.ts","sourceRoot":"","sources":["../../src/utils/requestCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAiCD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,MAAM,aAAa,EACnB,OAAO,MAAM,EACb,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,UAAS,oBAAyB,KACjC,CAAC,GAAG,SAsBN,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EACtC,MAAM,aAAa,EACnB,OAAO,MAAM,EACb,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAK,EACrC,MAAM,CAAC,EACP,UAAS,oBAAyB,KACjC,OAAO,CAAC,CAAC,CAeX,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,MAAM,aAAa,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAMzF,CAAC"}
1
+ {"version":3,"file":"requestCache.d.ts","sourceRoot":"","sources":["../../src/utils/requestCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAiCD,eAAO,MAAM,gBAAgB,GAAI,CAAC,QAC1B,aAAa,SACZ,MAAM,YACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACvB,oBAAoB,KAC5B,CAAC,GAAG,SAsBN,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,QAChC,aAAa,SACZ,MAAM,WACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAC1B,CAAC,YACE,oBAAoB,KAC5B,OAAO,CAAC,CAAC,CAeX,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAgB,aAAa,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAMzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AA4D7D,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MACF,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MACF,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAAI,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiB9F,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KAAG,OAatE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,wBAAwB,MAAM,EAC9B,gBAAe,oBAAyB,KACvC,MASF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,MAAM,aAAa,EACnB,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KACpC,OAAO,CAAC,WAAW,CAYrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,aAAa,KAAG,OAAO,CAAC,WAAW,CACsB,CAAC;AAExG,eAAO,MAAM,qBAAqB,GAAU,MAAM,aAAa,KAAG,OAAO,CAAC,IAAI,CAE7E,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,MAAM,aAAa,KAAG,OAAO,CAAC,WAAW,CAUxF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,aAAa,KAAG,OAIhD,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AA4D7D,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MACF,CAAC;AAEhD,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MACF,CAAC;AAEhD,eAAO,MAAM,gBAAgB,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAiB9F,CAAC;AAEF,eAAO,MAAM,cAAc,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAQ,OAatE,CAAC;AAEF,eAAO,MAAM,uBAAuB,2BACV,MAAM,kBACf,oBAAoB,KAClC,MASF,CAAC;AAEF,eAAO,MAAM,YAAY,SACjB,aAAa,YACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC,WAAW,CAYrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,aAAa,KAAG,OAAO,CAAC,WAAW,CACsB,CAAC;AAExG,eAAO,MAAM,qBAAqB,SAAgB,aAAa,KAAG,OAAO,CAAC,IAAI,CAE7E,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAgB,aAAa,KAAG,OAAO,CAAC,WAAW,CAUxF,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,aAAa,KAAG,OAIhD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useConversationTyping.d.ts","sourceRoot":"","sources":["../../src/utils/useConversationTyping.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAAI,yBAGnC,4BAAiC;sCAyEmB,MAAM,YAAW,yBAAyB;oDAiBJ,yBAAyB;gCA3CrE,MAAM,SAAS,MAAM,YAAW,yBAAyB;CA8DzG,CAAC"}
1
+ {"version":3,"file":"useConversationTyping.d.ts","sourceRoot":"","sources":["../../src/utils/useConversationTyping.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAKF,eAAO,MAAM,qBAAqB,4BAG/B,4BAA4B;sCAyEwB,MAAM,YAAW,yBAAyB;oDAiBJ,yBAAyB;gCA3CrE,MAAM,SAAS,MAAM,YAAW,yBAAyB;CA8DzG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMetropolis.d.ts","sourceRoot":"","sources":["../../src/utils/useMetropolis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,kCAAkC,EAAC,MAAM,oBAAoB,CAAC;AAI3E,OAAO,KAAK,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAkIzE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,EACjE,cAAc,CAAC,wBA0BhB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,QAAO,kCAWtC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,QAAO,aAMpC,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,SAAS,WAGrB,CAAC;AAEF,eAAO,MAAM,aAAa,WAGzB,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAG9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAGlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAGhC,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAG9B,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,aAAa,WAGzB,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAGjC,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAG/B,CAAC"}
1
+ {"version":3,"file":"useMetropolis.d.ts","sourceRoot":"","sources":["../../src/utils/useMetropolis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,kCAAkC,EAAC,MAAM,oBAAoB,CAAC;AAI3E,OAAO,KAAK,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAsIzE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,gBACnD,CAAC,wBA0BhB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,QAAO,kCAWtC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,QAAO,aAMpC,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,SAAS,WAGrB,CAAC;AAEF,eAAO,MAAM,aAAa,WAGzB,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAG9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAGlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAGhC,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAG7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAG9B,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,aAAa,WAGzB,CAAC;AAEF,eAAO,MAAM,eAAe,WAG3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAGjC,CAAC;AAEF,eAAO,MAAM,cAAc,WAG1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAG/B,CAAC"}
@@ -5,14 +5,18 @@ import { MetropolisContext } from './MetropolisProvider.js';
5
5
  /**
6
6
  * Builds action options from adapters in a type-safe way.
7
7
  */ const buildActionOptions = (adapters, config)=>{
8
+ const awsRumOptions = config?.app?.rum || config?.app?.name ? {
9
+ ...config?.app?.rum,
10
+ appId: config?.app?.rum?.appId || config?.app?.name
11
+ } : undefined;
8
12
  if (!adapters) {
9
- return config?.app?.rum ? {
10
- awsRum: config.app.rum
13
+ return awsRumOptions ? {
14
+ awsRum: awsRumOptions
11
15
  } : {};
12
16
  }
13
17
  const options = {};
14
- if (config?.app?.rum) {
15
- options.awsRum = config.app.rum;
18
+ if (awsRumOptions) {
19
+ options.awsRum = awsRumOptions;
16
20
  }
17
21
  if (adapters.Content) {
18
22
  options.content = {
@@ -341,4 +345,4 @@ export const useWebsocketActions = ()=>{
341
345
  return websocketActions;
342
346
  };
343
347
 
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvdXNlTWV0cm9wb2xpcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUZsdXh9IGZyb20gJ0BubGFicy9hcmtoYW1qcy11dGlscy1yZWFjdCc7XG5pbXBvcnQge3VzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0Vudmlyb25tZW50Q29uZmlndXJhdGlvbn0gZnJvbSAnLi4vY29uZmlnL2luZGV4LmpzJztcbmltcG9ydCB7Y3JlYXRlQWN0aW9ucywgY3JlYXRlQWxsQWN0aW9uc30gZnJvbSAnLi4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQge01ldHJvcG9saXNDb250ZXh0fSBmcm9tICcuL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uT3B0aW9ucywgQWN0aW9uVHlwZX0gZnJvbSAnLi4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5cbi8qKlxuICogQnVpbGRzIGFjdGlvbiBvcHRpb25zIGZyb20gYWRhcHRlcnMgaW4gYSB0eXBlLXNhZmUgd2F5LlxuICovXG5jb25zdCBidWlsZEFjdGlvbk9wdGlvbnMgPSAoXG4gIGFkYXB0ZXJzPzogTWV0cm9wb2xpc0FkYXB0ZXJzLFxuICBjb25maWc/OiBNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9uXG4pOiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zPj4gPT4ge1xuICBpZiAoIWFkYXB0ZXJzKSB7XG4gICAgcmV0dXJuIGNvbmZpZz8uYXBwPy5ydW0gPyB7YXdzUnVtOiBjb25maWcuYXBwLnJ1bX0gOiB7fTtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnM+PiA9IHt9O1xuXG4gIGlmKGNvbmZpZz8uYXBwPy5ydW0pIHtcbiAgICBvcHRpb25zLmF3c1J1bSA9IGNvbmZpZy5hcHAucnVtO1xuICB9XG5cbiAgaWYgKGFkYXB0ZXJzLkNvbnRlbnQpIHtcbiAgICBvcHRpb25zLmNvbnRlbnQgPSB7Y29udGVudEFkYXB0ZXI6IGFkYXB0ZXJzLkNvbnRlbnR9O1xuICB9XG4gIGlmIChhZGFwdGVycy5FdmVudCkge1xuICAgIG9wdGlvbnMuZXZlbnQgPSB7ZXZlbnRBZGFwdGVyOiBhZGFwdGVycy5FdmVudH07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLkltYWdlKSB7XG4gICAgb3B0aW9ucy5pbWFnZSA9IHtpbWFnZUFkYXB0ZXI6IGFkYXB0ZXJzLkltYWdlfTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuTG9jYXRpb24pIHtcbiAgICBvcHRpb25zLmxvY2F0aW9uID0ge2xvY2F0aW9uQWRhcHRlcjogYWRhcHRlcnMuTG9jYXRpb259O1xuICB9XG4gIGlmIChhZGFwdGVycy5NZXNzYWdlKSB7XG4gICAgb3B0aW9ucy5tZXNzYWdlID0ge21lc3NhZ2VBZGFwdGVyOiBhZGFwdGVycy5NZXNzYWdlfTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuUGVybWlzc2lvbikge1xuICAgIG9wdGlvbnMucGVybWlzc2lvbiA9IHtwZXJtaXNzaW9uQWRhcHRlcjogYWRhcHRlcnMuUGVybWlzc2lvbn07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLlBvc3QpIHtcbiAgICBvcHRpb25zLnBvc3QgPSB7cG9zdEFkYXB0ZXI6IGFkYXB0ZXJzLlBvc3R9O1xuICB9XG4gIGlmIChhZGFwdGVycy5QZXJzb25hKSB7XG4gICAgb3B0aW9ucy5wZXJzb25hID0ge3BlcnNvbmFBZGFwdGVyOiBhZGFwdGVycy5QZXJzb25hfTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuUmVhY3Rpb24pIHtcbiAgICBvcHRpb25zLnJlYWN0aW9uID0ge3JlYWN0aW9uQWRhcHRlcjogYWRhcHRlcnMuUmVhY3Rpb259O1xuICB9XG4gIGlmIChhZGFwdGVycy5UYWcpIHtcbiAgICBvcHRpb25zLnRhZyA9IHt0YWdBZGFwdGVyOiBhZGFwdGVycy5UYWd9O1xuICB9XG4gIGlmIChhZGFwdGVycy5UcmFuc2xhdGlvbikge1xuICAgIG9wdGlvbnMudHJhbnNsYXRpb24gPSB7dHJhbnNsYXRpb25BZGFwdGVyOiBhZGFwdGVycy5UcmFuc2xhdGlvbn07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLlVzZXIpIHtcbiAgICBvcHRpb25zLnVzZXIgPSB7dXNlckFkYXB0ZXI6IGFkYXB0ZXJzLlVzZXJ9O1xuICB9XG4gIGlmIChhZGFwdGVycy5WaWRlbykge1xuICAgIG9wdGlvbnMudmlkZW8gPSB7dmlkZW9BZGFwdGVyOiBhZGFwdGVycy5WaWRlb307XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn07XG5cbi8qKlxuICogTWFwcyBhY3Rpb24gdHlwZSBrZXlzIHRvIHRoZWlyIGFjdGlvbiBuYW1lcyBmb3IgcmV0dXJuIG9iamVjdC5cbiAqL1xuY29uc3QgbWFwQWN0aW9uc1RvUmV0dXJuS2V5cyA9IChhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XG4gIGNvbnN0IG1hcHBlZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGlmKGFjdGlvbnMuYXdzUnVtKSB7XG4gICAgbWFwcGVkLmF3c1J1bSA9IGFjdGlvbnMuYXdzUnVtO1xuICB9XG5cbiAgaWYgKGFjdGlvbnMuY29udGVudCkge1xuICAgIG1hcHBlZC5jb250ZW50QWN0aW9ucyA9IGFjdGlvbnMuY29udGVudDtcbiAgfVxuICBpZiAoYWN0aW9ucy5jcm0pIHtcbiAgICBtYXBwZWQuY3JtQWN0aW9ucyA9IGFjdGlvbnMuY3JtO1xuICB9XG4gIGlmIChhY3Rpb25zLmV2ZW50KSB7XG4gICAgbWFwcGVkLmV2ZW50QWN0aW9ucyA9IGFjdGlvbnMuZXZlbnQ7XG4gIH1cbiAgaWYgKGFjdGlvbnMuZ3JvdXApIHtcbiAgICBtYXBwZWQuZ3JvdXBBY3Rpb25zID0gYWN0aW9ucy5ncm91cDtcbiAgfVxuICBpZiAoYWN0aW9ucy5pbWFnZSkge1xuICAgIG1hcHBlZC5pbWFnZUFjdGlvbnMgPSBhY3Rpb25zLmltYWdlO1xuICB9XG4gIGlmIChhY3Rpb25zLmxvY2F0aW9uKSB7XG4gICAgbWFwcGVkLmxvY2F0aW9uQWN0aW9ucyA9IGFjdGlvbnMubG9jYXRpb247XG4gIH1cbiAgaWYgKGFjdGlvbnMubWVzc2FnZSkge1xuICAgIG1hcHBlZC5tZXNzYWdlQWN0aW9ucyA9IGFjdGlvbnMubWVzc2FnZTtcbiAgfVxuICBpZiAoYWN0aW9ucy5wZXJtaXNzaW9uKSB7XG4gICAgbWFwcGVkLnBlcm1pc3Npb25BY3Rpb25zID0gYWN0aW9ucy5wZXJtaXNzaW9uO1xuICB9XG4gIGlmIChhY3Rpb25zLnBvc3QpIHtcbiAgICBtYXBwZWQucG9zdEFjdGlvbnMgPSBhY3Rpb25zLnBvc3Q7XG4gIH1cbiAgaWYgKGFjdGlvbnMucGVyc29uYSkge1xuICAgIG1hcHBlZC5wZXJzb25hQWN0aW9ucyA9IGFjdGlvbnMucGVyc29uYTtcbiAgfVxuICBpZiAoYWN0aW9ucy5yZWFjdGlvbikge1xuICAgIG1hcHBlZC5yZWFjdGlvbkFjdGlvbnMgPSBhY3Rpb25zLnJlYWN0aW9uO1xuICB9XG4gIGlmIChhY3Rpb25zLnJlc3QpIHtcbiAgICBtYXBwZWQucmVzdEFjdGlvbnMgPSBhY3Rpb25zLnJlc3Q7XG4gIH1cbiAgaWYgKGFjdGlvbnMuc3Vic2NyaXB0aW9uKSB7XG4gICAgbWFwcGVkLnN1YnNjcmlwdGlvbkFjdGlvbnMgPSBhY3Rpb25zLnN1YnNjcmlwdGlvbjtcbiAgfVxuICBpZiAoYWN0aW9ucy50YWcpIHtcbiAgICBtYXBwZWQudGFnQWN0aW9ucyA9IGFjdGlvbnMudGFnO1xuICB9XG4gIGlmIChhY3Rpb25zLnRyYW5zbGF0aW9uKSB7XG4gICAgbWFwcGVkLnRyYW5zbGF0aW9uQWN0aW9ucyA9IGFjdGlvbnMudHJhbnNsYXRpb247XG4gIH1cbiAgaWYgKGFjdGlvbnMudXNlcikge1xuICAgIG1hcHBlZC51c2VyQWN0aW9ucyA9IGFjdGlvbnMudXNlcjtcbiAgfVxuICBpZiAoYWN0aW9ucy52aWRlbykge1xuICAgIG1hcHBlZC52aWRlb0FjdGlvbnMgPSBhY3Rpb25zLnZpZGVvO1xuICB9XG4gIGlmIChhY3Rpb25zLndlYnNvY2tldCkge1xuICAgIG1hcHBlZC53ZWJzb2NrZXRBY3Rpb25zID0gYWN0aW9ucy53ZWJzb2NrZXQ7XG4gIH1cblxuICByZXR1cm4gbWFwcGVkO1xufTtcblxuLyoqXG4gKiBNYWluIGhvb2sgdG8gYWNjZXNzIE1ldHJvcG9saXMgYWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gYWN0aW9uVHlwZXMgLSBPcHRpb25hbCBhcnJheSBvZiBhY3Rpb24gdHlwZXMgdG8gY3JlYXRlLiBJZiBub3QgcHJvdmlkZWQsIGNyZWF0ZXMgYWxsIGFjdGlvbnMuXG4gKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGFjdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBHZXQgYWxsIGFjdGlvbnMgKGRlZmF1bHQgYmVoYXZpb3IpXG4gKiBjb25zdCB7dXNlckFjdGlvbnMsIHBvc3RBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoKTtcbiAqXG4gKiAvLyBHZXQgb25seSBzcGVjaWZpYyBhY3Rpb25zIChtb3JlIHBlcmZvcm1hbnQpXG4gKiBjb25zdCB7dXNlckFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3VzZXInXSk7XG4gKiBjb25zdCB7dXNlckFjdGlvbnMsIHBvc3RBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd1c2VyJywgJ3Bvc3QnXSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1ldHJvcG9saXMgPSA8VCBleHRlbmRzIEFjdGlvblR5cGVbXSA9IEFjdGlvblR5cGVbXT4oXG4gIGFjdGlvblR5cGVzPzogVFxuKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KE1ldHJvcG9saXNDb250ZXh0KTtcbiAgLy8gVXNlIGZsdXggZnJvbSBjb250ZXh0IGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byB1c2VGbHV4KCkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgY29uc3QgY29udGV4dEZsdXggPSBjb250ZXh0Py5mbHV4O1xuICBjb25zdCBob29rRmx1eCA9IHVzZUZsdXgoKTtcbiAgY29uc3QgZmx1eCA9IGNvbnRleHRGbHV4IHx8IGhvb2tGbHV4O1xuXG4gIGNvbnN0IHthZGFwdGVycywgY29uZmlnfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFjdGlvbk9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGJ1aWxkQWN0aW9uT3B0aW9ucyhhZGFwdGVycywgY29uZmlnKSwgW2FkYXB0ZXJzLCBjb25maWddKTtcblxuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgICBpZiAoYWN0aW9uVHlwZXMgJiYgYWN0aW9uVHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQ3JlYXRlIG9ubHkgcmVxdWVzdGVkIGFjdGlvbnNcbiAgICAgIGFjdGlvbnMgPSBjcmVhdGVBY3Rpb25zKGFjdGlvblR5cGVzLCBmbHV4LCBhY3Rpb25PcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIGFsbCBhY3Rpb25zIChkZWZhdWx0IGJlaGF2aW9yIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuICAgICAgY29uc3QgYWxsQWN0aW9ucyA9IGNyZWF0ZUFsbEFjdGlvbnMoZmx1eCwgYWN0aW9uT3B0aW9ucyk7XG4gICAgICBhY3Rpb25zID0gYWxsQWN0aW9ucztcbiAgICB9XG5cbiAgICAvLyBNYXAgdG8gcmV0dXJuIGtleXMgKGNvbnRlbnRBY3Rpb25zLCB1c2VyQWN0aW9ucywgZXRjLilcbiAgICByZXR1cm4gbWFwQWN0aW9uc1RvUmV0dXJuS2V5cyhhY3Rpb25zKTtcbiAgfSwgW2ZsdXgsIGFjdGlvbk9wdGlvbnMsIGFjdGlvblR5cGVzPy5qb2luKCcsJyldKTtcbn07XG5cbi8qKlxuICogSG9vayB0byBhY2Nlc3MgdGhlIE1ldHJvcG9saXMgY29uZmlndXJhdGlvbiBmcm9tIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGVudmlyb25tZW50LXNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdXNlZCBvdXRzaWRlIG9mIE1ldHJvcG9saXMgY29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgY29uZmlnID0gdXNlTWV0cm9wb2xpc0NvbmZpZygpO1xuICogY29uc3QgYXBpVXJsID0gY29uZmlnLmFwcD8uYXBpPy51cmw7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1ldHJvcG9saXNDb25maWcgPSAoKTogTWV0cm9wb2xpc0Vudmlyb25tZW50Q29uZmlndXJhdGlvbiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KE1ldHJvcG9saXNDb250ZXh0KTtcblxuICBpZiAoIWNvbnRleHQ/LmNvbmZpZykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICd1c2VNZXRyb3BvbGlzQ29uZmlnIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBNZXRyb3BvbGlzIGNvbXBvbmVudC4gJyArXG4gICAgICAnTWFrZSBzdXJlIHlvdXIgY29tcG9uZW50IGlzIHdyYXBwZWQgd2l0aCA8TWV0cm9wb2xpcz4gcHJvdmlkZXIuJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29udGV4dC5jb25maWc7XG59O1xuXG4vKipcbiAqIEhvb2sgdG8gYWNjZXNzIHRoZSBGbHV4IGZyYW1ld29yayBpbnN0YW5jZSBmcm9tIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMgVGhlIEZsdXggZnJhbWV3b3JrIGluc3RhbmNlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHVzZWQgb3V0c2lkZSBvZiBNZXRyb3BvbGlzIGNvbXBvbmVudCBhbmQgbm8gRmx1eCBhdmFpbGFibGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBmbHV4ID0gdXNlTWV0cm9wb2xpc0ZsdXgoKTtcbiAqIGNvbnN0IHN0YXRlID0gZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1ldHJvcG9saXNGbHV4ID0gKCk6IEZsdXhGcmFtZXdvcmsgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNZXRyb3BvbGlzQ29udGV4dCk7XG4gIGNvbnN0IGhvb2tGbHV4ID0gdXNlRmx1eCgpO1xuXG4gIC8vIFVzZSBmbHV4IGZyb20gY29udGV4dCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdXNlRmx1eCgpIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIHJldHVybiBjb250ZXh0Py5mbHV4IHx8IGhvb2tGbHV4O1xufTtcblxuLyoqXG4gKiBTcGVjaWFsaXplZCBob29rcyBmb3IgaW5kaXZpZHVhbCBhY3Rpb24gdHlwZXMuXG4gKiBUaGVzZSBob29rcyBvbmx5IGNyZWF0ZSB0aGUgc3BlY2lmaWMgYWN0aW9uIHR5cGUsIGltcHJvdmluZyBwZXJmb3JtYW5jZS5cbiAqL1xuXG5leHBvcnQgY29uc3QgdXNlQ29udGVudEFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtjb250ZW50QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnY29udGVudCddKTtcbiAgcmV0dXJuIGNvbnRlbnRBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUF3c1J1bSA9ICgpID0+IHtcbiAgY29uc3Qge2F3c1J1bX0gPSB1c2VNZXRyb3BvbGlzKFsnYXdzUnVtJ10pO1xuICByZXR1cm4gYXdzUnVtO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUNybUFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtjcm1BY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydjcm0nXSk7XG4gIHJldHVybiBjcm1BY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUV2ZW50QWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge2V2ZW50QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnZXZlbnQnXSk7XG4gIHJldHVybiBldmVudEFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlR3JvdXBBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7Z3JvdXBBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydncm91cCddKTtcbiAgcmV0dXJuIGdyb3VwQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VJbWFnZUFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtpbWFnZUFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ2ltYWdlJ10pO1xuICByZXR1cm4gaW1hZ2VBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUxvY2F0aW9uQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge2xvY2F0aW9uQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnbG9jYXRpb24nXSk7XG4gIHJldHVybiBsb2NhdGlvbkFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlTWVzc2FnZUFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHttZXNzYWdlQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnbWVzc2FnZSddKTtcbiAgcmV0dXJuIG1lc3NhZ2VBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVN1YnNjcmlwdGlvbkFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtzdWJzY3JpcHRpb25BY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydzdWJzY3JpcHRpb24nXSk7XG4gIHJldHVybiBzdWJzY3JpcHRpb25BY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVBlcm1pc3Npb25BY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7cGVybWlzc2lvbkFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3Blcm1pc3Npb24nXSk7XG4gIHJldHVybiBwZXJtaXNzaW9uQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VQb3N0QWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3Bvc3RBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydwb3N0J10pO1xuICByZXR1cm4gcG9zdEFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlUGVyc29uYUFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtwZXJzb25hQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsncGVyc29uYSddKTtcbiAgcmV0dXJuIHBlcnNvbmFBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVJlYWN0aW9uQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3JlYWN0aW9uQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsncmVhY3Rpb24nXSk7XG4gIHJldHVybiByZWFjdGlvbkFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlUmVzdEFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtyZXN0QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsncmVzdCddKTtcbiAgcmV0dXJuIHJlc3RBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRhZ0FjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHt0YWdBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd0YWcnXSk7XG4gIHJldHVybiB0YWdBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVZpZGVvQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3ZpZGVvQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsndmlkZW8nXSk7XG4gIHJldHVybiB2aWRlb0FjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVHJhbnNsYXRpb25BY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7dHJhbnNsYXRpb25BY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd0cmFuc2xhdGlvbiddKTtcbiAgcmV0dXJuIHRyYW5zbGF0aW9uQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VVc2VyQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3VzZXJBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd1c2VyJ10pO1xuICByZXR1cm4gdXNlckFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlV2Vic29ja2V0QWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3dlYnNvY2tldEFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3dlYnNvY2tldCddKTtcbiAgcmV0dXJuIHdlYnNvY2tldEFjdGlvbnM7XG59O1xuIl0sIm5hbWVzIjpbInVzZUZsdXgiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsImNyZWF0ZUFjdGlvbnMiLCJjcmVhdGVBbGxBY3Rpb25zIiwiTWV0cm9wb2xpc0NvbnRleHQiLCJidWlsZEFjdGlvbk9wdGlvbnMiLCJhZGFwdGVycyIsImNvbmZpZyIsImFwcCIsInJ1bSIsImF3c1J1bSIsIm9wdGlvbnMiLCJDb250ZW50IiwiY29udGVudCIsImNvbnRlbnRBZGFwdGVyIiwiRXZlbnQiLCJldmVudCIsImV2ZW50QWRhcHRlciIsIkltYWdlIiwiaW1hZ2UiLCJpbWFnZUFkYXB0ZXIiLCJMb2NhdGlvbiIsImxvY2F0aW9uIiwibG9jYXRpb25BZGFwdGVyIiwiTWVzc2FnZSIsIm1lc3NhZ2UiLCJtZXNzYWdlQWRhcHRlciIsIlBlcm1pc3Npb24iLCJwZXJtaXNzaW9uIiwicGVybWlzc2lvbkFkYXB0ZXIiLCJQb3N0IiwicG9zdCIsInBvc3RBZGFwdGVyIiwiUGVyc29uYSIsInBlcnNvbmEiLCJwZXJzb25hQWRhcHRlciIsIlJlYWN0aW9uIiwicmVhY3Rpb24iLCJyZWFjdGlvbkFkYXB0ZXIiLCJUYWciLCJ0YWciLCJ0YWdBZGFwdGVyIiwiVHJhbnNsYXRpb24iLCJ0cmFuc2xhdGlvbiIsInRyYW5zbGF0aW9uQWRhcHRlciIsIlVzZXIiLCJ1c2VyIiwidXNlckFkYXB0ZXIiLCJWaWRlbyIsInZpZGVvIiwidmlkZW9BZGFwdGVyIiwibWFwQWN0aW9uc1RvUmV0dXJuS2V5cyIsImFjdGlvbnMiLCJtYXBwZWQiLCJjb250ZW50QWN0aW9ucyIsImNybSIsImNybUFjdGlvbnMiLCJldmVudEFjdGlvbnMiLCJncm91cCIsImdyb3VwQWN0aW9ucyIsImltYWdlQWN0aW9ucyIsImxvY2F0aW9uQWN0aW9ucyIsIm1lc3NhZ2VBY3Rpb25zIiwicGVybWlzc2lvbkFjdGlvbnMiLCJwb3N0QWN0aW9ucyIsInBlcnNvbmFBY3Rpb25zIiwicmVhY3Rpb25BY3Rpb25zIiwicmVzdCIsInJlc3RBY3Rpb25zIiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uQWN0aW9ucyIsInRhZ0FjdGlvbnMiLCJ0cmFuc2xhdGlvbkFjdGlvbnMiLCJ1c2VyQWN0aW9ucyIsInZpZGVvQWN0aW9ucyIsIndlYnNvY2tldCIsIndlYnNvY2tldEFjdGlvbnMiLCJ1c2VNZXRyb3BvbGlzIiwiYWN0aW9uVHlwZXMiLCJjb250ZXh0IiwiY29udGV4dEZsdXgiLCJmbHV4IiwiaG9va0ZsdXgiLCJhY3Rpb25PcHRpb25zIiwibGVuZ3RoIiwiYWxsQWN0aW9ucyIsImpvaW4iLCJ1c2VNZXRyb3BvbGlzQ29uZmlnIiwiRXJyb3IiLCJ1c2VNZXRyb3BvbGlzRmx1eCIsInVzZUNvbnRlbnRBY3Rpb25zIiwidXNlQXdzUnVtIiwidXNlQ3JtQWN0aW9ucyIsInVzZUV2ZW50QWN0aW9ucyIsInVzZUdyb3VwQWN0aW9ucyIsInVzZUltYWdlQWN0aW9ucyIsInVzZUxvY2F0aW9uQWN0aW9ucyIsInVzZU1lc3NhZ2VBY3Rpb25zIiwidXNlU3Vic2NyaXB0aW9uQWN0aW9ucyIsInVzZVBlcm1pc3Npb25BY3Rpb25zIiwidXNlUG9zdEFjdGlvbnMiLCJ1c2VQZXJzb25hQWN0aW9ucyIsInVzZVJlYWN0aW9uQWN0aW9ucyIsInVzZVJlc3RBY3Rpb25zIiwidXNlVGFnQWN0aW9ucyIsInVzZVZpZGVvQWN0aW9ucyIsInVzZVRyYW5zbGF0aW9uQWN0aW9ucyIsInVzZVVzZXJBY3Rpb25zIiwidXNlV2Vic29ja2V0QWN0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsT0FBTyxRQUFPLDhCQUE4QjtBQUNwRCxTQUFRQyxVQUFVLEVBQUVDLE9BQU8sUUFBTyxRQUFRO0FBSTFDLFNBQVFDLGFBQWEsRUFBRUMsZ0JBQWdCLFFBQU8sNEJBQTRCO0FBRTFFLFNBQVFDLGlCQUFpQixRQUFPLDBCQUEwQjtBQUcxRDs7Q0FFQyxHQUNELE1BQU1DLHFCQUFxQixDQUN6QkMsVUFDQUM7SUFFQSxJQUFJLENBQUNELFVBQVU7UUFDYixPQUFPQyxRQUFRQyxLQUFLQyxNQUFNO1lBQUNDLFFBQVFILE9BQU9DLEdBQUcsQ0FBQ0MsR0FBRztRQUFBLElBQUksQ0FBQztJQUN4RDtJQUVBLE1BQU1FLFVBQXNELENBQUM7SUFFN0QsSUFBR0osUUFBUUMsS0FBS0MsS0FBSztRQUNuQkUsUUFBUUQsTUFBTSxHQUFHSCxPQUFPQyxHQUFHLENBQUNDLEdBQUc7SUFDakM7SUFFQSxJQUFJSCxTQUFTTSxPQUFPLEVBQUU7UUFDcEJELFFBQVFFLE9BQU8sR0FBRztZQUFDQyxnQkFBZ0JSLFNBQVNNLE9BQU87UUFBQTtJQUNyRDtJQUNBLElBQUlOLFNBQVNTLEtBQUssRUFBRTtRQUNsQkosUUFBUUssS0FBSyxHQUFHO1lBQUNDLGNBQWNYLFNBQVNTLEtBQUs7UUFBQTtJQUMvQztJQUNBLElBQUlULFNBQVNZLEtBQUssRUFBRTtRQUNsQlAsUUFBUVEsS0FBSyxHQUFHO1lBQUNDLGNBQWNkLFNBQVNZLEtBQUs7UUFBQTtJQUMvQztJQUNBLElBQUlaLFNBQVNlLFFBQVEsRUFBRTtRQUNyQlYsUUFBUVcsUUFBUSxHQUFHO1lBQUNDLGlCQUFpQmpCLFNBQVNlLFFBQVE7UUFBQTtJQUN4RDtJQUNBLElBQUlmLFNBQVNrQixPQUFP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
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvdXNlTWV0cm9wb2xpcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUZsdXh9IGZyb20gJ0BubGFicy9hcmtoYW1qcy11dGlscy1yZWFjdCc7XG5pbXBvcnQge3VzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0Vudmlyb25tZW50Q29uZmlndXJhdGlvbn0gZnJvbSAnLi4vY29uZmlnL2luZGV4LmpzJztcbmltcG9ydCB7Y3JlYXRlQWN0aW9ucywgY3JlYXRlQWxsQWN0aW9uc30gZnJvbSAnLi4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQge01ldHJvcG9saXNDb250ZXh0fSBmcm9tICcuL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uT3B0aW9ucywgQWN0aW9uVHlwZX0gZnJvbSAnLi4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5cbi8qKlxuICogQnVpbGRzIGFjdGlvbiBvcHRpb25zIGZyb20gYWRhcHRlcnMgaW4gYSB0eXBlLXNhZmUgd2F5LlxuICovXG5jb25zdCBidWlsZEFjdGlvbk9wdGlvbnMgPSAoXG4gIGFkYXB0ZXJzPzogTWV0cm9wb2xpc0FkYXB0ZXJzLFxuICBjb25maWc/OiBNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9uXG4pOiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zPj4gPT4ge1xuICBjb25zdCBhd3NSdW1PcHRpb25zID0gY29uZmlnPy5hcHA/LnJ1bSB8fCBjb25maWc/LmFwcD8ubmFtZVxuICAgID8gey4uLmNvbmZpZz8uYXBwPy5ydW0sIGFwcElkOiBjb25maWc/LmFwcD8ucnVtPy5hcHBJZCB8fCBjb25maWc/LmFwcD8ubmFtZX1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBpZiAoIWFkYXB0ZXJzKSB7XG4gICAgcmV0dXJuIGF3c1J1bU9wdGlvbnMgPyB7YXdzUnVtOiBhd3NSdW1PcHRpb25zfSA6IHt9O1xuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogUGFydGlhbDxSZWNvcmQ8QWN0aW9uVHlwZSwgQWN0aW9uT3B0aW9ucz4+ID0ge307XG5cbiAgaWYoYXdzUnVtT3B0aW9ucykge1xuICAgIG9wdGlvbnMuYXdzUnVtID0gYXdzUnVtT3B0aW9ucztcbiAgfVxuXG4gIGlmIChhZGFwdGVycy5Db250ZW50KSB7XG4gICAgb3B0aW9ucy5jb250ZW50ID0ge2NvbnRlbnRBZGFwdGVyOiBhZGFwdGVycy5Db250ZW50fTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuRXZlbnQpIHtcbiAgICBvcHRpb25zLmV2ZW50ID0ge2V2ZW50QWRhcHRlcjogYWRhcHRlcnMuRXZlbnR9O1xuICB9XG4gIGlmIChhZGFwdGVycy5JbWFnZSkge1xuICAgIG9wdGlvbnMuaW1hZ2UgPSB7aW1hZ2VBZGFwdGVyOiBhZGFwdGVycy5JbWFnZX07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLkxvY2F0aW9uKSB7XG4gICAgb3B0aW9ucy5sb2NhdGlvbiA9IHtsb2NhdGlvbkFkYXB0ZXI6IGFkYXB0ZXJzLkxvY2F0aW9ufTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuTWVzc2FnZSkge1xuICAgIG9wdGlvbnMubWVzc2FnZSA9IHttZXNzYWdlQWRhcHRlcjogYWRhcHRlcnMuTWVzc2FnZX07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLlBlcm1pc3Npb24pIHtcbiAgICBvcHRpb25zLnBlcm1pc3Npb24gPSB7cGVybWlzc2lvbkFkYXB0ZXI6IGFkYXB0ZXJzLlBlcm1pc3Npb259O1xuICB9XG4gIGlmIChhZGFwdGVycy5Qb3N0KSB7XG4gICAgb3B0aW9ucy5wb3N0ID0ge3Bvc3RBZGFwdGVyOiBhZGFwdGVycy5Qb3N0fTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuUGVyc29uYSkge1xuICAgIG9wdGlvbnMucGVyc29uYSA9IHtwZXJzb25hQWRhcHRlcjogYWRhcHRlcnMuUGVyc29uYX07XG4gIH1cbiAgaWYgKGFkYXB0ZXJzLlJlYWN0aW9uKSB7XG4gICAgb3B0aW9ucy5yZWFjdGlvbiA9IHtyZWFjdGlvbkFkYXB0ZXI6IGFkYXB0ZXJzLlJlYWN0aW9ufTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuVGFnKSB7XG4gICAgb3B0aW9ucy50YWcgPSB7dGFnQWRhcHRlcjogYWRhcHRlcnMuVGFnfTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuVHJhbnNsYXRpb24pIHtcbiAgICBvcHRpb25zLnRyYW5zbGF0aW9uID0ge3RyYW5zbGF0aW9uQWRhcHRlcjogYWRhcHRlcnMuVHJhbnNsYXRpb259O1xuICB9XG4gIGlmIChhZGFwdGVycy5Vc2VyKSB7XG4gICAgb3B0aW9ucy51c2VyID0ge3VzZXJBZGFwdGVyOiBhZGFwdGVycy5Vc2VyfTtcbiAgfVxuICBpZiAoYWRhcHRlcnMuVmlkZW8pIHtcbiAgICBvcHRpb25zLnZpZGVvID0ge3ZpZGVvQWRhcHRlcjogYWRhcHRlcnMuVmlkZW99O1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59O1xuXG4vKipcbiAqIE1hcHMgYWN0aW9uIHR5cGUga2V5cyB0byB0aGVpciBhY3Rpb24gbmFtZXMgZm9yIHJldHVybiBvYmplY3QuXG4gKi9cbmNvbnN0IG1hcEFjdGlvbnNUb1JldHVybktleXMgPSAoYWN0aW9uczogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4ge1xuICBjb25zdCBtYXBwZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBpZihhY3Rpb25zLmF3c1J1bSkge1xuICAgIG1hcHBlZC5hd3NSdW0gPSBhY3Rpb25zLmF3c1J1bTtcbiAgfVxuXG4gIGlmIChhY3Rpb25zLmNvbnRlbnQpIHtcbiAgICBtYXBwZWQuY29udGVudEFjdGlvbnMgPSBhY3Rpb25zLmNvbnRlbnQ7XG4gIH1cbiAgaWYgKGFjdGlvbnMuY3JtKSB7XG4gICAgbWFwcGVkLmNybUFjdGlvbnMgPSBhY3Rpb25zLmNybTtcbiAgfVxuICBpZiAoYWN0aW9ucy5ldmVudCkge1xuICAgIG1hcHBlZC5ldmVudEFjdGlvbnMgPSBhY3Rpb25zLmV2ZW50O1xuICB9XG4gIGlmIChhY3Rpb25zLmdyb3VwKSB7XG4gICAgbWFwcGVkLmdyb3VwQWN0aW9ucyA9IGFjdGlvbnMuZ3JvdXA7XG4gIH1cbiAgaWYgKGFjdGlvbnMuaW1hZ2UpIHtcbiAgICBtYXBwZWQuaW1hZ2VBY3Rpb25zID0gYWN0aW9ucy5pbWFnZTtcbiAgfVxuICBpZiAoYWN0aW9ucy5sb2NhdGlvbikge1xuICAgIG1hcHBlZC5sb2NhdGlvbkFjdGlvbnMgPSBhY3Rpb25zLmxvY2F0aW9uO1xuICB9XG4gIGlmIChhY3Rpb25zLm1lc3NhZ2UpIHtcbiAgICBtYXBwZWQubWVzc2FnZUFjdGlvbnMgPSBhY3Rpb25zLm1lc3NhZ2U7XG4gIH1cbiAgaWYgKGFjdGlvbnMucGVybWlzc2lvbikge1xuICAgIG1hcHBlZC5wZXJtaXNzaW9uQWN0aW9ucyA9IGFjdGlvbnMucGVybWlzc2lvbjtcbiAgfVxuICBpZiAoYWN0aW9ucy5wb3N0KSB7XG4gICAgbWFwcGVkLnBvc3RBY3Rpb25zID0gYWN0aW9ucy5wb3N0O1xuICB9XG4gIGlmIChhY3Rpb25zLnBlcnNvbmEpIHtcbiAgICBtYXBwZWQucGVyc29uYUFjdGlvbnMgPSBhY3Rpb25zLnBlcnNvbmE7XG4gIH1cbiAgaWYgKGFjdGlvbnMucmVhY3Rpb24pIHtcbiAgICBtYXBwZWQucmVhY3Rpb25BY3Rpb25zID0gYWN0aW9ucy5yZWFjdGlvbjtcbiAgfVxuICBpZiAoYWN0aW9ucy5yZXN0KSB7XG4gICAgbWFwcGVkLnJlc3RBY3Rpb25zID0gYWN0aW9ucy5yZXN0O1xuICB9XG4gIGlmIChhY3Rpb25zLnN1YnNjcmlwdGlvbikge1xuICAgIG1hcHBlZC5zdWJzY3JpcHRpb25BY3Rpb25zID0gYWN0aW9ucy5zdWJzY3JpcHRpb247XG4gIH1cbiAgaWYgKGFjdGlvbnMudGFnKSB7XG4gICAgbWFwcGVkLnRhZ0FjdGlvbnMgPSBhY3Rpb25zLnRhZztcbiAgfVxuICBpZiAoYWN0aW9ucy50cmFuc2xhdGlvbikge1xuICAgIG1hcHBlZC50cmFuc2xhdGlvbkFjdGlvbnMgPSBhY3Rpb25zLnRyYW5zbGF0aW9uO1xuICB9XG4gIGlmIChhY3Rpb25zLnVzZXIpIHtcbiAgICBtYXBwZWQudXNlckFjdGlvbnMgPSBhY3Rpb25zLnVzZXI7XG4gIH1cbiAgaWYgKGFjdGlvbnMudmlkZW8pIHtcbiAgICBtYXBwZWQudmlkZW9BY3Rpb25zID0gYWN0aW9ucy52aWRlbztcbiAgfVxuICBpZiAoYWN0aW9ucy53ZWJzb2NrZXQpIHtcbiAgICBtYXBwZWQud2Vic29ja2V0QWN0aW9ucyA9IGFjdGlvbnMud2Vic29ja2V0O1xuICB9XG5cbiAgcmV0dXJuIG1hcHBlZDtcbn07XG5cbi8qKlxuICogTWFpbiBob29rIHRvIGFjY2VzcyBNZXRyb3BvbGlzIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIGFjdGlvblR5cGVzIC0gT3B0aW9uYWwgYXJyYXkgb2YgYWN0aW9uIHR5cGVzIHRvIGNyZWF0ZS4gSWYgbm90IHByb3ZpZGVkLCBjcmVhdGVzIGFsbCBhY3Rpb25zLlxuICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBhY3Rpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogLy8gR2V0IGFsbCBhY3Rpb25zIChkZWZhdWx0IGJlaGF2aW9yKVxuICogY29uc3Qge3VzZXJBY3Rpb25zLCBwb3N0QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKCk7XG4gKlxuICogLy8gR2V0IG9ubHkgc3BlY2lmaWMgYWN0aW9ucyAobW9yZSBwZXJmb3JtYW50KVxuICogY29uc3Qge3VzZXJBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd1c2VyJ10pO1xuICogY29uc3Qge3VzZXJBY3Rpb25zLCBwb3N0QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsndXNlcicsICdwb3N0J10pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZXRyb3BvbGlzID0gPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10gPSBBY3Rpb25UeXBlW10+KFxuICBhY3Rpb25UeXBlcz86IFRcbikgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNZXRyb3BvbGlzQ29udGV4dCk7XG4gIC8vIFVzZSBmbHV4IGZyb20gY29udGV4dCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdXNlRmx1eCgpIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGNvbnN0IGNvbnRleHRGbHV4ID0gY29udGV4dD8uZmx1eDtcbiAgY29uc3QgaG9va0ZsdXggPSB1c2VGbHV4KCk7XG4gIGNvbnN0IGZsdXggPSBjb250ZXh0Rmx1eCB8fCBob29rRmx1eDtcblxuICBjb25zdCB7YWRhcHRlcnMsIGNvbmZpZ30gPSBjb250ZXh0O1xuICBjb25zdCBhY3Rpb25PcHRpb25zID0gdXNlTWVtbygoKSA9PiBidWlsZEFjdGlvbk9wdGlvbnMoYWRhcHRlcnMsIGNvbmZpZyksIFthZGFwdGVycywgY29uZmlnXSk7XG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gICAgaWYgKGFjdGlvblR5cGVzICYmIGFjdGlvblR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIENyZWF0ZSBvbmx5IHJlcXVlc3RlZCBhY3Rpb25zXG4gICAgICBhY3Rpb25zID0gY3JlYXRlQWN0aW9ucyhhY3Rpb25UeXBlcywgZmx1eCwgYWN0aW9uT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENyZWF0ZSBhbGwgYWN0aW9ucyAoZGVmYXVsdCBiZWhhdmlvciBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcbiAgICAgIGNvbnN0IGFsbEFjdGlvbnMgPSBjcmVhdGVBbGxBY3Rpb25zKGZsdXgsIGFjdGlvbk9wdGlvbnMpO1xuICAgICAgYWN0aW9ucyA9IGFsbEFjdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gTWFwIHRvIHJldHVybiBrZXlzIChjb250ZW50QWN0aW9ucywgdXNlckFjdGlvbnMsIGV0Yy4pXG4gICAgcmV0dXJuIG1hcEFjdGlvbnNUb1JldHVybktleXMoYWN0aW9ucyk7XG4gIH0sIFtmbHV4LCBhY3Rpb25PcHRpb25zLCBhY3Rpb25UeXBlcz8uam9pbignLCcpXSk7XG59O1xuXG4vKipcbiAqIEhvb2sgdG8gYWNjZXNzIHRoZSBNZXRyb3BvbGlzIGNvbmZpZ3VyYXRpb24gZnJvbSBjb250ZXh0LlxuICpcbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBlbnZpcm9ubWVudC1zcGVjaWZpYyBjb25maWd1cmF0aW9uXG4gKiBAdGhyb3dzIEVycm9yIGlmIHVzZWQgb3V0c2lkZSBvZiBNZXRyb3BvbGlzIGNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGNvbmZpZyA9IHVzZU1ldHJvcG9saXNDb25maWcoKTtcbiAqIGNvbnN0IGFwaVVybCA9IGNvbmZpZy5hcHA/LmFwaT8udXJsO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZXRyb3BvbGlzQ29uZmlnID0gKCk6IE1ldHJvcG9saXNFbnZpcm9ubWVudENvbmZpZ3VyYXRpb24gPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNZXRyb3BvbGlzQ29udGV4dCk7XG5cbiAgaWYgKCFjb250ZXh0Py5jb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAndXNlTWV0cm9wb2xpc0NvbmZpZyBtdXN0IGJlIHVzZWQgd2l0aGluIGEgTWV0cm9wb2xpcyBjb21wb25lbnQuICcgK1xuICAgICAgJ01ha2Ugc3VyZSB5b3VyIGNvbXBvbmVudCBpcyB3cmFwcGVkIHdpdGggPE1ldHJvcG9saXM+IHByb3ZpZGVyLidcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQuY29uZmlnO1xufTtcblxuLyoqXG4gKiBIb29rIHRvIGFjY2VzcyB0aGUgRmx1eCBmcmFtZXdvcmsgaW5zdGFuY2UgZnJvbSBjb250ZXh0LlxuICpcbiAqIEByZXR1cm5zIFRoZSBGbHV4IGZyYW1ld29yayBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiB1c2VkIG91dHNpZGUgb2YgTWV0cm9wb2xpcyBjb21wb25lbnQgYW5kIG5vIEZsdXggYXZhaWxhYmxlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgZmx1eCA9IHVzZU1ldHJvcG9saXNGbHV4KCk7XG4gKiBjb25zdCBzdGF0ZSA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZXRyb3BvbGlzRmx1eCA9ICgpOiBGbHV4RnJhbWV3b3JrID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTWV0cm9wb2xpc0NvbnRleHQpO1xuICBjb25zdCBob29rRmx1eCA9IHVzZUZsdXgoKTtcblxuICAvLyBVc2UgZmx1eCBmcm9tIGNvbnRleHQgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvIHVzZUZsdXgoKSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICByZXR1cm4gY29udGV4dD8uZmx1eCB8fCBob29rRmx1eDtcbn07XG5cbi8qKlxuICogU3BlY2lhbGl6ZWQgaG9va3MgZm9yIGluZGl2aWR1YWwgYWN0aW9uIHR5cGVzLlxuICogVGhlc2UgaG9va3Mgb25seSBjcmVhdGUgdGhlIHNwZWNpZmljIGFjdGlvbiB0eXBlLCBpbXByb3ZpbmcgcGVyZm9ybWFuY2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IHVzZUNvbnRlbnRBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7Y29udGVudEFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ2NvbnRlbnQnXSk7XG4gIHJldHVybiBjb250ZW50QWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VBd3NSdW0gPSAoKSA9PiB7XG4gIGNvbnN0IHthd3NSdW19ID0gdXNlTWV0cm9wb2xpcyhbJ2F3c1J1bSddKTtcbiAgcmV0dXJuIGF3c1J1bTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VDcm1BY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7Y3JtQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnY3JtJ10pO1xuICByZXR1cm4gY3JtQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VFdmVudEFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtldmVudEFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ2V2ZW50J10pO1xuICByZXR1cm4gZXZlbnRBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyb3VwQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge2dyb3VwQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnZ3JvdXAnXSk7XG4gIHJldHVybiBncm91cEFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlSW1hZ2VBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7aW1hZ2VBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydpbWFnZSddKTtcbiAgcmV0dXJuIGltYWdlQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VMb2NhdGlvbkFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtsb2NhdGlvbkFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ2xvY2F0aW9uJ10pO1xuICByZXR1cm4gbG9jYXRpb25BY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lc3NhZ2VBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7bWVzc2FnZUFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ21lc3NhZ2UnXSk7XG4gIHJldHVybiBtZXNzYWdlQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTdWJzY3JpcHRpb25BY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7c3Vic2NyaXB0aW9uQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsnc3Vic2NyaXB0aW9uJ10pO1xuICByZXR1cm4gc3Vic2NyaXB0aW9uQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VQZXJtaXNzaW9uQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3Blcm1pc3Npb25BY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWydwZXJtaXNzaW9uJ10pO1xuICByZXR1cm4gcGVybWlzc2lvbkFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlUG9zdEFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtwb3N0QWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsncG9zdCddKTtcbiAgcmV0dXJuIHBvc3RBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVBlcnNvbmFBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7cGVyc29uYUFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3BlcnNvbmEnXSk7XG4gIHJldHVybiBwZXJzb25hQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VSZWFjdGlvbkFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHtyZWFjdGlvbkFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3JlYWN0aW9uJ10pO1xuICByZXR1cm4gcmVhY3Rpb25BY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVJlc3RBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7cmVzdEFjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3Jlc3QnXSk7XG4gIHJldHVybiByZXN0QWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VUYWdBY3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCB7dGFnQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsndGFnJ10pO1xuICByZXR1cm4gdGFnQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VWaWRlb0FjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHt2aWRlb0FjdGlvbnN9ID0gdXNlTWV0cm9wb2xpcyhbJ3ZpZGVvJ10pO1xuICByZXR1cm4gdmlkZW9BY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRyYW5zbGF0aW9uQWN0aW9ucyA9ICgpID0+IHtcbiAgY29uc3Qge3RyYW5zbGF0aW9uQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsndHJhbnNsYXRpb24nXSk7XG4gIHJldHVybiB0cmFuc2xhdGlvbkFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVXNlckFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHt1c2VyQWN0aW9uc30gPSB1c2VNZXRyb3BvbGlzKFsndXNlciddKTtcbiAgcmV0dXJuIHVzZXJBY3Rpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVdlYnNvY2tldEFjdGlvbnMgPSAoKSA9PiB7XG4gIGNvbnN0IHt3ZWJzb2NrZXRBY3Rpb25zfSA9IHVzZU1ldHJvcG9saXMoWyd3ZWJzb2NrZXQnXSk7XG4gIHJldHVybiB3ZWJzb2NrZXRBY3Rpb25zO1xufTtcbiJdLCJuYW1lcyI6WyJ1c2VGbHV4IiwidXNlQ29udGV4dCIsInVzZU1lbW8iLCJjcmVhdGVBY3Rpb25zIiwiY3JlYXRlQWxsQWN0aW9ucyIsIk1ldHJvcG9saXNDb250ZXh0IiwiYnVpbGRBY3Rpb25PcHRpb25zIiwiYWRhcHRlcnMiLCJjb25maWciLCJhd3NSdW1PcHRpb25zIiwiYXBwIiwicnVtIiwibmFtZSIsImFwcElkIiwidW5kZWZpbmVkIiwiYXdzUnVtIiwib3B0aW9ucyIsIkNvbnRlbnQiLCJjb250ZW50IiwiY29udGVudEFkYXB0ZXIiLCJFdmVudCIsImV2ZW50IiwiZXZlbnRBZGFwdGVyIiwiSW1hZ2UiLCJpbWFnZSIsImltYWdlQWRhcHRlciIsIkxvY2F0aW9uIiwibG9jYXRpb24iLCJsb2NhdGlvbkFkYXB0ZXIiLCJNZXNzYWdlIiwibWVzc2FnZSIsIm1lc3NhZ2VBZGFwdGVyIiwiUGVybWlzc2lvbiIsInBlcm1pc3Npb24iLCJwZXJtaXNzaW9uQWRhcHRlciIsIlBvc3QiLCJwb3N0IiwicG9zdEFkYXB0ZXIiLCJQZXJzb25hIiwicGVyc29uYSIsInBlcnNvbmFBZGFwdGVyIiwiUmVhY3Rpb24iLCJyZWFjdGlvbiIsInJlYWN0aW9uQWRhcHRlciIsIlRhZyIsInRhZyIsInRhZ0FkYXB0ZXIiLCJUcmFuc2xhdGlvbiIsInRyYW5zbGF0aW9uIiwidHJhbnNsYXRpb25BZGFwdGVyIiwiVXNlciIsInVzZXIiLCJ1c2VyQWRhcHRlciIsIlZpZGVvIiwidmlkZW8iLCJ2aWRlb0FkYXB0ZXIiLCJtYXBBY3Rpb25zVG9SZXR1cm5LZXlzIiwiYWN0aW9ucyIsIm1hcHBlZCIsImNvbnRlbnRBY3Rpb25zIiwiY3JtIiwiY3JtQWN0aW9ucyIsImV2ZW50QWN0aW9ucyIsImdyb3VwIiwiZ3JvdXBBY3Rpb25zIiwiaW1hZ2VBY3Rpb25zIiwibG9jYXRpb25BY3Rpb25zIiwibWVzc2FnZUFjdGlvbnMiLCJwZXJtaXNzaW9uQWN0aW9ucyIsInBvc3RBY3Rpb25zIiwicGVyc29uYUFjdGlvbnMiLCJyZWFjdGlvbkFjdGlvbnMiLCJyZXN0IiwicmVzdEFjdGlvbnMiLCJzdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb25BY3Rpb25zIiwidGFnQWN0aW9ucyIsInRyYW5zbGF0aW9uQWN0aW9ucyIsInVzZXJBY3Rpb25zIiwidmlkZW9BY3Rpb25zIiwid2Vic29ja2V0Iiwid2Vic29ja2V0QWN0aW9ucyIsInVzZU1ldHJvcG9saXMiLCJhY3Rpb25UeXBlcyIsImNvbnRleHQiLCJjb250ZXh0Rmx1eCIsImZsdXgiLCJob29rRmx1eCIsImFjdGlvbk9wdGlvbnMiLCJsZW5ndGgiLCJhbGxBY3Rpb25zIiwiam9pbiIsInVzZU1ldHJvcG9saXNDb25maWciLCJFcnJvciIsInVzZU1ldHJvcG9saXNGbHV4IiwidXNlQ29udGVudEFjdGlvbnMiLCJ1c2VBd3NSdW0iLCJ1c2VDcm1BY3Rpb25zIiwidXNlRXZlbnRBY3Rpb25zIiwidXNlR3JvdXBBY3Rpb25zIiwidXNlSW1hZ2VBY3Rpb25zIiwidXNlTG9jYXRpb25BY3Rpb25zIiwidXNlTWVzc2FnZUFjdGlvbnMiLCJ1c2VTdWJzY3JpcHRpb25BY3Rpb25zIiwidXNlUGVybWlzc2lvbkFjdGlvbnMiLCJ1c2VQb3N0QWN0aW9ucyIsInVzZVBlcnNvbmFBY3Rpb25zIiwidXNlUmVhY3Rpb25BY3Rpb25zIiwidXNlUmVzdEFjdGlvbnMiLCJ1c2VUYWdBY3Rpb25zIiwidXNlVmlkZW9BY3Rpb25zIiwidXNlVHJhbnNsYXRpb25BY3Rpb25zIiwidXNlVXNlckFjdGlvbnMiLCJ1c2VXZWJzb2NrZXRBY3Rpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxPQUFPLFFBQU8sOEJBQThCO0FBQ3BELFNBQVFDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLFFBQVE7QUFJMUMsU0FBUUMsYUFBYSxFQUFFQyxnQkFBZ0IsUUFBTyw0QkFBNEI7QUFFMUUsU0FBUUMsaUJBQWlCLFFBQU8sMEJBQTBCO0FBRzFEOztDQUVDLEdBQ0QsTUFBTUMscUJBQXFCLENBQ3pCQyxVQUNBQztJQUVBLE1BQU1DLGdCQUFnQkQsUUFBUUUsS0FBS0MsT0FBT0gsUUFBUUUsS0FBS0UsT0FDbkQ7UUFBQyxHQUFHSixRQUFRRSxLQUFLQyxHQUFHO1FBQUVFLE9BQU9MLFFBQVFFLEtBQUtDLEtBQUtFLFNBQVNMLFFBQVFFLEtBQUtFO0lBQUksSUFDekVFO0lBRUosSUFBSSxDQUFDUCxVQUFVO1FBQ2IsT0FBT0UsZ0JBQWdCO1lBQUNNLFFBQVFOO1FBQWEsSUFBSSxDQUFDO0lBQ3BEO0lBRUEsTUFBTU8sVUFBc0QsQ0FBQztJQUU3RCxJQUFHUCxlQUFlO1FBQ2hCTyxRQUFRRCxNQUFNLEdBQUdOO0lBQ25CO0lBRUEsSUFBSUYsU0FBU1UsT0FBTyxFQUFFO1FBQ3BCRCxRQUFRRSxPQUFPLEdBQUc7WUFBQ0MsZ0JBQWdCWixTQUFTVSxPQUFPO1FBQUE7SUFDckQ7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
@@ -1 +1 @@
1
- {"version":3,"file":"useTranslations.d.ts","sourceRoot":"","sources":["../../src/utils/useTranslations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,GAAI,UAAS,sBAA2B,KAAG,qBA+FtE,CAAC"}
1
+ {"version":3,"file":"useTranslations.d.ts","sourceRoot":"","sources":["../../src/utils/useTranslations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,aAAa,sBAAsB,KAAQ,qBA+FtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validatorFactory.d.ts","sourceRoot":"","sources":["../../src/utils/validatorFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAChD;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,kBAAkB,EACjE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EACtD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EACpD,UAAU,CAAC,MACP,OAAO,OAAO,EAAE,mBAAmB,CAAC,QAczC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,kBAAkB,EACjE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EAEtD,iBAAgB,CAAW;qCAMC,OAAO,YAAY,CAAC,KAAK,GAAG;;6BAExB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,KAAG,IAAI;6BAI3C,CAAC,KAAG,IAAI;uBAMd,OAAO,qBAAqB,CAAC;CAuBxD,CAAC"}
1
+ {"version":3,"file":"validatorFactory.d.ts","sourceRoot":"","sources":["../../src/utils/validatorFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAChD;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,kBAAkB,oBAC/C,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,kBACtC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,YAC1C,CAAC,aACA,OAAO,qBAAqB,CAAC,QAczC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,kBAAkB,oBAC/C,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,mBAEtC,CAAC;qCAMW,OAAO,YAAY,CAAC,KAAK,GAAG;;6BAExB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,KAAG,IAAI;6BAI3C,CAAC,KAAG,IAAI;uBAMd,OAAO,qBAAqB,CAAC;CAuBxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlabs/metropolisjs",
3
- "version": "0.3.8",
3
+ "version": "1.0.1",
4
4
  "description": "MetropolisJS is a library to connect users to Reaktor",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",