@magic-xpa/engine 4.800.0 → 4.801.0-dev000.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/esm2020/index.mjs +190 -0
  2. package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
  3. package/esm2020/src/AccessHelper.mjs +3 -0
  4. package/esm2020/src/ClientManager.mjs +403 -0
  5. package/esm2020/src/CommandsProcessorBase.mjs +58 -0
  6. package/esm2020/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2020/src/CommandsTable.mjs +163 -0
  8. package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
  9. package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
  10. package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
  11. package/esm2020/src/GUIManager.mjs +63 -0
  12. package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
  13. package/esm2020/src/GuiEventsProcessor.mjs +171 -0
  14. package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
  15. package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
  16. package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
  17. package/esm2020/src/bridge/MagicBridge.mjs +41 -0
  18. package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
  19. package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
  20. package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
  21. package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
  22. package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -0
  23. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs +15 -0
  24. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
  25. package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -0
  26. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
  27. package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
  28. package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -0
  29. package/esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +21 -0
  30. package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +20 -0
  31. package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
  32. package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
  33. package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +2 -2
  34. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +36 -0
  35. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +40 -0
  36. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
  37. package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
  38. package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
  39. package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
  40. package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -0
  41. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
  42. package/esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -0
  43. package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +21 -0
  44. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
  45. package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
  46. package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
  47. package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +39 -0
  48. package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
  49. package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
  50. package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -0
  51. package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
  52. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +28 -0
  53. package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
  54. package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
  55. package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
  56. package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
  57. package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
  58. package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
  59. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
  61. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
  64. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
  65. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
  67. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
  68. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
  69. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
  70. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
  72. package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
  73. package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
  74. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
  75. package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
  76. package/esm2020/src/data/DataView.mjs +1634 -0
  77. package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
  78. package/esm2020/src/data/DataviewManager.mjs +28 -0
  79. package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
  80. package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
  81. package/esm2020/src/data/Field.mjs +645 -0
  82. package/esm2020/src/data/FieldBase.mjs +18 -0
  83. package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
  84. package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
  85. package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
  86. package/esm2020/src/data/Record.mjs +846 -0
  87. package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
  88. package/esm2020/src/data/RecordsTable.mjs +267 -0
  89. package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
  90. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
  91. package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
  92. package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2020/src/env/Environment.mjs +554 -0
  94. package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
  95. package/esm2020/src/env/LanguageData.mjs +222 -0
  96. package/esm2020/src/env/MirrorString.mjs +66 -0
  97. package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
  98. package/esm2020/src/event/Event.mjs +1436 -0
  99. package/esm2020/src/event/EventHandler.mjs +773 -0
  100. package/esm2020/src/event/EventHandlerPosition.mjs +201 -0
  101. package/esm2020/src/event/EventsManager.mjs +2983 -0
  102. package/esm2020/src/event/IEventsManager.mjs +7 -0
  103. package/esm2020/src/event/RunTimeEvent.mjs +406 -0
  104. package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
  105. package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
  106. package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
  107. package/esm2020/src/exp/Expression.mjs +200 -0
  108. package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
  109. package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
  110. package/esm2020/src/exp/ExpressionLocalJpn.mjs +314 -0
  111. package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2020/src/exp/YesNoExp.mjs +41 -0
  113. package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
  114. package/esm2020/src/gui/FormsTable.mjs +66 -0
  115. package/esm2020/src/gui/MgControl.mjs +357 -0
  116. package/esm2020/src/gui/MgForm.mjs +1195 -0
  117. package/esm2020/src/http/HttpManager.mjs +97 -0
  118. package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
  119. package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
  120. package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
  121. package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
  122. package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
  123. package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
  124. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
  128. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
  131. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
  132. package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
  133. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
  134. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
  136. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/esm2020/src/remote/ServerError.mjs +44 -0
  138. package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
  139. package/esm2020/src/rt/Argument.mjs +274 -0
  140. package/esm2020/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2020/src/rt/Boundary.mjs +158 -0
  142. package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
  143. package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
  144. package/esm2020/src/rt/DataviewHeaderFactory.mjs +7 -0
  145. package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
  146. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +39 -0
  147. package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
  148. package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
  149. package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
  150. package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
  151. package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
  152. package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
  153. package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
  154. package/esm2020/src/rt/Operation.mjs +745 -0
  155. package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
  156. package/esm2020/src/rt/Recompute.mjs +355 -0
  157. package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
  158. package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
  159. package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
  160. package/esm2020/src/rt/TableCache.mjs +177 -0
  161. package/esm2020/src/rt/TableCacheManager.mjs +67 -0
  162. package/esm2020/src/rt/Transaction.mjs +54 -0
  163. package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
  164. package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
  165. package/esm2020/src/tasks/MGData.mjs +552 -0
  166. package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
  167. package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
  168. package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
  169. package/esm2020/src/tasks/RemoteTaskService.mjs +45 -0
  170. package/esm2020/src/tasks/Task.mjs +2501 -0
  171. package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
  172. package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
  173. package/esm2020/src/tasks/TasksTable.mjs +80 -0
  174. package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
  175. package/esm2020/src/tasks/sort/SortCollection.mjs +72 -0
  176. package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
  177. package/{esm2015/src/util/FlowMonitorQueue.js → esm2020/src/util/FlowMonitorQueue.mjs} +15 -18
  178. package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
  179. package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
  180. package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
  181. package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
  182. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
  183. package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
  184. package/esm2020/src/util/ParamParseResult.mjs +8 -0
  185. package/esm2020/src/util/PrmMap.mjs +151 -0
  186. package/esm2020/src/util/Process.mjs +7 -0
  187. package/esm2020/src/util/ReturnResult.mjs +46 -0
  188. package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
  189. package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
  190. package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
  191. package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
  192. package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +267 -254
  193. package/fesm2015/magic-xpa-engine.mjs.map +1 -0
  194. package/fesm2020/magic-xpa-engine.mjs +30705 -0
  195. package/fesm2020/magic-xpa-engine.mjs.map +1 -0
  196. package/index.d.ts +2 -0
  197. package/package.json +27 -13
  198. package/src/AccessHelper.d.ts +1 -1
  199. package/src/CommandsProcessorBase.d.ts +3 -3
  200. package/src/GuiEventsProcessor.d.ts +1 -1
  201. package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +1 -2
  202. package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +1 -2
  203. package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +1 -2
  204. package/src/commands/ClientToServer/ComputeEventCommand.d.ts +1 -2
  205. package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +1 -2
  206. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +1 -2
  207. package/src/commands/ClientToServer/DataviewCommand.d.ts +1 -2
  208. package/src/commands/ClientToServer/EvaluateCommand.d.ts +1 -2
  209. package/src/commands/ClientToServer/EventCommand.d.ts +1 -2
  210. package/src/commands/ClientToServer/ExecOperCommand.d.ts +1 -2
  211. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -2
  212. package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +1 -2
  213. package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +1 -2
  214. package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +1 -2
  215. package/src/commands/ClientToServer/QueryCommand.d.ts +1 -2
  216. package/src/commands/ClientToServer/RecomputeCommand.d.ts +1 -2
  217. package/src/commands/ClientToServer/RefreshEventCommand.d.ts +1 -2
  218. package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +1 -2
  219. package/src/commands/ClientToServer/RollbackEventCommand.d.ts +1 -2
  220. package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +1 -2
  221. package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +1 -2
  222. package/src/commands/ClientToServer/TransactionCommand.d.ts +1 -2
  223. package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +1 -2
  224. package/src/commands/DataViewCommandBase.d.ts +2 -2
  225. package/src/commands/IClientTargetedCommand.d.ts +1 -1
  226. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
  227. package/src/data/FieldBase.d.ts +3 -3
  228. package/src/data/Record.d.ts +2 -9
  229. package/src/data/RecordsTable.d.ts +1 -2
  230. package/src/data/XMLBasedDcValuesBuilder.d.ts +1 -1
  231. package/src/env/EnvVariablesTable.d.ts +2 -15
  232. package/src/env/Environment.d.ts +0 -3
  233. package/src/env/MirrorString.d.ts +15 -0
  234. package/src/event/Event.d.ts +0 -3
  235. package/src/event/EventsManager.d.ts +7 -8
  236. package/src/event/IEventsManager.d.ts +5 -6
  237. package/src/exp/ExpressionEvaluator.d.ts +2 -2
  238. package/src/exp/ExpressionLocalJpn.d.ts +2 -2
  239. package/src/exp/GlobalParamsTable.d.ts +2 -1
  240. package/src/gui/MgControl.d.ts +0 -2
  241. package/src/gui/MgForm.d.ts +4 -4
  242. package/src/http/client/HttpClientAsync.d.ts +2 -2
  243. package/src/http/client/HttpClientBase.d.ts +3 -3
  244. package/src/http/client/HttpClientSync.d.ts +2 -2
  245. package/src/remote/RemoteCommandsProcessor.d.ts +1 -1
  246. package/src/rt/DataviewHeaderBase.d.ts +2 -2
  247. package/src/rt/DataviewHeaderFactory.d.ts +1 -1
  248. package/src/rt/Operation.d.ts +3 -1
  249. package/src/rt/RemoteDataviewHeader.d.ts +1 -2
  250. package/src/rt/Transaction.d.ts +1 -1
  251. package/src/tasks/RemoteTaskService.d.ts +2 -3
  252. package/src/tasks/Task.d.ts +1 -1
  253. package/src/tasks/TaskBase.d.ts +7 -7
  254. package/src/tasks/TaskServiceBase.d.ts +2 -4
  255. package/src/tasks/sort/SortCollection.d.ts +2 -3
  256. package/src/util/FlowMonitorQueue.d.ts +1 -1
  257. package/src/util/IMirrorXML.d.ts +1 -1
  258. package/src/util/ParamParseResult.d.ts +6 -0
  259. package/src/util/PrmMap.d.ts +0 -6
  260. package/src/util/Process.d.ts +1 -1
  261. package/bundles/magic-xpa-engine.umd.js +0 -38066
  262. package/bundles/magic-xpa-engine.umd.js.map +0 -1
  263. package/bundles/magic-xpa-engine.umd.min.js +0 -16
  264. package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
  265. package/esm2015/index.js +0 -188
  266. package/esm2015/src/AccessHelper.js +0 -3
  267. package/esm2015/src/ClientManager.js +0 -412
  268. package/esm2015/src/CommandsProcessorBase.js +0 -54
  269. package/esm2015/src/CommandsProcessorManager.js +0 -31
  270. package/esm2015/src/CommandsTable.js +0 -166
  271. package/esm2015/src/GUIManager.js +0 -72
  272. package/esm2015/src/GuiEventsProcessor.js +0 -171
  273. package/esm2015/src/bridge/MagicBridge.js +0 -44
  274. package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +0 -24
  275. package/esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js +0 -15
  276. package/esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js +0 -60
  277. package/esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js +0 -26
  278. package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
  279. package/esm2015/src/commands/ClientToServer/ComputeEventCommand.js +0 -23
  280. package/esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js +0 -21
  281. package/esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js +0 -20
  282. package/esm2015/src/commands/ClientToServer/EvaluateCommand.js +0 -36
  283. package/esm2015/src/commands/ClientToServer/EventCommand.js +0 -40
  284. package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +0 -67
  285. package/esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js +0 -22
  286. package/esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js +0 -21
  287. package/esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js +0 -23
  288. package/esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js +0 -23
  289. package/esm2015/src/commands/ClientToServer/QueryCommand.js +0 -21
  290. package/esm2015/src/commands/ClientToServer/RecomputeCommand.js +0 -27
  291. package/esm2015/src/commands/ClientToServer/RefreshEventCommand.js +0 -27
  292. package/esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js +0 -24
  293. package/esm2015/src/commands/ClientToServer/RollbackEventCommand.js +0 -39
  294. package/esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js +0 -21
  295. package/esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js +0 -24
  296. package/esm2015/src/commands/ClientToServer/TransactionCommand.js +0 -28
  297. package/esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js +0 -18
  298. package/esm2015/src/commands/DataViewCommandBase.js +0 -6
  299. package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
  300. package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
  301. package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
  302. package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
  303. package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
  304. package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
  305. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
  306. package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
  307. package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
  308. package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
  309. package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
  310. package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
  311. package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
  312. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
  313. package/esm2015/src/data/DataView.js +0 -1693
  314. package/esm2015/src/data/DataviewManager.js +0 -31
  315. package/esm2015/src/data/DataviewManagerBase.js +0 -18
  316. package/esm2015/src/data/Field.js +0 -672
  317. package/esm2015/src/data/FieldBase.js +0 -9
  318. package/esm2015/src/data/Record.js +0 -914
  319. package/esm2015/src/data/RecordsTable.js +0 -267
  320. package/esm2015/src/data/TaskTransactionManager.js +0 -110
  321. package/esm2015/src/data/XMLBasedDcValuesBuilder.js +0 -74
  322. package/esm2015/src/env/EnvVariablesTable.js +0 -408
  323. package/esm2015/src/env/Environment.js +0 -563
  324. package/esm2015/src/env/LanguageData.js +0 -230
  325. package/esm2015/src/event/Event.js +0 -1449
  326. package/esm2015/src/event/EventHandler.js +0 -787
  327. package/esm2015/src/event/EventHandlerPosition.js +0 -201
  328. package/esm2015/src/event/EventsManager.js +0 -3107
  329. package/esm2015/src/event/IEventsManager.js +0 -7
  330. package/esm2015/src/event/RunTimeEvent.js +0 -406
  331. package/esm2015/src/exp/Expression.js +0 -209
  332. package/esm2015/src/exp/ExpressionEvaluator.js +0 -4441
  333. package/esm2015/src/exp/ExpressionLocalJpn.js +0 -314
  334. package/esm2015/src/exp/GlobalParamsTable.js +0 -84
  335. package/esm2015/src/exp/YesNoExp.js +0 -44
  336. package/esm2015/src/gui/FormsTable.js +0 -73
  337. package/esm2015/src/gui/MgControl.js +0 -438
  338. package/esm2015/src/gui/MgForm.js +0 -1292
  339. package/esm2015/src/http/HttpManager.js +0 -100
  340. package/esm2015/src/http/client/HttpClientAsync.js +0 -72
  341. package/esm2015/src/http/client/HttpClientBase.js +0 -148
  342. package/esm2015/src/http/client/HttpClientSync.js +0 -47
  343. package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
  344. package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
  345. package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
  346. package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -903
  347. package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
  348. package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
  349. package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
  350. package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
  351. package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
  352. package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
  353. package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
  354. package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
  355. package/esm2015/src/remote/ServerError.js +0 -45
  356. package/esm2015/src/rt/Argument.js +0 -281
  357. package/esm2015/src/rt/ArgumentsList.js +0 -108
  358. package/esm2015/src/rt/Boundary.js +0 -161
  359. package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
  360. package/esm2015/src/rt/DataviewHeaderFactory.js +0 -7
  361. package/esm2015/src/rt/DataviewHeadersSaxHandler.js +0 -40
  362. package/esm2015/src/rt/Operation.js +0 -769
  363. package/esm2015/src/rt/Recompute.js +0 -372
  364. package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
  365. package/esm2015/src/rt/TableCache.js +0 -182
  366. package/esm2015/src/rt/TableCacheManager.js +0 -70
  367. package/esm2015/src/rt/Transaction.js +0 -54
  368. package/esm2015/src/tasks/MGData.js +0 -561
  369. package/esm2015/src/tasks/MGDataCollection.js +0 -270
  370. package/esm2015/src/tasks/RemoteTaskService.js +0 -45
  371. package/esm2015/src/tasks/Task.js +0 -2593
  372. package/esm2015/src/tasks/TaskServiceBase.js +0 -30
  373. package/esm2015/src/tasks/TasksTable.js +0 -87
  374. package/esm2015/src/tasks/sort/SortCollection.js +0 -72
  375. package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
  376. package/esm2015/src/util/PrmMap.js +0 -157
  377. package/esm2015/src/util/Process.js +0 -7
  378. package/esm2015/src/util/ReturnResult.js +0 -46
  379. package/fesm2015/magic-xpa-engine.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ import { EventCommand } from './EventCommand';
2
+ import { CommandSerializationHelper } from './CommandSerializationHelper';
3
+ import { InternalInterface } from '@magic-xpa/utils';
4
+ import { ConstInterface } from '../../ConstInterface';
5
+ import { NString, isNullOrUndefined } from '@magic-xpa/mscorelib';
6
+ export class BrowserEscEventCommand extends EventCommand {
7
+ constructor() {
8
+ super(InternalInterface.MG_ACT_BROWSER_ESC);
9
+ this.CloseSubformOnly = false;
10
+ }
11
+ SerializeCommandData() {
12
+ let helper = new CommandSerializationHelper();
13
+ helper.SerializeTaskTag(this.TaskTag);
14
+ helper.SerializeMagicEvent(this.MagicEvent);
15
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
16
+ helper.SerializeCloseSubformOnly(this.CloseSubformOnly);
17
+ return helper.GetString();
18
+ }
19
+ getCommandInfo() {
20
+ return NString.Format('[{0}{1} in {2}]', this.EventDescription, this.CloseSubformOnly ? ' Subform Only' : NString.Empty, isNullOrUndefined(this.Task) ? NString.Empty : this.Task.getTaskInfo());
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3NlckVzY0V2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQnJvd3NlckVzY0V2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUloRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQU90RDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBTjlDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztJQU9sQyxDQUFDO0lBUUQsb0JBQW9CO1FBQ2xCLElBQUksTUFBTSxHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUN0RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50Q29tbWFuZH0gZnJvbSAnLi9FdmVudENvbW1hbmQnO1xyXG5pbXBvcnQge0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyfSBmcm9tICcuL0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyJztcclxuaW1wb3J0IHtJbnRlcm5hbEludGVyZmFjZX0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gJy4uLy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHtOU3RyaW5nLCBpc051bGxPclVuZGVmaW5lZH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tICcuLi9JQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEJyb3dzZXJFc2NFdmVudENvbW1hbmQgZXh0ZW5kcyBFdmVudENvbW1hbmQgaW1wbGVtZW50cyBJQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyB7XHJcblxyXG4gIENsb3NlU3ViZm9ybU9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9CUk9XU0VSX0VTQyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGFzQ2hpbGRFbGVtZW50c1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVBdHRyaWJ1dGUoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9PQkpFQ1QsIFwiMVwiKTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVDbG9zZVN1YmZvcm1Pbmx5KHRoaXMuQ2xvc2VTdWJmb3JtT25seSk7XHJcblxyXG4gICAgcmV0dXJuIGhlbHBlci5HZXRTdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGdldENvbW1hbmRJbmZvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoJ1t7MH17MX0gaW4gezJ9XSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHRoaXMuRXZlbnREZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdGhpcy5DbG9zZVN1YmZvcm1Pbmx5ID8gJyBTdWJmb3JtIE9ubHknIDogTlN0cmluZy5FbXB0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuVGFzaykgPyBOU3RyaW5nLkVtcHR5IDogdGhpcy5UYXNrLmdldFRhc2tJbmZvKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,15 @@
1
+ export class ClientOriginatedCommand {
2
+ get ShouldSerialize() {
3
+ return true;
4
+ }
5
+ get ShouldSerializeRecords() {
6
+ return true;
7
+ }
8
+ SerializeCommandData() {
9
+ return null;
10
+ }
11
+ SerializeDataAfterCommand() {
12
+ return null;
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsdUJBQXVCO0lBVTNDLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBTUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL0lDbGllbnRDb21tYW5kXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBiYXNlIGNsYXNzIGZvciBjb21tYW5kcyBjcmVhdGVkIGluIHRoZSBjbGllbnRcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsaWVudE9yaWdpbmF0ZWRDb21tYW5kIGltcGxlbWVudHMgSUNsaWVudENvbW1hbmQge1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gYXR0cmlidXRlIG9mIGNvbW1hbmQgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhYnN0cmFjdCBnZXQgQ29tbWFuZFR5cGVBdHRyaWJ1dGUoKTogc3RyaW5nO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHVzZWQgdG8gdGVsbCB3aGljaCBjb21tYW5kcyBhcmUgaGFuZGxlZCBsb2NhbGx5IGFuZCBzaG91bGQgbm90IGJlIHNlcmlhbGl6ZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0IFNob3VsZFNlcmlhbGl6ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaG91bGQgdGhlIFNlcmlhbGl6ZVJlY29yZHMgbWV0aG9kIGJlIGNhbGxlZCBmb3IgdGhpcyBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXQgU2hvdWxkU2VyaWFsaXplUmVjb3JkcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyB2aXJ0dWFsIG1ldGhvZCwgdG8gYWxsb3cgY29tbWFuZHMgdG8gc2VyaWFsaXplIHNwZWNpZmljIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImhhc0NoaWxkRWxlbWVudHNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgU2VyaWFsaXplQ29tbWFuZERhdGEoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBlbmFibGUgY29tbWFuZHMgdG8gc2VyaWFsaXplIGV4dHJhIGRhdGEgYWZ0ZXIgdGhlIGNvbW1hbmQgc2VyaWFsaXphdGlvbiAoZS5nLiBleGVjdXRpb24gc3RhY2spXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIFNlcmlhbGl6ZURhdGFBZnRlckNvbW1hbmQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Logger, XMLConstants } from "@magic-xpa/utils";
2
+ import { Exception, RefParam, StringBuilder } from "@magic-xpa/mscorelib";
3
+ import { ConstInterface } from "../../ConstInterface";
4
+ import { LastFocusedManager } from "../../rt/LastFocusedManager";
5
+ export class ClientOriginatedCommandSerializer {
6
+ static Serialize(cmd, currMGData) {
7
+ if (!cmd.ShouldSerialize)
8
+ return null;
9
+ let message = new StringBuilder();
10
+ let hasChildElements = false;
11
+ message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_COMMAND);
12
+ message.Append(" " + XMLConstants.MG_ATTR_TYPE + "=\"" + cmd.CommandTypeAttribute + "\"");
13
+ let refHasChildElements = new RefParam(hasChildElements);
14
+ message.Append(cmd.SerializeCommandData());
15
+ hasChildElements = refHasChildElements.value;
16
+ if (cmd.ShouldSerializeRecords)
17
+ message.Append(ClientOriginatedCommandSerializer.SerializeRecords(currMGData));
18
+ if (hasChildElements)
19
+ message.Append(XMLConstants.TAG_CLOSE);
20
+ else
21
+ message.Append(XMLConstants.TAG_TERM);
22
+ message.Append(cmd.SerializeDataAfterCommand());
23
+ return message.ToString();
24
+ }
25
+ static SerializeRecords(currMGData) {
26
+ let message = new StringBuilder();
27
+ try {
28
+ let length = currMGData.getTasksCount();
29
+ let titleExist = false;
30
+ let currFocusedTask = LastFocusedManager.Instance.getLastFocusedTask();
31
+ for (let i = 0; i < length; i++) {
32
+ let task = currMGData.getTask(i);
33
+ let ctrl = task.getLastParkedCtrl();
34
+ if (ctrl !== null) {
35
+ if (!titleExist) {
36
+ message.Append(" " + ConstInterface.MG_ATTR_FOCUSLIST + "=\"");
37
+ titleExist = true;
38
+ }
39
+ else
40
+ message.Append('$');
41
+ message.Append(task.getTaskTag() + ",");
42
+ message.Append(task.getLastParkedCtrl().getDitIdx());
43
+ }
44
+ }
45
+ if (titleExist)
46
+ message.Append("\"");
47
+ if (currFocusedTask !== null)
48
+ message.Append(" " + ConstInterface.MG_ATTR_FOCUSTASK + "=\"" + currFocusedTask.getTaskTag() + "\"");
49
+ }
50
+ catch (ex) {
51
+ if (ex instanceof Exception) {
52
+ Logger.Instance.WriteExceptionToLog(ex);
53
+ }
54
+ else
55
+ throw ex;
56
+ }
57
+ return message.ToString();
58
+ }
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsTUFBTSxPQUFPLGlDQUFpQztJQU1yQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQTRCLEVBQUUsVUFBa0I7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxPQUFPLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDakQsSUFBSSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFMUYsSUFBSSxtQkFBbUIsR0FBc0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBRTdDLElBQUksR0FBRyxDQUFDLHNCQUFzQjtZQUM1QixPQUFPLENBQUMsTUFBTSxDQUFFLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbEYsSUFBSSxnQkFBZ0I7WUFDbEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7O1lBRXZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBTUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3hDLElBQUksT0FBTyxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pELElBQUk7WUFDRixJQUFJLE1BQU0sR0FBVyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEQsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO1lBQ2hDLElBQUksZUFBZSxHQUFnQixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUVwRixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLElBQUksR0FBZ0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEdBQXlCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQStDO29CQUM5RCxJQUFJLENBQUMsVUFBVSxFQUFFO3dCQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQzt3QkFDL0QsVUFBVSxHQUFHLElBQUksQ0FBQztxQkFDbkI7O3dCQUVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUN4QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV2QixJQUFJLGVBQWUsS0FBSyxJQUFJO2dCQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUN4RztRQUNELE9BQU8sRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLFlBQVksU0FBUyxFQUFFO2dCQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3pDOztnQkFFQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2dnZXIsIFhNTENvbnN0YW50c30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtFeGNlcHRpb24sIFJlZlBhcmFtLCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtNR0RhdGF9IGZyb20gXCIuLi8uLi90YXNrcy9NR0RhdGFcIjtcclxuaW1wb3J0IHtNZ0NvbnRyb2x9IGZyb20gXCIuLi8uLi9ndWkvTWdDb250cm9sXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0d1aVRhc2tCYXNlfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZH0gZnJvbSBcIi4vQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcclxuaW1wb3J0IHtMYXN0Rm9jdXNlZE1hbmFnZXJ9IGZyb20gXCIuLi8uLi9ydC9MYXN0Rm9jdXNlZE1hbmFnZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXIge1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdlbmVyYWwgc2VyaWFsaXphdGlvbiBmb3Igc3R1ZmYgY29tbW9uIHRvIGFsbCBzZXJpYWxpemVkIGNvbW1hbmRzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBzdGF0aWMgU2VyaWFsaXplKGNtZDogQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQsIGN1cnJNR0RhdGE6IE1HRGF0YSk6IHN0cmluZyB7XHJcbiAgICAgIGlmICghY21kLlNob3VsZFNlcmlhbGl6ZSlcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgIGxldCBtZXNzYWdlOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuICAgICAgbGV0IGhhc0NoaWxkRWxlbWVudHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFhNTENvbnN0YW50cy5TVEFSVF9UQUcgKyBDb25zdEludGVyZmFjZS5NR19UQUdfQ09NTUFORCk7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVFlQRSArIFwiPVxcXCJcIiArIGNtZC5Db21tYW5kVHlwZUF0dHJpYnV0ZSArIFwiXFxcIlwiKTtcclxuXHJcbiAgICAgIGxldCByZWZIYXNDaGlsZEVsZW1lbnRzOiBSZWZQYXJhbTxib29sZWFuPiA9IG5ldyBSZWZQYXJhbShoYXNDaGlsZEVsZW1lbnRzKTtcclxuICAgICAgbWVzc2FnZS5BcHBlbmQoY21kLlNlcmlhbGl6ZUNvbW1hbmREYXRhKCkpO1xyXG4gICAgICBoYXNDaGlsZEVsZW1lbnRzID0gcmVmSGFzQ2hpbGRFbGVtZW50cy52YWx1ZTtcclxuXHJcbiAgICAgIGlmIChjbWQuU2hvdWxkU2VyaWFsaXplUmVjb3JkcylcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZCggQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyLlNlcmlhbGl6ZVJlY29yZHMoY3Vyck1HRGF0YSkpO1xyXG5cclxuICAgICAgaWYgKGhhc0NoaWxkRWxlbWVudHMpXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChYTUxDb25zdGFudHMuVEFHX1RFUk0pO1xyXG5cclxuICAgICAgbWVzc2FnZS5BcHBlbmQoY21kLlNlcmlhbGl6ZURhdGFBZnRlckNvbW1hbmQoKSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNob3VsZCBub3QgYmUgY2FsbGVkIGZvciBRdWVyeSBhbmQgZm9yIEluaXB1dEZvcmNlV3JpdGU6XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBTZXJpYWxpemVSZWNvcmRzKGN1cnJNR0RhdGE6IE1HRGF0YSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbWVzc2FnZTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgbGVuZ3RoOiBudW1iZXIgPSBjdXJyTUdEYXRhLmdldFRhc2tzQ291bnQoKTtcclxuICAgICAgbGV0IHRpdGxlRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgbGV0IGN1cnJGb2N1c2VkVGFzazogR3VpVGFza0Jhc2UgPSBMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0TGFzdEZvY3VzZWRUYXNrKCk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGFzazogR3VpVGFza0Jhc2UgPSBjdXJyTUdEYXRhLmdldFRhc2soaSk7XHJcbiAgICAgICAgbGV0IGN0cmw6IE1nQ29udHJvbCA9IDxNZ0NvbnRyb2w+dGFzay5nZXRMYXN0UGFya2VkQ3RybCgpO1xyXG4gICAgICAgIGlmIChjdHJsICE9PSBudWxsIC8qJiYgdGFzay5Lbm93blRvU2VydmVyICYmICF0YXNrLklzT2ZmbGluZSovKSB7XHJcbiAgICAgICAgICBpZiAoIXRpdGxlRXhpc3QpIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX0ZPQ1VTTElTVCArIFwiPVxcXCJcIik7XHJcbiAgICAgICAgICAgIHRpdGxlRXhpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBtZXNzYWdlLkFwcGVuZCgnJCcpO1xyXG4gICAgICAgICAgbWVzc2FnZS5BcHBlbmQodGFzay5nZXRUYXNrVGFnKCkgKyBcIixcIik7XHJcbiAgICAgICAgICBtZXNzYWdlLkFwcGVuZCh0YXNrLmdldExhc3RQYXJrZWRDdHJsKCkuZ2V0RGl0SWR4KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGl0bGVFeGlzdClcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIlxcXCJcIik7XHJcblxyXG4gICAgICBpZiAoY3VyckZvY3VzZWRUYXNrICE9PSBudWxsIC8qJiYgIWN1cnJGb2N1c2VkVGFzay5Jc09mZmxpbmUqLylcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRk9DVVNUQVNLICsgXCI9XFxcIlwiICsgY3VyckZvY3VzZWRUYXNrLmdldFRhc2tUYWcoKSArIFwiXFxcIlwiKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICBpZiAoZXggaW5zdGFuY2VvZiBFeGNlcHRpb24pIHtcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZyhleCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRocm93IGV4O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1lc3NhZ2UuVG9TdHJpbmcoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ import { EventCommand } from './EventCommand';
2
+ import { CommandSerializationHelper } from './CommandSerializationHelper';
3
+ import { NString } from '@magic-xpa/mscorelib';
4
+ import { InternalInterface } from '@magic-xpa/utils';
5
+ import { ConstInterface } from '../../ConstInterface';
6
+ export class ColumnSortEventCommand extends EventCommand {
7
+ constructor() {
8
+ super(InternalInterface.MG_ACT_COL_SORT);
9
+ this.FldId = 0;
10
+ this.DitIdx = 0;
11
+ this.Direction = 0;
12
+ }
13
+ SerializeCommandData() {
14
+ let helper = new CommandSerializationHelper();
15
+ helper.SerializeTaskTag(this.TaskTag);
16
+ helper.SerializeFldId(this.FldId);
17
+ helper.SerializeMagicEvent(this.MagicEvent);
18
+ helper.SerializeDitIdx(this.DitIdx);
19
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_DIRECTION, this.Direction);
20
+ return helper.GetString();
21
+ }
22
+ getCommandInfo() {
23
+ return NString.Format('[{0} for column {1} in {2}]', this.EventDescription, this.Task.getForm().getCtrl(this.DitIdx).getName(), this.Task.getTaskInfo());
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uU29ydEV2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29sdW1uU29ydEV2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU1wRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQVF0RDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQVIzQyxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsY0FBUyxHQUFXLENBQUMsQ0FBQztJQU90QixDQUFDO0lBT0Qsb0JBQW9CO1FBQ2xCLElBQUksTUFBTSxHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLDZCQUE2QixFQUNKLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudENvbW1hbmR9IGZyb20gJy4vRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcn0gZnJvbSAnLi9Db21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcic7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge0ludGVybmFsSW50ZXJmYWNlfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSAnLi4vLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tICcuLi9JQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyc7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBjb2x1bW4gc29ydCBjb21tYW5kXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5Tb3J0RXZlbnRDb21tYW5kIGV4dGVuZHMgRXZlbnRDb21tYW5kIGltcGxlbWVudHMgSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm8ge1xyXG4gIEZsZElkOiBudW1iZXIgPSAwO1xyXG4gIERpdElkeDogbnVtYmVyID0gMDtcclxuICBEaXJlY3Rpb246IG51bWJlciA9IDA7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcihJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ09MX1NPUlQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGFzQ2hpbGRFbGVtZW50c1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZUZsZElkKHRoaXMuRmxkSWQpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVEaXRJZHgodGhpcy5EaXRJZHgpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZUF0dHJpYnV0ZShDb25zdEludGVyZmFjZS5NR19BVFRSX0RJUkVDVElPTiwgdGhpcy5EaXJlY3Rpb24pO1xyXG5cclxuICAgIHJldHVybiBoZWxwZXIuR2V0U3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tYW5kSW5mbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KCdbezB9IGZvciBjb2x1bW4gezF9IGluIHsyfV0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHRoaXMuRXZlbnREZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0aGlzLlRhc2suZ2V0Rm9ybSgpLmdldEN0cmwodGhpcy5EaXRJZHgpLmdldE5hbWUoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0aGlzLlRhc2suZ2V0VGFza0luZm8oKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,278 @@
1
+ import { NUM_TYPE } from "@magic-xpa/gui";
2
+ import { InternalInterface, StorageAttribute, ViewRefreshMode } from "@magic-xpa/utils";
3
+ import { EventCommand } from "./EventCommand";
4
+ import { RollbackEventCommand } from "./RollbackEventCommand";
5
+ import { DataviewCommand, DataViewCommandType } from "./DataviewCommand";
6
+ import { AddUserRangeDataviewCommand } from "./AddUserRangeDataviewCommand";
7
+ import { AddUserSortDataViewCommand } from "./AddUserSortDataViewCommand";
8
+ import { AddUserLocateDataViewCommand } from "./AddUserLocateDataViewCommand";
9
+ import { SetTransactionStateDataviewCommand } from "./SetTransactionStateDataviewCommand";
10
+ import { ControlItemsRefreshCommand } from "./ControlItemsRefreshCommand";
11
+ import { RefreshEventCommand } from "./RefreshEventCommand";
12
+ import { DataViewOutputCommand } from "./DataViewOutputCommand";
13
+ import { FetchDataControlValuesEventCommand } from "./FetchDataControlValuesEventCommand";
14
+ import { WriteMessageToServerLogCommand } from "./WriteMessageToServerLogCommand";
15
+ import { SubformRefreshEventCommand } from "./SubformRefreshEventCommand";
16
+ import { BrowserEscEventCommand } from "./BrowserEscEventCommand";
17
+ import { IndexChangeEventCommand } from "./IndexChangeEventCommand";
18
+ import { ColumnSortEventCommand } from "./ColumnSortEventCommand";
19
+ import { RefreshScreenEventCommand } from "./RefreshScreenEventCommand";
20
+ import { SubformOpenEventCommand } from "./SubformOpenEventCommand";
21
+ import { ComputeEventCommand } from "./ComputeEventCommand";
22
+ import { NonReversibleExitEventCommand } from "./NonReversibleExitEventCommand";
23
+ import { RecomputeCommand } from "./RecomputeCommand";
24
+ import { TransactionCommand } from "./TransactionCommand";
25
+ import { UnloadCommand } from "./UnloadCommand";
26
+ import { ExecOperCommand } from "./ExecOperCommand";
27
+ import { EvaluateCommand } from "./EvaluateCommand";
28
+ import { GlobalParamsQueryCommand } from "./GlobalParamsQueryCommand";
29
+ import { IniputForceWriteCommand } from "./IniputForceWriteCommand";
30
+ import { ContextTerminationEventCommand } from "./ContextTerminationEventCommand";
31
+ import { ContextTimeoutResetCommand } from "./ContextTimeoutResetCommand";
32
+ import { SelectProgramCommand } from './SelectProgramCommand';
33
+ export class CommandFactory {
34
+ static CreateEventCommand(taskTag, magicEvent) {
35
+ let eventCommand = new EventCommand(magicEvent);
36
+ eventCommand.TaskTag = taskTag;
37
+ return eventCommand;
38
+ }
39
+ static CreateRollbackEventCommand(taskTag, rollbackType) {
40
+ let cmd = new RollbackEventCommand();
41
+ cmd.TaskTag = taskTag;
42
+ cmd.Rollback = rollbackType;
43
+ return cmd;
44
+ }
45
+ static CreateDataViewCommand(taskId, commandType) {
46
+ let dataviewCommand = new DataviewCommand();
47
+ dataviewCommand.CommandType = commandType;
48
+ dataviewCommand.TaskTag = taskId;
49
+ return dataviewCommand;
50
+ }
51
+ static CreateAddUserRangeDataviewCommand(taskId, userRange) {
52
+ let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
53
+ addUserRangeDataviewCommand.TaskTag = taskId;
54
+ addUserRangeDataviewCommand.Range = userRange;
55
+ return addUserRangeDataviewCommand;
56
+ }
57
+ static CreateAddUserSortDataviewCommand(taskId, sort) {
58
+ let addUserSortDataViewCommand = new AddUserSortDataViewCommand();
59
+ addUserSortDataViewCommand.TaskTag = taskId;
60
+ addUserSortDataViewCommand.Sort = sort;
61
+ return addUserSortDataViewCommand;
62
+ }
63
+ static CreateAddUserLocateDataviewCommand(taskId, userRange) {
64
+ let addUserLocateDataViewCommand = new AddUserLocateDataViewCommand();
65
+ addUserLocateDataViewCommand.TaskTag = taskId;
66
+ addUserLocateDataViewCommand.Range = userRange;
67
+ return addUserLocateDataViewCommand;
68
+ }
69
+ static CreateSetTransactionStateDataviewCommand(taskId, transactionIsOpened) {
70
+ let setTransactionStateDataviewCommand = new SetTransactionStateDataviewCommand();
71
+ setTransactionStateDataviewCommand.TaskTag = taskId;
72
+ setTransactionStateDataviewCommand.TransactionIsOpen = transactionIsOpened;
73
+ return setTransactionStateDataviewCommand;
74
+ }
75
+ static CreateControlItemsRefreshCommand(taskId, controlParam) {
76
+ let controlItemsRefreshCommand = new ControlItemsRefreshCommand();
77
+ controlItemsRefreshCommand.TaskTag = taskId;
78
+ controlItemsRefreshCommand.CommandType = DataViewCommandType.ControlItemsRefresh;
79
+ controlItemsRefreshCommand.Control = controlParam;
80
+ return controlItemsRefreshCommand;
81
+ }
82
+ static CreateInternalRefreshCommand(taskId, magicEvent, currentRecId, currentRow) {
83
+ let refreshEventCommand = new RefreshEventCommand(magicEvent);
84
+ refreshEventCommand.TaskTag = taskId;
85
+ refreshEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
86
+ refreshEventCommand.ClientRecId = currentRecId;
87
+ refreshEventCommand.IsInternalRefresh = true;
88
+ refreshEventCommand.CurrentRecordRow = currentRow;
89
+ return refreshEventCommand;
90
+ }
91
+ static async CreateRealRefreshCommand(taskId, magicEvent, currentRow, argList, currentRecId) {
92
+ let refreshEventCommand = new RefreshEventCommand(magicEvent);
93
+ refreshEventCommand.TaskTag = taskId;
94
+ refreshEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
95
+ refreshEventCommand.KeepUserSort = false;
96
+ refreshEventCommand.ClientRecId = currentRecId;
97
+ refreshEventCommand.CurrentRecordRow = currentRow;
98
+ let cmd = refreshEventCommand;
99
+ if (magicEvent !== InternalInterface.MG_ACT_RT_REFRESH_RECORD && argList !== null && argList.getSize() !== 0) {
100
+ try {
101
+ let refreshMode = new NUM_TYPE(await argList.getArgValue(0, StorageAttribute.NUMERIC, 0));
102
+ cmd.RefreshMode = refreshMode.NUM_2_LONG() + 1;
103
+ }
104
+ catch (e) {
105
+ cmd.RefreshMode = ViewRefreshMode.CurrentLocation;
106
+ }
107
+ if (argList.getSize() > 1) {
108
+ try {
109
+ cmd.KeepUserSort = (await argList.getArgValue(1, StorageAttribute.BOOLEAN, 0) === "1");
110
+ }
111
+ catch (e) {
112
+ cmd.KeepUserSort = false;
113
+ }
114
+ }
115
+ }
116
+ return cmd;
117
+ }
118
+ static CreateDataViewToDataSourceCommand(taskId, generation, taskVarNames, destinationDSNumber, destinationDSName, destinationColumns) {
119
+ let dataViewOutputCommand = new DataViewOutputCommand(DataViewCommandType.DataViewToDataSource);
120
+ dataViewOutputCommand.TaskTag = taskId;
121
+ dataViewOutputCommand.Generation = generation;
122
+ dataViewOutputCommand.TaskVarNames = taskVarNames;
123
+ dataViewOutputCommand.DestinationDataSourceNumber = destinationDSNumber;
124
+ dataViewOutputCommand.DestinationDataSourceName = destinationDSName;
125
+ dataViewOutputCommand.DestinationColumns = destinationColumns;
126
+ return dataViewOutputCommand;
127
+ }
128
+ static CreatecFetchDataControlValuesCommand(taskTag, controlName) {
129
+ let fetchDataControlValuesEventCommand = new FetchDataControlValuesEventCommand();
130
+ fetchDataControlValuesEventCommand.TaskTag = taskTag;
131
+ fetchDataControlValuesEventCommand.ControlName = controlName;
132
+ return fetchDataControlValuesEventCommand;
133
+ }
134
+ static CreateWriteMessageToServerLogCommand(taskTag, errorMessage) {
135
+ let writeMessageToServerLogCommand = new WriteMessageToServerLogCommand();
136
+ writeMessageToServerLogCommand.TaskTag = taskTag;
137
+ writeMessageToServerLogCommand.ErrorMessage = errorMessage;
138
+ return writeMessageToServerLogCommand;
139
+ }
140
+ static CreateSubformRefreshCommand(taskTag, subformTaskTag, explicitSubformRefresh) {
141
+ let subformRefreshEventCommand = new SubformRefreshEventCommand();
142
+ subformRefreshEventCommand.TaskTag = taskTag;
143
+ subformRefreshEventCommand.SubformTaskTag = subformTaskTag;
144
+ subformRefreshEventCommand.ExplicitSubformRefresh = explicitSubformRefresh;
145
+ subformRefreshEventCommand.RefreshMode = ViewRefreshMode.UseTaskLocate;
146
+ return subformRefreshEventCommand;
147
+ }
148
+ static CreateSubformOpenCommand(taskTag, subformDitIdx) {
149
+ let subformOpenEventCommand = new SubformOpenEventCommand();
150
+ subformOpenEventCommand.TaskTag = taskTag;
151
+ subformOpenEventCommand.DitIdx = subformDitIdx;
152
+ return subformOpenEventCommand;
153
+ }
154
+ static CreateScreenRefreshCommand(taskTag, topRecIdx, clientRecId) {
155
+ let refreshScreenEventCommand = new RefreshScreenEventCommand();
156
+ refreshScreenEventCommand.TaskTag = taskTag;
157
+ refreshScreenEventCommand.TopRecIdx = topRecIdx;
158
+ refreshScreenEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
159
+ refreshScreenEventCommand.ClientRecId = clientRecId;
160
+ return refreshScreenEventCommand;
161
+ }
162
+ static CreateColumnSortCommand(taskTag, direction, ditIdx, fieldId, recId) {
163
+ let columnSortEventCommand = new ColumnSortEventCommand();
164
+ columnSortEventCommand.TaskTag = taskTag;
165
+ columnSortEventCommand.DitIdx = ditIdx;
166
+ columnSortEventCommand.FldId = fieldId + 1;
167
+ columnSortEventCommand.ClientRecId = recId;
168
+ columnSortEventCommand.Direction = direction;
169
+ return columnSortEventCommand;
170
+ }
171
+ static async CreateIndexChangeCommand(taskTag, recId, argList) {
172
+ let indexChangeEventCommand = new IndexChangeEventCommand();
173
+ indexChangeEventCommand.TaskTag = taskTag;
174
+ indexChangeEventCommand.ClientRecId = recId;
175
+ let cmd = indexChangeEventCommand;
176
+ if (argList !== null && argList.getSize() !== 0) {
177
+ try {
178
+ let keyIndex = new NUM_TYPE(await argList.getArgValue(0, StorageAttribute.NUMERIC, 0));
179
+ cmd.KeyIndex = keyIndex.NUM_2_LONG();
180
+ }
181
+ catch (e) {
182
+ cmd.KeyIndex = 0;
183
+ }
184
+ }
185
+ return cmd;
186
+ }
187
+ static CreateBrowserEscEventCommand(taskTag, closeSubformOnly) {
188
+ let browserEscEventCommand = new BrowserEscEventCommand();
189
+ browserEscEventCommand.TaskTag = taskTag;
190
+ browserEscEventCommand.CloseSubformOnly = closeSubformOnly;
191
+ return browserEscEventCommand;
192
+ }
193
+ static CreateComputeEventCommand(taskTag, subforms, clientRecId) {
194
+ let computeEventCommand = new ComputeEventCommand();
195
+ computeEventCommand.TaskTag = taskTag;
196
+ computeEventCommand.Subforms = subforms;
197
+ computeEventCommand.ClientRecId = clientRecId;
198
+ return computeEventCommand;
199
+ }
200
+ static CreateContextTerminationEventCommand(taskTag) {
201
+ let contextTerminationEventCommand = new ContextTerminationEventCommand();
202
+ contextTerminationEventCommand.TaskTag = taskTag;
203
+ return contextTerminationEventCommand;
204
+ }
205
+ static CreateContextTimeoutResetEventCommand() {
206
+ let contextTimeoutResetCommand = new ContextTimeoutResetCommand();
207
+ return contextTimeoutResetCommand;
208
+ }
209
+ static CreateNonReversibleExitCommand(taskTag, closeSubformOnly) {
210
+ let nonReversibleExitEventCommand = new NonReversibleExitEventCommand();
211
+ nonReversibleExitEventCommand.TaskTag = taskTag;
212
+ nonReversibleExitEventCommand.CloseSubformOnly = closeSubformOnly;
213
+ return nonReversibleExitEventCommand;
214
+ }
215
+ static CreateRecomputeCommand(taskTag, fieldId, ignoreSubformRecompute) {
216
+ let recomputeCommand = new RecomputeCommand();
217
+ recomputeCommand.TaskTag = taskTag;
218
+ recomputeCommand.FldId = fieldId;
219
+ recomputeCommand.IgnoreSubformRecompute = ignoreSubformRecompute;
220
+ return recomputeCommand;
221
+ }
222
+ static CreateTransactionCommand(oper, taskTag, cReversibleExit, level) {
223
+ let transactionCommand = new TransactionCommand();
224
+ transactionCommand.TaskTag = taskTag;
225
+ transactionCommand.Oper = oper;
226
+ transactionCommand.ReversibleExit = cReversibleExit;
227
+ transactionCommand.Level = level;
228
+ return transactionCommand;
229
+ }
230
+ static CreateUnloadCommand() {
231
+ return new UnloadCommand();
232
+ }
233
+ static CreateExecOperCommand(taskTag, handlerId, operIdx, ditIdx, value) {
234
+ let execOperCommand = new ExecOperCommand();
235
+ execOperCommand.OperIdx = operIdx;
236
+ execOperCommand.TaskTag = taskTag;
237
+ execOperCommand.HandlerId = handlerId;
238
+ execOperCommand.DitIdx = ditIdx;
239
+ let cmd = execOperCommand;
240
+ if (value !== null && value.length === 0)
241
+ cmd.Val = " ";
242
+ else
243
+ cmd.Val = value;
244
+ return cmd;
245
+ }
246
+ static CreateSelectProgramCommand(taskTag, handlerId, operIdx, ditIdx, value) {
247
+ let execOperCommand = new SelectProgramCommand();
248
+ execOperCommand.OperIdx = operIdx;
249
+ execOperCommand.TaskTag = taskTag;
250
+ execOperCommand.HandlerId = handlerId;
251
+ execOperCommand.DitIdx = ditIdx;
252
+ let cmd = execOperCommand;
253
+ if (value !== null && value.length === 0)
254
+ cmd.Val = " ";
255
+ else
256
+ cmd.Val = value;
257
+ return cmd;
258
+ }
259
+ static CreateEvaluateCommand(taskTag, expType, expIdx, expValLen, mprgCreator) {
260
+ let evaluateCommand = new EvaluateCommand();
261
+ evaluateCommand.TaskTag = taskTag;
262
+ evaluateCommand.ExpIdx = expIdx;
263
+ evaluateCommand.ExpType = expType;
264
+ evaluateCommand.MprgCreator = mprgCreator;
265
+ if (expValLen > 0)
266
+ evaluateCommand.LengthExpVal = expValLen;
267
+ return evaluateCommand;
268
+ }
269
+ static CreateQueryGlobalParamsCommand() {
270
+ return new GlobalParamsQueryCommand();
271
+ }
272
+ static CreateIniputForceWriteCommand(param) {
273
+ let iniputForceWriteCommand = new IniputForceWriteCommand();
274
+ iniputForceWriteCommand.Text = param;
275
+ return iniputForceWriteCommand;
276
+ }
277
+ }
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZEZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsb0JBQW9CLEVBQW9DLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBR3ZFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSzlELE1BQU0sT0FBTyxjQUFjO0lBUXpCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFlLEVBQUUsVUFBa0I7UUFDM0QsSUFBSSxZQUFZLEdBQWlCLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlELFlBQVksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQy9CLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFVRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsT0FBZSxFQUFFLFlBQStDO1FBQ2hHLElBQUksR0FBRyxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDM0QsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsR0FBRyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBUUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWMsRUFBRSxXQUFnQztRQUMzRSxJQUFJLGVBQWUsR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM3RCxlQUFlLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMxQyxlQUFlLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBUUQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLE1BQWMsRUFBRSxTQUFvQjtRQUMzRSxJQUFJLDJCQUEyQixHQUFnQyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDakcsMkJBQTJCLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM3QywyQkFBMkIsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQzlDLE9BQU8sMkJBQTJCLENBQUM7SUFDckMsQ0FBQztJQVNELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFjLEVBQUUsSUFBVTtRQUNoRSxJQUFJLDBCQUEwQixHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDOUYsMEJBQTBCLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM1QywwQkFBMEIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQVNELE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFjLEVBQUUsU0FBb0I7UUFDNUUsSUFBSSw0QkFBNEIsR0FBaUMsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BHLDRCQUE0QixDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDOUMsNEJBQTRCLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMvQyxPQUFPLDRCQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFRRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsTUFBYyxFQUFFLG1CQUE0QjtRQUMxRixJQUFJLGtDQUFrQyxHQUF1QyxJQUFJLGtDQUFrQyxFQUFFLENBQUM7UUFDdEgsa0NBQWtDLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNwRCxrQ0FBa0MsQ0FBQyxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUMzRSxPQUFPLGtDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFTRCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsTUFBYyxFQUFFLFlBQTJCO1FBQ2pGLElBQUksMEJBQTBCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM5RiwwQkFBMEIsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzVDLDBCQUEwQixDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRiwwQkFBMEIsQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1FBQ2xELE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQVNELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxNQUFjLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFVBQWtCO1FBQzlHLElBQUksbUJBQW1CLEdBQXdCLElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkYsbUJBQW1CLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNyQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQztRQUNsRSxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBQy9DLG1CQUFtQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM3QyxtQkFBbUIsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7UUFDbEQsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBTUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsVUFBa0IsRUFBRSxVQUFrQixFQUFFLE9BQXNCLEVBQUUsWUFBb0I7UUFDeEksSUFBSSxtQkFBbUIsR0FBd0IsSUFBSSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRixtQkFBbUIsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLG1CQUFtQixDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDO1FBQ2xFLG1CQUFtQixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekMsbUJBQW1CLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUMvQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7UUFDbEQsSUFBSSxHQUFHLEdBQXdCLG1CQUFtQixDQUFDO1FBRW5ELElBQUksVUFBVSxLQUFLLGlCQUFpQixDQUFDLHdCQUF3QixJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM1RyxJQUFJO2dCQUNGLElBQUksV0FBVyxHQUFhLElBQUksUUFBUSxDQUFDLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BHLEdBQUcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNoRDtZQUNELE9BQU8sQ0FBQyxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQzthQUNuRDtZQUVELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDekIsSUFBSTtvQkFDRixHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ3hGO2dCQUNELE9BQU8sQ0FBQyxFQUFFO29CQUNSLEdBQUcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2lCQUMxQjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsaUNBQWlDLENBQUMsTUFBYyxFQUFFLFVBQWtCLEVBQUUsWUFBb0IsRUFBRSxtQkFBMkIsRUFBRSxpQkFBeUIsRUFBRSxrQkFBMEI7UUFDbkwsSUFBSSxxQkFBcUIsR0FBMEIsSUFBSSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZILHFCQUFxQixDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdkMscUJBQXFCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QyxxQkFBcUIsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2xELHFCQUFxQixDQUFDLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDO1FBQ3hFLHFCQUFxQixDQUFDLHlCQUF5QixHQUFHLGlCQUFpQixDQUFDO1FBQ3BFLHFCQUFxQixDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzlELE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztJQVNELE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxPQUFlLEVBQUUsV0FBbUI7UUFDOUUsSUFBSSxrQ0FBa0MsR0FBdUMsSUFBSSxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3RILGtDQUFrQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDckQsa0NBQWtDLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM3RCxPQUFPLGtDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFRRCxNQUFNLENBQUMsb0NBQW9DLENBQUMsT0FBZSxFQUFFLFlBQW9CO1FBQy9FLElBQUksOEJBQThCLEdBQW1DLElBQUksOEJBQThCLEVBQUUsQ0FBQztRQUMxRyw4QkFBOEIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2pELDhCQUE4QixDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDM0QsT0FBTyw4QkFBOEIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQWUsRUFBRSxjQUFzQixFQUFFLHNCQUErQjtRQUN6RyxJQUFJLDBCQUEwQixHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDOUYsMEJBQTBCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM3QywwQkFBMEIsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQzNELDBCQUEwQixDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBQzNFLDBCQUEwQixDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDO1FBQ3ZFLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQU1ELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFlLEVBQUUsYUFBcUI7UUFDcEUsSUFBSSx1QkFBdUIsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JGLHVCQUF1QixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDMUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUMvQyxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFNRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsT0FBZSxFQUFFLFNBQWlCLEVBQUUsV0FBbUI7UUFDdkYsSUFBSSx5QkFBeUIsR0FBOEIsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQzNGLHlCQUF5QixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDNUMseUJBQXlCLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNoRCx5QkFBeUIsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQztRQUN4RSx5QkFBeUIsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3BELE9BQU8seUJBQXlCLENBQUM7SUFDbkMsQ0FBQztJQU1ELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLEtBQWE7UUFDL0csSUFBSSxzQkFBc0IsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xGLHNCQUFzQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekMsc0JBQXNCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUMzQyxzQkFBc0IsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzNDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0MsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBS0QsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQXNCO1FBQzFGLElBQUksdUJBQXVCLEdBQTRCLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUNyRix1QkFBdUIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzFDLHVCQUF1QixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDNUMsSUFBSSxHQUFHLEdBQTRCLHVCQUF1QixDQUFDO1FBRzNELElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUk7Z0JBQ0YsSUFBSSxRQUFRLEdBQWEsSUFBSSxRQUFRLENBQUMsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakcsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDdEM7WUFDRCxPQUFPLENBQUMsRUFBRTtnQkFDUixHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUNsQjtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBU0QsTUFBTSxDQUFDLDRCQUE0QixDQUFDLE9BQWUsRUFBRSxnQkFBeUI7UUFDNUUsSUFBSSxzQkFBc0IsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xGLHNCQUFzQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekMsc0JBQXNCLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDM0QsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBU0QsTUFBTSxDQUFDLHlCQUF5QixDQUFDLE9BQWUsRUFBRSxRQUFpQixFQUFFLFdBQW1CO1FBQ3RGLElBQUksbUJBQW1CLEdBQXdCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN6RSxtQkFBbUIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEMsbUJBQW1CLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM5QyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFNRCxNQUFNLENBQUMsb0NBQW9DLENBQUMsT0FBZTtRQUN6RCxJQUFJLDhCQUE4QixHQUFtQyxJQUFJLDhCQUE4QixFQUFFLENBQUM7UUFDMUcsOEJBQThCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNqRCxPQUFPLDhCQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFLRCxNQUFNLENBQUMscUNBQXFDO1FBQzFDLElBQUksMEJBQTBCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM5RixPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFPRCxNQUFNLENBQUMsOEJBQThCLENBQUMsT0FBZSxFQUFFLGdCQUF5QjtRQUM5RSxJQUFJLDZCQUE2QixHQUFrQyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFDdkcsNkJBQTZCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNoRCw2QkFBNkIsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNsRSxPQUFPLDZCQUE2QixDQUFDO0lBQ3ZDLENBQUM7SUFRRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsT0FBZSxFQUFFLE9BQWUsRUFBRSxzQkFBK0I7UUFDN0YsSUFBSSxnQkFBZ0IsR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hFLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbkMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUNqQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUNqRSxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFVRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxlQUF3QixFQUFFLEtBQWE7UUFDcEcsSUFBSSxrQkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RFLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDckMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMvQixrQkFBa0IsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDO1FBQ3BELGtCQUFrQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDakMsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBTUQsTUFBTSxDQUFDLG1CQUFtQjtRQUN4QixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQVlELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFlLEVBQUUsTUFBYyxFQUFFLEtBQWE7UUFDN0csSUFBSSxlQUFlLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUM7UUFDN0QsZUFBZSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbEMsZUFBZSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbEMsZUFBZSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEMsZUFBZSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFaEMsSUFBSSxHQUFHLEdBQW9CLGVBQWUsQ0FBQztRQUMzQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3RDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDOztZQUVkLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVdELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFlLEVBQUUsTUFBYyxFQUFFLEtBQWE7UUFDbEgsSUFBSSxlQUFlLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUN2RSxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQyxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQyxlQUFlLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QyxlQUFlLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVoQyxJQUFJLEdBQUcsR0FBb0IsZUFBZSxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDdEMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7O1lBRWQsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDbEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBV0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE9BQWUsRUFBRSxPQUF5QixFQUFFLE1BQWMsRUFBRSxTQUFpQixFQUFFLFdBQWlCO1FBQzNILElBQUksZUFBZSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzdELGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRTFDLElBQUksU0FBUyxHQUFHLENBQUM7WUFDZixlQUFlLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBT0QsTUFBTSxDQUFDLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksd0JBQXdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBT0QsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEtBQWE7UUFDaEQsSUFBSSx1QkFBdUIsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JGLHVCQUF1QixDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDckMsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01nQ29udHJvbEJhc2UsIE5VTV9UWVBFfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtFeGNlcHRpb259IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0ludGVybmFsSW50ZXJmYWNlLCBTdG9yYWdlQXR0cmlidXRlLCBWaWV3UmVmcmVzaE1vZGV9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXZlbnRDb21tYW5kfSBmcm9tIFwiLi9FdmVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtSb2xsYmFja0V2ZW50Q29tbWFuZCwgUm9sbGJhY2tFdmVudENvbW1hbmRfUm9sbGJhY2tUeXBlfSBmcm9tIFwiLi9Sb2xsYmFja0V2ZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge0RhdGF2aWV3Q29tbWFuZCwgRGF0YVZpZXdDb21tYW5kVHlwZX0gZnJvbSBcIi4vRGF0YXZpZXdDb21tYW5kXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIi4uLy4uL3Rhc2tzL1Rhc2tcIjtcclxuaW1wb3J0IHtVc2VyUmFuZ2V9IGZyb20gXCIuLi8uLi90YXNrcy9UYXNrQmFzZVwiO1xyXG5pbXBvcnQge0FkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZH0gZnJvbSBcIi4vQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kXCI7XHJcbmltcG9ydCB7U29ydH0gZnJvbSBcIi4uLy4uL3Rhc2tzL3NvcnQvU29ydFwiO1xyXG5pbXBvcnQge0FkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kfSBmcm9tIFwiLi9BZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZFwiO1xyXG5pbXBvcnQge0FkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmR9IGZyb20gXCIuL0FkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmRcIjtcclxuaW1wb3J0IHtTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kfSBmcm9tIFwiLi9TZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kXCI7XHJcbmltcG9ydCB7Q29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmR9IGZyb20gXCIuL0NvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kXCI7XHJcbmltcG9ydCB7UmVmcmVzaEV2ZW50Q29tbWFuZH0gZnJvbSBcIi4vUmVmcmVzaEV2ZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge0FyZ3VtZW50c0xpc3R9IGZyb20gXCIuLi8uLi9ydC9Bcmd1bWVudHNMaXN0XCI7XHJcbmltcG9ydCB7RGF0YVZpZXdPdXRwdXRDb21tYW5kfSBmcm9tIFwiLi9EYXRhVmlld091dHB1dENvbW1hbmRcIjtcclxuaW1wb3J0IHtGZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kfSBmcm9tIFwiLi9GZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7V3JpdGVNZXNzYWdlVG9TZXJ2ZXJMb2dDb21tYW5kfSBmcm9tIFwiLi9Xcml0ZU1lc3NhZ2VUb1NlcnZlckxvZ0NvbW1hbmRcIjtcclxuaW1wb3J0IHtTdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZH0gZnJvbSBcIi4vU3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtCcm93c2VyRXNjRXZlbnRDb21tYW5kfSBmcm9tIFwiLi9Ccm93c2VyRXNjRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7SW5kZXhDaGFuZ2VFdmVudENvbW1hbmR9IGZyb20gXCIuL0luZGV4Q2hhbmdlRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Q29sdW1uU29ydEV2ZW50Q29tbWFuZH0gZnJvbSBcIi4vQ29sdW1uU29ydEV2ZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge1JlZnJlc2hTY3JlZW5FdmVudENvbW1hbmR9IGZyb20gXCIuL1JlZnJlc2hTY3JlZW5FdmVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtTdWJmb3JtT3BlbkV2ZW50Q29tbWFuZH0gZnJvbSBcIi4vU3ViZm9ybU9wZW5FdmVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtDb21wdXRlRXZlbnRDb21tYW5kfSBmcm9tIFwiLi9Db21wdXRlRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Tm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmR9IGZyb20gXCIuL05vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7UmVjb21wdXRlQ29tbWFuZH0gZnJvbSBcIi4vUmVjb21wdXRlQ29tbWFuZFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29tbWFuZH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25Db21tYW5kXCI7XHJcbmltcG9ydCB7VW5sb2FkQ29tbWFuZH0gZnJvbSBcIi4vVW5sb2FkQ29tbWFuZFwiO1xyXG5pbXBvcnQge0V4ZWNPcGVyQ29tbWFuZH0gZnJvbSBcIi4vRXhlY09wZXJDb21tYW5kXCI7XHJcbmltcG9ydCB7RXZhbHVhdGVDb21tYW5kfSBmcm9tIFwiLi9FdmFsdWF0ZUNvbW1hbmRcIjtcclxuaW1wb3J0IHtHbG9iYWxQYXJhbXNRdWVyeUNvbW1hbmR9IGZyb20gXCIuL0dsb2JhbFBhcmFtc1F1ZXJ5Q29tbWFuZFwiO1xyXG5pbXBvcnQge0luaXB1dEZvcmNlV3JpdGVDb21tYW5kfSBmcm9tIFwiLi9JbmlwdXRGb3JjZVdyaXRlQ29tbWFuZFwiO1xyXG5pbXBvcnQge0NvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZH0gZnJvbSBcIi4vQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Q29udGV4dFRpbWVvdXRSZXNldENvbW1hbmR9IGZyb20gXCIuL0NvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kXCI7XHJcbmltcG9ydCB7IFNlbGVjdFByb2dyYW1Db21tYW5kIH0gZnJvbSAnLi9TZWxlY3RQcm9ncmFtQ29tbWFuZCc7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBmYWN0b3J5IGNsYXNzIGZvciBjcmVhdGluZyBjb21tYW5kc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZEZhY3Rvcnkge1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gRXZlbnQgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrVGFnXCI+dGhlIHRhc2sgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWFnaWNFdmVudFwiPnRoZSBjb2RlIG9mIHRoZSBpbnRlcm5hbCBldmVudDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZUV2ZW50Q29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIG1hZ2ljRXZlbnQ6IG51bWJlcik6IEV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgZXZlbnRDb21tYW5kOiBFdmVudENvbW1hbmQgPSBuZXcgRXZlbnRDb21tYW5kKG1hZ2ljRXZlbnQpO1xyXG4gICAgZXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgcmV0dXJuIGV2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhbiBFdmVudCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tUYWdcIj50aGUgdGFzayBpZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjSGFuZGxlcklkXCI+dGhlIGlkIG9mIHRoZSBoYW5kbGVyIHdoZXJlIGV4ZWN1dGlvbiBzaG91bGQgc3RhcnQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY09ialwiPnRoZSBESVQgaW5kZXggb2YgdGhlIGNvbnRyb2wgdGhhdCBoYWQgdGhlIGZvY3VzIHdoZW4gdGhlIGV2ZW50IG9jY3VycmVkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1hZ2ljRXZlbnRcIj50aGUgY29kZSBvZiB0aGUgaW50ZXJuYWwgZXZlbnQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVSb2xsYmFja0V2ZW50Q29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIHJvbGxiYWNrVHlwZTogUm9sbGJhY2tFdmVudENvbW1hbmRfUm9sbGJhY2tUeXBlKTogUm9sbGJhY2tFdmVudENvbW1hbmQge1xyXG4gICAgbGV0IGNtZDogUm9sbGJhY2tFdmVudENvbW1hbmQgPSBuZXcgUm9sbGJhY2tFdmVudENvbW1hbmQoKTtcclxuICAgIGNtZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIGNtZC5Sb2xsYmFjayA9IHJvbGxiYWNrVHlwZTtcclxuICAgIHJldHVybiBjbWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGNyZWF0ZSBhIGdlbmVyYWwgZGF0YXZpZXcgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza0lkXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb21tYW5kVHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlRGF0YVZpZXdDb21tYW5kKHRhc2tJZDogc3RyaW5nLCBjb21tYW5kVHlwZTogRGF0YVZpZXdDb21tYW5kVHlwZSk6IERhdGF2aWV3Q29tbWFuZCB7XHJcbiAgICBsZXQgZGF0YXZpZXdDb21tYW5kOiBEYXRhdmlld0NvbW1hbmQgPSBuZXcgRGF0YXZpZXdDb21tYW5kKCk7XHJcbiAgICBkYXRhdmlld0NvbW1hbmQuQ29tbWFuZFR5cGUgPSBjb21tYW5kVHlwZTtcclxuICAgIGRhdGF2aWV3Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgcmV0dXJuIGRhdGF2aWV3Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidXNlclJhbmdlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVBZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQodGFza0lkOiBzdHJpbmcsIHVzZXJSYW5nZTogVXNlclJhbmdlKTogQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kIHtcclxuICAgIGxldCBhZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQ6IEFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCA9IG5ldyBBZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQoKTtcclxuICAgIGFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgYWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kLlJhbmdlID0gdXNlclJhbmdlO1xyXG4gICAgcmV0dXJuIGFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZDtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENyZWF0ZUFkZFVzZXJTb3J0RGF0YXZpZXdDb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInVzZXJSYW5nZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlQWRkVXNlclNvcnREYXRhdmlld0NvbW1hbmQodGFza0lkOiBzdHJpbmcsIHNvcnQ6IFNvcnQpOiBBZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZCB7XHJcbiAgICBsZXQgYWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQ6IEFkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kID0gbmV3IEFkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kKCk7XHJcbiAgICBhZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgYWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQuU29ydCA9IHNvcnQ7XHJcbiAgICByZXR1cm4gYWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDcmVhdGVBZGRVc2VyTG9jYXRlRGF0YXZpZXdDb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInVzZXJSYW5nZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlQWRkVXNlckxvY2F0ZURhdGF2aWV3Q29tbWFuZCh0YXNrSWQ6IHN0cmluZywgdXNlclJhbmdlOiBVc2VyUmFuZ2UpOiBBZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kIHtcclxuICAgIGxldCBhZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kOiBBZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kID0gbmV3IEFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQoKTtcclxuICAgIGFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQuVGFza1RhZyA9IHRhc2tJZDtcclxuICAgIGFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQuUmFuZ2UgPSB1c2VyUmFuZ2U7XHJcbiAgICByZXR1cm4gYWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlIGEgc2V0IHRyYW5zYWN0aW9uIHN0YXRlIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidHJhbnNhY3Rpb25Jc09wZW5lZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZCh0YXNrSWQ6IHN0cmluZywgdHJhbnNhY3Rpb25Jc09wZW5lZDogYm9vbGVhbik6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQge1xyXG4gICAgbGV0IHNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQ6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQgPSBuZXcgU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZCgpO1xyXG4gICAgc2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgc2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZC5UcmFuc2FjdGlvbklzT3BlbiA9IHRyYW5zYWN0aW9uSXNPcGVuZWQ7XHJcbiAgICByZXR1cm4gc2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ3JlYXRlIENvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kIHRvIHJlZmVyc2ggdGhlIGRhdGEgY29udHJvbC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udHJvbE5hbWVQYXJhbVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZ2VuZXJhdGlvblBhcmFtXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZCh0YXNrSWQ6IHN0cmluZywgY29udHJvbFBhcmFtOiBNZ0NvbnRyb2xCYXNlKTogQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQge1xyXG4gICAgbGV0IGNvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kOiBDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZCA9IG5ldyBDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZCgpO1xyXG4gICAgY29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQuVGFza1RhZyA9IHRhc2tJZDtcclxuICAgIGNvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kLkNvbW1hbmRUeXBlID0gRGF0YVZpZXdDb21tYW5kVHlwZS5Db250cm9sSXRlbXNSZWZyZXNoO1xyXG4gICAgY29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQuQ29udHJvbCA9IGNvbnRyb2xQYXJhbTtcclxuICAgIHJldHVybiBjb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlcyBhIHJlZnJlc2ggY29tbWFuZCB3aGljaCB3YXMgaW5pdGlhdGVkIGludGVybmFsbHksIGkuZS4gbm90IGJ5IGEgdXNlciBmdW5jdGlvbiBjYWxsXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1hZ2ljRXZlbnRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImN1cnJlbnRSZWNJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlSW50ZXJuYWxSZWZyZXNoQ29tbWFuZCh0YXNrSWQ6IHN0cmluZywgbWFnaWNFdmVudDogbnVtYmVyLCBjdXJyZW50UmVjSWQ6IG51bWJlciwgY3VycmVudFJvdzogbnVtYmVyKTogUmVmcmVzaEV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgcmVmcmVzaEV2ZW50Q29tbWFuZDogUmVmcmVzaEV2ZW50Q29tbWFuZCA9IG5ldyBSZWZyZXNoRXZlbnRDb21tYW5kKG1hZ2ljRXZlbnQpO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5SZWZyZXNoTW9kZSA9IFZpZXdSZWZyZXNoTW9kZS5DdXJyZW50TG9jYXRpb247XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gY3VycmVudFJlY0lkO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5Jc0ludGVybmFsUmVmcmVzaCA9IHRydWU7XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkN1cnJlbnRSZWNvcmRSb3cgPSBjdXJyZW50Um93O1xyXG4gICAgcmV0dXJuIHJlZnJlc2hFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY3JlYXRlcyBvbmx5IGEgcmVhbCByZWZyZXNoIGV2ZW50IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBhc3luYyBDcmVhdGVSZWFsUmVmcmVzaENvbW1hbmQodGFza0lkOiBzdHJpbmcsIG1hZ2ljRXZlbnQ6IG51bWJlciwgY3VycmVudFJvdzogbnVtYmVyLCBhcmdMaXN0OiBBcmd1bWVudHNMaXN0LCBjdXJyZW50UmVjSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaEV2ZW50Q29tbWFuZD4ge1xyXG4gICAgbGV0IHJlZnJlc2hFdmVudENvbW1hbmQ6IFJlZnJlc2hFdmVudENvbW1hbmQgPSBuZXcgUmVmcmVzaEV2ZW50Q29tbWFuZChtYWdpY0V2ZW50KTtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tJZDtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuQ3VycmVudExvY2F0aW9uO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5LZWVwVXNlclNvcnQgPSBmYWxzZTtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuQ2xpZW50UmVjSWQgPSBjdXJyZW50UmVjSWQ7XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkN1cnJlbnRSZWNvcmRSb3cgPSBjdXJyZW50Um93O1xyXG4gICAgbGV0IGNtZDogUmVmcmVzaEV2ZW50Q29tbWFuZCA9IHJlZnJlc2hFdmVudENvbW1hbmQ7XHJcblxyXG4gICAgaWYgKG1hZ2ljRXZlbnQgIT09IEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1JFQ09SRCAmJiBhcmdMaXN0ICE9PSBudWxsICYmIGFyZ0xpc3QuZ2V0U2l6ZSgpICE9PSAwKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGV0IHJlZnJlc2hNb2RlOiBOVU1fVFlQRSA9IG5ldyBOVU1fVFlQRShhd2FpdCBhcmdMaXN0LmdldEFyZ1ZhbHVlKDAsIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQywgMCkpO1xyXG4gICAgICAgIGNtZC5SZWZyZXNoTW9kZSA9IHJlZnJlc2hNb2RlLk5VTV8yX0xPTkcoKSArIDE7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBjbWQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuQ3VycmVudExvY2F0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYXJnTGlzdC5nZXRTaXplKCkgPiAxKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNtZC5LZWVwVXNlclNvcnQgPSAoYXdhaXQgYXJnTGlzdC5nZXRBcmdWYWx1ZSgxLCBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4sIDApID09PSBcIjFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICBjbWQuS2VlcFVzZXJTb3J0ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY21kO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIENyZWF0ZURhdGFWaWV3VG9EYXRhU291cmNlQ29tbWFuZCh0YXNrSWQ6IHN0cmluZywgZ2VuZXJhdGlvbjogbnVtYmVyLCB0YXNrVmFyTmFtZXM6IHN0cmluZywgZGVzdGluYXRpb25EU051bWJlcjogbnVtYmVyLCBkZXN0aW5hdGlvbkRTTmFtZTogc3RyaW5nLCBkZXN0aW5hdGlvbkNvbHVtbnM6IHN0cmluZyk6IERhdGFWaWV3T3V0cHV0Q29tbWFuZCB7XHJcbiAgICBsZXQgZGF0YVZpZXdPdXRwdXRDb21tYW5kOiBEYXRhVmlld091dHB1dENvbW1hbmQgPSBuZXcgRGF0YVZpZXdPdXRwdXRDb21tYW5kKERhdGFWaWV3Q29tbWFuZFR5cGUuRGF0YVZpZXdUb0RhdGFTb3VyY2UpO1xyXG4gICAgZGF0YVZpZXdPdXRwdXRDb21tYW5kLlRhc2tUYWcgPSB0YXNrSWQ7XHJcbiAgICBkYXRhVmlld091dHB1dENvbW1hbmQuR2VuZXJhdGlvbiA9IGdlbmVyYXRpb247XHJcbiAgICBkYXRhVmlld091dHB1dENvbW1hbmQuVGFza1Zhck5hbWVzID0gdGFza1Zhck5hbWVzO1xyXG4gICAgZGF0YVZpZXdPdXRwdXRDb21tYW5kLkRlc3RpbmF0aW9uRGF0YVNvdXJjZU51bWJlciA9IGRlc3RpbmF0aW9uRFNOdW1iZXI7XHJcbiAgICBkYXRhVmlld091dHB1dENvbW1hbmQuRGVzdGluYXRpb25EYXRhU291cmNlTmFtZSA9IGRlc3RpbmF0aW9uRFNOYW1lO1xyXG4gICAgZGF0YVZpZXdPdXRwdXRDb21tYW5kLkRlc3RpbmF0aW9uQ29sdW1ucyA9IGRlc3RpbmF0aW9uQ29sdW1ucztcclxuICAgIHJldHVybiBkYXRhVmlld091dHB1dENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENyZWF0ZSBGZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnQgY29tbWFuZCB3aGljaCB3aWxsIGZldGNoIHRoZSBkYXRhIGNvbnRyb2wgdmFsdWVzIGZyb20gc2VydmVyLiBUaGlzIGlzIHVzZWQgd2hpbGUgZXhlY3V0aW5nIENvbnRyb2xJdGVtc1JlZnJlc2goKSBmdW5jdGlvbi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tUYWdcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRyb2xOYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJnZW5lcmF0aW9uUGFyYW1cIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZWNGZXRjaERhdGFDb250cm9sVmFsdWVzQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBGZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBmZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kOiBGZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kID0gbmV3IEZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQoKTtcclxuICAgIGZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBmZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kLkNvbnRyb2xOYW1lID0gY29udHJvbE5hbWU7XHJcbiAgICByZXR1cm4gZmV0Y2hEYXRhQ29udHJvbFZhbHVlc0V2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ3JlYXRlIFdyaXRlTWVzc2FnZXNUb1NlcnZlckxvZyBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrVGFnXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJlcnJvck1lc3NhZ2VcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVdyaXRlTWVzc2FnZVRvU2VydmVyTG9nQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nKTogV3JpdGVNZXNzYWdlVG9TZXJ2ZXJMb2dDb21tYW5kIHtcclxuICAgIGxldCB3cml0ZU1lc3NhZ2VUb1NlcnZlckxvZ0NvbW1hbmQ6IFdyaXRlTWVzc2FnZVRvU2VydmVyTG9nQ29tbWFuZCA9IG5ldyBXcml0ZU1lc3NhZ2VUb1NlcnZlckxvZ0NvbW1hbmQoKTtcclxuICAgIHdyaXRlTWVzc2FnZVRvU2VydmVyTG9nQ29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHdyaXRlTWVzc2FnZVRvU2VydmVyTG9nQ29tbWFuZC5FcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7XHJcbiAgICByZXR1cm4gd3JpdGVNZXNzYWdlVG9TZXJ2ZXJMb2dDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIENyZWF0ZVN1YmZvcm1SZWZyZXNoQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIHN1YmZvcm1UYXNrVGFnOiBzdHJpbmcsIGV4cGxpY2l0U3ViZm9ybVJlZnJlc2g6IGJvb2xlYW4pOiBTdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgc3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQ6IFN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kID0gbmV3IFN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kKCk7XHJcbiAgICBzdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kLlN1YmZvcm1UYXNrVGFnID0gc3ViZm9ybVRhc2tUYWc7XHJcbiAgICBzdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZC5FeHBsaWNpdFN1YmZvcm1SZWZyZXNoID0gZXhwbGljaXRTdWJmb3JtUmVmcmVzaDtcclxuICAgIHN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kLlJlZnJlc2hNb2RlID0gVmlld1JlZnJlc2hNb2RlLlVzZVRhc2tMb2NhdGU7XHJcbiAgICByZXR1cm4gc3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY3JlYXRlcyBhIHN1YmZvcm0gb3BlbiBldmVudCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlU3ViZm9ybU9wZW5Db21tYW5kKHRhc2tUYWc6IHN0cmluZywgc3ViZm9ybURpdElkeDogbnVtYmVyKTogU3ViZm9ybU9wZW5FdmVudENvbW1hbmQge1xyXG4gICAgbGV0IHN1YmZvcm1PcGVuRXZlbnRDb21tYW5kOiBTdWJmb3JtT3BlbkV2ZW50Q29tbWFuZCA9IG5ldyBTdWJmb3JtT3BlbkV2ZW50Q29tbWFuZCgpO1xyXG4gICAgc3ViZm9ybU9wZW5FdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBzdWJmb3JtT3BlbkV2ZW50Q29tbWFuZC5EaXRJZHggPSBzdWJmb3JtRGl0SWR4O1xyXG4gICAgcmV0dXJuIHN1YmZvcm1PcGVuRXZlbnRDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNyZWF0ZXMgc2NyZWVuIHJlZnJlc2ggY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVNjcmVlblJlZnJlc2hDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgdG9wUmVjSWR4OiBudW1iZXIsIGNsaWVudFJlY0lkOiBudW1iZXIpOiBSZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCByZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kOiBSZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kID0gbmV3IFJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQoKTtcclxuICAgIHJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICByZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kLlRvcFJlY0lkeCA9IHRvcFJlY0lkeDtcclxuICAgIHJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuQ3VycmVudExvY2F0aW9uO1xyXG4gICAgcmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZC5DbGllbnRSZWNJZCA9IGNsaWVudFJlY0lkO1xyXG4gICAgcmV0dXJuIHJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY3JlYXRlcyBhIGNvbHVtbiBzb3J0IGV2ZW50IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVDb2x1bW5Tb3J0Q29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGRpcmVjdGlvbjogbnVtYmVyLCBkaXRJZHg6IG51bWJlciwgZmllbGRJZDogbnVtYmVyLCByZWNJZDogbnVtYmVyKTogQ29sdW1uU29ydEV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgY29sdW1uU29ydEV2ZW50Q29tbWFuZDogQ29sdW1uU29ydEV2ZW50Q29tbWFuZCA9IG5ldyBDb2x1bW5Tb3J0RXZlbnRDb21tYW5kKCk7XHJcbiAgICBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgY29sdW1uU29ydEV2ZW50Q29tbWFuZC5EaXRJZHggPSBkaXRJZHg7XHJcbiAgICBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kLkZsZElkID0gZmllbGRJZCArIDE7XHJcbiAgICBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gcmVjSWQ7XHJcbiAgICBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kLkRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHJldHVybiBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vICAgY3JlYXRlcyBhbiBJbmRleCBDaGFuZ2UgZXZlbnQgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIGFzeW5jIENyZWF0ZUluZGV4Q2hhbmdlQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIHJlY0lkOiBudW1iZXIsIGFyZ0xpc3Q6IEFyZ3VtZW50c0xpc3QpOiBQcm9taXNlPEluZGV4Q2hhbmdlRXZlbnRDb21tYW5kPiB7XHJcbiAgICBsZXQgaW5kZXhDaGFuZ2VFdmVudENvbW1hbmQ6IEluZGV4Q2hhbmdlRXZlbnRDb21tYW5kID0gbmV3IEluZGV4Q2hhbmdlRXZlbnRDb21tYW5kKCk7XHJcbiAgICBpbmRleENoYW5nZUV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIGluZGV4Q2hhbmdlRXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gcmVjSWQ7XHJcbiAgICBsZXQgY21kOiBJbmRleENoYW5nZUV2ZW50Q29tbWFuZCA9IGluZGV4Q2hhbmdlRXZlbnRDb21tYW5kO1xyXG5cclxuICAgIC8vIDEgcGFyYW1ldGVyIDogVGhlIG5ldyBLZXkgSW5kZXhcclxuICAgIGlmIChhcmdMaXN0ICE9PSBudWxsICYmIGFyZ0xpc3QuZ2V0U2l6ZSgpICE9PSAwKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGV0IGtleUluZGV4OiBOVU1fVFlQRSA9IG5ldyBOVU1fVFlQRShhd2FpdCBhcmdMaXN0LmdldEFyZ1ZhbHVlKDAsIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQywgMCkpO1xyXG4gICAgICAgIGNtZC5LZXlJbmRleCA9IGtleUluZGV4Lk5VTV8yX0xPTkcoKTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNtZC5LZXlJbmRleCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjbWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbi8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIEV2ZW50IGNvbW1hbmRcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8vIDxwYXJhbSBuYW1lPVwidGFza1RhZ1wiPjwvcGFyYW0+XHJcbi8vLyA8cGFyYW0gbmFtZT1cIm9ialwiPjwvcGFyYW0+XHJcbi8vLyA8cGFyYW0gbmFtZT1cImV4aXRCeU1lbnVcIj48L3BhcmFtPlxyXG4vLy8gPHBhcmFtIG5hbWU9XCJjbG9zZVN1YmZvcm1Pbmx5XCI+PC9wYXJhbT5cclxuICBzdGF0aWMgQ3JlYXRlQnJvd3NlckVzY0V2ZW50Q29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGNsb3NlU3ViZm9ybU9ubHk6IGJvb2xlYW4pOiBCcm93c2VyRXNjRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBicm93c2VyRXNjRXZlbnRDb21tYW5kOiBCcm93c2VyRXNjRXZlbnRDb21tYW5kID0gbmV3IEJyb3dzZXJFc2NFdmVudENvbW1hbmQoKTtcclxuICAgIGJyb3dzZXJFc2NFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBicm93c2VyRXNjRXZlbnRDb21tYW5kLkNsb3NlU3ViZm9ybU9ubHkgPSBjbG9zZVN1YmZvcm1Pbmx5O1xyXG4gICAgcmV0dXJuIGJyb3dzZXJFc2NFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gRXZlbnQgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1RhZ1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwib2JqXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjbGllbnRSZWNJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlQ29tcHV0ZUV2ZW50Q29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIHN1YmZvcm1zOiBib29sZWFuLCBjbGllbnRSZWNJZDogbnVtYmVyKTogQ29tcHV0ZUV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgY29tcHV0ZUV2ZW50Q29tbWFuZDogQ29tcHV0ZUV2ZW50Q29tbWFuZCA9IG5ldyBDb21wdXRlRXZlbnRDb21tYW5kKCk7XHJcbiAgICBjb21wdXRlRXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgY29tcHV0ZUV2ZW50Q29tbWFuZC5TdWJmb3JtcyA9IHN1YmZvcm1zO1xyXG4gICAgY29tcHV0ZUV2ZW50Q29tbWFuZC5DbGllbnRSZWNJZCA9IGNsaWVudFJlY0lkO1xyXG4gICAgcmV0dXJuIGNvbXB1dGVFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyB0aGUgY29udGV4dCB0ZXJtaW5hdGlvbiByZXF1ZXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrVGFnXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgQ3JlYXRlQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZyk6IENvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgY29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kOiBDb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQgPSBuZXcgQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kKCk7XHJcbiAgICBjb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICByZXR1cm4gY29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYSBkdW1teSByZXF1ZXN0IHRvIHplcm8taW4gdGhlIGNvbnRleHQgaW5hY3Rpdml0eSB0aW1lb3V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgQ3JlYXRlQ29udGV4dFRpbWVvdXRSZXNldEV2ZW50Q29tbWFuZCgpIDogQ29udGV4dFRpbWVvdXRSZXNldENvbW1hbmQge1xyXG4gICAgbGV0IGNvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kOiBDb250ZXh0VGltZW91dFJlc2V0Q29tbWFuZCA9IG5ldyBDb250ZXh0VGltZW91dFJlc2V0Q29tbWFuZCgpO1xyXG4gICAgcmV0dXJuIGNvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbm9ucmV2ZXJzaWJsZSBleGl0IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSB0YXNrIGlkPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlTm9uUmV2ZXJzaWJsZUV4aXRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgY2xvc2VTdWJmb3JtT25seTogYm9vbGVhbik6IE5vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBub25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZDogTm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQgPSBuZXcgTm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQoKTtcclxuICAgIG5vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgbm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQuQ2xvc2VTdWJmb3JtT25seSA9IGNsb3NlU3ViZm9ybU9ubHk7XHJcbiAgICByZXR1cm4gbm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYSBSZWNvbXB1dGUgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrVGFnXCI+dGhlIGlkIG9mIHRoZSB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZpZWxkSWRcIj50aGUgaWQgb2YgdGhlIGZpZWxkPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlUmVjb21wdXRlQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGZpZWxkSWQ6IG51bWJlciwgaWdub3JlU3ViZm9ybVJlY29tcHV0ZTogYm9vbGVhbik6IFJlY29tcHV0ZUNvbW1hbmQge1xyXG4gICAgbGV0IHJlY29tcHV0ZUNvbW1hbmQ6IFJlY29tcHV0ZUNvbW1hbmQgPSBuZXcgUmVjb21wdXRlQ29tbWFuZCgpO1xyXG4gICAgcmVjb21wdXRlQ29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHJlY29tcHV0ZUNvbW1hbmQuRmxkSWQgPSBmaWVsZElkO1xyXG4gICAgcmVjb21wdXRlQ29tbWFuZC5JZ25vcmVTdWJmb3JtUmVjb21wdXRlID0gaWdub3JlU3ViZm9ybVJlY29tcHV0ZTtcclxuICAgIHJldHVybiByZWNvbXB1dGVDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgVHJhbnNhY3Rpb24gY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvcGVyXCI+dGhlIHR5cGUgb2Ygb3BlcmF0aW9uOiBCZWdpbiwgQ29tbWl0PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj50aGUgdGFzayBvZiB0aGUgdHJhbnNhY3Rpb248L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY1JldmVyc2libGVFeGl0XCI+dHJ1ZSBpZiB0aGUgdGFzayBleGl0IGlzIHJldmVyc2libGU8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGV2ZWxcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVUcmFuc2FjdGlvbkNvbW1hbmQob3Blcjogc3RyaW5nLCB0YXNrVGFnOiBzdHJpbmcsIGNSZXZlcnNpYmxlRXhpdDogYm9vbGVhbiwgbGV2ZWw6IHN0cmluZyk6IFRyYW5zYWN0aW9uQ29tbWFuZCB7XHJcbiAgICBsZXQgdHJhbnNhY3Rpb25Db21tYW5kOiBUcmFuc2FjdGlvbkNvbW1hbmQgPSBuZXcgVHJhbnNhY3Rpb25Db21tYW5kKCk7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuT3BlciA9IG9wZXI7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuUmV2ZXJzaWJsZUV4aXQgPSBjUmV2ZXJzaWJsZUV4aXQ7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuTGV2ZWwgPSBsZXZlbDtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbkNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gVW5sb2FkIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVVbmxvYWRDb21tYW5kKCk6IFVubG9hZENvbW1hbmQge1xyXG4gICAgcmV0dXJuIG5ldyBVbmxvYWRDb21tYW5kKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIEV4ZWNPcGVyIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSBpZCBvZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJoYW5kbGVySWRcIj50aGUgaWQgb2YgdGhlIGhhbmRsZXIgd2hlcmUgZXhlY3V0aW9uIHNob3VsZCBzdGFydDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvcGVySWR4XCI+dGhlIG9wZXJhdGlvbiBpbmRleCBpcyB0aGUgc2VydmVyIGluZGV4IGluZGljYXRlZCBieSB0aGUgb3BlcmF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRpdElkeFwiPnRoZSBjb250cm9sIGlkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbHVlXCI+dGhlIHZhbHVlIG9mIHRoZSBjb250cm9sPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlRXhlY09wZXJDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgaGFuZGxlcklkOiBzdHJpbmcsIG9wZXJJZHg6IG51bWJlciwgZGl0SWR4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiBFeGVjT3BlckNvbW1hbmQge1xyXG4gICAgbGV0IGV4ZWNPcGVyQ29tbWFuZDogRXhlY09wZXJDb21tYW5kID0gbmV3IEV4ZWNPcGVyQ29tbWFuZCgpO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLk9wZXJJZHggPSBvcGVySWR4O1xyXG4gICAgZXhlY09wZXJDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLkhhbmRsZXJJZCA9IGhhbmRsZXJJZDtcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5EaXRJZHggPSBkaXRJZHg7XHJcblxyXG4gICAgbGV0IGNtZDogRXhlY09wZXJDb21tYW5kID0gZXhlY09wZXJDb21tYW5kO1xyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgY21kLlZhbCA9IFwiIFwiO1xyXG4gICAgZWxzZVxyXG4gICAgICBjbWQuVmFsID0gdmFsdWU7XHJcbiAgICByZXR1cm4gY21kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIFNlbGVjdCBQcm9ncmFtIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSBpZCBvZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJoYW5kbGVySWRcIj50aGUgaWQgb2YgdGhlIGhhbmRsZXIgd2hlcmUgZXhlY3V0aW9uIHNob3VsZCBzdGFydDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvcGVySWR4XCI+dGhlIG9wZXJhdGlvbiBpbmRleCBpcyB0aGUgc2VydmVyIGluZGV4IGluZGljYXRlZCBieSB0aGUgb3BlcmF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRpdElkeFwiPnRoZSBjb250cm9sIGlkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbHVlXCI+dGhlIHZhbHVlIG9mIHRoZSBjb250cm9sPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlU2VsZWN0UHJvZ3JhbUNvbW1hbmQodGFza1RhZzogc3RyaW5nLCBoYW5kbGVySWQ6IHN0cmluZywgb3BlcklkeDogbnVtYmVyLCBkaXRJZHg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IEV4ZWNPcGVyQ29tbWFuZCB7XHJcbiAgICBsZXQgZXhlY09wZXJDb21tYW5kOiBTZWxlY3RQcm9ncmFtQ29tbWFuZCA9IG5ldyBTZWxlY3RQcm9ncmFtQ29tbWFuZCgpO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLk9wZXJJZHggPSBvcGVySWR4O1xyXG4gICAgZXhlY09wZXJDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLkhhbmRsZXJJZCA9IGhhbmRsZXJJZDtcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5EaXRJZHggPSBkaXRJZHg7XHJcblxyXG4gICAgbGV0IGNtZDogRXhlY09wZXJDb21tYW5kID0gZXhlY09wZXJDb21tYW5kO1xyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgY21kLlZhbCA9IFwiIFwiO1xyXG4gICAgZWxzZVxyXG4gICAgICBjbWQuVmFsID0gdmFsdWU7XHJcbiAgICByZXR1cm4gY21kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIEV2YWx1YXRlIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSBpZCBvZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBUeXBlXCI+VGhlIGV4cGVjdGVkIHR5cGUgaXMgdGhlIGRhdGEgdHlwZSAoYXR0cmlidXRlKSBvZiB0aGUgcmVzdWx0PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cElkeFwiPmV4cHJlc3Npb24gaWQgYXR0cmlidXRlcyBhcmUgYSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBWYWxMZW5cIj4gcmVwcmVzZW50cyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYWxwaGEgcmVzdWx0IG9yIHRoZSBtYXhpbXVtIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YgdGhlIGRlY2ltYWwgcG9pbnQsIGZvciBudW1lcmljIHJlc3VsdDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtcHJnQ3JlYXRvclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZUV2YWx1YXRlQ29tbWFuZCh0YXNrVGFnOiBzdHJpbmcsIGV4cFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIGV4cElkeDogbnVtYmVyLCBleHBWYWxMZW46IG51bWJlciwgbXByZ0NyZWF0b3I6IFRhc2spOiBFdmFsdWF0ZUNvbW1hbmQge1xyXG4gICAgbGV0IGV2YWx1YXRlQ29tbWFuZDogRXZhbHVhdGVDb21tYW5kID0gbmV3IEV2YWx1YXRlQ29tbWFuZCgpO1xyXG4gICAgZXZhbHVhdGVDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgZXZhbHVhdGVDb21tYW5kLkV4cElkeCA9IGV4cElkeDtcclxuICAgIGV2YWx1YXRlQ29tbWFuZC5FeHBUeXBlID0gZXhwVHlwZTtcclxuICAgIGV2YWx1YXRlQ29tbWFuZC5NcHJnQ3JlYXRvciA9IG1wcmdDcmVhdG9yO1xyXG5cclxuICAgIGlmIChleHBWYWxMZW4gPiAwKVxyXG4gICAgICBldmFsdWF0ZUNvbW1hbmQuTGVuZ3RoRXhwVmFsID0gZXhwVmFsTGVuO1xyXG4gICAgcmV0dXJuIGV2YWx1YXRlQ29tbWFuZDtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVRdWVyeUdsb2JhbFBhcmFtc0NvbW1hbmQoKTogR2xvYmFsUGFyYW1zUXVlcnlDb21tYW5kIHtcclxuICAgIHJldHVybiBuZXcgR2xvYmFsUGFyYW1zUXVlcnlDb21tYW5kKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZm9yY2UgaW5pIGZpbGUgdXBkYXRlIGJ5IElOSVB1dCgpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtXCI+ZW52IHBhcmFtIGNoYW5nZWQgYnkgSU5JUHV0PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQocGFyYW06IHN0cmluZyk6IEluaXB1dEZvcmNlV3JpdGVDb21tYW5kIHtcclxuICAgIGxldCBpbmlwdXRGb3JjZVdyaXRlQ29tbWFuZDogSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQgPSBuZXcgSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQoKTtcclxuICAgIGluaXB1dEZvcmNlV3JpdGVDb21tYW5kLlRleHQgPSBwYXJhbTtcclxuICAgIHJldHVybiBpbmlwdXRGb3JjZVdyaXRlQ29tbWFuZDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,23 @@
1
+ import { NString } from "@magic-xpa/mscorelib";
2
+ import { InternalInterface } from "@magic-xpa/utils";
3
+ import { CommandSerializationHelper } from "./CommandSerializationHelper";
4
+ import { EventCommand } from "./EventCommand";
5
+ import { ConstInterface } from "../../ConstInterface";
6
+ export class ComputeEventCommand extends EventCommand {
7
+ constructor() {
8
+ super(InternalInterface.MG_ACT_COMPUTE);
9
+ this.Subforms = false;
10
+ }
11
+ SerializeCommandData() {
12
+ let helper = new CommandSerializationHelper();
13
+ helper.SerializeTaskTag(this.TaskTag);
14
+ helper.SerializeMagicEvent(this.MagicEvent);
15
+ if (this.Subforms)
16
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "99999");
17
+ return helper.GetString();
18
+ }
19
+ getCommandInfo() {
20
+ return NString.Format('[{0} for {1} in {2}] ', this.EventDescription, this.Subforms ? 'Form and Subform' : 'Form', this.Task.getTaskInfo());
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcHV0ZUV2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29tcHV0ZUV2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUlwRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQU9uRDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQU4xQyxhQUFRLEdBQVksS0FBSyxDQUFDO0lBTzFCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxNQUFNLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUUxRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUNmLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXBFLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUNDLElBQUksQ0FBQyxnQkFBZ0IsRUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TlN0cmluZywgUmVmUGFyYW19IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0ludGVybmFsSW50ZXJmYWNlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyfSBmcm9tIFwiLi9Db21tYW5kU2VyaWFsaXphdGlvbkhlbHBlclwiO1xyXG5pbXBvcnQge0V2ZW50Q29tbWFuZH0gZnJvbSBcIi4vRXZlbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tIFwiLi4vSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm9cIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQ29tcHV0ZUV2ZW50Q29tbWFuZCBleHRlbmRzIEV2ZW50Q29tbWFuZCBpbXBsZW1lbnRzIElDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvIHtcclxuXHJcbiAgU3ViZm9ybXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DT01QVVRFKTtcclxuICB9XHJcblxyXG4gIFNlcmlhbGl6ZUNvbW1hbmREYXRhKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgaGVscGVyOiBDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlciA9IG5ldyBDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcigpO1xyXG5cclxuICAgIGhlbHBlci5TZXJpYWxpemVUYXNrVGFnKHRoaXMuVGFza1RhZyk7XHJcbiAgICBoZWxwZXIuU2VyaWFsaXplTWFnaWNFdmVudCh0aGlzLk1hZ2ljRXZlbnQpO1xyXG5cclxuICAgIGlmICh0aGlzLlN1YmZvcm1zKVxyXG4gICAgICBoZWxwZXIuU2VyaWFsaXplQXR0cmlidXRlKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfT0JKRUNULCBcIjk5OTk5XCIpO1xyXG5cclxuICAgIHJldHVybiBoZWxwZXIuR2V0U3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tYW5kSW5mbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KCdbezB9IGZvciB7MX0gaW4gezJ9XSAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdGhpcy5FdmVudERlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICx0aGlzLlN1YmZvcm1zID8gJ0Zvcm0gYW5kIFN1YmZvcm0nIDogJ0Zvcm0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdGhpcy5UYXNrLmdldFRhc2tJbmZvKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NString } from "@magic-xpa/mscorelib";
2
+ import { InternalInterface } from "@magic-xpa/utils";
3
+ import { EventCommand } from "./EventCommand";
4
+ import { CommandSerializationHelper } from "./CommandSerializationHelper";
5
+ import { ConstInterface } from "../../ConstInterface";
6
+ export class ContextTerminationEventCommand extends EventCommand {
7
+ constructor() {
8
+ super(InternalInterface.MG_ACT_CONTEXT_TERMINATION);
9
+ }
10
+ SerializeCommandData() {
11
+ let helper = new CommandSerializationHelper();
12
+ helper.SerializeTaskTag(this.TaskTag);
13
+ helper.SerializeMagicEvent(this.MagicEvent);
14
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
15
+ return helper.GetString();
16
+ }
17
+ getCommandInfo() {
18
+ return NString.Empty;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7SUFFOUQ7UUFDRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksTUFBTSxHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTlELE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBRVosT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7SW50ZXJuYWxJbnRlcmZhY2V9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXZlbnRDb21tYW5kfSBmcm9tIFwiLi9FdmVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtJQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mb30gZnJvbSBcIi4uL0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvXCI7XHJcbmltcG9ydCB7Q29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXJ9IGZyb20gXCIuL0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9Db25zdEludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZCBleHRlbmRzIEV2ZW50Q29tbWFuZCBpbXBsZW1lbnRzIElDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcihJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ09OVEVYVF9URVJNSU5BVElPTik7XHJcbiAgfVxyXG5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVBdHRyaWJ1dGUoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9PQkpFQ1QsIFwiMVwiKTtcclxuXHJcbiAgICByZXR1cm4gaGVscGVyLkdldFN0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tbWFuZEluZm8oKTogc3RyaW5nIHtcclxuXHJcbiAgICByZXR1cm4gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { EventCommand } from "./EventCommand";
2
+ import { CommandSerializationHelper } from "./CommandSerializationHelper";
3
+ import { ConstInterface } from "../../ConstInterface";
4
+ import { InternalInterface } from "@magic-xpa/utils";
5
+ import { NString } from "@magic-xpa/mscorelib";
6
+ export class ContextTimeoutResetCommand extends EventCommand {
7
+ constructor() {
8
+ super(InternalInterface.MG_ACT_CONTEXT_TIMEOUT_RESET);
9
+ }
10
+ SerializeCommandData() {
11
+ let helper = new CommandSerializationHelper();
12
+ helper.SerializeMagicEvent(this.MagicEvent);
13
+ helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
14
+ return helper.GetString();
15
+ }
16
+ getCommandInfo() {
17
+ return NString.Empty;
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFRpbWVvdXRSZXNldENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxZQUFZO0lBRTFEO1FBQ0UsS0FBSyxDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLE1BQU0sR0FBK0IsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBRTFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFOUQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7UUFFWixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudENvbW1hbmR9IGZyb20gXCIuL0V2ZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tIFwiLi4vSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm9cIjtcclxuaW1wb3J0IHtDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcn0gZnJvbSBcIi4vQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXJcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7SW50ZXJuYWxJbnRlcmZhY2V9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7TlN0cmluZywgUmVmUGFyYW19IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kIGV4dGVuZHMgRXZlbnRDb21tYW5kIGltcGxlbWVudHMgSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm97XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NPTlRFWFRfVElNRU9VVF9SRVNFVCk7XHJcbiAgfVxyXG5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplTWFnaWNFdmVudCh0aGlzLk1hZ2ljRXZlbnQpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZUF0dHJpYnV0ZShDb25zdEludGVyZmFjZS5NR19BVFRSX09CSkVDVCwgXCIxXCIpO1xyXG5cclxuICAgIHJldHVybiBoZWxwZXIuR2V0U3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tYW5kSW5mbygpOiBzdHJpbmcge1xyXG5cclxuICAgIHJldHVybiBOU3RyaW5nLkVtcHR5O1xyXG4gIH1cclxufVxyXG4iXX0=