@thetradeengineorg1/snova-shell-module 0.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 (288) hide show
  1. package/README.md +24 -0
  2. package/bundles/thetradeengineorg1-snova-shell-module.umd.js +13896 -0
  3. package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -0
  4. package/esm2015/lib/globaldependencies/components/componentbase.js +538 -0
  5. package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -0
  6. package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -0
  7. package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -0
  8. package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -0
  9. package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -0
  10. package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -0
  11. package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -0
  12. package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -0
  13. package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -0
  14. package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -0
  15. package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -0
  16. package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -0
  17. package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -0
  18. package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -0
  19. package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -0
  20. package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -0
  21. package/esm2015/lib/shell-components/components/Payments/account.component.js +50 -0
  22. package/esm2015/lib/shell-components/components/Payments/company-information.js +262 -0
  23. package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +138 -0
  24. package/esm2015/lib/shell-components/components/Payments/document.component.js +57 -0
  25. package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +32 -0
  26. package/esm2015/lib/shell-components/components/Payments/product-service.component.js +143 -0
  27. package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +152 -0
  28. package/esm2015/lib/shell-components/components/Payments/transactions.component.js +60 -0
  29. package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +250 -0
  30. package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +89 -0
  31. package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +90 -0
  32. package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +357 -0
  33. package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +85 -0
  34. package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +83 -0
  35. package/esm2015/lib/shell-components/components/header-side/header-side.component.js +1642 -0
  36. package/esm2015/lib/shell-components/components/header-top/header-top.component.js +93 -0
  37. package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +26 -0
  38. package/esm2015/lib/shell-components/components/menu/menu.component.js +2478 -0
  39. package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -0
  40. package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +73 -0
  41. package/esm2015/lib/shell-components/components/notifications/notifications.component.js +449 -0
  42. package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +33 -0
  43. package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +81 -0
  44. package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +43 -0
  45. package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +71 -0
  46. package/esm2015/lib/shell-components/constants/api-urls.js +1052 -0
  47. package/esm2015/lib/shell-components/constants/available-languages.js +25 -0
  48. package/esm2015/lib/shell-components/constants/channel-names.js +38 -0
  49. package/esm2015/lib/shell-components/constants/menu-categories.js +6 -0
  50. package/esm2015/lib/shell-components/constants/notification-routes.js +6 -0
  51. package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -0
  52. package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -0
  53. package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -0
  54. package/esm2015/lib/shell-components/models/AppNotification.js +17 -0
  55. package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -0
  56. package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -0
  57. package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -0
  58. package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -0
  59. package/esm2015/lib/shell-components/models/IBadge.js +2 -0
  60. package/esm2015/lib/shell-components/models/IChildItem.js +2 -0
  61. package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -0
  62. package/esm2015/lib/shell-components/models/IMenuItem.js +2 -0
  63. package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -0
  64. package/esm2015/lib/shell-components/models/IntroModel.js +3 -0
  65. package/esm2015/lib/shell-components/models/MessageDetails.js +3 -0
  66. package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -0
  67. package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -0
  68. package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -0
  69. package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -0
  70. package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -0
  71. package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -0
  72. package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -0
  73. package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -0
  74. package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -0
  75. package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -0
  76. package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -0
  77. package/esm2015/lib/shell-components/models/companieslist.model.js +3 -0
  78. package/esm2015/lib/shell-components/models/company-model.js +7 -0
  79. package/esm2015/lib/shell-components/models/company-payment-model.js +3 -0
  80. package/esm2015/lib/shell-components/models/dragedWidget.js +3 -0
  81. package/esm2015/lib/shell-components/models/employee-List.js +3 -0
  82. package/esm2015/lib/shell-components/models/employee.js +4 -0
  83. package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -0
  84. package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -0
  85. package/esm2015/lib/shell-components/models/export-data.module.js +8 -0
  86. package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -0
  87. package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -0
  88. package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -0
  89. package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -0
  90. package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -0
  91. package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -0
  92. package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -0
  93. package/esm2015/lib/shell-components/models/project.js +3 -0
  94. package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -0
  95. package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -0
  96. package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -0
  97. package/esm2015/lib/shell-components/models/softlabels-model.js +7 -0
  98. package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -0
  99. package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -0
  100. package/esm2015/lib/shell-components/models/store-model.js +3 -0
  101. package/esm2015/lib/shell-components/models/store-search-model.js +4 -0
  102. package/esm2015/lib/shell-components/models/themes.model.js +3 -0
  103. package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -0
  104. package/esm2015/lib/shell-components/models/user.js +8 -0
  105. package/esm2015/lib/shell-components/models/userStory.js +3 -0
  106. package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -0
  107. package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -0
  108. package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -0
  109. package/esm2015/lib/shell-components/models/validation.model.js +2 -0
  110. package/esm2015/lib/shell-components/models/widgetlist.js +6 -0
  111. package/esm2015/lib/shell-components/models/workspaceList.js +3 -0
  112. package/esm2015/lib/shell-components/services/authentication.service.js +96 -0
  113. package/esm2015/lib/shell-components/services/chat.service.js +67 -0
  114. package/esm2015/lib/shell-components/services/common-used.service.js +263 -0
  115. package/esm2015/lib/shell-components/services/feature.service.js +101 -0
  116. package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -0
  117. package/esm2015/lib/shell-components/services/layout.service.js +68 -0
  118. package/esm2015/lib/shell-components/services/payment.service.js +103 -0
  119. package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -0
  120. package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -0
  121. package/esm2015/lib/shell-components/services/signalr.service.js +113 -0
  122. package/esm2015/lib/shell-components/services/theme.service.js +161 -0
  123. package/esm2015/lib/shell-components/shell.module.js +436 -0
  124. package/esm2015/lib/shell-components/shell.routing.js +16 -0
  125. package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -0
  126. package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -0
  127. package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -0
  128. package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -0
  129. package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -0
  130. package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -0
  131. package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -0
  132. package/esm2015/lib/shell-components/store/effects/index.js +13 -0
  133. package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -0
  134. package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -0
  135. package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -0
  136. package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -0
  137. package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -0
  138. package/esm2015/lib/shell-components/store/reducers/index.js +80 -0
  139. package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -0
  140. package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -0
  141. package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -0
  142. package/esm2015/public-api.js +90 -0
  143. package/esm2015/store/reducers/index.js +47 -0
  144. package/esm2015/thetradeengineorg1-snova-shell-module.js +5 -0
  145. package/fesm2015/thetradeengineorg1-snova-shell-module.js +12808 -0
  146. package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -0
  147. package/lib/globaldependencies/components/componentbase.d.ts +455 -0
  148. package/lib/globaldependencies/constants/feature-ids.d.ts +448 -0
  149. package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -0
  150. package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -0
  151. package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -0
  152. package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -0
  153. package/lib/globaldependencies/helpers/window.helper.d.ts +12 -0
  154. package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -0
  155. package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -0
  156. package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -0
  157. package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -0
  158. package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -0
  159. package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -0
  160. package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -0
  161. package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -0
  162. package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -0
  163. package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -0
  164. package/lib/shell-components/components/Payments/account.component.d.ts +14 -0
  165. package/lib/shell-components/components/Payments/company-information.d.ts +62 -0
  166. package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -0
  167. package/lib/shell-components/components/Payments/document.component.d.ts +20 -0
  168. package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -0
  169. package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -0
  170. package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -0
  171. package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -0
  172. package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -0
  173. package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -0
  174. package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -0
  175. package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -0
  176. package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -0
  177. package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -0
  178. package/lib/shell-components/components/header-side/header-side.component.d.ts +216 -0
  179. package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -0
  180. package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -0
  181. package/lib/shell-components/components/menu/menu.component.d.ts +220 -0
  182. package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -0
  183. package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -0
  184. package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -0
  185. package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -0
  186. package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -0
  187. package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -0
  188. package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -0
  189. package/lib/shell-components/constants/api-urls.d.ts +1051 -0
  190. package/lib/shell-components/constants/available-languages.d.ts +7 -0
  191. package/lib/shell-components/constants/channel-names.d.ts +37 -0
  192. package/lib/shell-components/constants/menu-categories.d.ts +5 -0
  193. package/lib/shell-components/constants/notification-routes.d.ts +5 -0
  194. package/lib/shell-components/constants/notification-type-ids.d.ts +41 -0
  195. package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -0
  196. package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -0
  197. package/lib/shell-components/models/AppNotification.d.ts +12 -0
  198. package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -0
  199. package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -0
  200. package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -0
  201. package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -0
  202. package/lib/shell-components/models/IBadge.d.ts +4 -0
  203. package/lib/shell-components/models/IChildItem.d.ts +7 -0
  204. package/lib/shell-components/models/ILayout-change-options.d.ts +4 -0
  205. package/lib/shell-components/models/IMenuItem.d.ts +14 -0
  206. package/lib/shell-components/models/IlayoutConf.d.ts +10 -0
  207. package/lib/shell-components/models/IntroModel.d.ts +3 -0
  208. package/lib/shell-components/models/MessageDetails.d.ts +55 -0
  209. package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -0
  210. package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -0
  211. package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -0
  212. package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -0
  213. package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -0
  214. package/lib/shell-components/models/RecentSearchModel.d.ts +14 -0
  215. package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -0
  216. package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -0
  217. package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -0
  218. package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -0
  219. package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -0
  220. package/lib/shell-components/models/companieslist.model.d.ts +8 -0
  221. package/lib/shell-components/models/company-model.d.ts +31 -0
  222. package/lib/shell-components/models/company-payment-model.d.ts +18 -0
  223. package/lib/shell-components/models/dragedWidget.d.ts +16 -0
  224. package/lib/shell-components/models/employee-List.d.ts +8 -0
  225. package/lib/shell-components/models/employee.d.ts +60 -0
  226. package/lib/shell-components/models/entityRoleFeature.d.ts +9 -0
  227. package/lib/shell-components/models/export-configuration-model.d.ts +8 -0
  228. package/lib/shell-components/models/export-data.module.d.ts +6 -0
  229. package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -0
  230. package/lib/shell-components/models/import-configuration-model.d.ts +3 -0
  231. package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -0
  232. package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -0
  233. package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -0
  234. package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -0
  235. package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -0
  236. package/lib/shell-components/models/project.d.ts +28 -0
  237. package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -0
  238. package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -0
  239. package/lib/shell-components/models/shellModulesInfo.d.ts +16 -0
  240. package/lib/shell-components/models/softlabels-model.d.ts +66 -0
  241. package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -0
  242. package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -0
  243. package/lib/shell-components/models/store-model.d.ts +13 -0
  244. package/lib/shell-components/models/store-search-model.d.ts +7 -0
  245. package/lib/shell-components/models/themes.model.d.ts +9 -0
  246. package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -0
  247. package/lib/shell-components/models/user.d.ts +40 -0
  248. package/lib/shell-components/models/userStory.d.ts +188 -0
  249. package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -0
  250. package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -0
  251. package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -0
  252. package/lib/shell-components/models/validation.model.d.ts +5 -0
  253. package/lib/shell-components/models/widgetlist.d.ts +28 -0
  254. package/lib/shell-components/models/workspaceList.d.ts +19 -0
  255. package/lib/shell-components/services/authentication.service.d.ts +18 -0
  256. package/lib/shell-components/services/chat.service.d.ts +16 -0
  257. package/lib/shell-components/services/common-used.service.d.ts +45 -0
  258. package/lib/shell-components/services/feature.service.d.ts +19 -0
  259. package/lib/shell-components/services/google-analytics.service.d.ts +9 -0
  260. package/lib/shell-components/services/layout.service.d.ts +23 -0
  261. package/lib/shell-components/services/payment.service.d.ts +19 -0
  262. package/lib/shell-components/services/recentSearch.service.d.ts +16 -0
  263. package/lib/shell-components/services/shell.modules.service.d.ts +9 -0
  264. package/lib/shell-components/services/signalr.service.d.ts +25 -0
  265. package/lib/shell-components/services/theme.service.d.ts +14 -0
  266. package/lib/shell-components/shell.module.d.ts +117 -0
  267. package/lib/shell-components/shell.routing.d.ts +2 -0
  268. package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -0
  269. package/lib/shell-components/store/actions/chat.actions.d.ts +399 -0
  270. package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -0
  271. package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -0
  272. package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -0
  273. package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -0
  274. package/lib/shell-components/store/effects/chat.effects.d.ts +30 -0
  275. package/lib/shell-components/store/effects/index.d.ts +1 -0
  276. package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -0
  277. package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -0
  278. package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -0
  279. package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -0
  280. package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -0
  281. package/lib/shell-components/store/reducers/index.d.ts +59 -0
  282. package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -0
  283. package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -0
  284. package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -0
  285. package/package.json +22 -0
  286. package/public-api.d.ts +80 -0
  287. package/store/reducers/index.d.ts +24 -0
  288. package/thetradeengineorg1-snova-shell-module.d.ts +5 -0
@@ -0,0 +1,260 @@
1
+ export var AuthenticationActionTypes;
2
+ (function (AuthenticationActionTypes) {
3
+ AuthenticationActionTypes["AuthenticateUser"] = "[Snovasys-Shell] [Authentication] Authenticate User";
4
+ AuthenticationActionTypes["Authenticated"] = "[Snovasys-Shell] [Authentication] Authenticated";
5
+ AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequired"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired";
6
+ AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequiredFailed"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired Failed";
7
+ AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequiredSuccess"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired Success";
8
+ AuthenticationActionTypes["SignedOff"] = "[Snovasys-Shell] [Authentication] Signed Off";
9
+ AuthenticationActionTypes["UserDetailsFetching"] = "[Snovasys-Shell] [Authentication] Fetching User Details";
10
+ AuthenticationActionTypes["UserDetailsFetched"] = "[Snovasys-Shell] [Authentication] Fetched User Details";
11
+ AuthenticationActionTypes["UserInitialDetailsFetched"] = "[Snovasys-Shell] [Authentication] Fetched User Initial Details";
12
+ AuthenticationActionTypes["UserInitialDetailsFetchedCompleted"] = "[Snovasys-Shell] [Authentication] Fetched User Initial Details Completed";
13
+ AuthenticationActionTypes["UserDetailsFetchedAfterLogin"] = "[Snovasys-Shell] [Authentication] Fetched User Details After Login";
14
+ AuthenticationActionTypes["UserDetailsFetchedAfterCompanyLogin"] = "[Snovasys-Shell] [Authentication] Fetched User Details After Company Login";
15
+ AuthenticationActionTypes["AuthenticationFailed"] = "[Snovasys-Shell] [Authentication] Authentication Failed";
16
+ AuthenticationActionTypes["RoleDetailsFetchOnReload"] = "[Snovasys-Shell] [Authentication] Role Details Fetched On Reload";
17
+ AuthenticationActionTypes["RoleDetailsFetched"] = "[Snovasys-Shell] [Authentication] Role Details Fetched";
18
+ AuthenticationActionTypes["InitializeAfterLoginData"] = "[Snovasys-Shell] [Authentication] Initialize after login data";
19
+ AuthenticationActionTypes["RolesFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Roles Triggered";
20
+ AuthenticationActionTypes["RolesFetchFailed"] = "[Snovasys-Shell] [Authentication] Fetching Roles Failed";
21
+ AuthenticationActionTypes["EntityRolesFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Entity Roles Triggered";
22
+ AuthenticationActionTypes["EntityRoleDetailsFetched"] = "[Snovasys-Shell] [Authentication] Entity Role Details Fetched";
23
+ AuthenticationActionTypes["EntityRolesByUserIdFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Entity Roles By UserId Triggered";
24
+ AuthenticationActionTypes["EntityReolesByUserIdFetchCompleted"] = "[Snovasys-Shell] [Authentication] Fetching EntityRoles By UserId Completed";
25
+ AuthenticationActionTypes["EntityRolesByUserIdFetchFailed"] = "[Snovasys-Shell] [Authentication] Fetching EntityRoles By UserId Failed";
26
+ AuthenticationActionTypes["GetCompanyThemeTriggered"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Triggered";
27
+ AuthenticationActionTypes["GetCompanyThemeCompleted"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Completed";
28
+ AuthenticationActionTypes["GetCompanyThemeFailed"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Failed";
29
+ AuthenticationActionTypes["ClearDemoDataTriggred"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Triggred";
30
+ AuthenticationActionTypes["ClearDemoDataCompleted"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Completed";
31
+ AuthenticationActionTypes["ClearDemoDataFailed"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Failed";
32
+ AuthenticationActionTypes["GetUserStoreIdTriggered"] = "[Snovasys-Shell] [Authentication] Get User Store Id Triggered";
33
+ AuthenticationActionTypes["GetUserStoreIdCompleted"] = "[Snovasys-Shell] [Authentication] Get User Store Id Completed";
34
+ AuthenticationActionTypes["GetUserStoreIdFailed"] = "[Snovasys-Shell] [Authentication] Get User Store Id Failed";
35
+ AuthenticationActionTypes["ExceptionHandled"] = "[Snovasys-Shell] [Authentication] Exception Handling";
36
+ AuthenticationActionTypes["AuthenticateNewUser"] = "[Snovasys-Shell] [Authentication] Authenticate New User";
37
+ AuthenticationActionTypes["GetCompanySettingsTriggered"] = "[Snovasys-Shell] [Authentication] Get Company Settings Triggered";
38
+ AuthenticationActionTypes["GetCompanySettingsCompleted"] = "[Snovasys-Shell] [Authentication] Get Company Settings Completed";
39
+ AuthenticationActionTypes["GetCompanySettingsFailed"] = "[Snovasys-Shell] [Authentication] Get Company Settings Failed";
40
+ AuthenticationActionTypes["FetchTimeSheetButtonDetails"] = "[Snovasys-Shell] [Authentication] Get Time Sheet Button Details";
41
+ })(AuthenticationActionTypes || (AuthenticationActionTypes = {}));
42
+ export class AuthenticateUser {
43
+ constructor(userName, password) {
44
+ this.userName = userName;
45
+ this.password = password;
46
+ this.type = AuthenticationActionTypes.AuthenticateUser;
47
+ }
48
+ }
49
+ export class AuthenticateNewUser {
50
+ constructor(userName) {
51
+ this.userName = userName;
52
+ this.type = AuthenticationActionTypes.AuthenticateNewUser;
53
+ }
54
+ }
55
+ export class Authenticated {
56
+ constructor(userName, userToken) {
57
+ this.userName = userName;
58
+ this.userToken = userToken;
59
+ this.type = AuthenticationActionTypes.Authenticated;
60
+ }
61
+ }
62
+ export class CompanyWorkItemStartFunctionalityRequired {
63
+ constructor() {
64
+ this.type = AuthenticationActionTypes.CompanyWorkItemStartFunctionalityRequired;
65
+ }
66
+ }
67
+ export class CompanyWorkItemStartFunctionalityRequiredSuccess {
68
+ constructor(isStartEnabled) {
69
+ this.isStartEnabled = isStartEnabled;
70
+ this.type = AuthenticationActionTypes.CompanyWorkItemStartFunctionalityRequiredSuccess;
71
+ }
72
+ }
73
+ export class AuthenticationFailed {
74
+ constructor(errorMessage) {
75
+ this.errorMessage = errorMessage;
76
+ this.type = AuthenticationActionTypes.AuthenticationFailed;
77
+ }
78
+ }
79
+ export class SignedOff {
80
+ constructor() {
81
+ this.type = AuthenticationActionTypes.SignedOff;
82
+ }
83
+ }
84
+ export class UserDetailsFetched {
85
+ constructor(userModel) {
86
+ this.userModel = userModel;
87
+ this.type = AuthenticationActionTypes.UserDetailsFetched;
88
+ }
89
+ }
90
+ export class UserDetailsFetchedAfterLogin {
91
+ constructor(userModel) {
92
+ this.userModel = userModel;
93
+ this.type = AuthenticationActionTypes.UserDetailsFetchedAfterLogin;
94
+ }
95
+ }
96
+ export class UserDetailsFetchedAfterCompanyLogin {
97
+ constructor(userModel) {
98
+ this.userModel = userModel;
99
+ this.type = AuthenticationActionTypes.UserDetailsFetchedAfterCompanyLogin;
100
+ }
101
+ }
102
+ export class UserInitialDetailsFetched {
103
+ constructor(userModel) {
104
+ this.userModel = userModel;
105
+ this.type = AuthenticationActionTypes.UserInitialDetailsFetched;
106
+ }
107
+ }
108
+ export class UserInitialDetailsFetchedCompleted {
109
+ constructor(userInitialData) {
110
+ this.userInitialData = userInitialData;
111
+ this.type = AuthenticationActionTypes.UserInitialDetailsFetchedCompleted;
112
+ }
113
+ }
114
+ export class FetchTimeSheetButtonDetails {
115
+ constructor() {
116
+ this.type = AuthenticationActionTypes.FetchTimeSheetButtonDetails;
117
+ }
118
+ }
119
+ export class UserDetailsFetching {
120
+ constructor(loginData) {
121
+ this.loginData = loginData;
122
+ this.type = AuthenticationActionTypes.UserDetailsFetching;
123
+ }
124
+ }
125
+ export class RoleDetailsFetched {
126
+ constructor(roleFeatures) {
127
+ this.roleFeatures = roleFeatures;
128
+ this.type = AuthenticationActionTypes.RoleDetailsFetched;
129
+ }
130
+ }
131
+ export class RoleDetailsFetchOnReload {
132
+ constructor() {
133
+ this.type = AuthenticationActionTypes.RoleDetailsFetchOnReload;
134
+ }
135
+ }
136
+ export class InitializeAfterLoginData {
137
+ constructor() {
138
+ this.type = AuthenticationActionTypes.InitializeAfterLoginData;
139
+ }
140
+ }
141
+ export class RolesFetchTriggered {
142
+ constructor() {
143
+ this.type = AuthenticationActionTypes.RolesFetchTriggered;
144
+ }
145
+ }
146
+ export class RolesFetchFailed {
147
+ constructor(validationMessages) {
148
+ this.validationMessages = validationMessages;
149
+ this.type = AuthenticationActionTypes.RolesFetchFailed;
150
+ }
151
+ }
152
+ export class EntityRolesFetchTriggered {
153
+ constructor(projectId) {
154
+ this.projectId = projectId;
155
+ this.type = AuthenticationActionTypes.EntityRolesFetchTriggered;
156
+ }
157
+ }
158
+ export class EntityRolesByUserIdFetchTriggered {
159
+ constructor(projectId, requiredType, isSprintType) {
160
+ this.projectId = projectId;
161
+ this.requiredType = requiredType;
162
+ this.isSprintType = isSprintType;
163
+ this.type = AuthenticationActionTypes.EntityRolesByUserIdFetchTriggered;
164
+ }
165
+ }
166
+ export class EntityRoleDetailsFetched {
167
+ constructor(entityTypeRoleFeatures) {
168
+ this.entityTypeRoleFeatures = entityTypeRoleFeatures;
169
+ this.type = AuthenticationActionTypes.EntityRoleDetailsFetched;
170
+ }
171
+ }
172
+ export class EntityReolesByUserIdFetchCompleted {
173
+ constructor(entityTypeRoleFeatures) {
174
+ this.entityTypeRoleFeatures = entityTypeRoleFeatures;
175
+ this.type = AuthenticationActionTypes.EntityReolesByUserIdFetchCompleted;
176
+ }
177
+ }
178
+ export class EntityRolesByUserIdFetchFailed {
179
+ constructor(validationMessages) {
180
+ this.validationMessages = validationMessages;
181
+ this.type = AuthenticationActionTypes.EntityRolesByUserIdFetchFailed;
182
+ }
183
+ }
184
+ export class ClearDemoDataTriggred {
185
+ constructor() {
186
+ this.type = AuthenticationActionTypes.ClearDemoDataTriggred;
187
+ }
188
+ }
189
+ export class ClearDemoDataCompleted {
190
+ constructor(companyId) {
191
+ this.companyId = companyId;
192
+ this.type = AuthenticationActionTypes.ClearDemoDataCompleted;
193
+ }
194
+ }
195
+ export class ClearDemoDataFailed {
196
+ constructor(validationMessages) {
197
+ this.validationMessages = validationMessages;
198
+ this.type = AuthenticationActionTypes.ClearDemoDataFailed;
199
+ }
200
+ }
201
+ export class GetCompanyThemeTriggered {
202
+ constructor() {
203
+ this.type = AuthenticationActionTypes.GetCompanyThemeTriggered;
204
+ }
205
+ }
206
+ export class GetCompanyThemeCompleted {
207
+ constructor(themeModel) {
208
+ this.themeModel = themeModel;
209
+ this.type = AuthenticationActionTypes.GetCompanyThemeCompleted;
210
+ }
211
+ }
212
+ export class GetCompanyThemeFailed {
213
+ constructor(validationMessages) {
214
+ this.validationMessages = validationMessages;
215
+ this.type = AuthenticationActionTypes.GetCompanyThemeFailed;
216
+ }
217
+ }
218
+ export class GetUserStoreIdTriggered {
219
+ constructor(searchUserStoreDetailsModel) {
220
+ this.searchUserStoreDetailsModel = searchUserStoreDetailsModel;
221
+ this.type = AuthenticationActionTypes.GetUserStoreIdTriggered;
222
+ }
223
+ }
224
+ export class GetUserStoreIdCompleted {
225
+ constructor(userStoreDetails) {
226
+ this.userStoreDetails = userStoreDetails;
227
+ this.type = AuthenticationActionTypes.GetUserStoreIdCompleted;
228
+ }
229
+ }
230
+ export class GetCompanySettingsTriggered {
231
+ constructor(companySettingsModel) {
232
+ this.companySettingsModel = companySettingsModel;
233
+ this.type = AuthenticationActionTypes.GetCompanySettingsTriggered;
234
+ }
235
+ }
236
+ export class GetCompanySettingsCompleted {
237
+ constructor(companySettingsModel) {
238
+ this.companySettingsModel = companySettingsModel;
239
+ this.type = AuthenticationActionTypes.GetCompanySettingsCompleted;
240
+ }
241
+ }
242
+ export class GetCompanySettingsFailed {
243
+ constructor(validationMessages) {
244
+ this.validationMessages = validationMessages;
245
+ this.type = AuthenticationActionTypes.GetCompanySettingsFailed;
246
+ }
247
+ }
248
+ export class GetUserStoreIdFailed {
249
+ constructor(validationMessages) {
250
+ this.validationMessages = validationMessages;
251
+ this.type = AuthenticationActionTypes.GetUserStoreIdFailed;
252
+ }
253
+ }
254
+ export class ExceptionHandled {
255
+ constructor(errorMessage) {
256
+ this.errorMessage = errorMessage;
257
+ this.type = AuthenticationActionTypes.ExceptionHandled;
258
+ }
259
+ }
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL3N0b3JlL2FjdGlvbnMvYXV0aGVudGljYXRpb24uYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLENBQU4sSUFBWSx5QkF1Q1g7QUF2Q0QsV0FBWSx5QkFBeUI7SUFDbkMscUdBQXdFLENBQUE7SUFDeEUsOEZBQWlFLENBQUE7SUFDakUsc0pBQXlILENBQUE7SUFDekgsbUtBQXNJLENBQUE7SUFDdEkscUtBQXdJLENBQUE7SUFDeEksdUZBQTBELENBQUE7SUFDMUQsNEdBQStFLENBQUE7SUFDL0UsMEdBQTZFLENBQUE7SUFDN0UseUhBQTRGLENBQUE7SUFDNUYsNElBQStHLENBQUE7SUFDL0csZ0lBQW1HLENBQUE7SUFDbkcsK0lBQWtILENBQUE7SUFDbEgsNkdBQWdGLENBQUE7SUFDaEYsMEhBQTZGLENBQUE7SUFDN0YsMEdBQTZFLENBQUE7SUFDN0UsdUhBQTBGLENBQUE7SUFDMUYsK0dBQWtGLENBQUE7SUFDbEYseUdBQTRFLENBQUE7SUFDNUUsNEhBQStGLENBQUE7SUFDL0YsdUhBQTBGLENBQUE7SUFDMUYsOElBQWlILENBQUE7SUFDakgsOElBQWlILENBQUE7SUFDakgsdUlBQTBHLENBQUE7SUFDMUcsdUhBQTBGLENBQUE7SUFDMUYsdUhBQTBGLENBQUE7SUFDMUYsaUhBQW9GLENBQUE7SUFDcEYsaUhBQW9GLENBQUE7SUFDcEYsbUhBQXNGLENBQUE7SUFDdEYsNkdBQWdGLENBQUE7SUFDaEYsc0hBQXlGLENBQUE7SUFDekYsc0hBQXlGLENBQUE7SUFDekYsZ0hBQW1GLENBQUE7SUFDbkYsc0dBQXlFLENBQUE7SUFDekUsNEdBQStFLENBQUE7SUFDL0UsNkhBQWdHLENB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LHlCQUF5QixDQUFDLGdCQUFnQixDQUFDO0lBRVAsQ0FBQztDQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlcic7XHJcbmltcG9ydCB7IEVudGl0eVJvbGVGZWF0dXJlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5Um9sZUZlYXR1cmUnO1xyXG5pbXBvcnQgeyBUaGVtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RoZW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU3RvcmVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdG9yZS1tb2RlbCc7XHJcbmltcG9ydCB7IFN0b3JlU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3RvcmUtc2VhcmNoLW1vZGVsJztcclxuaW1wb3J0IHsgQ29tcGFueXNldHRpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcGFueS1tb2RlbCc7XHJcblxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzIHtcclxuICBBdXRoZW50aWNhdGVVc2VyID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlIFVzZXJcIixcclxuICBBdXRoZW50aWNhdGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRcIixcclxuICBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIEZhaWxlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIFN1Y2Nlc3NcIixcclxuICBTaWduZWRPZmYgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBTaWduZWQgT2ZmXCIsXHJcbiAgVXNlckRldGFpbHNGZXRjaGluZyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFVzZXIgRGV0YWlsc1wiLFxyXG4gIFVzZXJEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzXCIsXHJcbiAgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBJbml0aWFsIERldGFpbHNcIixcclxuICBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIEluaXRpYWwgRGV0YWlscyBDb21wbGV0ZWRcIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIERldGFpbHMgQWZ0ZXIgTG9naW5cIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpbiA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzIEFmdGVyIENvbXBhbnkgTG9naW5cIixcclxuICBBdXRoZW50aWNhdGlvbkZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEF1dGhlbnRpY2F0aW9uIEZhaWxlZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkIE9uIFJlbG9hZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkXCIsXHJcbiAgSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gSW5pdGlhbGl6ZSBhZnRlciBsb2dpbiBkYXRhXCIsXHJcbiAgUm9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIFRyaWdnZXJlZFwiLFxyXG4gIFJvbGVzRmV0Y2hGYWlsZWQgPSAnW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIEZhaWxlZCcsXHJcbiAgRW50aXR5Um9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIEVudGl0eSBSb2xlcyBUcmlnZ2VyZWRcIixcclxuICBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFbnRpdHkgUm9sZSBEZXRhaWxzIEZldGNoZWRcIixcclxuICBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHkgUm9sZXMgQnkgVXNlcklkIFRyaWdnZXJlZFwiLFxyXG4gIEVudGl0eVJlb2xlc0J5VXNlcklkRmV0Y2hDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHlSb2xlcyBCeSBVc2VySWQgQ29tcGxldGVkXCIsXHJcbiAgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hpbmcgRW50aXR5Um9sZXMgQnkgVXNlcklkIEZhaWxlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIFRyaWdnZXJlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUNvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIENvbXBsZXRlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIEZhaWxlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFUcmlnZ3JlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBUcmlnZ3JlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBDbGVhciBEZW1vIERhdGEgQ29tcGxldGVkXCIsXHJcbiAgQ2xlYXJEZW1vRGF0YUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBGYWlsZWRcIixcclxuICBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgVHJpZ2dlcmVkJyxcclxuICBHZXRVc2VyU3RvcmVJZENvbXBsZXRlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgQ29tcGxldGVkJyxcclxuICBHZXRVc2VyU3RvcmVJZEZhaWxlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgRmFpbGVkJyxcclxuICBFeGNlcHRpb25IYW5kbGVkID0gJ1tTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFeGNlcHRpb24gSGFuZGxpbmcnLFxyXG4gIEF1dGhlbnRpY2F0ZU5ld1VzZXIgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBBdXRoZW50aWNhdGUgTmV3IFVzZXJcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBUcmlnZ2VyZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBDb21wbGV0ZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBGYWlsZWRcIixcclxuICBGZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHMgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgVGltZSBTaGVldCBCdXR0b24gRGV0YWlsc1wiXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGVVc2VyIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5BdXRoZW50aWNhdGVVc2VyO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRlTmV3VXNlciBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRlTmV3VXNlcjtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkF1dGhlbnRpY2F0ZWQ7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Db21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZDtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRTdWNjZXNzO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbikgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRpb25GYWlsZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2lnbmVkT2ZmIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5TaWduZWRPZmY7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckRldGFpbHNGZXRjaGVkO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW47XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJDb21wYW55TG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyQ29tcGFueUxvZ2luO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlckluaXRpYWxEYXRhOiBhbnkpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmV0Y2hUaW1lU2hlZXRCdXR0b25EZXRhaWxzIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5GZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHM7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hpbmcgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hpbmc7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGxvZ2luRGF0YTogYW55KSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZURldGFpbHNGZXRjaGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm9sZUZlYXR1cmVzOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb2xlRGV0YWlsc0ZldGNoT25SZWxvYWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVBZnRlckxvZ2luRGF0YSBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm9sZXNGZXRjaFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZXNGZXRjaFRyaWdnZXJlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVzRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVzRmV0Y2hGYWlsZWQ7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogc3RyaW5nW10pIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZywgcHVibGljIHJlcXVpcmVkVHlwZTogc3RyaW5nLCBwdWJsaWMgaXNTcHJpbnRUeXBlOiBib29sZWFuKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVudGl0eVR5cGVSb2xlRmVhdHVyZXM6IEVudGl0eVJvbGVGZWF0dXJlTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5VHlwZVJvbGVGZWF0dXJlczogRW50aXR5Um9sZUZlYXR1cmVNb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzQnlVc2VySWRGZXRjaEZhaWxlZDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhVHJpZ2dyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFUcmlnZ3JlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aGVtZU1vZGVsOiBUaGVtZU1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdldENvbXBhbnlUaGVtZUZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0Q29tcGFueVRoZW1lRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0VXNlclN0b3JlSWRUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWFyY2hVc2VyU3RvcmVEZXRhaWxzTW9kZWw6IFN0b3JlU2VhcmNoTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0VXNlclN0b3JlSWRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldFVzZXJTdG9yZUlkQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclN0b3JlRGV0YWlsczogU3RvcmVNb2RlbCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55U2V0dGluZ3NNb2RlbDogQ29tcGFueXNldHRpbmdzTW9kZWwpIHsgfVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldENvbXBhbnlTZXR0aW5nc0NvbXBsZXRlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBhbnlTZXR0aW5nc01vZGVsOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NGYWlsZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZXM6IFZhbGlkYXRpb25Nb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEdldFVzZXJTdG9yZUlkRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRVc2VyU3RvcmVJZEZhaWxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogYW55W10pIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXhjZXB0aW9uSGFuZGxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuRXhjZXB0aW9uSGFuZGxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25BY3Rpb25zID1cclxuICB8IEF1dGhlbnRpY2F0ZVVzZXJcclxuICB8IEF1dGhlbnRpY2F0ZWRcclxuICB8IFNpZ25lZE9mZlxyXG4gIHwgVXNlckRldGFpbHNGZXRjaGluZ1xyXG4gIHwgVXNlckRldGFpbHNGZXRjaGVkXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpblxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZFxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZFxyXG4gIHwgQXV0aGVudGljYXRpb25GYWlsZWRcclxuICB8IENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkXHJcbiAgfCBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFN1Y2Nlc3NcclxuICB8IEF1dGhlbnRpY2F0ZU5ld1VzZXJcclxuIl19
@@ -0,0 +1,248 @@
1
+ export var MessageActionTypes;
2
+ (function (MessageActionTypes) {
3
+ // Message Sending from chat-web to shell
4
+ MessageActionTypes["MessageTriggered"] = "[Snovasys-Shell] [chat-web-module] MessageTriggered";
5
+ MessageActionTypes["MessageCompleted"] = "[Snovasys-Shell] [chat-web-module] MessageCompleted";
6
+ MessageActionTypes["MessageFailed"] = "[Snovasys-Shell] [chat-web-module] MessageFailed";
7
+ //Message Receiving shell to chat-web
8
+ MessageActionTypes["ReceiveMessageTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageTriggered";
9
+ MessageActionTypes["ReceiveMessageCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageCompleted";
10
+ MessageActionTypes["ReceiveMessageFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageFailed";
11
+ // Newly joined people status
12
+ MessageActionTypes["PresenceEventTriggered"] = "[Snovasys-Shell] [chat-web-module] PresenceEventTriggered";
13
+ MessageActionTypes["PresenceEventCompleted"] = "[Snovasys-Shell] [chat-web-module] PresenceEventCompleted";
14
+ MessageActionTypes["PresenceEventFailed"] = "[Snovasys-Shell] [chat-web-module] PresenceEventFailed";
15
+ // Message Unread Count of Shell
16
+ MessageActionTypes["CountTriggered"] = "[Snovasys-Shell] [chat-web-module] CountTriggered";
17
+ MessageActionTypes["CountCompleted"] = "[Snovasys-Shell] [chat-web-module] CountCompleted";
18
+ MessageActionTypes["CountFailed"] = "[Snovasys-Shell] [chat-web-module] CountFailed";
19
+ //Previously joined people status
20
+ MessageActionTypes["InitalStateOfUsersTriggered"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersTriggered";
21
+ MessageActionTypes["InitalStateOfUsersCompleted"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersCompleted";
22
+ MessageActionTypes["InitalStateOfUsersFailed"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersFailed";
23
+ //When we open the chat-web messenger this trigger will hit
24
+ MessageActionTypes["RequestingStateOfUsersTriggered"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersTriggered";
25
+ MessageActionTypes["RequestingStateOfUsersCompleted"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersCompleted";
26
+ MessageActionTypes["RequestingStateOfUsersFailed"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersFailed";
27
+ //Sending TOpic details (chat-web to shell)
28
+ MessageActionTypes["SendChannelUpdateModelTriggered"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelTriggered";
29
+ MessageActionTypes["SendChannelUpdateModelCompleted"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelCompleted";
30
+ MessageActionTypes["SendChannelUpdateModelFailed"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelFailed";
31
+ //Receiving Topic details (shell to chat-web)
32
+ MessageActionTypes["ReceiveChannelUpdateModelTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelTriggered";
33
+ MessageActionTypes["ReceiveChannelUpdateModelCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelCompleted";
34
+ MessageActionTypes["ReceiveChannelUpdateModelFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelFailed";
35
+ //Sending Typing model (chat-web to shell)
36
+ MessageActionTypes["SendingSignalTriggered"] = "[Snovasys-Shell] [chat-web-module] SendingSignalTriggered";
37
+ MessageActionTypes["SendingSignalCompleted"] = "[Snovasys-Shell] [chat-web-module] SendingSignalCompleted";
38
+ MessageActionTypes["SendingSignalFailed"] = "[Snovasys-Shell] [chat-web-module] SendingSignalFailed";
39
+ //Receiving SignalEvent response (shell to chat-web)
40
+ MessageActionTypes["ReceiveSignalTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalTriggered";
41
+ MessageActionTypes["ReceiveSignalCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalCompleted";
42
+ MessageActionTypes["ReceiveSignalFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalFailed";
43
+ })(MessageActionTypes || (MessageActionTypes = {}));
44
+ export class MessageTriggered {
45
+ constructor(messageDetails) {
46
+ this.messageDetails = messageDetails;
47
+ this.type = MessageActionTypes.MessageTriggered;
48
+ }
49
+ }
50
+ export class MessageCompleted {
51
+ constructor(messageDetails) {
52
+ this.messageDetails = messageDetails;
53
+ this.type = MessageActionTypes.MessageCompleted;
54
+ }
55
+ }
56
+ export class MessageFailed {
57
+ constructor(errorMessage) {
58
+ this.errorMessage = errorMessage;
59
+ this.type = MessageActionTypes.MessageFailed;
60
+ }
61
+ }
62
+ export class ReceiveMessageTriggered {
63
+ constructor(messageDetails) {
64
+ this.messageDetails = messageDetails;
65
+ this.type = MessageActionTypes.ReceiveMessageTriggered;
66
+ }
67
+ }
68
+ export class ReceiveMessageCompleted {
69
+ constructor(messageDetails) {
70
+ this.messageDetails = messageDetails;
71
+ this.type = MessageActionTypes.ReceiveMessageCompleted;
72
+ }
73
+ }
74
+ export class ReceiveMessageFailed {
75
+ constructor(errorMessage) {
76
+ this.errorMessage = errorMessage;
77
+ this.type = MessageActionTypes.ReceiveMessageFailed;
78
+ }
79
+ }
80
+ export class PresenceEventTriggered {
81
+ constructor(employeeStatusModel) {
82
+ this.employeeStatusModel = employeeStatusModel;
83
+ this.type = MessageActionTypes.PresenceEventTriggered;
84
+ }
85
+ ;
86
+ }
87
+ export class PresenceEventCompleted {
88
+ constructor(employeeStatusModel) {
89
+ this.employeeStatusModel = employeeStatusModel;
90
+ this.type = MessageActionTypes.PresenceEventCompleted;
91
+ }
92
+ ;
93
+ }
94
+ export class PresenceEventFailed {
95
+ constructor(errorMessage) {
96
+ this.errorMessage = errorMessage;
97
+ this.type = MessageActionTypes.PresenceEventFailed;
98
+ }
99
+ ;
100
+ }
101
+ export class CountTriggered {
102
+ constructor(messageCount) {
103
+ this.messageCount = messageCount;
104
+ this.type = MessageActionTypes.CountTriggered;
105
+ }
106
+ ;
107
+ }
108
+ export class CountCompleted {
109
+ constructor(messageCount) {
110
+ this.messageCount = messageCount;
111
+ this.type = MessageActionTypes.CountCompleted;
112
+ }
113
+ ;
114
+ }
115
+ export class CountFailed {
116
+ constructor(errorMessage) {
117
+ this.errorMessage = errorMessage;
118
+ this.type = MessageActionTypes.CountFailed;
119
+ }
120
+ ;
121
+ }
122
+ export class InitalStateOfUsersTriggered {
123
+ constructor(initialStatusOfUsers) {
124
+ this.initialStatusOfUsers = initialStatusOfUsers;
125
+ this.type = MessageActionTypes.InitalStateOfUsersTriggered;
126
+ }
127
+ ;
128
+ }
129
+ export class InitalStateOfUsersCompleted {
130
+ constructor(initialStatusOfUsers) {
131
+ this.initialStatusOfUsers = initialStatusOfUsers;
132
+ this.type = MessageActionTypes.InitalStateOfUsersCompleted;
133
+ }
134
+ ;
135
+ }
136
+ export class InitalStateOfUsersFailed {
137
+ constructor(errorMessage) {
138
+ this.errorMessage = errorMessage;
139
+ this.type = MessageActionTypes.InitalStateOfUsersFailed;
140
+ }
141
+ ;
142
+ }
143
+ export class RequestingStateOfUsersTriggered {
144
+ constructor(gotColleagues) {
145
+ this.gotColleagues = gotColleagues;
146
+ this.type = MessageActionTypes.RequestingStateOfUsersTriggered;
147
+ }
148
+ ;
149
+ }
150
+ export class RequestingStateOfUsersCompleted {
151
+ constructor(gotColleagues) {
152
+ this.gotColleagues = gotColleagues;
153
+ this.type = MessageActionTypes.RequestingStateOfUsersCompleted;
154
+ }
155
+ ;
156
+ }
157
+ export class RequestingStateOfUsersFailed {
158
+ constructor(errorMessage) {
159
+ this.errorMessage = errorMessage;
160
+ this.type = MessageActionTypes.RequestingStateOfUsersFailed;
161
+ }
162
+ ;
163
+ }
164
+ export class SendChannelUpdateModelTriggered {
165
+ constructor(channelUpdateModel) {
166
+ this.channelUpdateModel = channelUpdateModel;
167
+ this.type = MessageActionTypes.SendChannelUpdateModelTriggered;
168
+ }
169
+ ;
170
+ }
171
+ export class SendChannelUpdateModelCompleted {
172
+ constructor(channelUpdateModel) {
173
+ this.channelUpdateModel = channelUpdateModel;
174
+ this.type = MessageActionTypes.SendChannelUpdateModelCompleted;
175
+ }
176
+ ;
177
+ }
178
+ export class SendChannelUpdateModelFailed {
179
+ constructor(errorMessage) {
180
+ this.errorMessage = errorMessage;
181
+ this.type = MessageActionTypes.SendChannelUpdateModelFailed;
182
+ }
183
+ ;
184
+ }
185
+ export class ReceiveChannelUpdateModelTriggered {
186
+ constructor(channelUpdateModel) {
187
+ this.channelUpdateModel = channelUpdateModel;
188
+ this.type = MessageActionTypes.ReceiveChannelUpdateModelTriggered;
189
+ }
190
+ ;
191
+ }
192
+ export class ReceiveChannelUpdateModelCompleted {
193
+ constructor(channelUpdateModel) {
194
+ this.channelUpdateModel = channelUpdateModel;
195
+ this.type = MessageActionTypes.ReceiveChannelUpdateModelCompleted;
196
+ }
197
+ ;
198
+ }
199
+ export class ReceiveChannelUpdateModelFailed {
200
+ constructor(errorMessage) {
201
+ this.errorMessage = errorMessage;
202
+ this.type = MessageActionTypes.ReceiveChannelUpdateModelFailed;
203
+ }
204
+ ;
205
+ }
206
+ export class SendingSignalTriggered {
207
+ constructor(messageTypingDetails) {
208
+ this.messageTypingDetails = messageTypingDetails;
209
+ this.type = MessageActionTypes.SendingSignalTriggered;
210
+ }
211
+ ;
212
+ }
213
+ export class SendingSignalCompleted {
214
+ constructor(messageTypingDetails) {
215
+ this.messageTypingDetails = messageTypingDetails;
216
+ this.type = MessageActionTypes.SendingSignalCompleted;
217
+ }
218
+ ;
219
+ }
220
+ export class SendingSignalFailed {
221
+ constructor(errorMessage) {
222
+ this.errorMessage = errorMessage;
223
+ this.type = MessageActionTypes.SendingSignalFailed;
224
+ }
225
+ ;
226
+ }
227
+ export class ReceiveSignalTriggered {
228
+ constructor(messageTypingDetails) {
229
+ this.messageTypingDetails = messageTypingDetails;
230
+ this.type = MessageActionTypes.ReceiveSignalTriggered;
231
+ }
232
+ ;
233
+ }
234
+ export class ReceiveSignalCompleted {
235
+ constructor(messageTypingDetails) {
236
+ this.messageTypingDetails = messageTypingDetails;
237
+ this.type = MessageActionTypes.ReceiveSignalCompleted;
238
+ }
239
+ ;
240
+ }
241
+ export class ReceiveSignalFailed {
242
+ constructor(errorMessage) {
243
+ this.errorMessage = errorMessage;
244
+ this.type = MessageActionTypes.ReceiveMessageFailed;
245
+ }
246
+ ;
247
+ }
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc3RvcmUvYWN0aW9ucy9jaGF0LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFOLElBQVksa0JBeUNYO0FBekNELFdBQVksa0JBQWtCO0lBQzVCLHlDQUF5QztJQUN6Qyw4RkFBd0UsQ0FBQTtJQUN4RSw4RkFBd0UsQ0FBQTtJQUN4RSx3RkFBa0UsQ0FBQTtJQUNsRSxxQ0FBcUM7SUFDckMsNEdBQXNGLENBQUE7SUFDdEYsNEdBQXNGLENBQUE7SUFDdEYsc0dBQWdGLENBQUE7SUFDaEYsNkJBQTZCO0lBQzdCLDJHQUFxRixDQUFBO0lBQ3JGLDBHQUFvRixDQUFBO0lBQ3BGLG9HQUE4RSxDQUFBO0lBQzlFLGdDQUFnQztJQUNoQywwRkFBb0UsQ0FBQTtJQUNwRSwwRkFBb0UsQ0FBQTtJQUNwRSxvRkFBOEQsQ0FBQTtJQUM5RCxpQ0FBaUM7SUFDakMscUhBQStGLENBQUE7SUFDL0YscUhBQStGLENBQUE7SUFDL0YsOEdBQXdGLENBQUE7SUFDeEYsMkRBQTJEO0lBQzNELDRIQUFzRyxDQUFBO0lBQ3RHLDRIQUFzRyxDQUFBO0lBQ3RHLHNIQUFnRyxDQUFBO0lBQ2hHLDJDQUEyQztJQUMzQyw0SEFBc0csQ0FBQTtJQUN0Ryw0SEFBc0csQ0FBQTtJQUN0RyxzSEFBZ0csQ0FBQTtJQUNoRyw2Q0FBNkM7SUFDN0MsbUlBQTZHLENBQUE7SUFDN0csbUlBQTZHLENBQUE7SUFDN0csNkhBQXVHLENBQUE7SUFDdkcsMENBQTBDO0lBQzFDLDBHQUFvRixDQUFBO0lBQ3BGLDBHQUFvRixDQUFBO0lBQ3BGLG9HQUE4RSxDQUFBO0lBQzlFLG9EQUFvRDtJQUNwRCwwR0FBb0YsQ0FBQTtJQUNwRiwwR0FBb0Ys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QWtCLENBQUMsbUJBQW1CLENBQUM7SUFTSCxDQUFDO0lBQUEsQ0FBQztDQUNoRDtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFVL0IsWUFBbUIsb0JBQXlDO1FBQXpDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFUNUQsU0FBSSxHQUFHLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO0lBU2UsQ0FBQztJQUFBLENBQUM7Q0FDckU7QUFDRCxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CLFlBQW1CLG9CQUF5QztRQUF6Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBVDVELFNBQUksR0FBRyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQztJQVNlLENBQUM7SUFBQSxDQUFDO0NBQ3JFO0FBQ0QsTUFBTSxPQUFPLG1CQUFtQjtJQVU1QixZQUFtQixZQUFvQjtRQUFwQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQVR2QyxTQUFJLEdBQUcsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7SUFTSixDQUFDO0lBQUEsQ0FBQztDQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlRGV0YWlscyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvTWVzc2FnZURldGFpbHNcIjtcclxuaW1wb3J0IHsgRW1wbG95ZWVTdGF0dXNNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvRW1wbG95ZWVTdGF0dXNNb2RlbFwiO1xyXG5pbXBvcnQgeyBJbml0aWFsU3RhdHVzT2ZVc2VycyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaW5pdGlhbFN0YXR1c29mVXNlcnNcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFVwZGF0ZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9DaGFubmVsVXBkYXRlTW9kZWxcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVR5cGluZ0RldGFpbHN9IGZyb20gJy4uLy4uL21vZGVscy9NZXNzYWdlVHlwaW5nRGV0YWlscyc7XHJcblxyXG5cclxuZXhwb3J0IGVudW0gTWVzc2FnZUFjdGlvblR5cGVzIHtcclxuICAvLyBNZXNzYWdlIFNlbmRpbmcgZnJvbSBjaGF0LXdlYiB0byBzaGVsbFxyXG4gIE1lc3NhZ2VUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZVRyaWdnZXJlZFwiLFxyXG4gIE1lc3NhZ2VDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZUNvbXBsZXRlZFwiLFxyXG4gIE1lc3NhZ2VGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZUZhaWxlZFwiLFxyXG4gIC8vTWVzc2FnZSBSZWNlaXZpbmcgc2hlbGwgdG8gY2hhdC13ZWJcclxuICBSZWNlaXZlTWVzc2FnZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBSZWNlaXZlTWVzc2FnZVRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkXCIsXHJcbiAgUmVjZWl2ZU1lc3NhZ2VGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZU1lc3NhZ2VGYWlsZWRcIixcclxuICAvLyBOZXdseSBqb2luZWQgcGVvcGxlIHN0YXR1c1xyXG4gIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWRcIixcclxuICBQcmVzZW5jZUV2ZW50Q29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRDb21wbGV0ZWRcIixcclxuICBQcmVzZW5jZUV2ZW50RmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRGYWlsZWRcIixcclxuICAvLyBNZXNzYWdlIFVucmVhZCBDb3VudCBvZiBTaGVsbFxyXG4gIENvdW50VHJpZ2dlcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIENvdW50VHJpZ2dlcmVkXCIsXHJcbiAgQ291bnRDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gQ291bnRDb21wbGV0ZWRcIixcclxuICBDb3VudEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBDb3VudEZhaWxlZFwiLFxyXG4gIC8vUHJldmlvdXNseSBqb2luZWQgcGVvcGxlIHN0YXR1c1xyXG4gIEluaXRhbFN0YXRlT2ZVc2Vyc1RyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSAgSW5pdGFsU3RhdGVPZlVzZXJzVHJpZ2dlcmVkXCIsXHJcbiAgSW5pdGFsU3RhdGVPZlVzZXJzQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdICBJbml0YWxTdGF0ZU9mVXNlcnNDb21wbGV0ZWRcIixcclxuICBJbml0YWxTdGF0ZU9mVXNlcnNGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gSW5pdGFsU3RhdGVPZlVzZXJzRmFpbGVkXCIsXHJcbiAgLy9XaGVuIHdlIG9wZW4gdGhlIGNoYXQtd2ViIG1lc3NlbmdlciB0aGlzIHRyaWdnZXIgd2lsbCBoaXRcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzVHJpZ2dlcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWRcIixcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNDb21wbGV0ZWRcIixcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNGYWlsZWRcIixcclxuICAvL1NlbmRpbmcgVE9waWMgZGV0YWlscyAoY2hhdC13ZWIgdG8gc2hlbGwpXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkXCIsXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbENvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkXCIsXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkXCIsXHJcbiAgLy9SZWNlaXZpbmcgVG9waWMgZGV0YWlscyAoc2hlbGwgdG8gY2hhdC13ZWIpXHJcbiAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWRcIixcclxuICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkXCIsXHJcbiAgLy9TZW5kaW5nIFR5cGluZyBtb2RlbCAoY2hhdC13ZWIgdG8gc2hlbGwpXHJcbiAgU2VuZGluZ1NpZ25hbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsVHJpZ2dlcmVkXCIsXHJcbiAgU2VuZGluZ1NpZ25hbENvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsQ29tcGxldGVkXCIsXHJcbiAgU2VuZGluZ1NpZ25hbEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsRmFpbGVkXCIsXHJcbiAgLy9SZWNlaXZpbmcgU2lnbmFsRXZlbnQgcmVzcG9uc2UgKHNoZWxsIHRvIGNoYXQtd2ViKVxyXG4gIFJlY2VpdmVTaWduYWxUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbFRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVTaWduYWxDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbENvbXBsZXRlZFwiLFxyXG4gIFJlY2VpdmVTaWduYWxGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbEZhaWxlZFwiLFxyXG59XHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuTWVzc2FnZVRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZUZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLk1lc3NhZ2VGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH1cclxufVxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZVRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUNvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBQcmVzZW5jZUV2ZW50VHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuUHJlc2VuY2VFdmVudFRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWwpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByZXNlbmNlRXZlbnRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5QcmVzZW5jZUV2ZW50Q29tcGxldGVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbCkgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJlc2VuY2VFdmVudEZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlByZXNlbmNlRXZlbnRGYWlsZWQ7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb3VudFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkNvdW50VHJpZ2dlcmVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcikgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ291bnRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5Db3VudENvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXIpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvdW50RmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuQ291bnRGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbml0YWxTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5Jbml0YWxTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIEluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnMpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRhbFN0YXRlT2ZVc2Vyc0ZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkluaXRhbFN0YXRlT2ZVc2Vyc0ZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc1RyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZXF1ZXN0aW5nU3RhdGVPZlVzZXJzQ29tcGxldGVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbikgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc0ZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzICBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhblxyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWwpIHsgfTtcclxufVxyXG5leHBvcnQgY2xhc3MgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy4gU2VuZENoYW5uZWxVcGRhdGVNb2RlbENvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuXHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbCkgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy4gU2VuZENoYW5uZWxVcGRhdGVNb2RlbEZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbFxyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZykgeyB9O1xyXG59XHJcbmV4cG9ydCBjbGFzcyAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLiBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW5cclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhblxyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWwpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWxcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlY2VpdmVTaWduYWxUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlY2VpdmVTaWduYWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlY2VpdmVTaWduYWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlY2VpdmVTaWduYWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscykgeyB9O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWNlaXZlU2lnbmFsRmFpbGVkIGltcGxlbWVudHMgQWN0aW9ue1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5leHBvcnQgdHlwZSBDaGF0V2ViQWN0aW9ucyA9IE1lc3NhZ2VUcmlnZ2VyZWQgfFxyXG4gICAgTWVzc2FnZUNvbXBsZXRlZCB8XHJcbiAgICBNZXNzYWdlRmFpbGVkIHxcclxuICAgIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWQgfFxyXG4gICAgUHJlc2VuY2VFdmVudENvbXBsZXRlZCB8XHJcbiAgICBQcmVzZW5jZUV2ZW50RmFpbGVkIHxcclxuICAgIENvdW50VHJpZ2dlcmVkIHxcclxuICAgIENvdW50Q29tcGxldGVkIHxcclxuICAgIENvdW50RmFpbGVkIHxcclxuICAgIEluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZCB8XHJcbiAgICBJbml0YWxTdGF0ZU9mVXNlcnNGYWlsZWQgfFxyXG4gICAgSW5pdGFsU3RhdGVPZlVzZXJzVHJpZ2dlcmVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlRmFpbGVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlVHJpZ2dlcmVkIHxcclxuICAgIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQgfFxyXG4gICAgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc0NvbXBsZXRlZCB8XHJcbiAgICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzRmFpbGVkIHxcclxuICAgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWR8XHJcbiAgICBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkfFxyXG4gICAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCB8XHJcbiAgICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkIHxcclxuICAgIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQgfFxyXG4gICAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCB8XHJcbiAgICBTZW5kaW5nU2lnbmFsQ29tcGxldGVkfFxyXG4gICAgU2VuZGluZ1NpZ25hbEZhaWxlZHxcclxuICAgIFNlbmRpbmdTaWduYWxUcmlnZ2VyZWR8XHJcbiAgICBSZWNlaXZlU2lnbmFsVHJpZ2dlcmVkfFxyXG4gICAgUmVjZWl2ZVNpZ25hbENvbXBsZXRlZHxcclxuICAgIFJlY2VpdmVTaWduYWxGYWlsZWRcclxuXHJcbiJdfQ==