bfg-common 1.2.53 → 1.2.54

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 (631) hide show
  1. package/.eslintrc.js +21 -21
  2. package/.idea/inspectionProfiles/Project_Default.xml +48 -48
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/prettier.xml +5 -5
  5. package/.idea/uikit.iml +11 -11
  6. package/.idea/vcs.xml +5 -5
  7. package/.prettierrc +4 -4
  8. package/PROJECT_STRUCTURE.md +42 -42
  9. package/README.md +42 -42
  10. package/assets/img/icons/icon-hcs.svg +3 -3
  11. package/assets/img/icons/icon-life-m-dark.svg +3 -3
  12. package/assets/img/icons/icon-life-m-light.svg +3 -3
  13. package/assets/img/icons/icon-ro-dark.svg +1 -1
  14. package/assets/img/icons/icon-ro-light.svg +2 -2
  15. package/assets/img/icons/icons-sprite-dark-6.svg +1 -1
  16. package/assets/img/icons/icons-sprite-light-6.svg +1 -1
  17. package/assets/img/icons/info.svg +8 -8
  18. package/assets/img/icons/vc.svg +52 -52
  19. package/assets/img/logo copy.svg +50 -50
  20. package/assets/img/logo.svg +51 -51
  21. package/assets/localization/local_be.json +2082 -2082
  22. package/assets/localization/local_en.json +2085 -2085
  23. package/assets/localization/local_hy.json +2085 -2085
  24. package/assets/localization/local_kk.json +2085 -2085
  25. package/assets/localization/local_ru.json +2085 -2085
  26. package/assets/localization/local_zh.json +2085 -2085
  27. package/assets/scss/clarity/clr-ui.min.css +8 -8
  28. package/assets/scss/common/animations.scss +28 -28
  29. package/assets/scss/common/global.scss +172 -172
  30. package/assets/scss/common/icons/icons-1.scss +188 -188
  31. package/assets/scss/common/icons/icons-2.scss +208 -208
  32. package/assets/scss/common/icons/icons-3.scss +176 -176
  33. package/assets/scss/common/icons/icons-4.scss +179 -179
  34. package/assets/scss/common/icons/icons-5.scss +53 -53
  35. package/assets/scss/common/icons/icons-6.scss +29 -29
  36. package/assets/scss/common/icons/icons.scss +15 -15
  37. package/assets/scss/common/mixins.scss +39 -39
  38. package/assets/scss/common/normalize.scss +320 -320
  39. package/assets/scss/common/theme.scss +230 -230
  40. package/assets/scss/common/utilities.scss +18 -18
  41. package/assets/scss/common/variables.scss +43 -43
  42. package/assets/scss/main.scss +13 -13
  43. package/components/atoms/DiagramIcon.vue +334 -334
  44. package/components/atoms/TheIcon.vue +1687 -1687
  45. package/components/atoms/TheIcon2.vue +1136 -1136
  46. package/components/atoms/alert/Alert.spec.ts +38 -38
  47. package/components/atoms/alert/Alert.vue +84 -84
  48. package/components/atoms/alert/Notification.spec.ts +34 -34
  49. package/components/atoms/alert/models/enums.ts +12 -12
  50. package/components/atoms/alert/models/interfaces.ts +27 -27
  51. package/components/atoms/alert/models/types.ts +7 -7
  52. package/components/atoms/collapse/CollapseNav.vue +158 -158
  53. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  54. package/components/atoms/collapse/models/interfaces.ts +9 -9
  55. package/components/atoms/combobox/Combobox.vue +147 -147
  56. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  57. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  58. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  59. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  60. package/components/atoms/dropdown/Portlet.vue +111 -111
  61. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  62. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  63. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  64. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  65. package/components/atoms/input/Search.vue +16 -16
  66. package/components/atoms/list/SimpleList.vue +29 -29
  67. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  68. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  69. package/components/atoms/loader/BarLoader.vue +21 -21
  70. package/components/atoms/loader/Loader.vue +26 -26
  71. package/components/atoms/loader/PreLoader.vue +34 -34
  72. package/components/atoms/loader/Preloader.spec.ts +24 -24
  73. package/components/atoms/modal/Modal.spec.ts +55 -55
  74. package/components/atoms/modal/Modal.vue +241 -241
  75. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  76. package/components/atoms/modal/bySteps/BySteps.vue +241 -241
  77. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -174
  78. package/components/atoms/models/interfaces.ts +11 -11
  79. package/components/atoms/nav/NavBar.spec.ts +34 -34
  80. package/components/atoms/nav/models/interfaces.ts +5 -5
  81. package/components/atoms/notificationBar/models/enums.ts +13 -13
  82. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  83. package/components/atoms/notificationBar/models/types.ts +1 -1
  84. package/components/atoms/popover/Popover.vue +48 -48
  85. package/components/atoms/select/TheSelect.vue +175 -175
  86. package/components/atoms/select/models/interfaces.ts +4 -4
  87. package/components/atoms/stack/StackBlock.vue +171 -171
  88. package/components/atoms/stack/StackContent.vue +60 -60
  89. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  90. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  91. package/components/atoms/table/compact/Compact.vue +526 -526
  92. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  93. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  94. package/components/atoms/table/dataGrid/DataGrid.vue +1471 -1471
  95. package/components/atoms/table/dataGrid/DataGridPagination.vue +89 -89
  96. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  97. package/components/atoms/table/dataGrid/models/interfaces.ts +24 -24
  98. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  99. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +32 -32
  100. package/components/atoms/table/info/Info.vue +60 -60
  101. package/components/atoms/table/info/models/interfaces.ts +9 -9
  102. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  103. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  104. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  105. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  106. package/components/atoms/table/simpleTable/SimpleTable.vue +291 -291
  107. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  108. package/components/atoms/tabs/VerticalTabs.vue +81 -81
  109. package/components/atoms/tabs/models/interfaces.ts +4 -4
  110. package/components/atoms/tabs/models/types.ts +1 -1
  111. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  112. package/components/atoms/tooltip/Text.vue +39 -39
  113. package/components/atoms/tooltip/Tooltip.vue +57 -57
  114. package/components/atoms/tooltip/TooltipError.vue +113 -113
  115. package/components/common/accordion/Accordion.vue +183 -183
  116. package/components/common/accordion/Recursion.vue +216 -216
  117. package/components/common/accordion/models/enums.ts +5 -5
  118. package/components/common/accordion/models/interfaces.ts +15 -15
  119. package/components/common/accordion/models/types.ts +1 -1
  120. package/components/common/accordion/utils/accordion.ts +31 -31
  121. package/components/common/adapterManager/AdapterManager.vue +715 -715
  122. package/components/common/adapterManager/AddAdapterModal.vue +464 -464
  123. package/components/common/adapterManager/config/index.ts +19 -19
  124. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  125. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  126. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  127. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  128. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  129. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  130. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  131. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  132. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  133. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  134. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  135. package/components/common/addNetworking/AddNetworking.vue +1000 -1000
  136. package/components/common/addNetworking/Wizard.vue +286 -286
  137. package/components/common/addNetworking/config/addNetworkingSteps.ts +438 -438
  138. package/components/common/addNetworking/config/index.ts +47 -47
  139. package/components/common/addNetworking/config/initialData.ts +78 -78
  140. package/components/common/addNetworking/config/portPropertiesStep.ts +31 -31
  141. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  142. package/components/common/addNetworking/config/sendData.ts +102 -102
  143. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  144. package/components/common/addNetworking/config/validation.ts +23 -23
  145. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  146. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  147. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  148. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  149. package/components/common/addNetworking/models/enums.ts +6 -6
  150. package/components/common/addNetworking/models/interfaces.ts +208 -208
  151. package/components/common/addNetworking/models/types.ts +13 -13
  152. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  153. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  154. package/components/common/addNetworking/steps/Header.vue +52 -52
  155. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  156. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  157. package/components/common/addNetworking/steps/PortProperties.vue +492 -492
  158. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  159. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  160. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +558 -558
  161. package/components/common/addNetworking/utils/index.ts +212 -212
  162. package/components/common/browse/blocks/Container.vue +102 -102
  163. package/components/common/browse/blocks/contents/Files.vue +68 -68
  164. package/components/common/browse/blocks/info/Date.vue +21 -21
  165. package/components/common/browse/blocks/info/Size.vue +17 -17
  166. package/components/common/browse/blocks/info/Text.vue +16 -16
  167. package/components/common/browse/blocks/models/types.ts +1 -1
  168. package/components/common/browse/models/interfaces.ts +5 -5
  169. package/components/common/config/states.ts +67 -67
  170. package/components/common/context/Context.spec.ts +20 -20
  171. package/components/common/context/Context.vue +97 -97
  172. package/components/common/context/ContextRecursion.spec.ts +55 -55
  173. package/components/common/context/ContextRecursion.vue +251 -251
  174. package/components/common/context/models/interfaces.ts +26 -26
  175. package/components/common/details/DetailsItem.vue +106 -106
  176. package/components/common/details/DetailsList.vue +23 -23
  177. package/components/common/details/model/interfaces.ts +9 -9
  178. package/components/common/diagramMain/Header.vue +163 -163
  179. package/components/common/diagramMain/Highlights.vue +102 -102
  180. package/components/common/diagramMain/adapter/Adapter.vue +105 -105
  181. package/components/common/diagramMain/adapter/Block.vue +41 -41
  182. package/components/common/diagramMain/adapter/Contents.vue +96 -96
  183. package/components/common/diagramMain/adapter/Lines.vue +52 -52
  184. package/components/common/diagramMain/adapter/SecondBlock.vue +42 -42
  185. package/components/common/diagramMain/config/index.ts +51 -51
  186. package/components/common/diagramMain/config/initial.ts +37 -37
  187. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  188. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -535
  189. package/components/common/diagramMain/modals/config/adapterModal.ts +110 -110
  190. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  191. package/components/common/diagramMain/modals/config/index.ts +57 -57
  192. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  193. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  194. package/components/common/diagramMain/modals/config/networkModal.ts +337 -337
  195. package/components/common/diagramMain/modals/config/portModal.ts +203 -203
  196. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  197. package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -30
  198. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  199. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  200. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  201. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  202. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -714
  203. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  204. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  205. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  206. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  207. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  208. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -206
  209. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -221
  210. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -50
  211. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  212. package/components/common/diagramMain/modals/viewSettings/Info.vue +96 -96
  213. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  214. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  215. package/components/common/diagramMain/models/enums.ts +26 -26
  216. package/components/common/diagramMain/models/interfaces.ts +565 -565
  217. package/components/common/diagramMain/models/types.ts +9 -9
  218. package/components/common/diagramMain/network/Block.vue +55 -55
  219. package/components/common/diagramMain/network/Lines.vue +65 -65
  220. package/components/common/diagramMain/network/Network.vue +117 -117
  221. package/components/common/diagramMain/network/NoNetwork.vue +47 -47
  222. package/components/common/diagramMain/network/SecondBlock.vue +51 -51
  223. package/components/common/diagramMain/port/Port.vue +301 -301
  224. package/components/common/diagramMain/port/Ports.vue +41 -41
  225. package/components/common/diagramMain/switch/Switch.vue +71 -71
  226. package/components/common/diagramMain/switch/SwitchSelected.vue +29 -29
  227. package/components/common/diagramMain/utils/utils.ts +218 -218
  228. package/components/common/feedback/Feedback.vue +236 -236
  229. package/components/common/feedback/config/drawingPanel.ts +31 -31
  230. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  231. package/components/common/feedback/models/interfaces.ts +15 -15
  232. package/components/common/graph/Graph.vue +109 -109
  233. package/components/common/graph/utils/renderGraph.ts +389 -389
  234. package/components/common/headline/Headline.vue +32 -32
  235. package/components/common/help/navbar/left/models/interfaces.ts +6 -6
  236. package/components/common/help/navbar/right/Right.vue +139 -139
  237. package/components/common/help/navbar/right/models/interfaces.ts +4 -4
  238. package/components/common/home/Card.vue +63 -63
  239. package/components/common/home/ResourceBlock.vue +117 -117
  240. package/components/common/home/StatusContent.vue +47 -47
  241. package/components/common/home/alertsTable/AlertsTable.vue +105 -105
  242. package/components/common/home/alertsTable/config/config.ts +61 -61
  243. package/components/common/home/alertsTable/models/enums.ts +11 -11
  244. package/components/common/home/alertsTable/models/interfaces.ts +19 -19
  245. package/components/common/home/alertsTable/models/types.ts +18 -18
  246. package/components/common/home/config/configResourceMeterBlock.ts +25 -25
  247. package/components/common/home/models/interfaces.ts +59 -59
  248. package/components/common/home/models/types.ts +18 -18
  249. package/components/common/home/servicesTable/ServicesTable.vue +79 -79
  250. package/components/common/home/servicesTable/config/config.ts +62 -62
  251. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  252. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  253. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  254. package/components/common/modals/Confirmation.vue +85 -85
  255. package/components/common/modals/config/defaultForm.ts +18 -18
  256. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  257. package/components/common/modals/models/interfaces.ts +5 -5
  258. package/components/common/monitor/advanced/Advanced.vue +235 -235
  259. package/components/common/monitor/advanced/GraphView.vue +141 -141
  260. package/components/common/monitor/advanced/models/interfaces.ts +7 -7
  261. package/components/common/monitor/advanced/models/types.ts +1 -1
  262. package/components/common/monitor/advanced/table/Table.vue +90 -90
  263. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  264. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  265. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  266. package/components/common/monitor/advanced/tools/Tools.vue +428 -428
  267. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +484 -484
  268. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  269. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +150 -150
  270. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +76 -76
  271. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/utils/optionsActions.ts +25 -25
  272. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +94 -94
  273. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +130 -130
  274. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  275. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +689 -689
  276. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  277. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  278. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +79 -79
  279. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +501 -501
  280. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  281. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +176 -176
  282. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  283. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  284. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  285. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  286. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +116 -116
  287. package/components/common/monitor/advanced/tools/chartOptionsModal/models/interfaces.ts +19 -19
  288. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  289. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +117 -117
  290. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  291. package/components/common/monitor/advanced/tools/utils/countCores.ts +7 -7
  292. package/components/common/monitor/config/getValidDateByOption.ts +76 -76
  293. package/components/common/monitor/models/interfaces.ts +22 -22
  294. package/components/common/monitor/overview/Overview.vue +470 -470
  295. package/components/common/monitor/overview/filters/Filters.vue +219 -219
  296. package/components/common/monitor/overview/filters/config/filterOptions.ts +80 -80
  297. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +241 -241
  298. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +37 -37
  299. package/components/common/monitor/overview/filters/models/interfaces.ts +7 -7
  300. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  301. package/components/common/recursionTree/models/interfaces.ts +19 -19
  302. package/components/common/resource/models/interfaces.ts +9 -9
  303. package/components/common/resource/models/types.ts +1 -1
  304. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  305. package/components/common/resource/simple/Simple.vue +58 -58
  306. package/components/common/resource/simple/models/enums.ts +5 -5
  307. package/components/common/resource/utils.ts +33 -33
  308. package/components/common/select/button/ButtonDropdown.vue +100 -100
  309. package/components/common/select/button/models/interfaces.ts +6 -6
  310. package/components/common/select/radio/RadioGroup.vue +108 -108
  311. package/components/common/select/radio/models/interfaces.ts +8 -8
  312. package/components/common/shortcuts/Block.vue +83 -83
  313. package/components/common/shortcuts/Category.vue +40 -40
  314. package/components/common/shortcuts/Shortcuts.vue +44 -44
  315. package/components/common/shortcuts/models/interfaces.ts +10 -10
  316. package/components/common/spiceConsole/Drawer.vue +241 -241
  317. package/components/common/spiceConsole/SpiceConsole.vue +87 -87
  318. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  319. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  320. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  321. package/components/common/spiceConsole/models/types.ts +1 -1
  322. package/components/common/split/horizontal/Horizontal.vue +306 -306
  323. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  324. package/components/common/split/vertical/Vertical.vue +213 -213
  325. package/components/common/split/vertical/models/interfaces.ts +3 -3
  326. package/components/common/tools/Actions.vue +163 -163
  327. package/components/common/tools/models/interfaces.ts +6 -6
  328. package/components/common/vm/actions/add/Add.vue +687 -687
  329. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  330. package/components/common/vm/actions/add/utils.ts +118 -118
  331. package/components/common/vm/actions/clone/models/interfaces.ts +7 -7
  332. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  333. package/components/common/vm/actions/common/customizeHardware/config/navItems.ts +19 -19
  334. package/components/common/vm/actions/common/customizeHardware/models/interfaces.ts +7 -7
  335. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  336. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  337. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +129 -129
  338. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  339. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +246 -246
  340. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  341. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  342. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  343. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  344. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  345. package/components/common/vm/actions/common/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  346. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  347. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  348. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  349. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -52
  350. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  351. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  352. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
  353. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  354. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  355. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  356. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  357. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  358. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  359. package/components/common/vm/actions/common/customizeHardware/virtualHardware/models/types.ts +4 -4
  360. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  361. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  362. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  363. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  364. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  365. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  366. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  367. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  368. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  369. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  370. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  371. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  372. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  373. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  374. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  375. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  376. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  377. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  378. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  379. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  380. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  381. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  382. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  383. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  384. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  385. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  386. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +67 -67
  387. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  388. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  389. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +27 -27
  390. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  391. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  392. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  393. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  394. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  395. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  396. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  397. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  398. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +178 -178
  399. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  400. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  401. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  402. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  403. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  404. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  405. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  406. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  407. package/components/common/vm/actions/common/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  408. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +51 -51
  409. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  410. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +51 -51
  411. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  412. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +84 -84
  413. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  414. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +84 -84
  415. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  416. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  417. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  418. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  419. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +136 -136
  420. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  421. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  422. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  423. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  424. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +84 -84
  425. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  426. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +84 -84
  427. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  428. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  429. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  430. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +84 -84
  431. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  432. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  433. package/components/common/vm/actions/common/models/enums.ts +89 -89
  434. package/components/common/vm/actions/common/models/interfaces.ts +126 -126
  435. package/components/common/vm/actions/common/models/types.ts +65 -65
  436. package/components/common/vm/actions/common/readyToComplete/ReadyToComplete.vue +15 -15
  437. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +151 -151
  438. package/components/common/vm/actions/common/select/computeResource/ComputeResource.spec.ts +479 -479
  439. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +170 -170
  440. package/components/common/vm/actions/common/select/computeResource/TreeView.vue +126 -126
  441. package/components/common/vm/actions/common/select/createType/CreateType.vue +61 -61
  442. package/components/common/vm/actions/common/select/createType/config/items.ts +26 -26
  443. package/components/common/vm/actions/common/select/models/interfaces.ts +32 -32
  444. package/components/common/vm/actions/common/select/models/types.ts +46 -46
  445. package/components/common/vm/actions/common/select/name/Name.vue +215 -215
  446. package/components/common/vm/actions/common/select/os/os.vue +221 -221
  447. package/components/common/vm/actions/common/select/storage/models/types.ts +15 -15
  448. package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
  449. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  450. package/components/common/vm/actions/editSettings/utils.ts +45 -45
  451. package/components/common/vm/actions/models/interfaces.ts +6 -6
  452. package/components/common/vm/actions/models/types.ts +11 -11
  453. package/components/common/vm/actions/utils.ts +221 -221
  454. package/components/common/wizards/datastore/add/Add.vue +383 -383
  455. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  456. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  457. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  458. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  459. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  460. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  461. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  462. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  463. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  464. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  465. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  466. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  467. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  468. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  469. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  470. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  471. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  472. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  473. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  474. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  475. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  476. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  477. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  478. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  479. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  480. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -77
  481. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  482. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  483. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  484. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  485. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  486. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  487. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  488. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  489. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  490. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  491. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  492. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  493. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  494. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  495. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  496. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  497. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  498. package/components/common/wizards/datastore/add/utils.ts +69 -69
  499. package/components/content/Hint.vue +24 -24
  500. package/components/models/interfaces.ts +14 -14
  501. package/composables/deepCopy.ts +21 -21
  502. package/composables/useDiff.ts +15 -15
  503. package/composables/useLocalStorage.ts +45 -45
  504. package/composables/useThrottle.ts +32 -32
  505. package/composables/useUniqueId.ts +5 -5
  506. package/config/regExp.ts +13 -13
  507. package/eslint/index.js +15 -15
  508. package/eslint/no-import-type.js +17 -17
  509. package/eslint/no-invalid-type-prefix.js +32 -32
  510. package/models/composables/useMyFetch/interfaces.ts +4 -4
  511. package/models/composables/useMyFetch/types.ts +1 -1
  512. package/models/enums.ts +21 -21
  513. package/models/interfaces.ts +29 -29
  514. package/models/plugins/date/interfaces.ts +5 -5
  515. package/models/plugins/date/types.ts +1 -1
  516. package/models/plugins/validation/interfaces.ts +21 -21
  517. package/models/plugins/validation/types.ts +1 -1
  518. package/models/store/host/interfaces.ts +38 -38
  519. package/models/store/network/interfaces.ts +13 -13
  520. package/models/store/vm/interfaces.ts +213 -213
  521. package/models/types.ts +6 -6
  522. package/modules/fixContentBuild/index.ts +92 -92
  523. package/modules/fixSpiceConsoleBuild/index.ts +28 -28
  524. package/modules/replaceEnv/index.ts +40 -40
  525. package/nuxt.config.ts +8 -8
  526. package/package.json +41 -41
  527. package/plugins/binary.ts +122 -122
  528. package/plugins/date.ts +179 -179
  529. package/plugins/recursion.ts +230 -230
  530. package/plugins/spice-console/spice.console.ts +18 -18
  531. package/plugins/text.ts +48 -48
  532. package/plugins/validation.ts +172 -172
  533. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  534. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  535. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  536. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  537. package/public/spice-console/application/agent.js +175 -175
  538. package/public/spice-console/application/application.js +641 -641
  539. package/public/spice-console/application/checkActivity.js +50 -50
  540. package/public/spice-console/application/clientgui.js +842 -842
  541. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  542. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  543. package/public/spice-console/application/clipboard.js +82 -82
  544. package/public/spice-console/application/imagecache.js +81 -81
  545. package/public/spice-console/application/inputmanager.js +270 -270
  546. package/public/spice-console/application/packetfactory.js +202 -202
  547. package/public/spice-console/application/packetfilter.js +103 -103
  548. package/public/spice-console/application/packetprocess.js +75 -75
  549. package/public/spice-console/application/rasteroperation.js +118 -118
  550. package/public/spice-console/application/spiceconnection.js +197 -197
  551. package/public/spice-console/application/stream.js +67 -67
  552. package/public/spice-console/application/virtualmouse.js +109 -109
  553. package/public/spice-console/keymaps/keyevent.js +36 -36
  554. package/public/spice-console/keymaps/keymap.js +229 -229
  555. package/public/spice-console/keymaps/keymapes.js +375 -375
  556. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  557. package/public/spice-console/keymaps/keymapus.js +317 -317
  558. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  559. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  560. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  561. package/public/spice-console/lib/AsyncWorker.js +60 -60
  562. package/public/spice-console/lib/CollisionDetector.js +27 -27
  563. package/public/spice-console/lib/DataLogger.js +197 -197
  564. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  565. package/public/spice-console/lib/GlobalPool.js +114 -114
  566. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  567. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  568. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  569. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  570. package/public/spice-console/lib/base64.js +298 -298
  571. package/public/spice-console/lib/biginteger.js +1640 -1640
  572. package/public/spice-console/lib/bowser.js +276 -276
  573. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  574. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  575. package/public/spice-console/lib/displayRouter.js +83 -83
  576. package/public/spice-console/lib/encrypt.js +191 -191
  577. package/public/spice-console/lib/flipper.js +39 -39
  578. package/public/spice-console/lib/graphic.js +1230 -1230
  579. package/public/spice-console/lib/graphicdebug.js +223 -223
  580. package/public/spice-console/lib/images/bitmap.js +194 -194
  581. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  582. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  583. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  584. package/public/spice-console/lib/images/lz.js +717 -717
  585. package/public/spice-console/lib/images/png.js +275 -275
  586. package/public/spice-console/lib/jgestures.min.js +43 -43
  587. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  588. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  589. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  590. package/public/spice-console/lib/jsbn.js +578 -578
  591. package/public/spice-console/lib/jsbn2.js +675 -675
  592. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  593. package/public/spice-console/lib/modernizr.js +39 -39
  594. package/public/spice-console/lib/pixastic.js +3244 -3244
  595. package/public/spice-console/lib/prettyprint.js +794 -794
  596. package/public/spice-console/lib/prng4.js +64 -64
  597. package/public/spice-console/lib/queue.js +259 -259
  598. package/public/spice-console/lib/rng.js +87 -87
  599. package/public/spice-console/lib/runqueue.js +103 -103
  600. package/public/spice-console/lib/sha1.js +124 -124
  601. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  602. package/public/spice-console/lib/timelapsedetector.js +62 -62
  603. package/public/spice-console/lib/utils.js +327 -327
  604. package/public/spice-console/lib/virtualjoystick.js +370 -370
  605. package/public/spice-console/network/busconnection.js +195 -195
  606. package/public/spice-console/network/clusternodechooser.js +49 -49
  607. package/public/spice-console/network/connectioncontrol.js +60 -60
  608. package/public/spice-console/network/packetcontroller.js +62 -62
  609. package/public/spice-console/network/packetextractor.js +73 -73
  610. package/public/spice-console/network/packetlinkfactory.js +64 -64
  611. package/public/spice-console/network/packetreassembler.js +77 -77
  612. package/public/spice-console/network/reassemblerfactory.js +39 -39
  613. package/public/spice-console/network/sizedefiner.js +86 -86
  614. package/public/spice-console/network/socket.js +120 -120
  615. package/public/spice-console/network/socketqueue.js +95 -95
  616. package/public/spice-console/network/websocketwrapper.js +75 -75
  617. package/public/spice-console/process/busprocess.js +309 -309
  618. package/public/spice-console/process/cursorprocess.js +110 -110
  619. package/public/spice-console/process/displaypreprocess.js +152 -152
  620. package/public/spice-console/process/displayprocess.js +210 -210
  621. package/public/spice-console/process/inputprocess.js +203 -203
  622. package/public/spice-console/process/mainprocess.js +78 -78
  623. package/public/spice-console/process/playbackprocess.js +233 -233
  624. package/public/spice-console/run.js +180 -180
  625. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  626. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  627. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  628. package/public/spice-console/tools/generate.php +269 -269
  629. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  630. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  631. package/tsconfig.json +4 -4
@@ -1,578 +1,578 @@
1
- /*
2
- Copyright (c) 2016 eyeOS
3
-
4
- This file is part of Open365.
5
-
6
- Open365 is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU Affero General Public License as
8
- published by the Free Software Foundation, either version 3 of the
9
- License, or (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU Affero General Public License for more details.
15
-
16
- You should have received a copy of the GNU Affero General Public License
17
- along with this program. If not, see <http://www.gnu.org/licenses/>.
18
- */
19
-
20
- // Copyright (c) 2005 Tom Wu
21
- // All Rights Reserved.
22
- // See "LICENSE" for details.
23
-
24
- // Basic JavaScript BN library - subset useful for RSA encryption.
25
-
26
- // Bits per digit
27
- var dbits;
28
-
29
- // JavaScript engine analysis
30
- var canary = 0xdeadbeefcafe;
31
- var j_lm = ((canary&0xffffff)==0xefcafe);
32
-
33
- // (public) Constructor
34
- function encryptionBigInteger(a,b,c) {
35
- if(a != null)
36
- if("number" == typeof a) this.fromNumber(a,b,c);
37
- else if(b == null && "string" != typeof a) this.fromString(a,256);
38
- else this.fromString(a,b);
39
- }
40
-
41
- // return new, unset encryptionBigInteger
42
- function nbi() { return new encryptionBigInteger(null); }
43
-
44
- // am: Compute w_j += (x*this_i), propagate carries,
45
- // c is initial carry, returns final carry.
46
- // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
- // We need to select the fastest one that works in this environment.
48
-
49
- // am1: use a single mult and divide to get the high bits,
50
- // max digit bits should be 26 because
51
- // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
- function am1(i,x,w,j,c,n) {
53
- while(--n >= 0) {
54
- var v = x*this[i++]+w[j]+c;
55
- c = Math.floor(v/0x4000000);
56
- w[j++] = v&0x3ffffff;
57
- }
58
- return c;
59
- }
60
- // am2 avoids a big mult-and-extract completely.
61
- // Max digit bits should be <= 30 because we do bitwise ops
62
- // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
- function am2(i,x,w,j,c,n) {
64
- var xl = x&0x7fff, xh = x>>15;
65
- while(--n >= 0) {
66
- var l = this[i]&0x7fff;
67
- var h = this[i++]>>15;
68
- var m = xh*l+h*xl;
69
- l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
- c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
- w[j++] = l&0x3fffffff;
72
- }
73
- return c;
74
- }
75
- // Alternately, set max digit bits to 28 since some
76
- // browsers slow down when dealing with 32-bit numbers.
77
- function am3(i,x,w,j,c,n) {
78
- var xl = x&0x3fff, xh = x>>14;
79
- while(--n >= 0) {
80
- var l = this[i]&0x3fff;
81
- var h = this[i++]>>14;
82
- var m = xh*l+h*xl;
83
- l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
- c = (l>>28)+(m>>14)+xh*h;
85
- w[j++] = l&0xfffffff;
86
- }
87
- return c;
88
- }
89
- if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
- encryptionBigInteger.prototype.am = am2;
91
- dbits = 30;
92
- }
93
- else if(j_lm && (navigator.appName != "Netscape")) {
94
- encryptionBigInteger.prototype.am = am1;
95
- dbits = 26;
96
- }
97
- else { // Mozilla/Netscape seems to prefer am3
98
- encryptionBigInteger.prototype.am = am3;
99
- dbits = 28;
100
- }
101
-
102
- encryptionBigInteger.prototype.DB = dbits;
103
- encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
- encryptionBigInteger.prototype.DV = (1<<dbits);
105
-
106
- var BI_FP = 52;
107
- encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
- encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
- encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
-
111
- // Digit conversions
112
- var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
- var BI_RC = new Array();
114
- var rr,vv;
115
- rr = "0".charCodeAt(0);
116
- for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
- rr = "a".charCodeAt(0);
118
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
- rr = "A".charCodeAt(0);
120
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
-
122
- function int2char(n) { return BI_RM.charAt(n); }
123
- function intAt(s,i) {
124
- var c = BI_RC[s.charCodeAt(i)];
125
- return (c==null)?-1:c;
126
- }
127
-
128
- // (protected) copy this to r
129
- function bnpCopyTo(r) {
130
- for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
- r.t = this.t;
132
- r.s = this.s;
133
- }
134
-
135
- // (protected) set from integer value x, -DV <= x < DV
136
- function bnpFromInt(x) {
137
- this.t = 1;
138
- this.s = (x<0)?-1:0;
139
- if(x > 0) this[0] = x;
140
- else if(x < -1) this[0] = x+DV;
141
- else this.t = 0;
142
- }
143
-
144
- // return bigint initialized to value
145
- function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
-
147
- // (protected) set from string and radix
148
- function bnpFromString(s,b) {
149
- var k;
150
- if(b == 16) k = 4;
151
- else if(b == 8) k = 3;
152
- else if(b == 256) k = 8; // byte array
153
- else if(b == 2) k = 1;
154
- else if(b == 32) k = 5;
155
- else if(b == 4) k = 2;
156
- else { this.fromRadix(s,b); return; }
157
- this.t = 0;
158
- this.s = 0;
159
- var i = s.length, mi = false, sh = 0;
160
- while(--i >= 0) {
161
- var x = (k==8)?s[i]&0xff:intAt(s,i);
162
- if(x < 0) {
163
- if(s.charAt(i) == "-") mi = true;
164
- continue;
165
- }
166
- mi = false;
167
- if(sh == 0)
168
- this[this.t++] = x;
169
- else if(sh+k > this.DB) {
170
- this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
- this[this.t++] = (x>>(this.DB-sh));
172
- }
173
- else
174
- this[this.t-1] |= x<<sh;
175
- sh += k;
176
- if(sh >= this.DB) sh -= this.DB;
177
- }
178
- if(k == 8 && (s[0]&0x80) != 0) {
179
- this.s = -1;
180
- if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
- }
182
- this.clamp();
183
- if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
- }
185
-
186
- // (protected) clamp off excess high words
187
- function bnpClamp() {
188
- var c = this.s&this.DM;
189
- while(this.t > 0 && this[this.t-1] == c) --this.t;
190
- }
191
-
192
- // (public) return string representation in given radix
193
- function bnToString(b) {
194
- if(this.s < 0) return "-"+this.negate().toString(b);
195
- var k;
196
- if(b == 16) k = 4;
197
- else if(b == 8) k = 3;
198
- else if(b == 2) k = 1;
199
- else if(b == 32) k = 5;
200
- else if(b == 4) k = 2;
201
- else return this.toRadix(b);
202
- var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
- var p = this.DB-(i*this.DB)%k;
204
- if(i-- > 0) {
205
- if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
- while(i >= 0) {
207
- if(p < k) {
208
- d = (this[i]&((1<<p)-1))<<(k-p);
209
- d |= this[--i]>>(p+=this.DB-k);
210
- }
211
- else {
212
- d = (this[i]>>(p-=k))&km;
213
- if(p <= 0) { p += this.DB; --i; }
214
- }
215
- if(d > 0) m = true;
216
- if(m) r += int2char(d);
217
- }
218
- }
219
- return m?r:"0";
220
- }
221
-
222
- // (public) -this
223
- function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
-
225
- // (public) |this|
226
- function bnAbs() { return (this.s<0)?this.negate():this; }
227
-
228
- // (public) return + if this > a, - if this < a, 0 if equal
229
- function bnCompareTo(a) {
230
- var r = this.s-a.s;
231
- if(r != 0) return r;
232
- var i = this.t;
233
- r = i-a.t;
234
- if(r != 0) return (this.s<0)?-r:r;
235
- while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
- return 0;
237
- }
238
-
239
- // returns bit length of the integer x
240
- function nbits(x) {
241
- var r = 1, t;
242
- if((t=x>>>16) != 0) { x = t; r += 16; }
243
- if((t=x>>8) != 0) { x = t; r += 8; }
244
- if((t=x>>4) != 0) { x = t; r += 4; }
245
- if((t=x>>2) != 0) { x = t; r += 2; }
246
- if((t=x>>1) != 0) { x = t; r += 1; }
247
- return r;
248
- }
249
-
250
- // (public) return the number of bits in "this"
251
- function bnBitLength() {
252
- if(this.t <= 0) return 0;
253
- return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
- }
255
-
256
- // (protected) r = this << n*DB
257
- function bnpDLShiftTo(n,r) {
258
- var i;
259
- for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
- for(i = n-1; i >= 0; --i) r[i] = 0;
261
- r.t = this.t+n;
262
- r.s = this.s;
263
- }
264
-
265
- // (protected) r = this >> n*DB
266
- function bnpDRShiftTo(n,r) {
267
- for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
- r.t = Math.max(this.t-n,0);
269
- r.s = this.s;
270
- }
271
-
272
- // (protected) r = this << n
273
- function bnpLShiftTo(n,r) {
274
- var bs = n%this.DB;
275
- var cbs = this.DB-bs;
276
- var bm = (1<<cbs)-1;
277
- var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
- for(i = this.t-1; i >= 0; --i) {
279
- r[i+ds+1] = (this[i]>>cbs)|c;
280
- c = (this[i]&bm)<<bs;
281
- }
282
- for(i = ds-1; i >= 0; --i) r[i] = 0;
283
- r[ds] = c;
284
- r.t = this.t+ds+1;
285
- r.s = this.s;
286
- r.clamp();
287
- }
288
-
289
- // (protected) r = this >> n
290
- function bnpRShiftTo(n,r) {
291
- r.s = this.s;
292
- var ds = Math.floor(n/this.DB);
293
- if(ds >= this.t) { r.t = 0; return; }
294
- var bs = n%this.DB;
295
- var cbs = this.DB-bs;
296
- var bm = (1<<bs)-1;
297
- r[0] = this[ds]>>bs;
298
- for(var i = ds+1; i < this.t; ++i) {
299
- r[i-ds-1] |= (this[i]&bm)<<cbs;
300
- r[i-ds] = this[i]>>bs;
301
- }
302
- if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
- r.t = this.t-ds;
304
- r.clamp();
305
- }
306
-
307
- // (protected) r = this - a
308
- function bnpSubTo(a,r) {
309
- var i = 0, c = 0, m = Math.min(a.t,this.t);
310
- while(i < m) {
311
- c += this[i]-a[i];
312
- r[i++] = c&this.DM;
313
- c >>= this.DB;
314
- }
315
- if(a.t < this.t) {
316
- c -= a.s;
317
- while(i < this.t) {
318
- c += this[i];
319
- r[i++] = c&this.DM;
320
- c >>= this.DB;
321
- }
322
- c += this.s;
323
- }
324
- else {
325
- c += this.s;
326
- while(i < a.t) {
327
- c -= a[i];
328
- r[i++] = c&this.DM;
329
- c >>= this.DB;
330
- }
331
- c -= a.s;
332
- }
333
- r.s = (c<0)?-1:0;
334
- if(c < -1) r[i++] = this.DV+c;
335
- else if(c > 0) r[i++] = c;
336
- r.t = i;
337
- r.clamp();
338
- }
339
-
340
- // (protected) r = this * a, r != this,a (HAC 14.12)
341
- // "this" should be the larger one if appropriate.
342
- function bnpMultiplyTo(a,r) {
343
- var x = this.abs(), y = a.abs();
344
- var i = x.t;
345
- r.t = i+y.t;
346
- while(--i >= 0) r[i] = 0;
347
- for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
- r.s = 0;
349
- r.clamp();
350
- if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
- }
352
-
353
- // (protected) r = this^2, r != this (HAC 14.16)
354
- function bnpSquareTo(r) {
355
- var x = this.abs();
356
- var i = r.t = 2*x.t;
357
- while(--i >= 0) r[i] = 0;
358
- for(i = 0; i < x.t-1; ++i) {
359
- var c = x.am(i,x[i],r,2*i,0,1);
360
- if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
- r[i+x.t] -= x.DV;
362
- r[i+x.t+1] = 1;
363
- }
364
- }
365
- if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
- r.s = 0;
367
- r.clamp();
368
- }
369
-
370
- // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
- // r != q, this != m. q or r may be null.
372
- function bnpDivRemTo(m,q,r) {
373
- var pm = m.abs();
374
- if(pm.t <= 0) return;
375
- var pt = this.abs();
376
- if(pt.t < pm.t) {
377
- if(q != null) q.fromInt(0);
378
- if(r != null) this.copyTo(r);
379
- return;
380
- }
381
- if(r == null) r = nbi();
382
- var y = nbi(), ts = this.s, ms = m.s;
383
- var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
- if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
- else { pm.copyTo(y); pt.copyTo(r); }
386
- var ys = y.t;
387
- var y0 = y[ys-1];
388
- if(y0 == 0) return;
389
- var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
- var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
- var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
- y.dlShiftTo(j,t);
393
- if(r.compareTo(t) >= 0) {
394
- r[r.t++] = 1;
395
- r.subTo(t,r);
396
- }
397
- encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
- t.subTo(y,y); // "negative" y so we can replace sub with am later
399
- while(y.t < ys) y[y.t++] = 0;
400
- while(--j >= 0) {
401
- // Estimate quotient digit
402
- var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
- if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
- y.dlShiftTo(j,t);
405
- r.subTo(t,r);
406
- while(r[i] < --qd) r.subTo(t,r);
407
- }
408
- }
409
- if(q != null) {
410
- r.drShiftTo(ys,q);
411
- if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
- }
413
- r.t = ys;
414
- r.clamp();
415
- if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
- if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
- }
418
-
419
- // (public) this mod a
420
- function bnMod(a) {
421
- var r = nbi();
422
- this.abs().divRemTo(a,null,r);
423
- if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
- return r;
425
- }
426
-
427
- // Modular reduction using "classic" algorithm
428
- function Classic(m) { this.m = m; }
429
- function cConvert(x) {
430
- if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
- else return x;
432
- }
433
- function cRevert(x) { return x; }
434
- function cReduce(x) { x.divRemTo(this.m,null,x); }
435
- function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
- function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
-
438
- Classic.prototype.convert = cConvert;
439
- Classic.prototype.revert = cRevert;
440
- Classic.prototype.reduce = cReduce;
441
- Classic.prototype.mulTo = cMulTo;
442
- Classic.prototype.sqrTo = cSqrTo;
443
-
444
- // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
- // justification:
446
- // xy == 1 (mod m)
447
- // xy = 1+km
448
- // xy(2-xy) = (1+km)(1-km)
449
- // x[y(2-xy)] = 1-k^2m^2
450
- // x[y(2-xy)] == 1 (mod m^2)
451
- // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
- // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
- // JS multiply "overflows" differently from C/C++, so care is needed here.
454
- function bnpInvDigit() {
455
- if(this.t < 1) return 0;
456
- var x = this[0];
457
- if((x&1) == 0) return 0;
458
- var y = x&3; // y == 1/x mod 2^2
459
- y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
- y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
- y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
- // last step - calculate inverse mod DV directly;
463
- // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
- y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
- // we really want the negative inverse, and -DV < y < DV
466
- return (y>0)?this.DV-y:-y;
467
- }
468
-
469
- // Montgomery reduction
470
- function Montgomery(m) {
471
- this.m = m;
472
- this.mp = m.invDigit();
473
- this.mpl = this.mp&0x7fff;
474
- this.mph = this.mp>>15;
475
- this.um = (1<<(m.DB-15))-1;
476
- this.mt2 = 2*m.t;
477
- }
478
-
479
- // xR mod m
480
- function montConvert(x) {
481
- var r = nbi();
482
- x.abs().dlShiftTo(this.m.t,r);
483
- r.divRemTo(this.m,null,r);
484
- if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
- return r;
486
- }
487
-
488
- // x/R mod m
489
- function montRevert(x) {
490
- var r = nbi();
491
- x.copyTo(r);
492
- this.reduce(r);
493
- return r;
494
- }
495
-
496
- // x = x/R mod m (HAC 14.32)
497
- function montReduce(x) {
498
- while(x.t <= this.mt2) // pad x so am has enough room later
499
- x[x.t++] = 0;
500
- for(var i = 0; i < this.m.t; ++i) {
501
- // faster way of calculating u0 = x[i]*mp mod DV
502
- var j = x[i]&0x7fff;
503
- var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
- // use am to combine the multiply-shift-add into one call
505
- j = i+this.m.t;
506
- x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
- // propagate carry
508
- while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
- }
510
- x.clamp();
511
- x.drShiftTo(this.m.t,x);
512
- if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
- }
514
-
515
- // r = "x^2/R mod m"; x != r
516
- function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
-
518
- // r = "xy/R mod m"; x,y != r
519
- function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
-
521
- Montgomery.prototype.convert = montConvert;
522
- Montgomery.prototype.revert = montRevert;
523
- Montgomery.prototype.reduce = montReduce;
524
- Montgomery.prototype.mulTo = montMulTo;
525
- Montgomery.prototype.sqrTo = montSqrTo;
526
-
527
- // (protected) true iff this is even
528
- function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
-
530
- // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
- function bnpExp(e,z) {
532
- if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
- var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
- g.copyTo(r);
535
- while(--i >= 0) {
536
- z.sqrTo(r,r2);
537
- if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
- else { var t = r; r = r2; r2 = t; }
539
- }
540
- return z.revert(r);
541
- }
542
-
543
- // (public) this^e % m, 0 <= e < 2^32
544
- function bnModPowInt(e,m) {
545
- var z;
546
- if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
- return this.exp(e,z);
548
- }
549
-
550
- // protected
551
- encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
- encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
- encryptionBigInteger.prototype.fromString = bnpFromString;
554
- encryptionBigInteger.prototype.clamp = bnpClamp;
555
- encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
- encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
- encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
- encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
- encryptionBigInteger.prototype.subTo = bnpSubTo;
560
- encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
- encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
- encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
- encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
- encryptionBigInteger.prototype.isEven = bnpIsEven;
565
- encryptionBigInteger.prototype.exp = bnpExp;
566
-
567
- // public
568
- encryptionBigInteger.prototype.toString = bnToString;
569
- encryptionBigInteger.prototype.negate = bnNegate;
570
- encryptionBigInteger.prototype.abs = bnAbs;
571
- encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
- encryptionBigInteger.prototype.bitLength = bnBitLength;
573
- encryptionBigInteger.prototype.mod = bnMod;
574
- encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
-
576
- // "constants"
577
- encryptionBigInteger.ZERO = nbv(0);
578
- encryptionBigInteger.ONE = nbv(1);
1
+ /*
2
+ Copyright (c) 2016 eyeOS
3
+
4
+ This file is part of Open365.
5
+
6
+ Open365 is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License as
8
+ published by the Free Software Foundation, either version 3 of the
9
+ License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU Affero General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Affero General Public License
17
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+
20
+ // Copyright (c) 2005 Tom Wu
21
+ // All Rights Reserved.
22
+ // See "LICENSE" for details.
23
+
24
+ // Basic JavaScript BN library - subset useful for RSA encryption.
25
+
26
+ // Bits per digit
27
+ var dbits;
28
+
29
+ // JavaScript engine analysis
30
+ var canary = 0xdeadbeefcafe;
31
+ var j_lm = ((canary&0xffffff)==0xefcafe);
32
+
33
+ // (public) Constructor
34
+ function encryptionBigInteger(a,b,c) {
35
+ if(a != null)
36
+ if("number" == typeof a) this.fromNumber(a,b,c);
37
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
38
+ else this.fromString(a,b);
39
+ }
40
+
41
+ // return new, unset encryptionBigInteger
42
+ function nbi() { return new encryptionBigInteger(null); }
43
+
44
+ // am: Compute w_j += (x*this_i), propagate carries,
45
+ // c is initial carry, returns final carry.
46
+ // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
+ // We need to select the fastest one that works in this environment.
48
+
49
+ // am1: use a single mult and divide to get the high bits,
50
+ // max digit bits should be 26 because
51
+ // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
+ function am1(i,x,w,j,c,n) {
53
+ while(--n >= 0) {
54
+ var v = x*this[i++]+w[j]+c;
55
+ c = Math.floor(v/0x4000000);
56
+ w[j++] = v&0x3ffffff;
57
+ }
58
+ return c;
59
+ }
60
+ // am2 avoids a big mult-and-extract completely.
61
+ // Max digit bits should be <= 30 because we do bitwise ops
62
+ // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
+ function am2(i,x,w,j,c,n) {
64
+ var xl = x&0x7fff, xh = x>>15;
65
+ while(--n >= 0) {
66
+ var l = this[i]&0x7fff;
67
+ var h = this[i++]>>15;
68
+ var m = xh*l+h*xl;
69
+ l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
+ w[j++] = l&0x3fffffff;
72
+ }
73
+ return c;
74
+ }
75
+ // Alternately, set max digit bits to 28 since some
76
+ // browsers slow down when dealing with 32-bit numbers.
77
+ function am3(i,x,w,j,c,n) {
78
+ var xl = x&0x3fff, xh = x>>14;
79
+ while(--n >= 0) {
80
+ var l = this[i]&0x3fff;
81
+ var h = this[i++]>>14;
82
+ var m = xh*l+h*xl;
83
+ l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
+ c = (l>>28)+(m>>14)+xh*h;
85
+ w[j++] = l&0xfffffff;
86
+ }
87
+ return c;
88
+ }
89
+ if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
+ encryptionBigInteger.prototype.am = am2;
91
+ dbits = 30;
92
+ }
93
+ else if(j_lm && (navigator.appName != "Netscape")) {
94
+ encryptionBigInteger.prototype.am = am1;
95
+ dbits = 26;
96
+ }
97
+ else { // Mozilla/Netscape seems to prefer am3
98
+ encryptionBigInteger.prototype.am = am3;
99
+ dbits = 28;
100
+ }
101
+
102
+ encryptionBigInteger.prototype.DB = dbits;
103
+ encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
+ encryptionBigInteger.prototype.DV = (1<<dbits);
105
+
106
+ var BI_FP = 52;
107
+ encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
+ encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
+ encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
+
111
+ // Digit conversions
112
+ var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
+ var BI_RC = new Array();
114
+ var rr,vv;
115
+ rr = "0".charCodeAt(0);
116
+ for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
+ rr = "a".charCodeAt(0);
118
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
+ rr = "A".charCodeAt(0);
120
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
+
122
+ function int2char(n) { return BI_RM.charAt(n); }
123
+ function intAt(s,i) {
124
+ var c = BI_RC[s.charCodeAt(i)];
125
+ return (c==null)?-1:c;
126
+ }
127
+
128
+ // (protected) copy this to r
129
+ function bnpCopyTo(r) {
130
+ for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
+ r.t = this.t;
132
+ r.s = this.s;
133
+ }
134
+
135
+ // (protected) set from integer value x, -DV <= x < DV
136
+ function bnpFromInt(x) {
137
+ this.t = 1;
138
+ this.s = (x<0)?-1:0;
139
+ if(x > 0) this[0] = x;
140
+ else if(x < -1) this[0] = x+DV;
141
+ else this.t = 0;
142
+ }
143
+
144
+ // return bigint initialized to value
145
+ function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
+
147
+ // (protected) set from string and radix
148
+ function bnpFromString(s,b) {
149
+ var k;
150
+ if(b == 16) k = 4;
151
+ else if(b == 8) k = 3;
152
+ else if(b == 256) k = 8; // byte array
153
+ else if(b == 2) k = 1;
154
+ else if(b == 32) k = 5;
155
+ else if(b == 4) k = 2;
156
+ else { this.fromRadix(s,b); return; }
157
+ this.t = 0;
158
+ this.s = 0;
159
+ var i = s.length, mi = false, sh = 0;
160
+ while(--i >= 0) {
161
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
162
+ if(x < 0) {
163
+ if(s.charAt(i) == "-") mi = true;
164
+ continue;
165
+ }
166
+ mi = false;
167
+ if(sh == 0)
168
+ this[this.t++] = x;
169
+ else if(sh+k > this.DB) {
170
+ this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
+ this[this.t++] = (x>>(this.DB-sh));
172
+ }
173
+ else
174
+ this[this.t-1] |= x<<sh;
175
+ sh += k;
176
+ if(sh >= this.DB) sh -= this.DB;
177
+ }
178
+ if(k == 8 && (s[0]&0x80) != 0) {
179
+ this.s = -1;
180
+ if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
+ }
182
+ this.clamp();
183
+ if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
+ }
185
+
186
+ // (protected) clamp off excess high words
187
+ function bnpClamp() {
188
+ var c = this.s&this.DM;
189
+ while(this.t > 0 && this[this.t-1] == c) --this.t;
190
+ }
191
+
192
+ // (public) return string representation in given radix
193
+ function bnToString(b) {
194
+ if(this.s < 0) return "-"+this.negate().toString(b);
195
+ var k;
196
+ if(b == 16) k = 4;
197
+ else if(b == 8) k = 3;
198
+ else if(b == 2) k = 1;
199
+ else if(b == 32) k = 5;
200
+ else if(b == 4) k = 2;
201
+ else return this.toRadix(b);
202
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
+ var p = this.DB-(i*this.DB)%k;
204
+ if(i-- > 0) {
205
+ if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
+ while(i >= 0) {
207
+ if(p < k) {
208
+ d = (this[i]&((1<<p)-1))<<(k-p);
209
+ d |= this[--i]>>(p+=this.DB-k);
210
+ }
211
+ else {
212
+ d = (this[i]>>(p-=k))&km;
213
+ if(p <= 0) { p += this.DB; --i; }
214
+ }
215
+ if(d > 0) m = true;
216
+ if(m) r += int2char(d);
217
+ }
218
+ }
219
+ return m?r:"0";
220
+ }
221
+
222
+ // (public) -this
223
+ function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
+
225
+ // (public) |this|
226
+ function bnAbs() { return (this.s<0)?this.negate():this; }
227
+
228
+ // (public) return + if this > a, - if this < a, 0 if equal
229
+ function bnCompareTo(a) {
230
+ var r = this.s-a.s;
231
+ if(r != 0) return r;
232
+ var i = this.t;
233
+ r = i-a.t;
234
+ if(r != 0) return (this.s<0)?-r:r;
235
+ while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
+ return 0;
237
+ }
238
+
239
+ // returns bit length of the integer x
240
+ function nbits(x) {
241
+ var r = 1, t;
242
+ if((t=x>>>16) != 0) { x = t; r += 16; }
243
+ if((t=x>>8) != 0) { x = t; r += 8; }
244
+ if((t=x>>4) != 0) { x = t; r += 4; }
245
+ if((t=x>>2) != 0) { x = t; r += 2; }
246
+ if((t=x>>1) != 0) { x = t; r += 1; }
247
+ return r;
248
+ }
249
+
250
+ // (public) return the number of bits in "this"
251
+ function bnBitLength() {
252
+ if(this.t <= 0) return 0;
253
+ return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
+ }
255
+
256
+ // (protected) r = this << n*DB
257
+ function bnpDLShiftTo(n,r) {
258
+ var i;
259
+ for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
+ for(i = n-1; i >= 0; --i) r[i] = 0;
261
+ r.t = this.t+n;
262
+ r.s = this.s;
263
+ }
264
+
265
+ // (protected) r = this >> n*DB
266
+ function bnpDRShiftTo(n,r) {
267
+ for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
+ r.t = Math.max(this.t-n,0);
269
+ r.s = this.s;
270
+ }
271
+
272
+ // (protected) r = this << n
273
+ function bnpLShiftTo(n,r) {
274
+ var bs = n%this.DB;
275
+ var cbs = this.DB-bs;
276
+ var bm = (1<<cbs)-1;
277
+ var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
+ for(i = this.t-1; i >= 0; --i) {
279
+ r[i+ds+1] = (this[i]>>cbs)|c;
280
+ c = (this[i]&bm)<<bs;
281
+ }
282
+ for(i = ds-1; i >= 0; --i) r[i] = 0;
283
+ r[ds] = c;
284
+ r.t = this.t+ds+1;
285
+ r.s = this.s;
286
+ r.clamp();
287
+ }
288
+
289
+ // (protected) r = this >> n
290
+ function bnpRShiftTo(n,r) {
291
+ r.s = this.s;
292
+ var ds = Math.floor(n/this.DB);
293
+ if(ds >= this.t) { r.t = 0; return; }
294
+ var bs = n%this.DB;
295
+ var cbs = this.DB-bs;
296
+ var bm = (1<<bs)-1;
297
+ r[0] = this[ds]>>bs;
298
+ for(var i = ds+1; i < this.t; ++i) {
299
+ r[i-ds-1] |= (this[i]&bm)<<cbs;
300
+ r[i-ds] = this[i]>>bs;
301
+ }
302
+ if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
+ r.t = this.t-ds;
304
+ r.clamp();
305
+ }
306
+
307
+ // (protected) r = this - a
308
+ function bnpSubTo(a,r) {
309
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
310
+ while(i < m) {
311
+ c += this[i]-a[i];
312
+ r[i++] = c&this.DM;
313
+ c >>= this.DB;
314
+ }
315
+ if(a.t < this.t) {
316
+ c -= a.s;
317
+ while(i < this.t) {
318
+ c += this[i];
319
+ r[i++] = c&this.DM;
320
+ c >>= this.DB;
321
+ }
322
+ c += this.s;
323
+ }
324
+ else {
325
+ c += this.s;
326
+ while(i < a.t) {
327
+ c -= a[i];
328
+ r[i++] = c&this.DM;
329
+ c >>= this.DB;
330
+ }
331
+ c -= a.s;
332
+ }
333
+ r.s = (c<0)?-1:0;
334
+ if(c < -1) r[i++] = this.DV+c;
335
+ else if(c > 0) r[i++] = c;
336
+ r.t = i;
337
+ r.clamp();
338
+ }
339
+
340
+ // (protected) r = this * a, r != this,a (HAC 14.12)
341
+ // "this" should be the larger one if appropriate.
342
+ function bnpMultiplyTo(a,r) {
343
+ var x = this.abs(), y = a.abs();
344
+ var i = x.t;
345
+ r.t = i+y.t;
346
+ while(--i >= 0) r[i] = 0;
347
+ for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
+ r.s = 0;
349
+ r.clamp();
350
+ if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
+ }
352
+
353
+ // (protected) r = this^2, r != this (HAC 14.16)
354
+ function bnpSquareTo(r) {
355
+ var x = this.abs();
356
+ var i = r.t = 2*x.t;
357
+ while(--i >= 0) r[i] = 0;
358
+ for(i = 0; i < x.t-1; ++i) {
359
+ var c = x.am(i,x[i],r,2*i,0,1);
360
+ if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
+ r[i+x.t] -= x.DV;
362
+ r[i+x.t+1] = 1;
363
+ }
364
+ }
365
+ if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
+ r.s = 0;
367
+ r.clamp();
368
+ }
369
+
370
+ // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
+ // r != q, this != m. q or r may be null.
372
+ function bnpDivRemTo(m,q,r) {
373
+ var pm = m.abs();
374
+ if(pm.t <= 0) return;
375
+ var pt = this.abs();
376
+ if(pt.t < pm.t) {
377
+ if(q != null) q.fromInt(0);
378
+ if(r != null) this.copyTo(r);
379
+ return;
380
+ }
381
+ if(r == null) r = nbi();
382
+ var y = nbi(), ts = this.s, ms = m.s;
383
+ var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
+ else { pm.copyTo(y); pt.copyTo(r); }
386
+ var ys = y.t;
387
+ var y0 = y[ys-1];
388
+ if(y0 == 0) return;
389
+ var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
+ var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
+ y.dlShiftTo(j,t);
393
+ if(r.compareTo(t) >= 0) {
394
+ r[r.t++] = 1;
395
+ r.subTo(t,r);
396
+ }
397
+ encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
399
+ while(y.t < ys) y[y.t++] = 0;
400
+ while(--j >= 0) {
401
+ // Estimate quotient digit
402
+ var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
+ if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
+ y.dlShiftTo(j,t);
405
+ r.subTo(t,r);
406
+ while(r[i] < --qd) r.subTo(t,r);
407
+ }
408
+ }
409
+ if(q != null) {
410
+ r.drShiftTo(ys,q);
411
+ if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
+ }
413
+ r.t = ys;
414
+ r.clamp();
415
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
+ if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
+ }
418
+
419
+ // (public) this mod a
420
+ function bnMod(a) {
421
+ var r = nbi();
422
+ this.abs().divRemTo(a,null,r);
423
+ if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
+ return r;
425
+ }
426
+
427
+ // Modular reduction using "classic" algorithm
428
+ function Classic(m) { this.m = m; }
429
+ function cConvert(x) {
430
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
+ else return x;
432
+ }
433
+ function cRevert(x) { return x; }
434
+ function cReduce(x) { x.divRemTo(this.m,null,x); }
435
+ function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
+ function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
+
438
+ Classic.prototype.convert = cConvert;
439
+ Classic.prototype.revert = cRevert;
440
+ Classic.prototype.reduce = cReduce;
441
+ Classic.prototype.mulTo = cMulTo;
442
+ Classic.prototype.sqrTo = cSqrTo;
443
+
444
+ // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
+ // justification:
446
+ // xy == 1 (mod m)
447
+ // xy = 1+km
448
+ // xy(2-xy) = (1+km)(1-km)
449
+ // x[y(2-xy)] = 1-k^2m^2
450
+ // x[y(2-xy)] == 1 (mod m^2)
451
+ // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
+ // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
+ // JS multiply "overflows" differently from C/C++, so care is needed here.
454
+ function bnpInvDigit() {
455
+ if(this.t < 1) return 0;
456
+ var x = this[0];
457
+ if((x&1) == 0) return 0;
458
+ var y = x&3; // y == 1/x mod 2^2
459
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
+ // last step - calculate inverse mod DV directly;
463
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
+ y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
+ // we really want the negative inverse, and -DV < y < DV
466
+ return (y>0)?this.DV-y:-y;
467
+ }
468
+
469
+ // Montgomery reduction
470
+ function Montgomery(m) {
471
+ this.m = m;
472
+ this.mp = m.invDigit();
473
+ this.mpl = this.mp&0x7fff;
474
+ this.mph = this.mp>>15;
475
+ this.um = (1<<(m.DB-15))-1;
476
+ this.mt2 = 2*m.t;
477
+ }
478
+
479
+ // xR mod m
480
+ function montConvert(x) {
481
+ var r = nbi();
482
+ x.abs().dlShiftTo(this.m.t,r);
483
+ r.divRemTo(this.m,null,r);
484
+ if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
+ return r;
486
+ }
487
+
488
+ // x/R mod m
489
+ function montRevert(x) {
490
+ var r = nbi();
491
+ x.copyTo(r);
492
+ this.reduce(r);
493
+ return r;
494
+ }
495
+
496
+ // x = x/R mod m (HAC 14.32)
497
+ function montReduce(x) {
498
+ while(x.t <= this.mt2) // pad x so am has enough room later
499
+ x[x.t++] = 0;
500
+ for(var i = 0; i < this.m.t; ++i) {
501
+ // faster way of calculating u0 = x[i]*mp mod DV
502
+ var j = x[i]&0x7fff;
503
+ var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
+ // use am to combine the multiply-shift-add into one call
505
+ j = i+this.m.t;
506
+ x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
+ // propagate carry
508
+ while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
+ }
510
+ x.clamp();
511
+ x.drShiftTo(this.m.t,x);
512
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
+ }
514
+
515
+ // r = "x^2/R mod m"; x != r
516
+ function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
+
518
+ // r = "xy/R mod m"; x,y != r
519
+ function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
+
521
+ Montgomery.prototype.convert = montConvert;
522
+ Montgomery.prototype.revert = montRevert;
523
+ Montgomery.prototype.reduce = montReduce;
524
+ Montgomery.prototype.mulTo = montMulTo;
525
+ Montgomery.prototype.sqrTo = montSqrTo;
526
+
527
+ // (protected) true iff this is even
528
+ function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
+
530
+ // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
+ function bnpExp(e,z) {
532
+ if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
+ g.copyTo(r);
535
+ while(--i >= 0) {
536
+ z.sqrTo(r,r2);
537
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
+ else { var t = r; r = r2; r2 = t; }
539
+ }
540
+ return z.revert(r);
541
+ }
542
+
543
+ // (public) this^e % m, 0 <= e < 2^32
544
+ function bnModPowInt(e,m) {
545
+ var z;
546
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
+ return this.exp(e,z);
548
+ }
549
+
550
+ // protected
551
+ encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
+ encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
+ encryptionBigInteger.prototype.fromString = bnpFromString;
554
+ encryptionBigInteger.prototype.clamp = bnpClamp;
555
+ encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
+ encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
+ encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
+ encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
+ encryptionBigInteger.prototype.subTo = bnpSubTo;
560
+ encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
+ encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
+ encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
+ encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
+ encryptionBigInteger.prototype.isEven = bnpIsEven;
565
+ encryptionBigInteger.prototype.exp = bnpExp;
566
+
567
+ // public
568
+ encryptionBigInteger.prototype.toString = bnToString;
569
+ encryptionBigInteger.prototype.negate = bnNegate;
570
+ encryptionBigInteger.prototype.abs = bnAbs;
571
+ encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
+ encryptionBigInteger.prototype.bitLength = bnBitLength;
573
+ encryptionBigInteger.prototype.mod = bnMod;
574
+ encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
+
576
+ // "constants"
577
+ encryptionBigInteger.ZERO = nbv(0);
578
+ encryptionBigInteger.ONE = nbv(1);