@rabbitio/ui-kit 1.0.0-beta.6 → 1.0.0-beta.61

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 (317) hide show
  1. package/.gitlab-ci.yml +29 -0
  2. package/.husky/commit-msg +14 -0
  3. package/.husky/pre-push +1 -0
  4. package/CHANGELOG.md +0 -0
  5. package/README.md +27 -18
  6. package/coverage/base.css +224 -0
  7. package/coverage/block-navigation.js +87 -0
  8. package/coverage/clover.xml +17210 -0
  9. package/coverage/coverage-final.json +160 -0
  10. package/coverage/favicon.png +0 -0
  11. package/coverage/index.html +1241 -0
  12. package/coverage/prettify.css +1 -0
  13. package/coverage/prettify.js +2 -0
  14. package/coverage/sort-arrow-sprite.png +0 -0
  15. package/coverage/sorter.js +196 -0
  16. package/coverage/ui-kit/index.html +116 -0
  17. package/coverage/ui-kit/index.js.html +88 -0
  18. package/coverage/ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html +142 -0
  19. package/coverage/ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html +145 -0
  20. package/coverage/ui-kit/src/assets/wrappedImages/arrowWhite.jsx.html +145 -0
  21. package/coverage/ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html +139 -0
  22. package/coverage/ui-kit/src/assets/wrappedImages/determinedError.jsx.html +472 -0
  23. package/coverage/ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html +244 -0
  24. package/coverage/ui-kit/src/assets/wrappedImages/index.html +251 -0
  25. package/coverage/ui-kit/src/assets/wrappedImages/infoIcon.jsx.html +151 -0
  26. package/coverage/ui-kit/src/assets/wrappedImages/noticeQuestionIcon.jsx.html +265 -0
  27. package/coverage/ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html +205 -0
  28. package/coverage/ui-kit/src/assets/wrappedImages/walletIcon.jsx.html +199 -0
  29. package/coverage/ui-kit/src/common/adapters/axiosAdapter.js.html +190 -0
  30. package/coverage/ui-kit/src/common/adapters/index.html +131 -0
  31. package/coverage/ui-kit/src/common/adapters/qrUtils.js.html +139 -0
  32. package/coverage/ui-kit/src/common/amountUtils.js.html +1393 -0
  33. package/coverage/ui-kit/src/common/errorUtils.js.html +211 -0
  34. package/coverage/ui-kit/src/common/external-apis/apiGroups.js.html +250 -0
  35. package/coverage/ui-kit/src/common/external-apis/index.html +131 -0
  36. package/coverage/ui-kit/src/common/external-apis/ipAddressProviders.js.html +499 -0
  37. package/coverage/ui-kit/src/common/fiatCurrenciesService.js.html +568 -0
  38. package/coverage/ui-kit/src/common/index.html +146 -0
  39. package/coverage/ui-kit/src/common/models/blockchain.js.html +115 -0
  40. package/coverage/ui-kit/src/common/models/coin.js.html +556 -0
  41. package/coverage/ui-kit/src/common/models/index.html +146 -0
  42. package/coverage/ui-kit/src/common/models/protocol.js.html +100 -0
  43. package/coverage/ui-kit/src/common/utils/cache.js.html +889 -0
  44. package/coverage/ui-kit/src/common/utils/emailAPI.js.html +139 -0
  45. package/coverage/ui-kit/src/common/utils/index.html +161 -0
  46. package/coverage/ui-kit/src/common/utils/logging/index.html +131 -0
  47. package/coverage/ui-kit/src/common/utils/logging/logger.js.html +229 -0
  48. package/coverage/ui-kit/src/common/utils/logging/logsStorage.js.html +268 -0
  49. package/coverage/ui-kit/src/common/utils/postponeExecution.js.html +118 -0
  50. package/coverage/ui-kit/src/common/utils/safeStringify.js.html +235 -0
  51. package/coverage/ui-kit/src/components/atoms/AssetIcon/AssetIcon.jsx.html +277 -0
  52. package/coverage/ui-kit/src/components/atoms/AssetIcon/index.html +116 -0
  53. package/coverage/ui-kit/src/components/atoms/AssetSelection/AssetSelection.jsx.html +310 -0
  54. package/coverage/ui-kit/src/components/atoms/AssetSelection/index.html +116 -0
  55. package/coverage/ui-kit/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +217 -0
  56. package/coverage/ui-kit/src/components/atoms/BackgroundTitle/index.html +116 -0
  57. package/coverage/ui-kit/src/components/atoms/InformationMessage/InformationMessage.jsx.html +265 -0
  58. package/coverage/ui-kit/src/components/atoms/InformationMessage/index.html +116 -0
  59. package/coverage/ui-kit/src/components/atoms/Input/Input.jsx.html +679 -0
  60. package/coverage/ui-kit/src/components/atoms/Input/index.html +116 -0
  61. package/coverage/ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +256 -0
  62. package/coverage/ui-kit/src/components/atoms/LoadingDots/index.html +116 -0
  63. package/coverage/ui-kit/src/components/atoms/NoticeIcon/NoticeIcon.jsx.html +298 -0
  64. package/coverage/ui-kit/src/components/atoms/NoticeIcon/index.html +116 -0
  65. package/coverage/ui-kit/src/components/atoms/QrCode/QrCode.jsx.html +187 -0
  66. package/coverage/ui-kit/src/components/atoms/QrCode/index.html +116 -0
  67. package/coverage/ui-kit/src/components/atoms/RateSelector/RateSelector.jsx.html +196 -0
  68. package/coverage/ui-kit/src/components/atoms/RateSelector/index.html +116 -0
  69. package/coverage/ui-kit/src/components/atoms/SupportChat/SupportChat.jsx.html +229 -0
  70. package/coverage/ui-kit/src/components/atoms/SupportChat/index.html +116 -0
  71. package/coverage/ui-kit/src/components/atoms/Textarea/Textarea.jsx.html +559 -0
  72. package/coverage/ui-kit/src/components/atoms/Textarea/index.html +116 -0
  73. package/coverage/ui-kit/src/components/atoms/TitleBox/TitleBox.jsx.html +577 -0
  74. package/coverage/ui-kit/src/components/atoms/TitleBox/index.html +116 -0
  75. package/coverage/ui-kit/src/components/atoms/Tooltip/Tooltip.jsx.html +295 -0
  76. package/coverage/ui-kit/src/components/atoms/Tooltip/index.html +116 -0
  77. package/coverage/ui-kit/src/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +325 -0
  78. package/coverage/ui-kit/src/components/atoms/TwoLinesOfText/index.html +116 -0
  79. package/coverage/ui-kit/src/components/atoms/Validation/Validation.jsx.html +202 -0
  80. package/coverage/ui-kit/src/components/atoms/Validation/index.html +116 -0
  81. package/coverage/ui-kit/src/components/atoms/buttons/Button/Button.jsx.html +802 -0
  82. package/coverage/ui-kit/src/components/atoms/buttons/Button/index.html +116 -0
  83. package/coverage/ui-kit/src/components/atoms/buttons/Close/Close.jsx.html +262 -0
  84. package/coverage/ui-kit/src/components/atoms/buttons/Close/index.html +116 -0
  85. package/coverage/ui-kit/src/components/atoms/buttons/LinkButton/LinkButton.jsx.html +430 -0
  86. package/coverage/ui-kit/src/components/atoms/buttons/LinkButton/index.html +116 -0
  87. package/coverage/ui-kit/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +469 -0
  88. package/coverage/ui-kit/src/components/atoms/buttons/RadioButtonWithText/index.html +116 -0
  89. package/coverage/ui-kit/src/components/hooks/index.html +131 -0
  90. package/coverage/ui-kit/src/components/hooks/useCallHandlingErrors.js.html +163 -0
  91. package/coverage/ui-kit/src/components/hooks/useReferredState.js.html +157 -0
  92. package/coverage/ui-kit/src/components/molecules/AmountInput/AmountInput.jsx.html +1348 -0
  93. package/coverage/ui-kit/src/components/molecules/AmountInput/index.html +116 -0
  94. package/coverage/ui-kit/src/components/molecules/CoinPicker/CoinPicker.jsx.html +2011 -0
  95. package/coverage/ui-kit/src/components/molecules/CoinPicker/index.html +116 -0
  96. package/coverage/ui-kit/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +205 -0
  97. package/coverage/ui-kit/src/components/molecules/LineWithIconLink/index.html +116 -0
  98. package/coverage/ui-kit/src/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +175 -0
  99. package/coverage/ui-kit/src/components/molecules/TitledLineWithIconLink/index.html +116 -0
  100. package/coverage/ui-kit/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +283 -0
  101. package/coverage/ui-kit/src/components/organisms/CoinPickerDialogStep/index.html +116 -0
  102. package/coverage/ui-kit/src/components/organisms/Dialog/Dialog.jsx.html +1630 -0
  103. package/coverage/ui-kit/src/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +451 -0
  104. package/coverage/ui-kit/src/components/organisms/Dialog/DialogButtons/index.html +116 -0
  105. package/coverage/ui-kit/src/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +2146 -0
  106. package/coverage/ui-kit/src/components/organisms/Dialog/DialogStep/index.html +116 -0
  107. package/coverage/ui-kit/src/components/organisms/Dialog/index.html +116 -0
  108. package/coverage/ui-kit/src/components/organisms/SwapForm/SwapForm.jsx.html +3883 -0
  109. package/coverage/ui-kit/src/components/organisms/SwapForm/index.html +116 -0
  110. package/coverage/ui-kit/src/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +316 -0
  111. package/coverage/ui-kit/src/components/templates/DeterminedErrorDialogStep/index.html +116 -0
  112. package/coverage/ui-kit/src/components/utils/index.html +161 -0
  113. package/coverage/ui-kit/src/components/utils/inputValueProviders.js.html +259 -0
  114. package/coverage/ui-kit/src/components/utils/textUtils.js.html +139 -0
  115. package/coverage/ui-kit/src/components/utils/uiUtils.js.html +127 -0
  116. package/coverage/ui-kit/src/components/utils/urlQueryUtils.js.html +346 -0
  117. package/coverage/ui-kit/src/constants/atoms/Close/close.jsx.html +100 -0
  118. package/coverage/ui-kit/src/constants/atoms/Close/index.html +116 -0
  119. package/coverage/ui-kit/src/constants/atoms/LinkButton/index.html +116 -0
  120. package/coverage/ui-kit/src/constants/atoms/LinkButton/linkButton.jsx.html +103 -0
  121. package/coverage/ui-kit/src/constants/atoms/Tooltip/index.html +116 -0
  122. package/coverage/ui-kit/src/constants/atoms/Tooltip/tooltip.jsx.html +109 -0
  123. package/coverage/ui-kit/src/constants/globalConstants.jsx.html +97 -0
  124. package/coverage/ui-kit/src/constants/index.html +116 -0
  125. package/coverage/ui-kit/src/constants/organisms/dialog/DialogStep/dialogStep.js.html +88 -0
  126. package/coverage/ui-kit/src/constants/organisms/dialog/DialogStep/index.html +116 -0
  127. package/coverage/ui-kit/src/constants/organisms/dialog/dialog.js.html +172 -0
  128. package/coverage/ui-kit/src/constants/organisms/dialog/index.html +116 -0
  129. package/coverage/ui-kit/src/index.html +116 -0
  130. package/coverage/ui-kit/src/index.js.html +367 -0
  131. package/coverage/ui-kit/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js.html +1762 -0
  132. package/coverage/ui-kit/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js.html +649 -0
  133. package/coverage/ui-kit/src/robustExteranlApiCallerService/cancelProcessing.js.html +172 -0
  134. package/coverage/ui-kit/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js.html +394 -0
  135. package/coverage/ui-kit/src/robustExteranlApiCallerService/externalApiProvider.js.html +553 -0
  136. package/coverage/ui-kit/src/robustExteranlApiCallerService/externalServicesStatsCollector.js.html +331 -0
  137. package/coverage/ui-kit/src/robustExteranlApiCallerService/index.html +206 -0
  138. package/coverage/ui-kit/src/robustExteranlApiCallerService/robustExternalAPICallerService.js.html +1249 -0
  139. package/coverage/ui-kit/src/swaps-lib/external-apis/index.html +131 -0
  140. package/coverage/ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +727 -0
  141. package/coverage/ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +2899 -0
  142. package/coverage/ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +214 -0
  143. package/coverage/ui-kit/src/swaps-lib/models/existingSwap.js.html +304 -0
  144. package/coverage/ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +487 -0
  145. package/coverage/ui-kit/src/swaps-lib/models/index.html +146 -0
  146. package/coverage/ui-kit/src/swaps-lib/services/index.html +116 -0
  147. package/coverage/ui-kit/src/swaps-lib/services/publicSwapService.js.html +2191 -0
  148. package/coverage/ui-kit/src/swaps-lib/utils/index.html +116 -0
  149. package/coverage/ui-kit/src/swaps-lib/utils/swapUtils.js.html +742 -0
  150. package/coverage/ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +202 -0
  151. package/coverage/ui-kit/stories/atoms/LinesOfText.stories.jsx.html +283 -0
  152. package/coverage/ui-kit/stories/atoms/LoadingDots.stories.jsx.html +226 -0
  153. package/coverage/ui-kit/stories/atoms/QrCode.stories.jsx.html +175 -0
  154. package/coverage/ui-kit/stories/atoms/RateSelector.stories.jsx.html +136 -0
  155. package/coverage/ui-kit/stories/atoms/Validation.stories.jsx.html +178 -0
  156. package/coverage/ui-kit/stories/atoms/buttons/Button.stories.jsx.html +946 -0
  157. package/coverage/ui-kit/stories/atoms/buttons/Close.stories.jsx.html +214 -0
  158. package/coverage/ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +295 -0
  159. package/coverage/ui-kit/stories/atoms/buttons/index.html +146 -0
  160. package/coverage/ui-kit/stories/atoms/index.html +191 -0
  161. package/coverage/ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +154 -0
  162. package/coverage/ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +160 -0
  163. package/coverage/ui-kit/stories/molecules/index.html +131 -0
  164. package/coverage/ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +589 -0
  165. package/coverage/ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +328 -0
  166. package/coverage/ui-kit/stories/organisms/Dialog/DialogButtons/index.html +116 -0
  167. package/coverage/ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +337 -0
  168. package/coverage/ui-kit/stories/organisms/Dialog/DialogStep/index.html +116 -0
  169. package/coverage/ui-kit/stories/organisms/Dialog/index.html +116 -0
  170. package/coverage/ui-kit/stories/stubs/exampleContent.jsx.html +145 -0
  171. package/coverage/ui-kit/stories/stubs/index.html +116 -0
  172. package/coverage/ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +193 -0
  173. package/coverage/ui-kit/stories/templates/index.html +116 -0
  174. package/dist/index.cjs +9963 -9
  175. package/dist/index.cjs.map +1 -1
  176. package/dist/index.css +71409 -1641
  177. package/dist/index.css.map +1 -1
  178. package/dist/index.modern.js +7672 -11
  179. package/dist/index.modern.js.map +1 -1
  180. package/dist/index.module.js +9883 -11
  181. package/dist/index.module.js.map +1 -1
  182. package/dist/index.umd.js +9954 -12
  183. package/dist/index.umd.js.map +1 -1
  184. package/index.js +1 -1
  185. package/package.json +27 -5
  186. package/src/assets/image/icons/arrow-tosca.svg +3 -0
  187. package/src/assets/wrappedImages/arrowIcon.jsx +19 -0
  188. package/src/assets/wrappedImages/arrowTosca.jsx +20 -0
  189. package/src/assets/wrappedImages/arrowWhite.jsx +20 -0
  190. package/src/assets/wrappedImages/darkRectangle.jsx +18 -0
  191. package/src/assets/wrappedImages/determinedError.jsx +129 -0
  192. package/src/assets/wrappedImages/failedValidationIcon.jsx +53 -0
  193. package/src/assets/wrappedImages/infoIcon.jsx +22 -0
  194. package/src/assets/wrappedImages/noticeQuestionIcon.jsx +60 -0
  195. package/src/assets/wrappedImages/successfulValidationIcon.jsx +40 -0
  196. package/src/assets/wrappedImages/walletIcon.jsx +38 -0
  197. package/src/common/adapters/axiosAdapter.js +35 -0
  198. package/src/common/adapters/qrUtils.js +18 -0
  199. package/src/common/amountUtils.js +436 -0
  200. package/src/common/errorUtils.js +42 -0
  201. package/src/common/external-apis/apiGroups.js +55 -0
  202. package/src/common/external-apis/ipAddressProviders.js +138 -0
  203. package/src/common/fiatCurrenciesService.js +161 -0
  204. package/src/common/models/blockchain.js +10 -0
  205. package/src/common/models/coin.js +157 -0
  206. package/src/common/models/protocol.js +5 -0
  207. package/src/common/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +14 -0
  208. package/src/common/utils/cache.js +268 -0
  209. package/src/common/utils/emailAPI.js +18 -0
  210. package/src/common/utils/logging/logger.js +48 -0
  211. package/src/common/utils/logging/logsStorage.js +61 -0
  212. package/src/common/utils/postponeExecution.js +11 -0
  213. package/src/common/utils/safeStringify.js +50 -0
  214. package/src/components/atoms/AssetIcon/AssetIcon.jsx +64 -0
  215. package/src/components/atoms/AssetIcon/asset-icon.module.scss +42 -0
  216. package/src/components/atoms/AssetSelection/AssetSelection.jsx +75 -0
  217. package/src/components/atoms/AssetSelection/asset-selection.module.scss +55 -0
  218. package/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx +44 -0
  219. package/src/components/atoms/BackgroundTitle/background-title.module.scss +52 -0
  220. package/src/components/atoms/InformationMessage/InformationMessage.jsx +60 -0
  221. package/src/components/atoms/InformationMessage/information-message.module.scss +36 -0
  222. package/src/components/atoms/Input/Input.jsx +198 -0
  223. package/src/components/atoms/Input/input.module.scss +107 -0
  224. package/{stories → src/components}/atoms/LoadingDots/LoadingDots.module.scss +1 -1
  225. package/src/components/atoms/NoticeIcon/NoticeIcon.jsx +71 -0
  226. package/src/components/atoms/NoticeIcon/notice-icon.module.scss +14 -0
  227. package/src/components/atoms/QrCode/QrCode.jsx +34 -0
  228. package/src/components/atoms/QrCode/qr-code.module.scss +9 -0
  229. package/src/components/atoms/RateSelector/RateSelector.jsx +37 -0
  230. package/src/components/atoms/RateSelector/rate-selector.module.scss +47 -0
  231. package/src/components/atoms/SupportChat/SupportChat.jsx +48 -0
  232. package/src/components/atoms/Textarea/Textarea.jsx +158 -0
  233. package/src/components/atoms/Textarea/textarea.module.scss +71 -0
  234. package/src/components/atoms/TitleBox/TitleBox.jsx +164 -0
  235. package/src/components/atoms/TitleBox/title-box.module.scss +30 -0
  236. package/src/components/atoms/Tooltip/Tooltip.jsx +70 -0
  237. package/src/components/atoms/Tooltip/tooltip.module.scss +237 -0
  238. package/src/components/atoms/TwoLinesOfText/LinesOfText.jsx +80 -0
  239. package/src/components/atoms/TwoLinesOfText/lines-of-text.module.scss +65 -0
  240. package/src/components/atoms/Validation/Validation.jsx +39 -0
  241. package/src/components/atoms/Validation/validation.module.scss +15 -0
  242. package/{stories → src/components}/atoms/buttons/Button/Button.jsx +5 -1
  243. package/{stories → src/components}/atoms/buttons/Button/Button.module.scss +1 -1
  244. package/src/components/atoms/buttons/Close/Close.jsx +59 -0
  245. package/src/components/atoms/buttons/Close/close.module.scss +75 -0
  246. package/src/components/atoms/buttons/LinkButton/LinkButton.jsx +115 -0
  247. package/src/components/atoms/buttons/LinkButton/link-button.module.scss +49 -0
  248. package/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx +128 -0
  249. package/src/components/atoms/buttons/RadioButtonWithText/radio-button-with-text.module.scss +86 -0
  250. package/src/components/hooks/useCallHandlingErrors.js +26 -0
  251. package/src/components/hooks/useReferredState.js +24 -0
  252. package/src/components/molecules/AmountInput/AmountInput.jsx +421 -0
  253. package/src/components/molecules/AmountInput/amount-input.module.scss +189 -0
  254. package/src/components/molecules/CoinPicker/CoinPicker.jsx +642 -0
  255. package/src/components/molecules/CoinPicker/coin-picker.module.scss +210 -0
  256. package/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx +40 -0
  257. package/src/components/molecules/LineWithIconLink/line-with-icon-link.module.scss +25 -0
  258. package/src/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx +30 -0
  259. package/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx +66 -0
  260. package/src/components/organisms/Dialog/Dialog.jsx +515 -0
  261. package/src/components/organisms/Dialog/DialogButtons/DialogButtons.jsx +122 -0
  262. package/src/components/organisms/Dialog/DialogButtons/dialog-buttons.module.scss +25 -0
  263. package/src/components/organisms/Dialog/DialogStep/DialogStep.jsx +687 -0
  264. package/src/components/organisms/Dialog/DialogStep/dialog-step.module.scss +383 -0
  265. package/src/components/organisms/Dialog/dialog.module.scss +226 -0
  266. package/src/components/organisms/SwapForm/SwapForm.jsx +1266 -0
  267. package/src/components/organisms/SwapForm/swap-form.module.scss +134 -0
  268. package/src/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx +77 -0
  269. package/src/components/tests/utils/inputValueProviders/provideFormatOfFloatValueByInputString.test.js +139 -0
  270. package/src/components/tests/utils/urlQueryUtils/getQueryParameterValues.test.js +71 -0
  271. package/src/components/tests/utils/urlQueryUtils/saveQueryParameterAndValues.test.js +144 -0
  272. package/src/components/utils/inputValueProviders.js +58 -0
  273. package/src/components/utils/textUtils.js +18 -0
  274. package/src/components/utils/uiUtils.js +14 -0
  275. package/src/components/utils/urlQueryUtils.js +87 -0
  276. package/src/constants/atoms/Close/close.jsx +5 -0
  277. package/src/constants/atoms/LinkButton/linkButton.jsx +6 -0
  278. package/src/constants/atoms/Tooltip/tooltip.jsx +8 -0
  279. package/src/constants/globalConstants.jsx +4 -0
  280. package/src/constants/organisms/dialog/DialogStep/dialogStep.js +1 -0
  281. package/src/constants/organisms/dialog/dialog.js +29 -0
  282. package/src/index.js +94 -0
  283. package/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js +559 -0
  284. package/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js +188 -0
  285. package/src/robustExteranlApiCallerService/cancelProcessing.js +29 -0
  286. package/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js +103 -0
  287. package/src/robustExteranlApiCallerService/externalApiProvider.js +156 -0
  288. package/src/robustExteranlApiCallerService/externalServicesStatsCollector.js +82 -0
  289. package/src/robustExteranlApiCallerService/robustExternalAPICallerService.js +388 -0
  290. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/_performCallAttempt.test.js +787 -0
  291. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/callExternalAPI.test.js +745 -0
  292. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/constructor.test.js +31 -0
  293. package/src/swaps-lib/external-apis/swapProvider.js +214 -0
  294. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +938 -0
  295. package/src/swaps-lib/models/baseSwapCreationInfo.js +43 -0
  296. package/src/swaps-lib/models/existingSwap.js +73 -0
  297. package/src/swaps-lib/models/existingSwapWithFiatData.js +134 -0
  298. package/src/swaps-lib/services/publicSwapService.js +702 -0
  299. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +506 -0
  300. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/createSwap.test.js +1311 -0
  301. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getAllSupportedCurrencies.test.js +76 -0
  302. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getDepositCurrencies.test.js +82 -0
  303. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +1892 -0
  304. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getWithdrawalCurrencies.test.js +111 -0
  305. package/src/swaps-lib/test/utils/swapUtils/safeHandleRequestsLimitExceeding.test.js +88 -0
  306. package/src/swaps-lib/utils/swapUtils.js +219 -0
  307. package/stories/stubs/exampleContent.jsx +20 -0
  308. package/styles/_placeholder.scss +1 -1
  309. package/styles/fonts/NunitoSans-Bold.ttf +0 -0
  310. package/styles/fonts/NunitoSans-ExtraBold.ttf +0 -0
  311. package/styles/fonts/NunitoSans-Light.ttf +0 -0
  312. package/styles/fonts/NunitoSans-Regular.ttf +0 -0
  313. package/styles/fonts/NunitoSans-SemiBold.ttf +0 -0
  314. package/styles/global-styles-index.scss +1 -1
  315. package/styles/index.scss +5 -3
  316. package/stories/index.js +0 -2
  317. /package/{stories → src/components}/atoms/LoadingDots/LoadingDots.jsx +0 -0
@@ -0,0 +1,3883 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for ui-kit/src/components/organisms/SwapForm/SwapForm.jsx</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">ui-kit/src/components/organisms/SwapForm</a> SwapForm.jsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/1266</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/1266</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a>
1034
+ <a name='L969'></a><a href='#L969'>969</a>
1035
+ <a name='L970'></a><a href='#L970'>970</a>
1036
+ <a name='L971'></a><a href='#L971'>971</a>
1037
+ <a name='L972'></a><a href='#L972'>972</a>
1038
+ <a name='L973'></a><a href='#L973'>973</a>
1039
+ <a name='L974'></a><a href='#L974'>974</a>
1040
+ <a name='L975'></a><a href='#L975'>975</a>
1041
+ <a name='L976'></a><a href='#L976'>976</a>
1042
+ <a name='L977'></a><a href='#L977'>977</a>
1043
+ <a name='L978'></a><a href='#L978'>978</a>
1044
+ <a name='L979'></a><a href='#L979'>979</a>
1045
+ <a name='L980'></a><a href='#L980'>980</a>
1046
+ <a name='L981'></a><a href='#L981'>981</a>
1047
+ <a name='L982'></a><a href='#L982'>982</a>
1048
+ <a name='L983'></a><a href='#L983'>983</a>
1049
+ <a name='L984'></a><a href='#L984'>984</a>
1050
+ <a name='L985'></a><a href='#L985'>985</a>
1051
+ <a name='L986'></a><a href='#L986'>986</a>
1052
+ <a name='L987'></a><a href='#L987'>987</a>
1053
+ <a name='L988'></a><a href='#L988'>988</a>
1054
+ <a name='L989'></a><a href='#L989'>989</a>
1055
+ <a name='L990'></a><a href='#L990'>990</a>
1056
+ <a name='L991'></a><a href='#L991'>991</a>
1057
+ <a name='L992'></a><a href='#L992'>992</a>
1058
+ <a name='L993'></a><a href='#L993'>993</a>
1059
+ <a name='L994'></a><a href='#L994'>994</a>
1060
+ <a name='L995'></a><a href='#L995'>995</a>
1061
+ <a name='L996'></a><a href='#L996'>996</a>
1062
+ <a name='L997'></a><a href='#L997'>997</a>
1063
+ <a name='L998'></a><a href='#L998'>998</a>
1064
+ <a name='L999'></a><a href='#L999'>999</a>
1065
+ <a name='L1000'></a><a href='#L1000'>1000</a>
1066
+ <a name='L1001'></a><a href='#L1001'>1001</a>
1067
+ <a name='L1002'></a><a href='#L1002'>1002</a>
1068
+ <a name='L1003'></a><a href='#L1003'>1003</a>
1069
+ <a name='L1004'></a><a href='#L1004'>1004</a>
1070
+ <a name='L1005'></a><a href='#L1005'>1005</a>
1071
+ <a name='L1006'></a><a href='#L1006'>1006</a>
1072
+ <a name='L1007'></a><a href='#L1007'>1007</a>
1073
+ <a name='L1008'></a><a href='#L1008'>1008</a>
1074
+ <a name='L1009'></a><a href='#L1009'>1009</a>
1075
+ <a name='L1010'></a><a href='#L1010'>1010</a>
1076
+ <a name='L1011'></a><a href='#L1011'>1011</a>
1077
+ <a name='L1012'></a><a href='#L1012'>1012</a>
1078
+ <a name='L1013'></a><a href='#L1013'>1013</a>
1079
+ <a name='L1014'></a><a href='#L1014'>1014</a>
1080
+ <a name='L1015'></a><a href='#L1015'>1015</a>
1081
+ <a name='L1016'></a><a href='#L1016'>1016</a>
1082
+ <a name='L1017'></a><a href='#L1017'>1017</a>
1083
+ <a name='L1018'></a><a href='#L1018'>1018</a>
1084
+ <a name='L1019'></a><a href='#L1019'>1019</a>
1085
+ <a name='L1020'></a><a href='#L1020'>1020</a>
1086
+ <a name='L1021'></a><a href='#L1021'>1021</a>
1087
+ <a name='L1022'></a><a href='#L1022'>1022</a>
1088
+ <a name='L1023'></a><a href='#L1023'>1023</a>
1089
+ <a name='L1024'></a><a href='#L1024'>1024</a>
1090
+ <a name='L1025'></a><a href='#L1025'>1025</a>
1091
+ <a name='L1026'></a><a href='#L1026'>1026</a>
1092
+ <a name='L1027'></a><a href='#L1027'>1027</a>
1093
+ <a name='L1028'></a><a href='#L1028'>1028</a>
1094
+ <a name='L1029'></a><a href='#L1029'>1029</a>
1095
+ <a name='L1030'></a><a href='#L1030'>1030</a>
1096
+ <a name='L1031'></a><a href='#L1031'>1031</a>
1097
+ <a name='L1032'></a><a href='#L1032'>1032</a>
1098
+ <a name='L1033'></a><a href='#L1033'>1033</a>
1099
+ <a name='L1034'></a><a href='#L1034'>1034</a>
1100
+ <a name='L1035'></a><a href='#L1035'>1035</a>
1101
+ <a name='L1036'></a><a href='#L1036'>1036</a>
1102
+ <a name='L1037'></a><a href='#L1037'>1037</a>
1103
+ <a name='L1038'></a><a href='#L1038'>1038</a>
1104
+ <a name='L1039'></a><a href='#L1039'>1039</a>
1105
+ <a name='L1040'></a><a href='#L1040'>1040</a>
1106
+ <a name='L1041'></a><a href='#L1041'>1041</a>
1107
+ <a name='L1042'></a><a href='#L1042'>1042</a>
1108
+ <a name='L1043'></a><a href='#L1043'>1043</a>
1109
+ <a name='L1044'></a><a href='#L1044'>1044</a>
1110
+ <a name='L1045'></a><a href='#L1045'>1045</a>
1111
+ <a name='L1046'></a><a href='#L1046'>1046</a>
1112
+ <a name='L1047'></a><a href='#L1047'>1047</a>
1113
+ <a name='L1048'></a><a href='#L1048'>1048</a>
1114
+ <a name='L1049'></a><a href='#L1049'>1049</a>
1115
+ <a name='L1050'></a><a href='#L1050'>1050</a>
1116
+ <a name='L1051'></a><a href='#L1051'>1051</a>
1117
+ <a name='L1052'></a><a href='#L1052'>1052</a>
1118
+ <a name='L1053'></a><a href='#L1053'>1053</a>
1119
+ <a name='L1054'></a><a href='#L1054'>1054</a>
1120
+ <a name='L1055'></a><a href='#L1055'>1055</a>
1121
+ <a name='L1056'></a><a href='#L1056'>1056</a>
1122
+ <a name='L1057'></a><a href='#L1057'>1057</a>
1123
+ <a name='L1058'></a><a href='#L1058'>1058</a>
1124
+ <a name='L1059'></a><a href='#L1059'>1059</a>
1125
+ <a name='L1060'></a><a href='#L1060'>1060</a>
1126
+ <a name='L1061'></a><a href='#L1061'>1061</a>
1127
+ <a name='L1062'></a><a href='#L1062'>1062</a>
1128
+ <a name='L1063'></a><a href='#L1063'>1063</a>
1129
+ <a name='L1064'></a><a href='#L1064'>1064</a>
1130
+ <a name='L1065'></a><a href='#L1065'>1065</a>
1131
+ <a name='L1066'></a><a href='#L1066'>1066</a>
1132
+ <a name='L1067'></a><a href='#L1067'>1067</a>
1133
+ <a name='L1068'></a><a href='#L1068'>1068</a>
1134
+ <a name='L1069'></a><a href='#L1069'>1069</a>
1135
+ <a name='L1070'></a><a href='#L1070'>1070</a>
1136
+ <a name='L1071'></a><a href='#L1071'>1071</a>
1137
+ <a name='L1072'></a><a href='#L1072'>1072</a>
1138
+ <a name='L1073'></a><a href='#L1073'>1073</a>
1139
+ <a name='L1074'></a><a href='#L1074'>1074</a>
1140
+ <a name='L1075'></a><a href='#L1075'>1075</a>
1141
+ <a name='L1076'></a><a href='#L1076'>1076</a>
1142
+ <a name='L1077'></a><a href='#L1077'>1077</a>
1143
+ <a name='L1078'></a><a href='#L1078'>1078</a>
1144
+ <a name='L1079'></a><a href='#L1079'>1079</a>
1145
+ <a name='L1080'></a><a href='#L1080'>1080</a>
1146
+ <a name='L1081'></a><a href='#L1081'>1081</a>
1147
+ <a name='L1082'></a><a href='#L1082'>1082</a>
1148
+ <a name='L1083'></a><a href='#L1083'>1083</a>
1149
+ <a name='L1084'></a><a href='#L1084'>1084</a>
1150
+ <a name='L1085'></a><a href='#L1085'>1085</a>
1151
+ <a name='L1086'></a><a href='#L1086'>1086</a>
1152
+ <a name='L1087'></a><a href='#L1087'>1087</a>
1153
+ <a name='L1088'></a><a href='#L1088'>1088</a>
1154
+ <a name='L1089'></a><a href='#L1089'>1089</a>
1155
+ <a name='L1090'></a><a href='#L1090'>1090</a>
1156
+ <a name='L1091'></a><a href='#L1091'>1091</a>
1157
+ <a name='L1092'></a><a href='#L1092'>1092</a>
1158
+ <a name='L1093'></a><a href='#L1093'>1093</a>
1159
+ <a name='L1094'></a><a href='#L1094'>1094</a>
1160
+ <a name='L1095'></a><a href='#L1095'>1095</a>
1161
+ <a name='L1096'></a><a href='#L1096'>1096</a>
1162
+ <a name='L1097'></a><a href='#L1097'>1097</a>
1163
+ <a name='L1098'></a><a href='#L1098'>1098</a>
1164
+ <a name='L1099'></a><a href='#L1099'>1099</a>
1165
+ <a name='L1100'></a><a href='#L1100'>1100</a>
1166
+ <a name='L1101'></a><a href='#L1101'>1101</a>
1167
+ <a name='L1102'></a><a href='#L1102'>1102</a>
1168
+ <a name='L1103'></a><a href='#L1103'>1103</a>
1169
+ <a name='L1104'></a><a href='#L1104'>1104</a>
1170
+ <a name='L1105'></a><a href='#L1105'>1105</a>
1171
+ <a name='L1106'></a><a href='#L1106'>1106</a>
1172
+ <a name='L1107'></a><a href='#L1107'>1107</a>
1173
+ <a name='L1108'></a><a href='#L1108'>1108</a>
1174
+ <a name='L1109'></a><a href='#L1109'>1109</a>
1175
+ <a name='L1110'></a><a href='#L1110'>1110</a>
1176
+ <a name='L1111'></a><a href='#L1111'>1111</a>
1177
+ <a name='L1112'></a><a href='#L1112'>1112</a>
1178
+ <a name='L1113'></a><a href='#L1113'>1113</a>
1179
+ <a name='L1114'></a><a href='#L1114'>1114</a>
1180
+ <a name='L1115'></a><a href='#L1115'>1115</a>
1181
+ <a name='L1116'></a><a href='#L1116'>1116</a>
1182
+ <a name='L1117'></a><a href='#L1117'>1117</a>
1183
+ <a name='L1118'></a><a href='#L1118'>1118</a>
1184
+ <a name='L1119'></a><a href='#L1119'>1119</a>
1185
+ <a name='L1120'></a><a href='#L1120'>1120</a>
1186
+ <a name='L1121'></a><a href='#L1121'>1121</a>
1187
+ <a name='L1122'></a><a href='#L1122'>1122</a>
1188
+ <a name='L1123'></a><a href='#L1123'>1123</a>
1189
+ <a name='L1124'></a><a href='#L1124'>1124</a>
1190
+ <a name='L1125'></a><a href='#L1125'>1125</a>
1191
+ <a name='L1126'></a><a href='#L1126'>1126</a>
1192
+ <a name='L1127'></a><a href='#L1127'>1127</a>
1193
+ <a name='L1128'></a><a href='#L1128'>1128</a>
1194
+ <a name='L1129'></a><a href='#L1129'>1129</a>
1195
+ <a name='L1130'></a><a href='#L1130'>1130</a>
1196
+ <a name='L1131'></a><a href='#L1131'>1131</a>
1197
+ <a name='L1132'></a><a href='#L1132'>1132</a>
1198
+ <a name='L1133'></a><a href='#L1133'>1133</a>
1199
+ <a name='L1134'></a><a href='#L1134'>1134</a>
1200
+ <a name='L1135'></a><a href='#L1135'>1135</a>
1201
+ <a name='L1136'></a><a href='#L1136'>1136</a>
1202
+ <a name='L1137'></a><a href='#L1137'>1137</a>
1203
+ <a name='L1138'></a><a href='#L1138'>1138</a>
1204
+ <a name='L1139'></a><a href='#L1139'>1139</a>
1205
+ <a name='L1140'></a><a href='#L1140'>1140</a>
1206
+ <a name='L1141'></a><a href='#L1141'>1141</a>
1207
+ <a name='L1142'></a><a href='#L1142'>1142</a>
1208
+ <a name='L1143'></a><a href='#L1143'>1143</a>
1209
+ <a name='L1144'></a><a href='#L1144'>1144</a>
1210
+ <a name='L1145'></a><a href='#L1145'>1145</a>
1211
+ <a name='L1146'></a><a href='#L1146'>1146</a>
1212
+ <a name='L1147'></a><a href='#L1147'>1147</a>
1213
+ <a name='L1148'></a><a href='#L1148'>1148</a>
1214
+ <a name='L1149'></a><a href='#L1149'>1149</a>
1215
+ <a name='L1150'></a><a href='#L1150'>1150</a>
1216
+ <a name='L1151'></a><a href='#L1151'>1151</a>
1217
+ <a name='L1152'></a><a href='#L1152'>1152</a>
1218
+ <a name='L1153'></a><a href='#L1153'>1153</a>
1219
+ <a name='L1154'></a><a href='#L1154'>1154</a>
1220
+ <a name='L1155'></a><a href='#L1155'>1155</a>
1221
+ <a name='L1156'></a><a href='#L1156'>1156</a>
1222
+ <a name='L1157'></a><a href='#L1157'>1157</a>
1223
+ <a name='L1158'></a><a href='#L1158'>1158</a>
1224
+ <a name='L1159'></a><a href='#L1159'>1159</a>
1225
+ <a name='L1160'></a><a href='#L1160'>1160</a>
1226
+ <a name='L1161'></a><a href='#L1161'>1161</a>
1227
+ <a name='L1162'></a><a href='#L1162'>1162</a>
1228
+ <a name='L1163'></a><a href='#L1163'>1163</a>
1229
+ <a name='L1164'></a><a href='#L1164'>1164</a>
1230
+ <a name='L1165'></a><a href='#L1165'>1165</a>
1231
+ <a name='L1166'></a><a href='#L1166'>1166</a>
1232
+ <a name='L1167'></a><a href='#L1167'>1167</a>
1233
+ <a name='L1168'></a><a href='#L1168'>1168</a>
1234
+ <a name='L1169'></a><a href='#L1169'>1169</a>
1235
+ <a name='L1170'></a><a href='#L1170'>1170</a>
1236
+ <a name='L1171'></a><a href='#L1171'>1171</a>
1237
+ <a name='L1172'></a><a href='#L1172'>1172</a>
1238
+ <a name='L1173'></a><a href='#L1173'>1173</a>
1239
+ <a name='L1174'></a><a href='#L1174'>1174</a>
1240
+ <a name='L1175'></a><a href='#L1175'>1175</a>
1241
+ <a name='L1176'></a><a href='#L1176'>1176</a>
1242
+ <a name='L1177'></a><a href='#L1177'>1177</a>
1243
+ <a name='L1178'></a><a href='#L1178'>1178</a>
1244
+ <a name='L1179'></a><a href='#L1179'>1179</a>
1245
+ <a name='L1180'></a><a href='#L1180'>1180</a>
1246
+ <a name='L1181'></a><a href='#L1181'>1181</a>
1247
+ <a name='L1182'></a><a href='#L1182'>1182</a>
1248
+ <a name='L1183'></a><a href='#L1183'>1183</a>
1249
+ <a name='L1184'></a><a href='#L1184'>1184</a>
1250
+ <a name='L1185'></a><a href='#L1185'>1185</a>
1251
+ <a name='L1186'></a><a href='#L1186'>1186</a>
1252
+ <a name='L1187'></a><a href='#L1187'>1187</a>
1253
+ <a name='L1188'></a><a href='#L1188'>1188</a>
1254
+ <a name='L1189'></a><a href='#L1189'>1189</a>
1255
+ <a name='L1190'></a><a href='#L1190'>1190</a>
1256
+ <a name='L1191'></a><a href='#L1191'>1191</a>
1257
+ <a name='L1192'></a><a href='#L1192'>1192</a>
1258
+ <a name='L1193'></a><a href='#L1193'>1193</a>
1259
+ <a name='L1194'></a><a href='#L1194'>1194</a>
1260
+ <a name='L1195'></a><a href='#L1195'>1195</a>
1261
+ <a name='L1196'></a><a href='#L1196'>1196</a>
1262
+ <a name='L1197'></a><a href='#L1197'>1197</a>
1263
+ <a name='L1198'></a><a href='#L1198'>1198</a>
1264
+ <a name='L1199'></a><a href='#L1199'>1199</a>
1265
+ <a name='L1200'></a><a href='#L1200'>1200</a>
1266
+ <a name='L1201'></a><a href='#L1201'>1201</a>
1267
+ <a name='L1202'></a><a href='#L1202'>1202</a>
1268
+ <a name='L1203'></a><a href='#L1203'>1203</a>
1269
+ <a name='L1204'></a><a href='#L1204'>1204</a>
1270
+ <a name='L1205'></a><a href='#L1205'>1205</a>
1271
+ <a name='L1206'></a><a href='#L1206'>1206</a>
1272
+ <a name='L1207'></a><a href='#L1207'>1207</a>
1273
+ <a name='L1208'></a><a href='#L1208'>1208</a>
1274
+ <a name='L1209'></a><a href='#L1209'>1209</a>
1275
+ <a name='L1210'></a><a href='#L1210'>1210</a>
1276
+ <a name='L1211'></a><a href='#L1211'>1211</a>
1277
+ <a name='L1212'></a><a href='#L1212'>1212</a>
1278
+ <a name='L1213'></a><a href='#L1213'>1213</a>
1279
+ <a name='L1214'></a><a href='#L1214'>1214</a>
1280
+ <a name='L1215'></a><a href='#L1215'>1215</a>
1281
+ <a name='L1216'></a><a href='#L1216'>1216</a>
1282
+ <a name='L1217'></a><a href='#L1217'>1217</a>
1283
+ <a name='L1218'></a><a href='#L1218'>1218</a>
1284
+ <a name='L1219'></a><a href='#L1219'>1219</a>
1285
+ <a name='L1220'></a><a href='#L1220'>1220</a>
1286
+ <a name='L1221'></a><a href='#L1221'>1221</a>
1287
+ <a name='L1222'></a><a href='#L1222'>1222</a>
1288
+ <a name='L1223'></a><a href='#L1223'>1223</a>
1289
+ <a name='L1224'></a><a href='#L1224'>1224</a>
1290
+ <a name='L1225'></a><a href='#L1225'>1225</a>
1291
+ <a name='L1226'></a><a href='#L1226'>1226</a>
1292
+ <a name='L1227'></a><a href='#L1227'>1227</a>
1293
+ <a name='L1228'></a><a href='#L1228'>1228</a>
1294
+ <a name='L1229'></a><a href='#L1229'>1229</a>
1295
+ <a name='L1230'></a><a href='#L1230'>1230</a>
1296
+ <a name='L1231'></a><a href='#L1231'>1231</a>
1297
+ <a name='L1232'></a><a href='#L1232'>1232</a>
1298
+ <a name='L1233'></a><a href='#L1233'>1233</a>
1299
+ <a name='L1234'></a><a href='#L1234'>1234</a>
1300
+ <a name='L1235'></a><a href='#L1235'>1235</a>
1301
+ <a name='L1236'></a><a href='#L1236'>1236</a>
1302
+ <a name='L1237'></a><a href='#L1237'>1237</a>
1303
+ <a name='L1238'></a><a href='#L1238'>1238</a>
1304
+ <a name='L1239'></a><a href='#L1239'>1239</a>
1305
+ <a name='L1240'></a><a href='#L1240'>1240</a>
1306
+ <a name='L1241'></a><a href='#L1241'>1241</a>
1307
+ <a name='L1242'></a><a href='#L1242'>1242</a>
1308
+ <a name='L1243'></a><a href='#L1243'>1243</a>
1309
+ <a name='L1244'></a><a href='#L1244'>1244</a>
1310
+ <a name='L1245'></a><a href='#L1245'>1245</a>
1311
+ <a name='L1246'></a><a href='#L1246'>1246</a>
1312
+ <a name='L1247'></a><a href='#L1247'>1247</a>
1313
+ <a name='L1248'></a><a href='#L1248'>1248</a>
1314
+ <a name='L1249'></a><a href='#L1249'>1249</a>
1315
+ <a name='L1250'></a><a href='#L1250'>1250</a>
1316
+ <a name='L1251'></a><a href='#L1251'>1251</a>
1317
+ <a name='L1252'></a><a href='#L1252'>1252</a>
1318
+ <a name='L1253'></a><a href='#L1253'>1253</a>
1319
+ <a name='L1254'></a><a href='#L1254'>1254</a>
1320
+ <a name='L1255'></a><a href='#L1255'>1255</a>
1321
+ <a name='L1256'></a><a href='#L1256'>1256</a>
1322
+ <a name='L1257'></a><a href='#L1257'>1257</a>
1323
+ <a name='L1258'></a><a href='#L1258'>1258</a>
1324
+ <a name='L1259'></a><a href='#L1259'>1259</a>
1325
+ <a name='L1260'></a><a href='#L1260'>1260</a>
1326
+ <a name='L1261'></a><a href='#L1261'>1261</a>
1327
+ <a name='L1262'></a><a href='#L1262'>1262</a>
1328
+ <a name='L1263'></a><a href='#L1263'>1263</a>
1329
+ <a name='L1264'></a><a href='#L1264'>1264</a>
1330
+ <a name='L1265'></a><a href='#L1265'>1265</a>
1331
+ <a name='L1266'></a><a href='#L1266'>1266</a>
1332
+ <a name='L1267'></a><a href='#L1267'>1267</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
1333
+ <span class="cline-any cline-no">&nbsp;</span>
1334
+ <span class="cline-any cline-no">&nbsp;</span>
1335
+ <span class="cline-any cline-no">&nbsp;</span>
1336
+ <span class="cline-any cline-no">&nbsp;</span>
1337
+ <span class="cline-any cline-no">&nbsp;</span>
1338
+ <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-no">&nbsp;</span>
1340
+ <span class="cline-any cline-no">&nbsp;</span>
1341
+ <span class="cline-any cline-no">&nbsp;</span>
1342
+ <span class="cline-any cline-no">&nbsp;</span>
1343
+ <span class="cline-any cline-no">&nbsp;</span>
1344
+ <span class="cline-any cline-no">&nbsp;</span>
1345
+ <span class="cline-any cline-no">&nbsp;</span>
1346
+ <span class="cline-any cline-no">&nbsp;</span>
1347
+ <span class="cline-any cline-no">&nbsp;</span>
1348
+ <span class="cline-any cline-no">&nbsp;</span>
1349
+ <span class="cline-any cline-no">&nbsp;</span>
1350
+ <span class="cline-any cline-no">&nbsp;</span>
1351
+ <span class="cline-any cline-no">&nbsp;</span>
1352
+ <span class="cline-any cline-no">&nbsp;</span>
1353
+ <span class="cline-any cline-no">&nbsp;</span>
1354
+ <span class="cline-any cline-no">&nbsp;</span>
1355
+ <span class="cline-any cline-no">&nbsp;</span>
1356
+ <span class="cline-any cline-no">&nbsp;</span>
1357
+ <span class="cline-any cline-no">&nbsp;</span>
1358
+ <span class="cline-any cline-no">&nbsp;</span>
1359
+ <span class="cline-any cline-no">&nbsp;</span>
1360
+ <span class="cline-any cline-no">&nbsp;</span>
1361
+ <span class="cline-any cline-no">&nbsp;</span>
1362
+ <span class="cline-any cline-no">&nbsp;</span>
1363
+ <span class="cline-any cline-no">&nbsp;</span>
1364
+ <span class="cline-any cline-no">&nbsp;</span>
1365
+ <span class="cline-any cline-no">&nbsp;</span>
1366
+ <span class="cline-any cline-no">&nbsp;</span>
1367
+ <span class="cline-any cline-no">&nbsp;</span>
1368
+ <span class="cline-any cline-no">&nbsp;</span>
1369
+ <span class="cline-any cline-no">&nbsp;</span>
1370
+ <span class="cline-any cline-no">&nbsp;</span>
1371
+ <span class="cline-any cline-no">&nbsp;</span>
1372
+ <span class="cline-any cline-no">&nbsp;</span>
1373
+ <span class="cline-any cline-no">&nbsp;</span>
1374
+ <span class="cline-any cline-no">&nbsp;</span>
1375
+ <span class="cline-any cline-no">&nbsp;</span>
1376
+ <span class="cline-any cline-no">&nbsp;</span>
1377
+ <span class="cline-any cline-no">&nbsp;</span>
1378
+ <span class="cline-any cline-no">&nbsp;</span>
1379
+ <span class="cline-any cline-no">&nbsp;</span>
1380
+ <span class="cline-any cline-no">&nbsp;</span>
1381
+ <span class="cline-any cline-no">&nbsp;</span>
1382
+ <span class="cline-any cline-no">&nbsp;</span>
1383
+ <span class="cline-any cline-no">&nbsp;</span>
1384
+ <span class="cline-any cline-no">&nbsp;</span>
1385
+ <span class="cline-any cline-no">&nbsp;</span>
1386
+ <span class="cline-any cline-no">&nbsp;</span>
1387
+ <span class="cline-any cline-no">&nbsp;</span>
1388
+ <span class="cline-any cline-no">&nbsp;</span>
1389
+ <span class="cline-any cline-no">&nbsp;</span>
1390
+ <span class="cline-any cline-no">&nbsp;</span>
1391
+ <span class="cline-any cline-no">&nbsp;</span>
1392
+ <span class="cline-any cline-no">&nbsp;</span>
1393
+ <span class="cline-any cline-no">&nbsp;</span>
1394
+ <span class="cline-any cline-no">&nbsp;</span>
1395
+ <span class="cline-any cline-no">&nbsp;</span>
1396
+ <span class="cline-any cline-no">&nbsp;</span>
1397
+ <span class="cline-any cline-no">&nbsp;</span>
1398
+ <span class="cline-any cline-no">&nbsp;</span>
1399
+ <span class="cline-any cline-no">&nbsp;</span>
1400
+ <span class="cline-any cline-no">&nbsp;</span>
1401
+ <span class="cline-any cline-no">&nbsp;</span>
1402
+ <span class="cline-any cline-no">&nbsp;</span>
1403
+ <span class="cline-any cline-no">&nbsp;</span>
1404
+ <span class="cline-any cline-no">&nbsp;</span>
1405
+ <span class="cline-any cline-no">&nbsp;</span>
1406
+ <span class="cline-any cline-no">&nbsp;</span>
1407
+ <span class="cline-any cline-no">&nbsp;</span>
1408
+ <span class="cline-any cline-no">&nbsp;</span>
1409
+ <span class="cline-any cline-no">&nbsp;</span>
1410
+ <span class="cline-any cline-no">&nbsp;</span>
1411
+ <span class="cline-any cline-no">&nbsp;</span>
1412
+ <span class="cline-any cline-no">&nbsp;</span>
1413
+ <span class="cline-any cline-no">&nbsp;</span>
1414
+ <span class="cline-any cline-no">&nbsp;</span>
1415
+ <span class="cline-any cline-no">&nbsp;</span>
1416
+ <span class="cline-any cline-no">&nbsp;</span>
1417
+ <span class="cline-any cline-no">&nbsp;</span>
1418
+ <span class="cline-any cline-no">&nbsp;</span>
1419
+ <span class="cline-any cline-no">&nbsp;</span>
1420
+ <span class="cline-any cline-no">&nbsp;</span>
1421
+ <span class="cline-any cline-no">&nbsp;</span>
1422
+ <span class="cline-any cline-no">&nbsp;</span>
1423
+ <span class="cline-any cline-no">&nbsp;</span>
1424
+ <span class="cline-any cline-no">&nbsp;</span>
1425
+ <span class="cline-any cline-no">&nbsp;</span>
1426
+ <span class="cline-any cline-no">&nbsp;</span>
1427
+ <span class="cline-any cline-no">&nbsp;</span>
1428
+ <span class="cline-any cline-no">&nbsp;</span>
1429
+ <span class="cline-any cline-no">&nbsp;</span>
1430
+ <span class="cline-any cline-no">&nbsp;</span>
1431
+ <span class="cline-any cline-no">&nbsp;</span>
1432
+ <span class="cline-any cline-no">&nbsp;</span>
1433
+ <span class="cline-any cline-no">&nbsp;</span>
1434
+ <span class="cline-any cline-no">&nbsp;</span>
1435
+ <span class="cline-any cline-no">&nbsp;</span>
1436
+ <span class="cline-any cline-no">&nbsp;</span>
1437
+ <span class="cline-any cline-no">&nbsp;</span>
1438
+ <span class="cline-any cline-no">&nbsp;</span>
1439
+ <span class="cline-any cline-no">&nbsp;</span>
1440
+ <span class="cline-any cline-no">&nbsp;</span>
1441
+ <span class="cline-any cline-no">&nbsp;</span>
1442
+ <span class="cline-any cline-no">&nbsp;</span>
1443
+ <span class="cline-any cline-no">&nbsp;</span>
1444
+ <span class="cline-any cline-no">&nbsp;</span>
1445
+ <span class="cline-any cline-no">&nbsp;</span>
1446
+ <span class="cline-any cline-no">&nbsp;</span>
1447
+ <span class="cline-any cline-no">&nbsp;</span>
1448
+ <span class="cline-any cline-no">&nbsp;</span>
1449
+ <span class="cline-any cline-no">&nbsp;</span>
1450
+ <span class="cline-any cline-no">&nbsp;</span>
1451
+ <span class="cline-any cline-no">&nbsp;</span>
1452
+ <span class="cline-any cline-no">&nbsp;</span>
1453
+ <span class="cline-any cline-no">&nbsp;</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-no">&nbsp;</span>
1456
+ <span class="cline-any cline-no">&nbsp;</span>
1457
+ <span class="cline-any cline-no">&nbsp;</span>
1458
+ <span class="cline-any cline-no">&nbsp;</span>
1459
+ <span class="cline-any cline-no">&nbsp;</span>
1460
+ <span class="cline-any cline-no">&nbsp;</span>
1461
+ <span class="cline-any cline-no">&nbsp;</span>
1462
+ <span class="cline-any cline-no">&nbsp;</span>
1463
+ <span class="cline-any cline-no">&nbsp;</span>
1464
+ <span class="cline-any cline-no">&nbsp;</span>
1465
+ <span class="cline-any cline-no">&nbsp;</span>
1466
+ <span class="cline-any cline-no">&nbsp;</span>
1467
+ <span class="cline-any cline-no">&nbsp;</span>
1468
+ <span class="cline-any cline-no">&nbsp;</span>
1469
+ <span class="cline-any cline-no">&nbsp;</span>
1470
+ <span class="cline-any cline-no">&nbsp;</span>
1471
+ <span class="cline-any cline-no">&nbsp;</span>
1472
+ <span class="cline-any cline-no">&nbsp;</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-no">&nbsp;</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-no">&nbsp;</span>
1479
+ <span class="cline-any cline-no">&nbsp;</span>
1480
+ <span class="cline-any cline-no">&nbsp;</span>
1481
+ <span class="cline-any cline-no">&nbsp;</span>
1482
+ <span class="cline-any cline-no">&nbsp;</span>
1483
+ <span class="cline-any cline-no">&nbsp;</span>
1484
+ <span class="cline-any cline-no">&nbsp;</span>
1485
+ <span class="cline-any cline-no">&nbsp;</span>
1486
+ <span class="cline-any cline-no">&nbsp;</span>
1487
+ <span class="cline-any cline-no">&nbsp;</span>
1488
+ <span class="cline-any cline-no">&nbsp;</span>
1489
+ <span class="cline-any cline-no">&nbsp;</span>
1490
+ <span class="cline-any cline-no">&nbsp;</span>
1491
+ <span class="cline-any cline-no">&nbsp;</span>
1492
+ <span class="cline-any cline-no">&nbsp;</span>
1493
+ <span class="cline-any cline-no">&nbsp;</span>
1494
+ <span class="cline-any cline-no">&nbsp;</span>
1495
+ <span class="cline-any cline-no">&nbsp;</span>
1496
+ <span class="cline-any cline-no">&nbsp;</span>
1497
+ <span class="cline-any cline-no">&nbsp;</span>
1498
+ <span class="cline-any cline-no">&nbsp;</span>
1499
+ <span class="cline-any cline-no">&nbsp;</span>
1500
+ <span class="cline-any cline-no">&nbsp;</span>
1501
+ <span class="cline-any cline-no">&nbsp;</span>
1502
+ <span class="cline-any cline-no">&nbsp;</span>
1503
+ <span class="cline-any cline-no">&nbsp;</span>
1504
+ <span class="cline-any cline-no">&nbsp;</span>
1505
+ <span class="cline-any cline-no">&nbsp;</span>
1506
+ <span class="cline-any cline-no">&nbsp;</span>
1507
+ <span class="cline-any cline-no">&nbsp;</span>
1508
+ <span class="cline-any cline-no">&nbsp;</span>
1509
+ <span class="cline-any cline-no">&nbsp;</span>
1510
+ <span class="cline-any cline-no">&nbsp;</span>
1511
+ <span class="cline-any cline-no">&nbsp;</span>
1512
+ <span class="cline-any cline-no">&nbsp;</span>
1513
+ <span class="cline-any cline-no">&nbsp;</span>
1514
+ <span class="cline-any cline-no">&nbsp;</span>
1515
+ <span class="cline-any cline-no">&nbsp;</span>
1516
+ <span class="cline-any cline-no">&nbsp;</span>
1517
+ <span class="cline-any cline-no">&nbsp;</span>
1518
+ <span class="cline-any cline-no">&nbsp;</span>
1519
+ <span class="cline-any cline-no">&nbsp;</span>
1520
+ <span class="cline-any cline-no">&nbsp;</span>
1521
+ <span class="cline-any cline-no">&nbsp;</span>
1522
+ <span class="cline-any cline-no">&nbsp;</span>
1523
+ <span class="cline-any cline-no">&nbsp;</span>
1524
+ <span class="cline-any cline-no">&nbsp;</span>
1525
+ <span class="cline-any cline-no">&nbsp;</span>
1526
+ <span class="cline-any cline-no">&nbsp;</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-no">&nbsp;</span>
1529
+ <span class="cline-any cline-no">&nbsp;</span>
1530
+ <span class="cline-any cline-no">&nbsp;</span>
1531
+ <span class="cline-any cline-no">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1533
+ <span class="cline-any cline-no">&nbsp;</span>
1534
+ <span class="cline-any cline-no">&nbsp;</span>
1535
+ <span class="cline-any cline-no">&nbsp;</span>
1536
+ <span class="cline-any cline-no">&nbsp;</span>
1537
+ <span class="cline-any cline-no">&nbsp;</span>
1538
+ <span class="cline-any cline-no">&nbsp;</span>
1539
+ <span class="cline-any cline-no">&nbsp;</span>
1540
+ <span class="cline-any cline-no">&nbsp;</span>
1541
+ <span class="cline-any cline-no">&nbsp;</span>
1542
+ <span class="cline-any cline-no">&nbsp;</span>
1543
+ <span class="cline-any cline-no">&nbsp;</span>
1544
+ <span class="cline-any cline-no">&nbsp;</span>
1545
+ <span class="cline-any cline-no">&nbsp;</span>
1546
+ <span class="cline-any cline-no">&nbsp;</span>
1547
+ <span class="cline-any cline-no">&nbsp;</span>
1548
+ <span class="cline-any cline-no">&nbsp;</span>
1549
+ <span class="cline-any cline-no">&nbsp;</span>
1550
+ <span class="cline-any cline-no">&nbsp;</span>
1551
+ <span class="cline-any cline-no">&nbsp;</span>
1552
+ <span class="cline-any cline-no">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-no">&nbsp;</span>
1555
+ <span class="cline-any cline-no">&nbsp;</span>
1556
+ <span class="cline-any cline-no">&nbsp;</span>
1557
+ <span class="cline-any cline-no">&nbsp;</span>
1558
+ <span class="cline-any cline-no">&nbsp;</span>
1559
+ <span class="cline-any cline-no">&nbsp;</span>
1560
+ <span class="cline-any cline-no">&nbsp;</span>
1561
+ <span class="cline-any cline-no">&nbsp;</span>
1562
+ <span class="cline-any cline-no">&nbsp;</span>
1563
+ <span class="cline-any cline-no">&nbsp;</span>
1564
+ <span class="cline-any cline-no">&nbsp;</span>
1565
+ <span class="cline-any cline-no">&nbsp;</span>
1566
+ <span class="cline-any cline-no">&nbsp;</span>
1567
+ <span class="cline-any cline-no">&nbsp;</span>
1568
+ <span class="cline-any cline-no">&nbsp;</span>
1569
+ <span class="cline-any cline-no">&nbsp;</span>
1570
+ <span class="cline-any cline-no">&nbsp;</span>
1571
+ <span class="cline-any cline-no">&nbsp;</span>
1572
+ <span class="cline-any cline-no">&nbsp;</span>
1573
+ <span class="cline-any cline-no">&nbsp;</span>
1574
+ <span class="cline-any cline-no">&nbsp;</span>
1575
+ <span class="cline-any cline-no">&nbsp;</span>
1576
+ <span class="cline-any cline-no">&nbsp;</span>
1577
+ <span class="cline-any cline-no">&nbsp;</span>
1578
+ <span class="cline-any cline-no">&nbsp;</span>
1579
+ <span class="cline-any cline-no">&nbsp;</span>
1580
+ <span class="cline-any cline-no">&nbsp;</span>
1581
+ <span class="cline-any cline-no">&nbsp;</span>
1582
+ <span class="cline-any cline-no">&nbsp;</span>
1583
+ <span class="cline-any cline-no">&nbsp;</span>
1584
+ <span class="cline-any cline-no">&nbsp;</span>
1585
+ <span class="cline-any cline-no">&nbsp;</span>
1586
+ <span class="cline-any cline-no">&nbsp;</span>
1587
+ <span class="cline-any cline-no">&nbsp;</span>
1588
+ <span class="cline-any cline-no">&nbsp;</span>
1589
+ <span class="cline-any cline-no">&nbsp;</span>
1590
+ <span class="cline-any cline-no">&nbsp;</span>
1591
+ <span class="cline-any cline-no">&nbsp;</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-no">&nbsp;</span>
1594
+ <span class="cline-any cline-no">&nbsp;</span>
1595
+ <span class="cline-any cline-no">&nbsp;</span>
1596
+ <span class="cline-any cline-no">&nbsp;</span>
1597
+ <span class="cline-any cline-no">&nbsp;</span>
1598
+ <span class="cline-any cline-no">&nbsp;</span>
1599
+ <span class="cline-any cline-no">&nbsp;</span>
1600
+ <span class="cline-any cline-no">&nbsp;</span>
1601
+ <span class="cline-any cline-no">&nbsp;</span>
1602
+ <span class="cline-any cline-no">&nbsp;</span>
1603
+ <span class="cline-any cline-no">&nbsp;</span>
1604
+ <span class="cline-any cline-no">&nbsp;</span>
1605
+ <span class="cline-any cline-no">&nbsp;</span>
1606
+ <span class="cline-any cline-no">&nbsp;</span>
1607
+ <span class="cline-any cline-no">&nbsp;</span>
1608
+ <span class="cline-any cline-no">&nbsp;</span>
1609
+ <span class="cline-any cline-no">&nbsp;</span>
1610
+ <span class="cline-any cline-no">&nbsp;</span>
1611
+ <span class="cline-any cline-no">&nbsp;</span>
1612
+ <span class="cline-any cline-no">&nbsp;</span>
1613
+ <span class="cline-any cline-no">&nbsp;</span>
1614
+ <span class="cline-any cline-no">&nbsp;</span>
1615
+ <span class="cline-any cline-no">&nbsp;</span>
1616
+ <span class="cline-any cline-no">&nbsp;</span>
1617
+ <span class="cline-any cline-no">&nbsp;</span>
1618
+ <span class="cline-any cline-no">&nbsp;</span>
1619
+ <span class="cline-any cline-no">&nbsp;</span>
1620
+ <span class="cline-any cline-no">&nbsp;</span>
1621
+ <span class="cline-any cline-no">&nbsp;</span>
1622
+ <span class="cline-any cline-no">&nbsp;</span>
1623
+ <span class="cline-any cline-no">&nbsp;</span>
1624
+ <span class="cline-any cline-no">&nbsp;</span>
1625
+ <span class="cline-any cline-no">&nbsp;</span>
1626
+ <span class="cline-any cline-no">&nbsp;</span>
1627
+ <span class="cline-any cline-no">&nbsp;</span>
1628
+ <span class="cline-any cline-no">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1630
+ <span class="cline-any cline-no">&nbsp;</span>
1631
+ <span class="cline-any cline-no">&nbsp;</span>
1632
+ <span class="cline-any cline-no">&nbsp;</span>
1633
+ <span class="cline-any cline-no">&nbsp;</span>
1634
+ <span class="cline-any cline-no">&nbsp;</span>
1635
+ <span class="cline-any cline-no">&nbsp;</span>
1636
+ <span class="cline-any cline-no">&nbsp;</span>
1637
+ <span class="cline-any cline-no">&nbsp;</span>
1638
+ <span class="cline-any cline-no">&nbsp;</span>
1639
+ <span class="cline-any cline-no">&nbsp;</span>
1640
+ <span class="cline-any cline-no">&nbsp;</span>
1641
+ <span class="cline-any cline-no">&nbsp;</span>
1642
+ <span class="cline-any cline-no">&nbsp;</span>
1643
+ <span class="cline-any cline-no">&nbsp;</span>
1644
+ <span class="cline-any cline-no">&nbsp;</span>
1645
+ <span class="cline-any cline-no">&nbsp;</span>
1646
+ <span class="cline-any cline-no">&nbsp;</span>
1647
+ <span class="cline-any cline-no">&nbsp;</span>
1648
+ <span class="cline-any cline-no">&nbsp;</span>
1649
+ <span class="cline-any cline-no">&nbsp;</span>
1650
+ <span class="cline-any cline-no">&nbsp;</span>
1651
+ <span class="cline-any cline-no">&nbsp;</span>
1652
+ <span class="cline-any cline-no">&nbsp;</span>
1653
+ <span class="cline-any cline-no">&nbsp;</span>
1654
+ <span class="cline-any cline-no">&nbsp;</span>
1655
+ <span class="cline-any cline-no">&nbsp;</span>
1656
+ <span class="cline-any cline-no">&nbsp;</span>
1657
+ <span class="cline-any cline-no">&nbsp;</span>
1658
+ <span class="cline-any cline-no">&nbsp;</span>
1659
+ <span class="cline-any cline-no">&nbsp;</span>
1660
+ <span class="cline-any cline-no">&nbsp;</span>
1661
+ <span class="cline-any cline-no">&nbsp;</span>
1662
+ <span class="cline-any cline-no">&nbsp;</span>
1663
+ <span class="cline-any cline-no">&nbsp;</span>
1664
+ <span class="cline-any cline-no">&nbsp;</span>
1665
+ <span class="cline-any cline-no">&nbsp;</span>
1666
+ <span class="cline-any cline-no">&nbsp;</span>
1667
+ <span class="cline-any cline-no">&nbsp;</span>
1668
+ <span class="cline-any cline-no">&nbsp;</span>
1669
+ <span class="cline-any cline-no">&nbsp;</span>
1670
+ <span class="cline-any cline-no">&nbsp;</span>
1671
+ <span class="cline-any cline-no">&nbsp;</span>
1672
+ <span class="cline-any cline-no">&nbsp;</span>
1673
+ <span class="cline-any cline-no">&nbsp;</span>
1674
+ <span class="cline-any cline-no">&nbsp;</span>
1675
+ <span class="cline-any cline-no">&nbsp;</span>
1676
+ <span class="cline-any cline-no">&nbsp;</span>
1677
+ <span class="cline-any cline-no">&nbsp;</span>
1678
+ <span class="cline-any cline-no">&nbsp;</span>
1679
+ <span class="cline-any cline-no">&nbsp;</span>
1680
+ <span class="cline-any cline-no">&nbsp;</span>
1681
+ <span class="cline-any cline-no">&nbsp;</span>
1682
+ <span class="cline-any cline-no">&nbsp;</span>
1683
+ <span class="cline-any cline-no">&nbsp;</span>
1684
+ <span class="cline-any cline-no">&nbsp;</span>
1685
+ <span class="cline-any cline-no">&nbsp;</span>
1686
+ <span class="cline-any cline-no">&nbsp;</span>
1687
+ <span class="cline-any cline-no">&nbsp;</span>
1688
+ <span class="cline-any cline-no">&nbsp;</span>
1689
+ <span class="cline-any cline-no">&nbsp;</span>
1690
+ <span class="cline-any cline-no">&nbsp;</span>
1691
+ <span class="cline-any cline-no">&nbsp;</span>
1692
+ <span class="cline-any cline-no">&nbsp;</span>
1693
+ <span class="cline-any cline-no">&nbsp;</span>
1694
+ <span class="cline-any cline-no">&nbsp;</span>
1695
+ <span class="cline-any cline-no">&nbsp;</span>
1696
+ <span class="cline-any cline-no">&nbsp;</span>
1697
+ <span class="cline-any cline-no">&nbsp;</span>
1698
+ <span class="cline-any cline-no">&nbsp;</span>
1699
+ <span class="cline-any cline-no">&nbsp;</span>
1700
+ <span class="cline-any cline-no">&nbsp;</span>
1701
+ <span class="cline-any cline-no">&nbsp;</span>
1702
+ <span class="cline-any cline-no">&nbsp;</span>
1703
+ <span class="cline-any cline-no">&nbsp;</span>
1704
+ <span class="cline-any cline-no">&nbsp;</span>
1705
+ <span class="cline-any cline-no">&nbsp;</span>
1706
+ <span class="cline-any cline-no">&nbsp;</span>
1707
+ <span class="cline-any cline-no">&nbsp;</span>
1708
+ <span class="cline-any cline-no">&nbsp;</span>
1709
+ <span class="cline-any cline-no">&nbsp;</span>
1710
+ <span class="cline-any cline-no">&nbsp;</span>
1711
+ <span class="cline-any cline-no">&nbsp;</span>
1712
+ <span class="cline-any cline-no">&nbsp;</span>
1713
+ <span class="cline-any cline-no">&nbsp;</span>
1714
+ <span class="cline-any cline-no">&nbsp;</span>
1715
+ <span class="cline-any cline-no">&nbsp;</span>
1716
+ <span class="cline-any cline-no">&nbsp;</span>
1717
+ <span class="cline-any cline-no">&nbsp;</span>
1718
+ <span class="cline-any cline-no">&nbsp;</span>
1719
+ <span class="cline-any cline-no">&nbsp;</span>
1720
+ <span class="cline-any cline-no">&nbsp;</span>
1721
+ <span class="cline-any cline-no">&nbsp;</span>
1722
+ <span class="cline-any cline-no">&nbsp;</span>
1723
+ <span class="cline-any cline-no">&nbsp;</span>
1724
+ <span class="cline-any cline-no">&nbsp;</span>
1725
+ <span class="cline-any cline-no">&nbsp;</span>
1726
+ <span class="cline-any cline-no">&nbsp;</span>
1727
+ <span class="cline-any cline-no">&nbsp;</span>
1728
+ <span class="cline-any cline-no">&nbsp;</span>
1729
+ <span class="cline-any cline-no">&nbsp;</span>
1730
+ <span class="cline-any cline-no">&nbsp;</span>
1731
+ <span class="cline-any cline-no">&nbsp;</span>
1732
+ <span class="cline-any cline-no">&nbsp;</span>
1733
+ <span class="cline-any cline-no">&nbsp;</span>
1734
+ <span class="cline-any cline-no">&nbsp;</span>
1735
+ <span class="cline-any cline-no">&nbsp;</span>
1736
+ <span class="cline-any cline-no">&nbsp;</span>
1737
+ <span class="cline-any cline-no">&nbsp;</span>
1738
+ <span class="cline-any cline-no">&nbsp;</span>
1739
+ <span class="cline-any cline-no">&nbsp;</span>
1740
+ <span class="cline-any cline-no">&nbsp;</span>
1741
+ <span class="cline-any cline-no">&nbsp;</span>
1742
+ <span class="cline-any cline-no">&nbsp;</span>
1743
+ <span class="cline-any cline-no">&nbsp;</span>
1744
+ <span class="cline-any cline-no">&nbsp;</span>
1745
+ <span class="cline-any cline-no">&nbsp;</span>
1746
+ <span class="cline-any cline-no">&nbsp;</span>
1747
+ <span class="cline-any cline-no">&nbsp;</span>
1748
+ <span class="cline-any cline-no">&nbsp;</span>
1749
+ <span class="cline-any cline-no">&nbsp;</span>
1750
+ <span class="cline-any cline-no">&nbsp;</span>
1751
+ <span class="cline-any cline-no">&nbsp;</span>
1752
+ <span class="cline-any cline-no">&nbsp;</span>
1753
+ <span class="cline-any cline-no">&nbsp;</span>
1754
+ <span class="cline-any cline-no">&nbsp;</span>
1755
+ <span class="cline-any cline-no">&nbsp;</span>
1756
+ <span class="cline-any cline-no">&nbsp;</span>
1757
+ <span class="cline-any cline-no">&nbsp;</span>
1758
+ <span class="cline-any cline-no">&nbsp;</span>
1759
+ <span class="cline-any cline-no">&nbsp;</span>
1760
+ <span class="cline-any cline-no">&nbsp;</span>
1761
+ <span class="cline-any cline-no">&nbsp;</span>
1762
+ <span class="cline-any cline-no">&nbsp;</span>
1763
+ <span class="cline-any cline-no">&nbsp;</span>
1764
+ <span class="cline-any cline-no">&nbsp;</span>
1765
+ <span class="cline-any cline-no">&nbsp;</span>
1766
+ <span class="cline-any cline-no">&nbsp;</span>
1767
+ <span class="cline-any cline-no">&nbsp;</span>
1768
+ <span class="cline-any cline-no">&nbsp;</span>
1769
+ <span class="cline-any cline-no">&nbsp;</span>
1770
+ <span class="cline-any cline-no">&nbsp;</span>
1771
+ <span class="cline-any cline-no">&nbsp;</span>
1772
+ <span class="cline-any cline-no">&nbsp;</span>
1773
+ <span class="cline-any cline-no">&nbsp;</span>
1774
+ <span class="cline-any cline-no">&nbsp;</span>
1775
+ <span class="cline-any cline-no">&nbsp;</span>
1776
+ <span class="cline-any cline-no">&nbsp;</span>
1777
+ <span class="cline-any cline-no">&nbsp;</span>
1778
+ <span class="cline-any cline-no">&nbsp;</span>
1779
+ <span class="cline-any cline-no">&nbsp;</span>
1780
+ <span class="cline-any cline-no">&nbsp;</span>
1781
+ <span class="cline-any cline-no">&nbsp;</span>
1782
+ <span class="cline-any cline-no">&nbsp;</span>
1783
+ <span class="cline-any cline-no">&nbsp;</span>
1784
+ <span class="cline-any cline-no">&nbsp;</span>
1785
+ <span class="cline-any cline-no">&nbsp;</span>
1786
+ <span class="cline-any cline-no">&nbsp;</span>
1787
+ <span class="cline-any cline-no">&nbsp;</span>
1788
+ <span class="cline-any cline-no">&nbsp;</span>
1789
+ <span class="cline-any cline-no">&nbsp;</span>
1790
+ <span class="cline-any cline-no">&nbsp;</span>
1791
+ <span class="cline-any cline-no">&nbsp;</span>
1792
+ <span class="cline-any cline-no">&nbsp;</span>
1793
+ <span class="cline-any cline-no">&nbsp;</span>
1794
+ <span class="cline-any cline-no">&nbsp;</span>
1795
+ <span class="cline-any cline-no">&nbsp;</span>
1796
+ <span class="cline-any cline-no">&nbsp;</span>
1797
+ <span class="cline-any cline-no">&nbsp;</span>
1798
+ <span class="cline-any cline-no">&nbsp;</span>
1799
+ <span class="cline-any cline-no">&nbsp;</span>
1800
+ <span class="cline-any cline-no">&nbsp;</span>
1801
+ <span class="cline-any cline-no">&nbsp;</span>
1802
+ <span class="cline-any cline-no">&nbsp;</span>
1803
+ <span class="cline-any cline-no">&nbsp;</span>
1804
+ <span class="cline-any cline-no">&nbsp;</span>
1805
+ <span class="cline-any cline-no">&nbsp;</span>
1806
+ <span class="cline-any cline-no">&nbsp;</span>
1807
+ <span class="cline-any cline-no">&nbsp;</span>
1808
+ <span class="cline-any cline-no">&nbsp;</span>
1809
+ <span class="cline-any cline-no">&nbsp;</span>
1810
+ <span class="cline-any cline-no">&nbsp;</span>
1811
+ <span class="cline-any cline-no">&nbsp;</span>
1812
+ <span class="cline-any cline-no">&nbsp;</span>
1813
+ <span class="cline-any cline-no">&nbsp;</span>
1814
+ <span class="cline-any cline-no">&nbsp;</span>
1815
+ <span class="cline-any cline-no">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-no">&nbsp;</span>
1818
+ <span class="cline-any cline-no">&nbsp;</span>
1819
+ <span class="cline-any cline-no">&nbsp;</span>
1820
+ <span class="cline-any cline-no">&nbsp;</span>
1821
+ <span class="cline-any cline-no">&nbsp;</span>
1822
+ <span class="cline-any cline-no">&nbsp;</span>
1823
+ <span class="cline-any cline-no">&nbsp;</span>
1824
+ <span class="cline-any cline-no">&nbsp;</span>
1825
+ <span class="cline-any cline-no">&nbsp;</span>
1826
+ <span class="cline-any cline-no">&nbsp;</span>
1827
+ <span class="cline-any cline-no">&nbsp;</span>
1828
+ <span class="cline-any cline-no">&nbsp;</span>
1829
+ <span class="cline-any cline-no">&nbsp;</span>
1830
+ <span class="cline-any cline-no">&nbsp;</span>
1831
+ <span class="cline-any cline-no">&nbsp;</span>
1832
+ <span class="cline-any cline-no">&nbsp;</span>
1833
+ <span class="cline-any cline-no">&nbsp;</span>
1834
+ <span class="cline-any cline-no">&nbsp;</span>
1835
+ <span class="cline-any cline-no">&nbsp;</span>
1836
+ <span class="cline-any cline-no">&nbsp;</span>
1837
+ <span class="cline-any cline-no">&nbsp;</span>
1838
+ <span class="cline-any cline-no">&nbsp;</span>
1839
+ <span class="cline-any cline-no">&nbsp;</span>
1840
+ <span class="cline-any cline-no">&nbsp;</span>
1841
+ <span class="cline-any cline-no">&nbsp;</span>
1842
+ <span class="cline-any cline-no">&nbsp;</span>
1843
+ <span class="cline-any cline-no">&nbsp;</span>
1844
+ <span class="cline-any cline-no">&nbsp;</span>
1845
+ <span class="cline-any cline-no">&nbsp;</span>
1846
+ <span class="cline-any cline-no">&nbsp;</span>
1847
+ <span class="cline-any cline-no">&nbsp;</span>
1848
+ <span class="cline-any cline-no">&nbsp;</span>
1849
+ <span class="cline-any cline-no">&nbsp;</span>
1850
+ <span class="cline-any cline-no">&nbsp;</span>
1851
+ <span class="cline-any cline-no">&nbsp;</span>
1852
+ <span class="cline-any cline-no">&nbsp;</span>
1853
+ <span class="cline-any cline-no">&nbsp;</span>
1854
+ <span class="cline-any cline-no">&nbsp;</span>
1855
+ <span class="cline-any cline-no">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-no">&nbsp;</span>
1858
+ <span class="cline-any cline-no">&nbsp;</span>
1859
+ <span class="cline-any cline-no">&nbsp;</span>
1860
+ <span class="cline-any cline-no">&nbsp;</span>
1861
+ <span class="cline-any cline-no">&nbsp;</span>
1862
+ <span class="cline-any cline-no">&nbsp;</span>
1863
+ <span class="cline-any cline-no">&nbsp;</span>
1864
+ <span class="cline-any cline-no">&nbsp;</span>
1865
+ <span class="cline-any cline-no">&nbsp;</span>
1866
+ <span class="cline-any cline-no">&nbsp;</span>
1867
+ <span class="cline-any cline-no">&nbsp;</span>
1868
+ <span class="cline-any cline-no">&nbsp;</span>
1869
+ <span class="cline-any cline-no">&nbsp;</span>
1870
+ <span class="cline-any cline-no">&nbsp;</span>
1871
+ <span class="cline-any cline-no">&nbsp;</span>
1872
+ <span class="cline-any cline-no">&nbsp;</span>
1873
+ <span class="cline-any cline-no">&nbsp;</span>
1874
+ <span class="cline-any cline-no">&nbsp;</span>
1875
+ <span class="cline-any cline-no">&nbsp;</span>
1876
+ <span class="cline-any cline-no">&nbsp;</span>
1877
+ <span class="cline-any cline-no">&nbsp;</span>
1878
+ <span class="cline-any cline-no">&nbsp;</span>
1879
+ <span class="cline-any cline-no">&nbsp;</span>
1880
+ <span class="cline-any cline-no">&nbsp;</span>
1881
+ <span class="cline-any cline-no">&nbsp;</span>
1882
+ <span class="cline-any cline-no">&nbsp;</span>
1883
+ <span class="cline-any cline-no">&nbsp;</span>
1884
+ <span class="cline-any cline-no">&nbsp;</span>
1885
+ <span class="cline-any cline-no">&nbsp;</span>
1886
+ <span class="cline-any cline-no">&nbsp;</span>
1887
+ <span class="cline-any cline-no">&nbsp;</span>
1888
+ <span class="cline-any cline-no">&nbsp;</span>
1889
+ <span class="cline-any cline-no">&nbsp;</span>
1890
+ <span class="cline-any cline-no">&nbsp;</span>
1891
+ <span class="cline-any cline-no">&nbsp;</span>
1892
+ <span class="cline-any cline-no">&nbsp;</span>
1893
+ <span class="cline-any cline-no">&nbsp;</span>
1894
+ <span class="cline-any cline-no">&nbsp;</span>
1895
+ <span class="cline-any cline-no">&nbsp;</span>
1896
+ <span class="cline-any cline-no">&nbsp;</span>
1897
+ <span class="cline-any cline-no">&nbsp;</span>
1898
+ <span class="cline-any cline-no">&nbsp;</span>
1899
+ <span class="cline-any cline-no">&nbsp;</span>
1900
+ <span class="cline-any cline-no">&nbsp;</span>
1901
+ <span class="cline-any cline-no">&nbsp;</span>
1902
+ <span class="cline-any cline-no">&nbsp;</span>
1903
+ <span class="cline-any cline-no">&nbsp;</span>
1904
+ <span class="cline-any cline-no">&nbsp;</span>
1905
+ <span class="cline-any cline-no">&nbsp;</span>
1906
+ <span class="cline-any cline-no">&nbsp;</span>
1907
+ <span class="cline-any cline-no">&nbsp;</span>
1908
+ <span class="cline-any cline-no">&nbsp;</span>
1909
+ <span class="cline-any cline-no">&nbsp;</span>
1910
+ <span class="cline-any cline-no">&nbsp;</span>
1911
+ <span class="cline-any cline-no">&nbsp;</span>
1912
+ <span class="cline-any cline-no">&nbsp;</span>
1913
+ <span class="cline-any cline-no">&nbsp;</span>
1914
+ <span class="cline-any cline-no">&nbsp;</span>
1915
+ <span class="cline-any cline-no">&nbsp;</span>
1916
+ <span class="cline-any cline-no">&nbsp;</span>
1917
+ <span class="cline-any cline-no">&nbsp;</span>
1918
+ <span class="cline-any cline-no">&nbsp;</span>
1919
+ <span class="cline-any cline-no">&nbsp;</span>
1920
+ <span class="cline-any cline-no">&nbsp;</span>
1921
+ <span class="cline-any cline-no">&nbsp;</span>
1922
+ <span class="cline-any cline-no">&nbsp;</span>
1923
+ <span class="cline-any cline-no">&nbsp;</span>
1924
+ <span class="cline-any cline-no">&nbsp;</span>
1925
+ <span class="cline-any cline-no">&nbsp;</span>
1926
+ <span class="cline-any cline-no">&nbsp;</span>
1927
+ <span class="cline-any cline-no">&nbsp;</span>
1928
+ <span class="cline-any cline-no">&nbsp;</span>
1929
+ <span class="cline-any cline-no">&nbsp;</span>
1930
+ <span class="cline-any cline-no">&nbsp;</span>
1931
+ <span class="cline-any cline-no">&nbsp;</span>
1932
+ <span class="cline-any cline-no">&nbsp;</span>
1933
+ <span class="cline-any cline-no">&nbsp;</span>
1934
+ <span class="cline-any cline-no">&nbsp;</span>
1935
+ <span class="cline-any cline-no">&nbsp;</span>
1936
+ <span class="cline-any cline-no">&nbsp;</span>
1937
+ <span class="cline-any cline-no">&nbsp;</span>
1938
+ <span class="cline-any cline-no">&nbsp;</span>
1939
+ <span class="cline-any cline-no">&nbsp;</span>
1940
+ <span class="cline-any cline-no">&nbsp;</span>
1941
+ <span class="cline-any cline-no">&nbsp;</span>
1942
+ <span class="cline-any cline-no">&nbsp;</span>
1943
+ <span class="cline-any cline-no">&nbsp;</span>
1944
+ <span class="cline-any cline-no">&nbsp;</span>
1945
+ <span class="cline-any cline-no">&nbsp;</span>
1946
+ <span class="cline-any cline-no">&nbsp;</span>
1947
+ <span class="cline-any cline-no">&nbsp;</span>
1948
+ <span class="cline-any cline-no">&nbsp;</span>
1949
+ <span class="cline-any cline-no">&nbsp;</span>
1950
+ <span class="cline-any cline-no">&nbsp;</span>
1951
+ <span class="cline-any cline-no">&nbsp;</span>
1952
+ <span class="cline-any cline-no">&nbsp;</span>
1953
+ <span class="cline-any cline-no">&nbsp;</span>
1954
+ <span class="cline-any cline-no">&nbsp;</span>
1955
+ <span class="cline-any cline-no">&nbsp;</span>
1956
+ <span class="cline-any cline-no">&nbsp;</span>
1957
+ <span class="cline-any cline-no">&nbsp;</span>
1958
+ <span class="cline-any cline-no">&nbsp;</span>
1959
+ <span class="cline-any cline-no">&nbsp;</span>
1960
+ <span class="cline-any cline-no">&nbsp;</span>
1961
+ <span class="cline-any cline-no">&nbsp;</span>
1962
+ <span class="cline-any cline-no">&nbsp;</span>
1963
+ <span class="cline-any cline-no">&nbsp;</span>
1964
+ <span class="cline-any cline-no">&nbsp;</span>
1965
+ <span class="cline-any cline-no">&nbsp;</span>
1966
+ <span class="cline-any cline-no">&nbsp;</span>
1967
+ <span class="cline-any cline-no">&nbsp;</span>
1968
+ <span class="cline-any cline-no">&nbsp;</span>
1969
+ <span class="cline-any cline-no">&nbsp;</span>
1970
+ <span class="cline-any cline-no">&nbsp;</span>
1971
+ <span class="cline-any cline-no">&nbsp;</span>
1972
+ <span class="cline-any cline-no">&nbsp;</span>
1973
+ <span class="cline-any cline-no">&nbsp;</span>
1974
+ <span class="cline-any cline-no">&nbsp;</span>
1975
+ <span class="cline-any cline-no">&nbsp;</span>
1976
+ <span class="cline-any cline-no">&nbsp;</span>
1977
+ <span class="cline-any cline-no">&nbsp;</span>
1978
+ <span class="cline-any cline-no">&nbsp;</span>
1979
+ <span class="cline-any cline-no">&nbsp;</span>
1980
+ <span class="cline-any cline-no">&nbsp;</span>
1981
+ <span class="cline-any cline-no">&nbsp;</span>
1982
+ <span class="cline-any cline-no">&nbsp;</span>
1983
+ <span class="cline-any cline-no">&nbsp;</span>
1984
+ <span class="cline-any cline-no">&nbsp;</span>
1985
+ <span class="cline-any cline-no">&nbsp;</span>
1986
+ <span class="cline-any cline-no">&nbsp;</span>
1987
+ <span class="cline-any cline-no">&nbsp;</span>
1988
+ <span class="cline-any cline-no">&nbsp;</span>
1989
+ <span class="cline-any cline-no">&nbsp;</span>
1990
+ <span class="cline-any cline-no">&nbsp;</span>
1991
+ <span class="cline-any cline-no">&nbsp;</span>
1992
+ <span class="cline-any cline-no">&nbsp;</span>
1993
+ <span class="cline-any cline-no">&nbsp;</span>
1994
+ <span class="cline-any cline-no">&nbsp;</span>
1995
+ <span class="cline-any cline-no">&nbsp;</span>
1996
+ <span class="cline-any cline-no">&nbsp;</span>
1997
+ <span class="cline-any cline-no">&nbsp;</span>
1998
+ <span class="cline-any cline-no">&nbsp;</span>
1999
+ <span class="cline-any cline-no">&nbsp;</span>
2000
+ <span class="cline-any cline-no">&nbsp;</span>
2001
+ <span class="cline-any cline-no">&nbsp;</span>
2002
+ <span class="cline-any cline-no">&nbsp;</span>
2003
+ <span class="cline-any cline-no">&nbsp;</span>
2004
+ <span class="cline-any cline-no">&nbsp;</span>
2005
+ <span class="cline-any cline-no">&nbsp;</span>
2006
+ <span class="cline-any cline-no">&nbsp;</span>
2007
+ <span class="cline-any cline-no">&nbsp;</span>
2008
+ <span class="cline-any cline-no">&nbsp;</span>
2009
+ <span class="cline-any cline-no">&nbsp;</span>
2010
+ <span class="cline-any cline-no">&nbsp;</span>
2011
+ <span class="cline-any cline-no">&nbsp;</span>
2012
+ <span class="cline-any cline-no">&nbsp;</span>
2013
+ <span class="cline-any cline-no">&nbsp;</span>
2014
+ <span class="cline-any cline-no">&nbsp;</span>
2015
+ <span class="cline-any cline-no">&nbsp;</span>
2016
+ <span class="cline-any cline-no">&nbsp;</span>
2017
+ <span class="cline-any cline-no">&nbsp;</span>
2018
+ <span class="cline-any cline-no">&nbsp;</span>
2019
+ <span class="cline-any cline-no">&nbsp;</span>
2020
+ <span class="cline-any cline-no">&nbsp;</span>
2021
+ <span class="cline-any cline-no">&nbsp;</span>
2022
+ <span class="cline-any cline-no">&nbsp;</span>
2023
+ <span class="cline-any cline-no">&nbsp;</span>
2024
+ <span class="cline-any cline-no">&nbsp;</span>
2025
+ <span class="cline-any cline-no">&nbsp;</span>
2026
+ <span class="cline-any cline-no">&nbsp;</span>
2027
+ <span class="cline-any cline-no">&nbsp;</span>
2028
+ <span class="cline-any cline-no">&nbsp;</span>
2029
+ <span class="cline-any cline-no">&nbsp;</span>
2030
+ <span class="cline-any cline-no">&nbsp;</span>
2031
+ <span class="cline-any cline-no">&nbsp;</span>
2032
+ <span class="cline-any cline-no">&nbsp;</span>
2033
+ <span class="cline-any cline-no">&nbsp;</span>
2034
+ <span class="cline-any cline-no">&nbsp;</span>
2035
+ <span class="cline-any cline-no">&nbsp;</span>
2036
+ <span class="cline-any cline-no">&nbsp;</span>
2037
+ <span class="cline-any cline-no">&nbsp;</span>
2038
+ <span class="cline-any cline-no">&nbsp;</span>
2039
+ <span class="cline-any cline-no">&nbsp;</span>
2040
+ <span class="cline-any cline-no">&nbsp;</span>
2041
+ <span class="cline-any cline-no">&nbsp;</span>
2042
+ <span class="cline-any cline-no">&nbsp;</span>
2043
+ <span class="cline-any cline-no">&nbsp;</span>
2044
+ <span class="cline-any cline-no">&nbsp;</span>
2045
+ <span class="cline-any cline-no">&nbsp;</span>
2046
+ <span class="cline-any cline-no">&nbsp;</span>
2047
+ <span class="cline-any cline-no">&nbsp;</span>
2048
+ <span class="cline-any cline-no">&nbsp;</span>
2049
+ <span class="cline-any cline-no">&nbsp;</span>
2050
+ <span class="cline-any cline-no">&nbsp;</span>
2051
+ <span class="cline-any cline-no">&nbsp;</span>
2052
+ <span class="cline-any cline-no">&nbsp;</span>
2053
+ <span class="cline-any cline-no">&nbsp;</span>
2054
+ <span class="cline-any cline-no">&nbsp;</span>
2055
+ <span class="cline-any cline-no">&nbsp;</span>
2056
+ <span class="cline-any cline-no">&nbsp;</span>
2057
+ <span class="cline-any cline-no">&nbsp;</span>
2058
+ <span class="cline-any cline-no">&nbsp;</span>
2059
+ <span class="cline-any cline-no">&nbsp;</span>
2060
+ <span class="cline-any cline-no">&nbsp;</span>
2061
+ <span class="cline-any cline-no">&nbsp;</span>
2062
+ <span class="cline-any cline-no">&nbsp;</span>
2063
+ <span class="cline-any cline-no">&nbsp;</span>
2064
+ <span class="cline-any cline-no">&nbsp;</span>
2065
+ <span class="cline-any cline-no">&nbsp;</span>
2066
+ <span class="cline-any cline-no">&nbsp;</span>
2067
+ <span class="cline-any cline-no">&nbsp;</span>
2068
+ <span class="cline-any cline-no">&nbsp;</span>
2069
+ <span class="cline-any cline-no">&nbsp;</span>
2070
+ <span class="cline-any cline-no">&nbsp;</span>
2071
+ <span class="cline-any cline-no">&nbsp;</span>
2072
+ <span class="cline-any cline-no">&nbsp;</span>
2073
+ <span class="cline-any cline-no">&nbsp;</span>
2074
+ <span class="cline-any cline-no">&nbsp;</span>
2075
+ <span class="cline-any cline-no">&nbsp;</span>
2076
+ <span class="cline-any cline-no">&nbsp;</span>
2077
+ <span class="cline-any cline-no">&nbsp;</span>
2078
+ <span class="cline-any cline-no">&nbsp;</span>
2079
+ <span class="cline-any cline-no">&nbsp;</span>
2080
+ <span class="cline-any cline-no">&nbsp;</span>
2081
+ <span class="cline-any cline-no">&nbsp;</span>
2082
+ <span class="cline-any cline-no">&nbsp;</span>
2083
+ <span class="cline-any cline-no">&nbsp;</span>
2084
+ <span class="cline-any cline-no">&nbsp;</span>
2085
+ <span class="cline-any cline-no">&nbsp;</span>
2086
+ <span class="cline-any cline-no">&nbsp;</span>
2087
+ <span class="cline-any cline-no">&nbsp;</span>
2088
+ <span class="cline-any cline-no">&nbsp;</span>
2089
+ <span class="cline-any cline-no">&nbsp;</span>
2090
+ <span class="cline-any cline-no">&nbsp;</span>
2091
+ <span class="cline-any cline-no">&nbsp;</span>
2092
+ <span class="cline-any cline-no">&nbsp;</span>
2093
+ <span class="cline-any cline-no">&nbsp;</span>
2094
+ <span class="cline-any cline-no">&nbsp;</span>
2095
+ <span class="cline-any cline-no">&nbsp;</span>
2096
+ <span class="cline-any cline-no">&nbsp;</span>
2097
+ <span class="cline-any cline-no">&nbsp;</span>
2098
+ <span class="cline-any cline-no">&nbsp;</span>
2099
+ <span class="cline-any cline-no">&nbsp;</span>
2100
+ <span class="cline-any cline-no">&nbsp;</span>
2101
+ <span class="cline-any cline-no">&nbsp;</span>
2102
+ <span class="cline-any cline-no">&nbsp;</span>
2103
+ <span class="cline-any cline-no">&nbsp;</span>
2104
+ <span class="cline-any cline-no">&nbsp;</span>
2105
+ <span class="cline-any cline-no">&nbsp;</span>
2106
+ <span class="cline-any cline-no">&nbsp;</span>
2107
+ <span class="cline-any cline-no">&nbsp;</span>
2108
+ <span class="cline-any cline-no">&nbsp;</span>
2109
+ <span class="cline-any cline-no">&nbsp;</span>
2110
+ <span class="cline-any cline-no">&nbsp;</span>
2111
+ <span class="cline-any cline-no">&nbsp;</span>
2112
+ <span class="cline-any cline-no">&nbsp;</span>
2113
+ <span class="cline-any cline-no">&nbsp;</span>
2114
+ <span class="cline-any cline-no">&nbsp;</span>
2115
+ <span class="cline-any cline-no">&nbsp;</span>
2116
+ <span class="cline-any cline-no">&nbsp;</span>
2117
+ <span class="cline-any cline-no">&nbsp;</span>
2118
+ <span class="cline-any cline-no">&nbsp;</span>
2119
+ <span class="cline-any cline-no">&nbsp;</span>
2120
+ <span class="cline-any cline-no">&nbsp;</span>
2121
+ <span class="cline-any cline-no">&nbsp;</span>
2122
+ <span class="cline-any cline-no">&nbsp;</span>
2123
+ <span class="cline-any cline-no">&nbsp;</span>
2124
+ <span class="cline-any cline-no">&nbsp;</span>
2125
+ <span class="cline-any cline-no">&nbsp;</span>
2126
+ <span class="cline-any cline-no">&nbsp;</span>
2127
+ <span class="cline-any cline-no">&nbsp;</span>
2128
+ <span class="cline-any cline-no">&nbsp;</span>
2129
+ <span class="cline-any cline-no">&nbsp;</span>
2130
+ <span class="cline-any cline-no">&nbsp;</span>
2131
+ <span class="cline-any cline-no">&nbsp;</span>
2132
+ <span class="cline-any cline-no">&nbsp;</span>
2133
+ <span class="cline-any cline-no">&nbsp;</span>
2134
+ <span class="cline-any cline-no">&nbsp;</span>
2135
+ <span class="cline-any cline-no">&nbsp;</span>
2136
+ <span class="cline-any cline-no">&nbsp;</span>
2137
+ <span class="cline-any cline-no">&nbsp;</span>
2138
+ <span class="cline-any cline-no">&nbsp;</span>
2139
+ <span class="cline-any cline-no">&nbsp;</span>
2140
+ <span class="cline-any cline-no">&nbsp;</span>
2141
+ <span class="cline-any cline-no">&nbsp;</span>
2142
+ <span class="cline-any cline-no">&nbsp;</span>
2143
+ <span class="cline-any cline-no">&nbsp;</span>
2144
+ <span class="cline-any cline-no">&nbsp;</span>
2145
+ <span class="cline-any cline-no">&nbsp;</span>
2146
+ <span class="cline-any cline-no">&nbsp;</span>
2147
+ <span class="cline-any cline-no">&nbsp;</span>
2148
+ <span class="cline-any cline-no">&nbsp;</span>
2149
+ <span class="cline-any cline-no">&nbsp;</span>
2150
+ <span class="cline-any cline-no">&nbsp;</span>
2151
+ <span class="cline-any cline-no">&nbsp;</span>
2152
+ <span class="cline-any cline-no">&nbsp;</span>
2153
+ <span class="cline-any cline-no">&nbsp;</span>
2154
+ <span class="cline-any cline-no">&nbsp;</span>
2155
+ <span class="cline-any cline-no">&nbsp;</span>
2156
+ <span class="cline-any cline-no">&nbsp;</span>
2157
+ <span class="cline-any cline-no">&nbsp;</span>
2158
+ <span class="cline-any cline-no">&nbsp;</span>
2159
+ <span class="cline-any cline-no">&nbsp;</span>
2160
+ <span class="cline-any cline-no">&nbsp;</span>
2161
+ <span class="cline-any cline-no">&nbsp;</span>
2162
+ <span class="cline-any cline-no">&nbsp;</span>
2163
+ <span class="cline-any cline-no">&nbsp;</span>
2164
+ <span class="cline-any cline-no">&nbsp;</span>
2165
+ <span class="cline-any cline-no">&nbsp;</span>
2166
+ <span class="cline-any cline-no">&nbsp;</span>
2167
+ <span class="cline-any cline-no">&nbsp;</span>
2168
+ <span class="cline-any cline-no">&nbsp;</span>
2169
+ <span class="cline-any cline-no">&nbsp;</span>
2170
+ <span class="cline-any cline-no">&nbsp;</span>
2171
+ <span class="cline-any cline-no">&nbsp;</span>
2172
+ <span class="cline-any cline-no">&nbsp;</span>
2173
+ <span class="cline-any cline-no">&nbsp;</span>
2174
+ <span class="cline-any cline-no">&nbsp;</span>
2175
+ <span class="cline-any cline-no">&nbsp;</span>
2176
+ <span class="cline-any cline-no">&nbsp;</span>
2177
+ <span class="cline-any cline-no">&nbsp;</span>
2178
+ <span class="cline-any cline-no">&nbsp;</span>
2179
+ <span class="cline-any cline-no">&nbsp;</span>
2180
+ <span class="cline-any cline-no">&nbsp;</span>
2181
+ <span class="cline-any cline-no">&nbsp;</span>
2182
+ <span class="cline-any cline-no">&nbsp;</span>
2183
+ <span class="cline-any cline-no">&nbsp;</span>
2184
+ <span class="cline-any cline-no">&nbsp;</span>
2185
+ <span class="cline-any cline-no">&nbsp;</span>
2186
+ <span class="cline-any cline-no">&nbsp;</span>
2187
+ <span class="cline-any cline-no">&nbsp;</span>
2188
+ <span class="cline-any cline-no">&nbsp;</span>
2189
+ <span class="cline-any cline-no">&nbsp;</span>
2190
+ <span class="cline-any cline-no">&nbsp;</span>
2191
+ <span class="cline-any cline-no">&nbsp;</span>
2192
+ <span class="cline-any cline-no">&nbsp;</span>
2193
+ <span class="cline-any cline-no">&nbsp;</span>
2194
+ <span class="cline-any cline-no">&nbsp;</span>
2195
+ <span class="cline-any cline-no">&nbsp;</span>
2196
+ <span class="cline-any cline-no">&nbsp;</span>
2197
+ <span class="cline-any cline-no">&nbsp;</span>
2198
+ <span class="cline-any cline-no">&nbsp;</span>
2199
+ <span class="cline-any cline-no">&nbsp;</span>
2200
+ <span class="cline-any cline-no">&nbsp;</span>
2201
+ <span class="cline-any cline-no">&nbsp;</span>
2202
+ <span class="cline-any cline-no">&nbsp;</span>
2203
+ <span class="cline-any cline-no">&nbsp;</span>
2204
+ <span class="cline-any cline-no">&nbsp;</span>
2205
+ <span class="cline-any cline-no">&nbsp;</span>
2206
+ <span class="cline-any cline-no">&nbsp;</span>
2207
+ <span class="cline-any cline-no">&nbsp;</span>
2208
+ <span class="cline-any cline-no">&nbsp;</span>
2209
+ <span class="cline-any cline-no">&nbsp;</span>
2210
+ <span class="cline-any cline-no">&nbsp;</span>
2211
+ <span class="cline-any cline-no">&nbsp;</span>
2212
+ <span class="cline-any cline-no">&nbsp;</span>
2213
+ <span class="cline-any cline-no">&nbsp;</span>
2214
+ <span class="cline-any cline-no">&nbsp;</span>
2215
+ <span class="cline-any cline-no">&nbsp;</span>
2216
+ <span class="cline-any cline-no">&nbsp;</span>
2217
+ <span class="cline-any cline-no">&nbsp;</span>
2218
+ <span class="cline-any cline-no">&nbsp;</span>
2219
+ <span class="cline-any cline-no">&nbsp;</span>
2220
+ <span class="cline-any cline-no">&nbsp;</span>
2221
+ <span class="cline-any cline-no">&nbsp;</span>
2222
+ <span class="cline-any cline-no">&nbsp;</span>
2223
+ <span class="cline-any cline-no">&nbsp;</span>
2224
+ <span class="cline-any cline-no">&nbsp;</span>
2225
+ <span class="cline-any cline-no">&nbsp;</span>
2226
+ <span class="cline-any cline-no">&nbsp;</span>
2227
+ <span class="cline-any cline-no">&nbsp;</span>
2228
+ <span class="cline-any cline-no">&nbsp;</span>
2229
+ <span class="cline-any cline-no">&nbsp;</span>
2230
+ <span class="cline-any cline-no">&nbsp;</span>
2231
+ <span class="cline-any cline-no">&nbsp;</span>
2232
+ <span class="cline-any cline-no">&nbsp;</span>
2233
+ <span class="cline-any cline-no">&nbsp;</span>
2234
+ <span class="cline-any cline-no">&nbsp;</span>
2235
+ <span class="cline-any cline-no">&nbsp;</span>
2236
+ <span class="cline-any cline-no">&nbsp;</span>
2237
+ <span class="cline-any cline-no">&nbsp;</span>
2238
+ <span class="cline-any cline-no">&nbsp;</span>
2239
+ <span class="cline-any cline-no">&nbsp;</span>
2240
+ <span class="cline-any cline-no">&nbsp;</span>
2241
+ <span class="cline-any cline-no">&nbsp;</span>
2242
+ <span class="cline-any cline-no">&nbsp;</span>
2243
+ <span class="cline-any cline-no">&nbsp;</span>
2244
+ <span class="cline-any cline-no">&nbsp;</span>
2245
+ <span class="cline-any cline-no">&nbsp;</span>
2246
+ <span class="cline-any cline-no">&nbsp;</span>
2247
+ <span class="cline-any cline-no">&nbsp;</span>
2248
+ <span class="cline-any cline-no">&nbsp;</span>
2249
+ <span class="cline-any cline-no">&nbsp;</span>
2250
+ <span class="cline-any cline-no">&nbsp;</span>
2251
+ <span class="cline-any cline-no">&nbsp;</span>
2252
+ <span class="cline-any cline-no">&nbsp;</span>
2253
+ <span class="cline-any cline-no">&nbsp;</span>
2254
+ <span class="cline-any cline-no">&nbsp;</span>
2255
+ <span class="cline-any cline-no">&nbsp;</span>
2256
+ <span class="cline-any cline-no">&nbsp;</span>
2257
+ <span class="cline-any cline-no">&nbsp;</span>
2258
+ <span class="cline-any cline-no">&nbsp;</span>
2259
+ <span class="cline-any cline-no">&nbsp;</span>
2260
+ <span class="cline-any cline-no">&nbsp;</span>
2261
+ <span class="cline-any cline-no">&nbsp;</span>
2262
+ <span class="cline-any cline-no">&nbsp;</span>
2263
+ <span class="cline-any cline-no">&nbsp;</span>
2264
+ <span class="cline-any cline-no">&nbsp;</span>
2265
+ <span class="cline-any cline-no">&nbsp;</span>
2266
+ <span class="cline-any cline-no">&nbsp;</span>
2267
+ <span class="cline-any cline-no">&nbsp;</span>
2268
+ <span class="cline-any cline-no">&nbsp;</span>
2269
+ <span class="cline-any cline-no">&nbsp;</span>
2270
+ <span class="cline-any cline-no">&nbsp;</span>
2271
+ <span class="cline-any cline-no">&nbsp;</span>
2272
+ <span class="cline-any cline-no">&nbsp;</span>
2273
+ <span class="cline-any cline-no">&nbsp;</span>
2274
+ <span class="cline-any cline-no">&nbsp;</span>
2275
+ <span class="cline-any cline-no">&nbsp;</span>
2276
+ <span class="cline-any cline-no">&nbsp;</span>
2277
+ <span class="cline-any cline-no">&nbsp;</span>
2278
+ <span class="cline-any cline-no">&nbsp;</span>
2279
+ <span class="cline-any cline-no">&nbsp;</span>
2280
+ <span class="cline-any cline-no">&nbsp;</span>
2281
+ <span class="cline-any cline-no">&nbsp;</span>
2282
+ <span class="cline-any cline-no">&nbsp;</span>
2283
+ <span class="cline-any cline-no">&nbsp;</span>
2284
+ <span class="cline-any cline-no">&nbsp;</span>
2285
+ <span class="cline-any cline-no">&nbsp;</span>
2286
+ <span class="cline-any cline-no">&nbsp;</span>
2287
+ <span class="cline-any cline-no">&nbsp;</span>
2288
+ <span class="cline-any cline-no">&nbsp;</span>
2289
+ <span class="cline-any cline-no">&nbsp;</span>
2290
+ <span class="cline-any cline-no">&nbsp;</span>
2291
+ <span class="cline-any cline-no">&nbsp;</span>
2292
+ <span class="cline-any cline-no">&nbsp;</span>
2293
+ <span class="cline-any cline-no">&nbsp;</span>
2294
+ <span class="cline-any cline-no">&nbsp;</span>
2295
+ <span class="cline-any cline-no">&nbsp;</span>
2296
+ <span class="cline-any cline-no">&nbsp;</span>
2297
+ <span class="cline-any cline-no">&nbsp;</span>
2298
+ <span class="cline-any cline-no">&nbsp;</span>
2299
+ <span class="cline-any cline-no">&nbsp;</span>
2300
+ <span class="cline-any cline-no">&nbsp;</span>
2301
+ <span class="cline-any cline-no">&nbsp;</span>
2302
+ <span class="cline-any cline-no">&nbsp;</span>
2303
+ <span class="cline-any cline-no">&nbsp;</span>
2304
+ <span class="cline-any cline-no">&nbsp;</span>
2305
+ <span class="cline-any cline-no">&nbsp;</span>
2306
+ <span class="cline-any cline-no">&nbsp;</span>
2307
+ <span class="cline-any cline-no">&nbsp;</span>
2308
+ <span class="cline-any cline-no">&nbsp;</span>
2309
+ <span class="cline-any cline-no">&nbsp;</span>
2310
+ <span class="cline-any cline-no">&nbsp;</span>
2311
+ <span class="cline-any cline-no">&nbsp;</span>
2312
+ <span class="cline-any cline-no">&nbsp;</span>
2313
+ <span class="cline-any cline-no">&nbsp;</span>
2314
+ <span class="cline-any cline-no">&nbsp;</span>
2315
+ <span class="cline-any cline-no">&nbsp;</span>
2316
+ <span class="cline-any cline-no">&nbsp;</span>
2317
+ <span class="cline-any cline-no">&nbsp;</span>
2318
+ <span class="cline-any cline-no">&nbsp;</span>
2319
+ <span class="cline-any cline-no">&nbsp;</span>
2320
+ <span class="cline-any cline-no">&nbsp;</span>
2321
+ <span class="cline-any cline-no">&nbsp;</span>
2322
+ <span class="cline-any cline-no">&nbsp;</span>
2323
+ <span class="cline-any cline-no">&nbsp;</span>
2324
+ <span class="cline-any cline-no">&nbsp;</span>
2325
+ <span class="cline-any cline-no">&nbsp;</span>
2326
+ <span class="cline-any cline-no">&nbsp;</span>
2327
+ <span class="cline-any cline-no">&nbsp;</span>
2328
+ <span class="cline-any cline-no">&nbsp;</span>
2329
+ <span class="cline-any cline-no">&nbsp;</span>
2330
+ <span class="cline-any cline-no">&nbsp;</span>
2331
+ <span class="cline-any cline-no">&nbsp;</span>
2332
+ <span class="cline-any cline-no">&nbsp;</span>
2333
+ <span class="cline-any cline-no">&nbsp;</span>
2334
+ <span class="cline-any cline-no">&nbsp;</span>
2335
+ <span class="cline-any cline-no">&nbsp;</span>
2336
+ <span class="cline-any cline-no">&nbsp;</span>
2337
+ <span class="cline-any cline-no">&nbsp;</span>
2338
+ <span class="cline-any cline-no">&nbsp;</span>
2339
+ <span class="cline-any cline-no">&nbsp;</span>
2340
+ <span class="cline-any cline-no">&nbsp;</span>
2341
+ <span class="cline-any cline-no">&nbsp;</span>
2342
+ <span class="cline-any cline-no">&nbsp;</span>
2343
+ <span class="cline-any cline-no">&nbsp;</span>
2344
+ <span class="cline-any cline-no">&nbsp;</span>
2345
+ <span class="cline-any cline-no">&nbsp;</span>
2346
+ <span class="cline-any cline-no">&nbsp;</span>
2347
+ <span class="cline-any cline-no">&nbsp;</span>
2348
+ <span class="cline-any cline-no">&nbsp;</span>
2349
+ <span class="cline-any cline-no">&nbsp;</span>
2350
+ <span class="cline-any cline-no">&nbsp;</span>
2351
+ <span class="cline-any cline-no">&nbsp;</span>
2352
+ <span class="cline-any cline-no">&nbsp;</span>
2353
+ <span class="cline-any cline-no">&nbsp;</span>
2354
+ <span class="cline-any cline-no">&nbsp;</span>
2355
+ <span class="cline-any cline-no">&nbsp;</span>
2356
+ <span class="cline-any cline-no">&nbsp;</span>
2357
+ <span class="cline-any cline-no">&nbsp;</span>
2358
+ <span class="cline-any cline-no">&nbsp;</span>
2359
+ <span class="cline-any cline-no">&nbsp;</span>
2360
+ <span class="cline-any cline-no">&nbsp;</span>
2361
+ <span class="cline-any cline-no">&nbsp;</span>
2362
+ <span class="cline-any cline-no">&nbsp;</span>
2363
+ <span class="cline-any cline-no">&nbsp;</span>
2364
+ <span class="cline-any cline-no">&nbsp;</span>
2365
+ <span class="cline-any cline-no">&nbsp;</span>
2366
+ <span class="cline-any cline-no">&nbsp;</span>
2367
+ <span class="cline-any cline-no">&nbsp;</span>
2368
+ <span class="cline-any cline-no">&nbsp;</span>
2369
+ <span class="cline-any cline-no">&nbsp;</span>
2370
+ <span class="cline-any cline-no">&nbsp;</span>
2371
+ <span class="cline-any cline-no">&nbsp;</span>
2372
+ <span class="cline-any cline-no">&nbsp;</span>
2373
+ <span class="cline-any cline-no">&nbsp;</span>
2374
+ <span class="cline-any cline-no">&nbsp;</span>
2375
+ <span class="cline-any cline-no">&nbsp;</span>
2376
+ <span class="cline-any cline-no">&nbsp;</span>
2377
+ <span class="cline-any cline-no">&nbsp;</span>
2378
+ <span class="cline-any cline-no">&nbsp;</span>
2379
+ <span class="cline-any cline-no">&nbsp;</span>
2380
+ <span class="cline-any cline-no">&nbsp;</span>
2381
+ <span class="cline-any cline-no">&nbsp;</span>
2382
+ <span class="cline-any cline-no">&nbsp;</span>
2383
+ <span class="cline-any cline-no">&nbsp;</span>
2384
+ <span class="cline-any cline-no">&nbsp;</span>
2385
+ <span class="cline-any cline-no">&nbsp;</span>
2386
+ <span class="cline-any cline-no">&nbsp;</span>
2387
+ <span class="cline-any cline-no">&nbsp;</span>
2388
+ <span class="cline-any cline-no">&nbsp;</span>
2389
+ <span class="cline-any cline-no">&nbsp;</span>
2390
+ <span class="cline-any cline-no">&nbsp;</span>
2391
+ <span class="cline-any cline-no">&nbsp;</span>
2392
+ <span class="cline-any cline-no">&nbsp;</span>
2393
+ <span class="cline-any cline-no">&nbsp;</span>
2394
+ <span class="cline-any cline-no">&nbsp;</span>
2395
+ <span class="cline-any cline-no">&nbsp;</span>
2396
+ <span class="cline-any cline-no">&nbsp;</span>
2397
+ <span class="cline-any cline-no">&nbsp;</span>
2398
+ <span class="cline-any cline-no">&nbsp;</span>
2399
+ <span class="cline-any cline-no">&nbsp;</span>
2400
+ <span class="cline-any cline-no">&nbsp;</span>
2401
+ <span class="cline-any cline-no">&nbsp;</span>
2402
+ <span class="cline-any cline-no">&nbsp;</span>
2403
+ <span class="cline-any cline-no">&nbsp;</span>
2404
+ <span class="cline-any cline-no">&nbsp;</span>
2405
+ <span class="cline-any cline-no">&nbsp;</span>
2406
+ <span class="cline-any cline-no">&nbsp;</span>
2407
+ <span class="cline-any cline-no">&nbsp;</span>
2408
+ <span class="cline-any cline-no">&nbsp;</span>
2409
+ <span class="cline-any cline-no">&nbsp;</span>
2410
+ <span class="cline-any cline-no">&nbsp;</span>
2411
+ <span class="cline-any cline-no">&nbsp;</span>
2412
+ <span class="cline-any cline-no">&nbsp;</span>
2413
+ <span class="cline-any cline-no">&nbsp;</span>
2414
+ <span class="cline-any cline-no">&nbsp;</span>
2415
+ <span class="cline-any cline-no">&nbsp;</span>
2416
+ <span class="cline-any cline-no">&nbsp;</span>
2417
+ <span class="cline-any cline-no">&nbsp;</span>
2418
+ <span class="cline-any cline-no">&nbsp;</span>
2419
+ <span class="cline-any cline-no">&nbsp;</span>
2420
+ <span class="cline-any cline-no">&nbsp;</span>
2421
+ <span class="cline-any cline-no">&nbsp;</span>
2422
+ <span class="cline-any cline-no">&nbsp;</span>
2423
+ <span class="cline-any cline-no">&nbsp;</span>
2424
+ <span class="cline-any cline-no">&nbsp;</span>
2425
+ <span class="cline-any cline-no">&nbsp;</span>
2426
+ <span class="cline-any cline-no">&nbsp;</span>
2427
+ <span class="cline-any cline-no">&nbsp;</span>
2428
+ <span class="cline-any cline-no">&nbsp;</span>
2429
+ <span class="cline-any cline-no">&nbsp;</span>
2430
+ <span class="cline-any cline-no">&nbsp;</span>
2431
+ <span class="cline-any cline-no">&nbsp;</span>
2432
+ <span class="cline-any cline-no">&nbsp;</span>
2433
+ <span class="cline-any cline-no">&nbsp;</span>
2434
+ <span class="cline-any cline-no">&nbsp;</span>
2435
+ <span class="cline-any cline-no">&nbsp;</span>
2436
+ <span class="cline-any cline-no">&nbsp;</span>
2437
+ <span class="cline-any cline-no">&nbsp;</span>
2438
+ <span class="cline-any cline-no">&nbsp;</span>
2439
+ <span class="cline-any cline-no">&nbsp;</span>
2440
+ <span class="cline-any cline-no">&nbsp;</span>
2441
+ <span class="cline-any cline-no">&nbsp;</span>
2442
+ <span class="cline-any cline-no">&nbsp;</span>
2443
+ <span class="cline-any cline-no">&nbsp;</span>
2444
+ <span class="cline-any cline-no">&nbsp;</span>
2445
+ <span class="cline-any cline-no">&nbsp;</span>
2446
+ <span class="cline-any cline-no">&nbsp;</span>
2447
+ <span class="cline-any cline-no">&nbsp;</span>
2448
+ <span class="cline-any cline-no">&nbsp;</span>
2449
+ <span class="cline-any cline-no">&nbsp;</span>
2450
+ <span class="cline-any cline-no">&nbsp;</span>
2451
+ <span class="cline-any cline-no">&nbsp;</span>
2452
+ <span class="cline-any cline-no">&nbsp;</span>
2453
+ <span class="cline-any cline-no">&nbsp;</span>
2454
+ <span class="cline-any cline-no">&nbsp;</span>
2455
+ <span class="cline-any cline-no">&nbsp;</span>
2456
+ <span class="cline-any cline-no">&nbsp;</span>
2457
+ <span class="cline-any cline-no">&nbsp;</span>
2458
+ <span class="cline-any cline-no">&nbsp;</span>
2459
+ <span class="cline-any cline-no">&nbsp;</span>
2460
+ <span class="cline-any cline-no">&nbsp;</span>
2461
+ <span class="cline-any cline-no">&nbsp;</span>
2462
+ <span class="cline-any cline-no">&nbsp;</span>
2463
+ <span class="cline-any cline-no">&nbsp;</span>
2464
+ <span class="cline-any cline-no">&nbsp;</span>
2465
+ <span class="cline-any cline-no">&nbsp;</span>
2466
+ <span class="cline-any cline-no">&nbsp;</span>
2467
+ <span class="cline-any cline-no">&nbsp;</span>
2468
+ <span class="cline-any cline-no">&nbsp;</span>
2469
+ <span class="cline-any cline-no">&nbsp;</span>
2470
+ <span class="cline-any cline-no">&nbsp;</span>
2471
+ <span class="cline-any cline-no">&nbsp;</span>
2472
+ <span class="cline-any cline-no">&nbsp;</span>
2473
+ <span class="cline-any cline-no">&nbsp;</span>
2474
+ <span class="cline-any cline-no">&nbsp;</span>
2475
+ <span class="cline-any cline-no">&nbsp;</span>
2476
+ <span class="cline-any cline-no">&nbsp;</span>
2477
+ <span class="cline-any cline-no">&nbsp;</span>
2478
+ <span class="cline-any cline-no">&nbsp;</span>
2479
+ <span class="cline-any cline-no">&nbsp;</span>
2480
+ <span class="cline-any cline-no">&nbsp;</span>
2481
+ <span class="cline-any cline-no">&nbsp;</span>
2482
+ <span class="cline-any cline-no">&nbsp;</span>
2483
+ <span class="cline-any cline-no">&nbsp;</span>
2484
+ <span class="cline-any cline-no">&nbsp;</span>
2485
+ <span class="cline-any cline-no">&nbsp;</span>
2486
+ <span class="cline-any cline-no">&nbsp;</span>
2487
+ <span class="cline-any cline-no">&nbsp;</span>
2488
+ <span class="cline-any cline-no">&nbsp;</span>
2489
+ <span class="cline-any cline-no">&nbsp;</span>
2490
+ <span class="cline-any cline-no">&nbsp;</span>
2491
+ <span class="cline-any cline-no">&nbsp;</span>
2492
+ <span class="cline-any cline-no">&nbsp;</span>
2493
+ <span class="cline-any cline-no">&nbsp;</span>
2494
+ <span class="cline-any cline-no">&nbsp;</span>
2495
+ <span class="cline-any cline-no">&nbsp;</span>
2496
+ <span class="cline-any cline-no">&nbsp;</span>
2497
+ <span class="cline-any cline-no">&nbsp;</span>
2498
+ <span class="cline-any cline-no">&nbsp;</span>
2499
+ <span class="cline-any cline-no">&nbsp;</span>
2500
+ <span class="cline-any cline-no">&nbsp;</span>
2501
+ <span class="cline-any cline-no">&nbsp;</span>
2502
+ <span class="cline-any cline-no">&nbsp;</span>
2503
+ <span class="cline-any cline-no">&nbsp;</span>
2504
+ <span class="cline-any cline-no">&nbsp;</span>
2505
+ <span class="cline-any cline-no">&nbsp;</span>
2506
+ <span class="cline-any cline-no">&nbsp;</span>
2507
+ <span class="cline-any cline-no">&nbsp;</span>
2508
+ <span class="cline-any cline-no">&nbsp;</span>
2509
+ <span class="cline-any cline-no">&nbsp;</span>
2510
+ <span class="cline-any cline-no">&nbsp;</span>
2511
+ <span class="cline-any cline-no">&nbsp;</span>
2512
+ <span class="cline-any cline-no">&nbsp;</span>
2513
+ <span class="cline-any cline-no">&nbsp;</span>
2514
+ <span class="cline-any cline-no">&nbsp;</span>
2515
+ <span class="cline-any cline-no">&nbsp;</span>
2516
+ <span class="cline-any cline-no">&nbsp;</span>
2517
+ <span class="cline-any cline-no">&nbsp;</span>
2518
+ <span class="cline-any cline-no">&nbsp;</span>
2519
+ <span class="cline-any cline-no">&nbsp;</span>
2520
+ <span class="cline-any cline-no">&nbsp;</span>
2521
+ <span class="cline-any cline-no">&nbsp;</span>
2522
+ <span class="cline-any cline-no">&nbsp;</span>
2523
+ <span class="cline-any cline-no">&nbsp;</span>
2524
+ <span class="cline-any cline-no">&nbsp;</span>
2525
+ <span class="cline-any cline-no">&nbsp;</span>
2526
+ <span class="cline-any cline-no">&nbsp;</span>
2527
+ <span class="cline-any cline-no">&nbsp;</span>
2528
+ <span class="cline-any cline-no">&nbsp;</span>
2529
+ <span class="cline-any cline-no">&nbsp;</span>
2530
+ <span class="cline-any cline-no">&nbsp;</span>
2531
+ <span class="cline-any cline-no">&nbsp;</span>
2532
+ <span class="cline-any cline-no">&nbsp;</span>
2533
+ <span class="cline-any cline-no">&nbsp;</span>
2534
+ <span class="cline-any cline-no">&nbsp;</span>
2535
+ <span class="cline-any cline-no">&nbsp;</span>
2536
+ <span class="cline-any cline-no">&nbsp;</span>
2537
+ <span class="cline-any cline-no">&nbsp;</span>
2538
+ <span class="cline-any cline-no">&nbsp;</span>
2539
+ <span class="cline-any cline-no">&nbsp;</span>
2540
+ <span class="cline-any cline-no">&nbsp;</span>
2541
+ <span class="cline-any cline-no">&nbsp;</span>
2542
+ <span class="cline-any cline-no">&nbsp;</span>
2543
+ <span class="cline-any cline-no">&nbsp;</span>
2544
+ <span class="cline-any cline-no">&nbsp;</span>
2545
+ <span class="cline-any cline-no">&nbsp;</span>
2546
+ <span class="cline-any cline-no">&nbsp;</span>
2547
+ <span class="cline-any cline-no">&nbsp;</span>
2548
+ <span class="cline-any cline-no">&nbsp;</span>
2549
+ <span class="cline-any cline-no">&nbsp;</span>
2550
+ <span class="cline-any cline-no">&nbsp;</span>
2551
+ <span class="cline-any cline-no">&nbsp;</span>
2552
+ <span class="cline-any cline-no">&nbsp;</span>
2553
+ <span class="cline-any cline-no">&nbsp;</span>
2554
+ <span class="cline-any cline-no">&nbsp;</span>
2555
+ <span class="cline-any cline-no">&nbsp;</span>
2556
+ <span class="cline-any cline-no">&nbsp;</span>
2557
+ <span class="cline-any cline-no">&nbsp;</span>
2558
+ <span class="cline-any cline-no">&nbsp;</span>
2559
+ <span class="cline-any cline-no">&nbsp;</span>
2560
+ <span class="cline-any cline-no">&nbsp;</span>
2561
+ <span class="cline-any cline-no">&nbsp;</span>
2562
+ <span class="cline-any cline-no">&nbsp;</span>
2563
+ <span class="cline-any cline-no">&nbsp;</span>
2564
+ <span class="cline-any cline-no">&nbsp;</span>
2565
+ <span class="cline-any cline-no">&nbsp;</span>
2566
+ <span class="cline-any cline-no">&nbsp;</span>
2567
+ <span class="cline-any cline-no">&nbsp;</span>
2568
+ <span class="cline-any cline-no">&nbsp;</span>
2569
+ <span class="cline-any cline-no">&nbsp;</span>
2570
+ <span class="cline-any cline-no">&nbsp;</span>
2571
+ <span class="cline-any cline-no">&nbsp;</span>
2572
+ <span class="cline-any cline-no">&nbsp;</span>
2573
+ <span class="cline-any cline-no">&nbsp;</span>
2574
+ <span class="cline-any cline-no">&nbsp;</span>
2575
+ <span class="cline-any cline-no">&nbsp;</span>
2576
+ <span class="cline-any cline-no">&nbsp;</span>
2577
+ <span class="cline-any cline-no">&nbsp;</span>
2578
+ <span class="cline-any cline-no">&nbsp;</span>
2579
+ <span class="cline-any cline-no">&nbsp;</span>
2580
+ <span class="cline-any cline-no">&nbsp;</span>
2581
+ <span class="cline-any cline-no">&nbsp;</span>
2582
+ <span class="cline-any cline-no">&nbsp;</span>
2583
+ <span class="cline-any cline-no">&nbsp;</span>
2584
+ <span class="cline-any cline-no">&nbsp;</span>
2585
+ <span class="cline-any cline-no">&nbsp;</span>
2586
+ <span class="cline-any cline-no">&nbsp;</span>
2587
+ <span class="cline-any cline-no">&nbsp;</span>
2588
+ <span class="cline-any cline-no">&nbsp;</span>
2589
+ <span class="cline-any cline-no">&nbsp;</span>
2590
+ <span class="cline-any cline-no">&nbsp;</span>
2591
+ <span class="cline-any cline-no">&nbsp;</span>
2592
+ <span class="cline-any cline-no">&nbsp;</span>
2593
+ <span class="cline-any cline-no">&nbsp;</span>
2594
+ <span class="cline-any cline-no">&nbsp;</span>
2595
+ <span class="cline-any cline-no">&nbsp;</span>
2596
+ <span class="cline-any cline-no">&nbsp;</span>
2597
+ <span class="cline-any cline-no">&nbsp;</span>
2598
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { BigNumber } from "bignumber.js";<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
2599
+ <span class="cstat-no" title="statement not covered" >import React, { useEffect, useState } from "react";</span>
2600
+ <span class="cstat-no" title="statement not covered" >import PropTypes from "prop-types";</span>
2601
+ <span class="cstat-no" title="statement not covered" ></span>
2602
+ <span class="cstat-no" title="statement not covered" >import s from "./swap-form.module.scss";</span>
2603
+ <span class="cstat-no" title="statement not covered" ></span>
2604
+ <span class="cstat-no" title="statement not covered" >import { useReferredState } from "../../hooks/useReferredState.js";</span>
2605
+ <span class="cstat-no" title="statement not covered" >import { useCallHandlingErrors } from "../../hooks/useCallHandlingErrors.js";</span>
2606
+ <span class="cstat-no" title="statement not covered" ></span>
2607
+ <span class="cstat-no" title="statement not covered" >import { AmountUtils } from "../../../common/amountUtils.js";</span>
2608
+ <span class="cstat-no" title="statement not covered" >import { TitleBox } from "../../atoms/TitleBox/TitleBox.jsx";</span>
2609
+ <span class="cstat-no" title="statement not covered" >import { AmountInput } from "../../molecules/AmountInput/AmountInput.jsx";</span>
2610
+ <span class="cstat-no" title="statement not covered" >import { Validation } from "../../atoms/Validation/Validation.jsx";</span>
2611
+ <span class="cstat-no" title="statement not covered" >import { Button } from "../../atoms/buttons/Button/Button.jsx";</span>
2612
+ <span class="cstat-no" title="statement not covered" >import { Textarea } from "../../atoms/Textarea/Textarea.jsx";</span>
2613
+ <span class="cstat-no" title="statement not covered" >import { TOOLTIP_POSITIONS } from "../../../constants/atoms/Tooltip/tooltip.jsx";</span>
2614
+ <span class="cstat-no" title="statement not covered" >import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";</span>
2615
+ <span class="cstat-no" title="statement not covered" ></span>
2616
+ <span class="cstat-no" title="statement not covered" >/**</span>
2617
+ <span class="cstat-no" title="statement not covered" > * This is the type definition of a function used inside SwapForm to compose the URL for the hero button.</span>
2618
+ <span class="cstat-no" title="statement not covered" > *</span>
2619
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2620
+ <span class="cstat-no" title="statement not covered" > * @name composeConfirmButtonTo</span>
2621
+ <span class="cstat-no" title="statement not covered" > * @param {string} [fromTicker] - Ticker symbol of the asset being sent.</span>
2622
+ <span class="cstat-no" title="statement not covered" > * @param {string} [toTicker] - Ticker symbol of the asset being received.</span>
2623
+ <span class="cstat-no" title="statement not covered" > * @param {string} [fromAmount] - Amount of the asset being sent.</span>
2624
+ <span class="cstat-no" title="statement not covered" > * @return {string} Full URL or relative URL that can be used for &lt;a href="..." /&gt;.</span>
2625
+ <span class="cstat-no" title="statement not covered" > */</span>
2626
+ <span class="cstat-no" title="statement not covered" ></span>
2627
+ <span class="cstat-no" title="statement not covered" >/**</span>
2628
+ <span class="cstat-no" title="statement not covered" > * Common click handler without parameters and return value, just your logic execution.</span>
2629
+ <span class="cstat-no" title="statement not covered" > *</span>
2630
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2631
+ <span class="cstat-no" title="statement not covered" > * @name handleClick</span>
2632
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2633
+ <span class="cstat-no" title="statement not covered" > */</span>
2634
+ <span class="cstat-no" title="statement not covered" ></span>
2635
+ <span class="cstat-no" title="statement not covered" >/**</span>
2636
+ <span class="cstat-no" title="statement not covered" > * Form executes this function when swap creation info retrieval is finished successfully.</span>
2637
+ <span class="cstat-no" title="statement not covered" > *</span>
2638
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2639
+ <span class="cstat-no" title="statement not covered" > * @name setSwapCreationEstimation</span>
2640
+ <span class="cstat-no" title="statement not covered" > * @param {BaseSwapCreationInfo} details - Details of the swap creation estimation.</span>
2641
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2642
+ <span class="cstat-no" title="statement not covered" > */</span>
2643
+ <span class="cstat-no" title="statement not covered" ></span>
2644
+ <span class="cstat-no" title="statement not covered" >/**</span>
2645
+ <span class="cstat-no" title="statement not covered" > * Error handler for unexpected errors.</span>
2646
+ <span class="cstat-no" title="statement not covered" > *</span>
2647
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2648
+ <span class="cstat-no" title="statement not covered" > * @name handleUnexpectedError</span>
2649
+ <span class="cstat-no" title="statement not covered" > * @param {Error} error - The unexpected error encountered.</span>
2650
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2651
+ <span class="cstat-no" title="statement not covered" > */</span>
2652
+ <span class="cstat-no" title="statement not covered" ></span>
2653
+ <span class="cstat-no" title="statement not covered" >/**</span>
2654
+ <span class="cstat-no" title="statement not covered" > * Should implement the logic with rotating assets (if you want "to" to become "from" and "from" to become "to").</span>
2655
+ <span class="cstat-no" title="statement not covered" > *</span>
2656
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2657
+ <span class="cstat-no" title="statement not covered" > * @name rotateAssets</span>
2658
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2659
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2660
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2661
+ <span class="cstat-no" title="statement not covered" > */</span>
2662
+ <span class="cstat-no" title="statement not covered" ></span>
2663
+ <span class="cstat-no" title="statement not covered" >/**</span>
2664
+ <span class="cstat-no" title="statement not covered" > * Error handler for standard errors that we can recognize.</span>
2665
+ <span class="cstat-no" title="statement not covered" > *</span>
2666
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2667
+ <span class="cstat-no" title="statement not covered" > * @name handleSwapServiceError</span>
2668
+ <span class="cstat-no" title="statement not covered" > * @param {string} errorCode - Error code returned as "reason" from your handlers.</span>
2669
+ <span class="cstat-no" title="statement not covered" > * @param {function} setValidationContent - Function to set the validation error message on the form.</span>
2670
+ <span class="cstat-no" title="statement not covered" > * @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.</span>
2671
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.</span>
2672
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.</span>
2673
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.</span>
2674
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.</span>
2675
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2676
+ <span class="cstat-no" title="statement not covered" > */</span>
2677
+ <span class="cstat-no" title="statement not covered" ></span>
2678
+ <span class="cstat-no" title="statement not covered" >/**</span>
2679
+ <span class="cstat-no" title="statement not covered" > * Async function that retrieves swap creation info by given params.</span>
2680
+ <span class="cstat-no" title="statement not covered" > *</span>
2681
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2682
+ <span class="cstat-no" title="statement not covered" > * @name retrieveSwapDetails</span>
2683
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2684
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2685
+ <span class="cstat-no" title="statement not covered" > * @param {string} amount - Amount of the asset to be swapped.</span>
2686
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [isSwapAll=false] - Indicates if the swap should use all available balance.</span>
2687
+ <span class="cstat-no" title="statement not covered" > * @return {Promise&lt;{</span>
2688
+ <span class="cstat-no" title="statement not covered" > * result: false,</span>
2689
+ <span class="cstat-no" title="statement not covered" > * reason: string,</span>
2690
+ <span class="cstat-no" title="statement not covered" > * min: (string|null),</span>
2691
+ <span class="cstat-no" title="statement not covered" > * max: (string|null),</span>
2692
+ <span class="cstat-no" title="statement not covered" > * rate: (string|undefined),</span>
2693
+ <span class="cstat-no" title="statement not covered" > * fiatMin: (number|null),</span>
2694
+ <span class="cstat-no" title="statement not covered" > * fiatMax: (number|null)</span>
2695
+ <span class="cstat-no" title="statement not covered" > * }|{</span>
2696
+ <span class="cstat-no" title="statement not covered" > * result: true,</span>
2697
+ <span class="cstat-no" title="statement not covered" > * swapCreationInfo: BaseSwapCreationInfo</span>
2698
+ <span class="cstat-no" title="statement not covered" > * }&gt;}</span>
2699
+ <span class="cstat-no" title="statement not covered" > */</span>
2700
+ <span class="cstat-no" title="statement not covered" ></span>
2701
+ <span class="cstat-no" title="statement not covered" >/**</span>
2702
+ <span class="cstat-no" title="statement not covered" > * Async function that retrieves initial swap details for a pair like whether the pair is available, min/max swappable amounts, etc.</span>
2703
+ <span class="cstat-no" title="statement not covered" > *</span>
2704
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2705
+ <span class="cstat-no" title="statement not covered" > * @name retrieveInitialSwapData</span>
2706
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2707
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2708
+ <span class="cstat-no" title="statement not covered" > * @return {Promise&lt;{</span>
2709
+ <span class="cstat-no" title="statement not covered" > * result: true,</span>
2710
+ <span class="cstat-no" title="statement not covered" > * min: string,</span>
2711
+ <span class="cstat-no" title="statement not covered" > * fiatMin: (number|null),</span>
2712
+ <span class="cstat-no" title="statement not covered" > * max: string,</span>
2713
+ <span class="cstat-no" title="statement not covered" > * fiatMax: (number|null),</span>
2714
+ <span class="cstat-no" title="statement not covered" > * rate: (string|null)</span>
2715
+ <span class="cstat-no" title="statement not covered" > * }|{</span>
2716
+ <span class="cstat-no" title="statement not covered" > * result: false,</span>
2717
+ <span class="cstat-no" title="statement not covered" > * reason: string</span>
2718
+ <span class="cstat-no" title="statement not covered" > * }&gt;}</span>
2719
+ <span class="cstat-no" title="statement not covered" > */</span>
2720
+ <span class="cstat-no" title="statement not covered" ></span>
2721
+ <span class="cstat-no" title="statement not covered" >/**</span>
2722
+ <span class="cstat-no" title="statement not covered" > * Swap form provides basic functionality for entering to/from amounts both in crypto and fiat, switching assets,</span>
2723
+ <span class="cstat-no" title="statement not covered" > * selecting assets, showing balance for assets. It gracefully handles unavailable fiat rates and can work</span>
2724
+ <span class="cstat-no" title="statement not covered" > * both with and without a wallet environment (without balances).</span>
2725
+ <span class="cstat-no" title="statement not covered" > *</span>
2726
+ <span class="cstat-no" title="statement not covered" > * @param {object} props - Props object for SwapForm component.</span>
2727
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetTicker - Rabbit format of the ticker symbol for the asset being sent.</span>
2728
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetTicker - Rabbit format of the ticker symbol for the asset being received.</span>
2729
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.sendingAssetDecimalCount=AmountUtils.significantDecimalCount] - Decimal count for the sending asset.</span>
2730
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.receivingAssetDecimalCount=AmountUtils.significantDecimalCount] - Decimal count for the receiving asset.</span>
2731
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetTickerPrintable - Standard ticker symbol for the sending asset.</span>
2732
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetTickerPrintable - Standard ticker symbol for the receiving asset.</span>
2733
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetProtocol] - Protocol name to be displayed in text on the change asset button.</span>
2734
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetProtocol] - Protocol name to be displayed in text on the change asset button.</span>
2735
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetIconSrc - Source URL for the sending asset icon.</span>
2736
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetProtocolIconSrc=null] - Optional source URL for the sending asset protocol icon.</span>
2737
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetIconSrc - Source URL for the receiving asset icon.</span>
2738
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetProtocolIconSrc=null] - Optional source URL for the receiving asset protocol icon.</span>
2739
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.fallBackAssetIconSrc=null] - Optional source URL for a fallback icon used when an icon fails to load.</span>
2740
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetFeeCoinTickerPrintable] - Optional standard ticker symbol for the fee coin of the sending asset.</span>
2741
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetBalance] - Balance of the sending asset.</span>
2742
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetBalance] - Balance of the receiving asset.</span>
2743
+ <span class="cstat-no" title="statement not covered" > * @param {handleClick} props.handleChangeSendingAssetClick - Function to handle clicking on the change sending asset button.</span>
2744
+ <span class="cstat-no" title="statement not covered" > * @param {handleClick} props.handleChangeReceivingAssetClick - Function to handle clicking on the change receiving asset button.</span>
2745
+ <span class="cstat-no" title="statement not covered" > * @param {handleClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.</span>
2746
+ <span class="cstat-no" title="statement not covered" > * @param {composeConfirmButtonTo} props.composeConfirmButtonTo - Function to compose the URL for the confirm button.</span>
2747
+ <span class="cstat-no" title="statement not covered" > * @param {setSwapCreationEstimation} props.setSwapCreationEstimation - Function to set the swap creation estimation.</span>
2748
+ <span class="cstat-no" title="statement not covered" > * @param {handleUnexpectedError} props.handleUnexpectedError - Function to handle unexpected errors.</span>
2749
+ <span class="cstat-no" title="statement not covered" > * @param {rotateAssets} props.rotateAssets - Function to rotate the assets (swap sending and receiving assets).</span>
2750
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.preservedAmount=null] - Amount to be preserved.</span>
2751
+ <span class="cstat-no" title="statement not covered" > * @param {handleSwapServiceError} props.handleSwapServiceError - Function to handle standard errors that we can recognize.</span>
2752
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [props.formHasBalance] - Indicates if the form has balance information.</span>
2753
+ <span class="cstat-no" title="statement not covered" > * @param {retrieveSwapDetails} props.retrieveSwapDetails - Function to retrieve swap details based on the given parameters.</span>
2754
+ <span class="cstat-no" title="statement not covered" > * @param {retrieveInitialSwapData} props.retrieveInitialSwapData - Function to retrieve initial swap data for a given pair of assets.</span>
2755
+ <span class="cstat-no" title="statement not covered" > * @param {number} props.triggerDataUpdateResetting - Number to reset interval updating the data periodically.</span>
2756
+ <span class="cstat-no" title="statement not covered" > * @param {React.Ref} props.fromAssetSelectionButtonRef - Reference to the from asset selection button.</span>
2757
+ <span class="cstat-no" title="statement not covered" > * @param {React.Ref} props.toAssetSelectionButtonRef - Reference to the to asset selection button.</span>
2758
+ <span class="cstat-no" title="statement not covered" > * @param {number|string} [props.sendingAssetToFiatRate] - Rate for converting the sending asset to fiat.</span>
2759
+ <span class="cstat-no" title="statement not covered" > * @param {number|string} [props.receivingAssetToFiatRate] - Rate for converting the receiving asset to fiat.</span>
2760
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.fiatCurrencyCode] - Code for the fiat currency.</span>
2761
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.fiatCurrencyDecimals] - Decimal places for the fiat currency.</span>
2762
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.</span>
2763
+ <span class="cstat-no" title="statement not covered" > * @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms &amp; privacy policy passed.</span>
2764
+ <span class="cstat-no" title="statement not covered" > * @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms &amp; privacy policy passed.</span>
2765
+ <span class="cstat-no" title="statement not covered" > * @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.</span>
2766
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.</span>
2767
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.</span>
2768
+ <span class="cstat-no" title="statement not covered" > * @return {JSX.Element} Rendered SwapForm component.</span>
2769
+ <span class="cstat-no" title="statement not covered" > * @constructor</span>
2770
+ <span class="cstat-no" title="statement not covered" > */</span>
2771
+ <span class="cstat-no" title="statement not covered" >export const SwapForm = ({</span>
2772
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
2773
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
2774
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount = AmountUtils.significantDecimalCount,</span>
2775
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount = AmountUtils.significantDecimalCount,</span>
2776
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable,</span>
2777
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable,</span>
2778
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocol,</span>
2779
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocol,</span>
2780
+ <span class="cstat-no" title="statement not covered" > sendingAssetIconSrc,</span>
2781
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc = null,</span>
2782
+ <span class="cstat-no" title="statement not covered" > receivingAssetIconSrc,</span>
2783
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc = null,</span>
2784
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc = null,</span>
2785
+ <span class="cstat-no" title="statement not covered" > sendingAssetFeeCoinTickerPrintable,</span>
2786
+ <span class="cstat-no" title="statement not covered" > sendingAssetBalance,</span>
2787
+ <span class="cstat-no" title="statement not covered" > receivingAssetBalance,</span>
2788
+ <span class="cstat-no" title="statement not covered" > handleChangeSendingAssetClick,</span>
2789
+ <span class="cstat-no" title="statement not covered" > handleChangeReceivingAssetClick,</span>
2790
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick = () =&gt; {},</span>
2791
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo = (fromTicker, toTicker, fromAmount) =&gt; "",</span>
2792
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation = (details) =&gt; {},</span>
2793
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError = (error) =&gt; {},</span>
2794
+ <span class="cstat-no" title="statement not covered" > rotateAssets = (fromTicker, toTicker) =&gt; {},</span>
2795
+ <span class="cstat-no" title="statement not covered" > preservedAmount = null,</span>
2796
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError = (</span>
2797
+ <span class="cstat-no" title="statement not covered" > errorCode,</span>
2798
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
2799
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
2800
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
2801
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
2802
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
2803
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
2804
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
2805
+ <span class="cstat-no" title="statement not covered" > formHasBalance = false,</span>
2806
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails = async (</span>
2807
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
2808
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
2809
+ <span class="cstat-no" title="statement not covered" > amount,</span>
2810
+ <span class="cstat-no" title="statement not covered" > isSwapAll = false</span>
2811
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
2812
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData = async (</span>
2813
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
2814
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker</span>
2815
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
2816
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting = 0,</span>
2817
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef = null,</span>
2818
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef = null,</span>
2819
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate = null,</span>
2820
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate = null,</span>
2821
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode = null,</span>
2822
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals = null,</span>
2823
+ <span class="cstat-no" title="statement not covered" > formHasFiat = true,</span>
2824
+ <span class="cstat-no" title="statement not covered" > termsOfUseUrl = null,</span>
2825
+ <span class="cstat-no" title="statement not covered" > privacyPolicyUrl = null,</span>
2826
+ <span class="cstat-no" title="statement not covered" > translations = {</span>
2827
+ <span class="cstat-no" title="statement not covered" > swapAllButtonTitles: {</span>
2828
+ <span class="cstat-no" title="statement not covered" > enable: "Swap all",</span>
2829
+ <span class="cstat-no" title="statement not covered" > cancel: "Cancel",</span>
2830
+ <span class="cstat-no" title="statement not covered" > },</span>
2831
+ <span class="cstat-no" title="statement not covered" > input: {</span>
2832
+ <span class="cstat-no" title="statement not covered" > fiatPlaceholder: "Enter fiat amount",</span>
2833
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText: "Loading balance...",</span>
2834
+ <span class="cstat-no" title="statement not covered" > },</span>
2835
+ <span class="cstat-no" title="statement not covered" > consents: {</span>
2836
+ <span class="cstat-no" title="statement not covered" > consentText: 'By clicking "Swap" you agree with Rabbit Swap\'s',</span>
2837
+ <span class="cstat-no" title="statement not covered" > termsOfUse: "Terms of Use",</span>
2838
+ <span class="cstat-no" title="statement not covered" > and: "and",</span>
2839
+ <span class="cstat-no" title="statement not covered" > privacyPolicy: "Privacy Policy",</span>
2840
+ <span class="cstat-no" title="statement not covered" > },</span>
2841
+ <span class="cstat-no" title="statement not covered" > informationBlock: {</span>
2842
+ <span class="cstat-no" title="statement not covered" > minimumAmount: "Minimal amount: ",</span>
2843
+ <span class="cstat-no" title="statement not covered" > maximumAmount: "Maximum amount: ",</span>
2844
+ <span class="cstat-no" title="statement not covered" > transactionFee: "Network fee: ",</span>
2845
+ <span class="cstat-no" title="statement not covered" > calculatingNetworkFee: "Calculating network fee..",</span>
2846
+ <span class="cstat-no" title="statement not covered" > loadingMinimalAmount: "Loading minimal amount..",</span>
2847
+ <span class="cstat-no" title="statement not covered" > swapRate: "Rate: ",</span>
2848
+ <span class="cstat-no" title="statement not covered" > calculatingSwapRates: "Calculating swap rates..",</span>
2849
+ <span class="cstat-no" title="statement not covered" > pairNotAvailable:</span>
2850
+ <span class="cstat-no" title="statement not covered" > "Pair is not available now. Please, try again later or choose another pair.",</span>
2851
+ <span class="cstat-no" title="statement not covered" > },</span>
2852
+ <span class="cstat-no" title="statement not covered" > addressFields: {</span>
2853
+ <span class="cstat-no" title="statement not covered" > addressTitle: "Recepient address",</span>
2854
+ <span class="cstat-no" title="statement not covered" > addressPlaceholder: "Example: 1XPTgDRh...",</span>
2855
+ <span class="cstat-no" title="statement not covered" > extraIdTitle: "Extra ID (optional)",</span>
2856
+ <span class="cstat-no" title="statement not covered" > extraIdPlaceholder: "Example: ABC123",</span>
2857
+ <span class="cstat-no" title="statement not covered" > extraIdNotice:</span>
2858
+ <span class="cstat-no" title="statement not covered" > "Please check if your recipient address requires a 'Memo' or 'Destination Tag' - sometimes called a tag, ID, label, or a note. Exchanges may require such ID for the deposit. Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",</span>
2859
+ <span class="cstat-no" title="statement not covered" > },</span>
2860
+ <span class="cstat-no" title="statement not covered" > rateSelector: {</span>
2861
+ <span class="cstat-no" title="statement not covered" > floatingRate: "Floating rate",</span>
2862
+ <span class="cstat-no" title="statement not covered" > fixedRate: "Fixed rate",</span>
2863
+ <span class="cstat-no" title="statement not covered" > },</span>
2864
+ <span class="cstat-no" title="statement not covered" > confirmButtonText: "Swap",</span>
2865
+ <span class="cstat-no" title="statement not covered" > },</span>
2866
+ <span class="cstat-no" title="statement not covered" > swapSeparatorIconSrc,</span>
2867
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive = false,</span>
2868
+ <span class="cstat-no" title="statement not covered" > recepientAddress,</span>
2869
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraId,</span>
2870
+ <span class="cstat-no" title="statement not covered" > recepientAddressValid = true,</span>
2871
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraIdValid = true,</span>
2872
+ <span class="cstat-no" title="statement not covered" > setRecepientAddress,</span>
2873
+ <span class="cstat-no" title="statement not covered" > setRecepientAddressExtraId,</span>
2874
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraIdAvailable = false,</span>
2875
+ <span class="cstat-no" title="statement not covered" > isFixed,</span>
2876
+ <span class="cstat-no" title="statement not covered" > setIsFixed,</span>
2877
+ <span class="cstat-no" title="statement not covered" >}) =&gt; {</span>
2878
+ <span class="cstat-no" title="statement not covered" > const DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;</span>
2879
+ <span class="cstat-no" title="statement not covered" ></span>
2880
+ <span class="cstat-no" title="statement not covered" > // Updating the states below will insert the new value into the send or receive input field</span>
2881
+ <span class="cstat-no" title="statement not covered" > const [updateSendInputTo, setUpdateSendInputTo] = useState(</span>
2882
+ <span class="cstat-no" title="statement not covered" > preservedAmount ?? null</span>
2883
+ <span class="cstat-no" title="statement not covered" > );</span>
2884
+ <span class="cstat-no" title="statement not covered" > const [updateReceiveInputTo, setUpdateReceiveInputTo] = useState(null);</span>
2885
+ <span class="cstat-no" title="statement not covered" ></span>
2886
+ <span class="cstat-no" title="statement not covered" > const [sendAssetAmount, setSendAssetAmount] = useReferredState(</span>
2887
+ <span class="cstat-no" title="statement not covered" > preservedAmount == null || preservedAmount === ""</span>
2888
+ <span class="cstat-no" title="statement not covered" > ? null</span>
2889
+ <span class="cstat-no" title="statement not covered" > : preservedAmount</span>
2890
+ <span class="cstat-no" title="statement not covered" > );</span>
2891
+ <span class="cstat-no" title="statement not covered" ></span>
2892
+ <span class="cstat-no" title="statement not covered" > const [swapRate, setSwapRate] = useState();</span>
2893
+ <span class="cstat-no" title="statement not covered" > const [minimalAmount, setMinimalAmount] = useReferredState(null);</span>
2894
+ <span class="cstat-no" title="statement not covered" > const [maximumAmount, setMaximumAmount] = useReferredState(null);</span>
2895
+ <span class="cstat-no" title="statement not covered" > const [validationContent, setValidationContent] = useState();</span>
2896
+ <span class="cstat-no" title="statement not covered" ></span>
2897
+ <span class="cstat-no" title="statement not covered" > const [minimalAmountValid, setMinimalAmountValid] = useState(true); // Whether the amount is above the minimal amount</span>
2898
+ <span class="cstat-no" title="statement not covered" > const [maximumAmountValid, setMaximumAmountValid] = useState(true);</span>
2899
+ <span class="cstat-no" title="statement not covered" > const [isPairSupported, setIsPairSupported] = useState(true);</span>
2900
+ <span class="cstat-no" title="statement not covered" > const [isSameCoins, setIsSameCoins] = useState(false);</span>
2901
+ <span class="cstat-no" title="statement not covered" > const [isSwapCalculated, setIsSwapCalculated] = useState(false);</span>
2902
+ <span class="cstat-no" title="statement not covered" > const [readyToSwap, setReadyToSwap] = useState(false); // Basically a param that enables/disables the "Next" button</span>
2903
+ <span class="cstat-no" title="statement not covered" > // TODO: [refactoring, moderate] instead of handling preservedAmount at a lot of cases below, just</span>
2904
+ <span class="cstat-no" title="statement not covered" > // write single useEffect setting sendAssetAmount to the=is passed value and simplify the logic below. task_id=6453251e49b04c5e88a3cc771479ffb5</span>
2905
+ <span class="cstat-no" title="statement not covered" > const [isAmountZero, setIsAmountZero] = useState(</span>
2906
+ <span class="cstat-no" title="statement not covered" > preservedAmount == null || String(preservedAmount) === "0"</span>
2907
+ <span class="cstat-no" title="statement not covered" > );</span>
2908
+ <span class="cstat-no" title="statement not covered" > const [isLoading, setIsLoading] = useReferredState(false); // Whether the form is in the progress of loading some data (new rates, for example)</span>
2909
+ <span class="cstat-no" title="statement not covered" > const [isAddressFieldEnabled, setIsAddressFieldEnabled] = useState(false);</span>
2910
+ <span class="cstat-no" title="statement not covered" ></span>
2911
+ <span class="cstat-no" title="statement not covered" > const [confirmButtonTo, setConfirmButtonTo] = useState(</span>
2912
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo(</span>
2913
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
2914
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
2915
+ <span class="cstat-no" title="statement not covered" > preservedAmount</span>
2916
+ <span class="cstat-no" title="statement not covered" > )</span>
2917
+ <span class="cstat-no" title="statement not covered" > );</span>
2918
+ <span class="cstat-no" title="statement not covered" ></span>
2919
+ <span class="cstat-no" title="statement not covered" > const [transactionFee, setTransactionFee] = useState();</span>
2920
+ <span class="cstat-no" title="statement not covered" > const [balanceValid, setBalanceValid] = useState(true); // Whether the amount is less than total balance</span>
2921
+ <span class="cstat-no" title="statement not covered" > const [isSwapAll, setIsSwapAll] = useReferredState(null);</span>
2922
+ <span class="cstat-no" title="statement not covered" > const [swapAllButtonLoaderReSetter, setSwapAllButtonLoaderReSetter] =</span>
2923
+ <span class="cstat-no" title="statement not covered" > useState([]);</span>
2924
+ <span class="cstat-no" title="statement not covered" ></span>
2925
+ <span class="cstat-no" title="statement not covered" > const [dataUpdateTimeoutId, setDataUpdateTimeoutId] =</span>
2926
+ <span class="cstat-no" title="statement not covered" > useReferredState(null);</span>
2927
+ <span class="cstat-no" title="statement not covered" > const [idleDataUpdateTimeoutId, setIdleDataUpdateTimeoutId] =</span>
2928
+ <span class="cstat-no" title="statement not covered" > useReferredState(null);</span>
2929
+ <span class="cstat-no" title="statement not covered" ></span>
2930
+ <span class="cstat-no" title="statement not covered" > const callHandlingErrors = useCallHandlingErrors();</span>
2931
+ <span class="cstat-no" title="statement not covered" ></span>
2932
+ <span class="cstat-no" title="statement not covered" > const recalculationDelayOnTyping = 1000;</span>
2933
+ <span class="cstat-no" title="statement not covered" ></span>
2934
+ <span class="cstat-no" title="statement not covered" > const handleSendAssetAmountChange = (amount) =&gt; {</span>
2935
+ <span class="cstat-no" title="statement not covered" > if (amount != null &amp;&amp; amount !== "") {</span>
2936
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(</span>
2937
+ <span class="cstat-no" title="statement not covered" > AmountUtils.trim(</span>
2938
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).times(swapRate),</span>
2939
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount</span>
2940
+ <span class="cstat-no" title="statement not covered" > )</span>
2941
+ <span class="cstat-no" title="statement not covered" > );</span>
2942
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2943
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo("");</span>
2944
+ <span class="cstat-no" title="statement not covered" > }</span>
2945
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(amount);</span>
2946
+ <span class="cstat-no" title="statement not covered" > };</span>
2947
+ <span class="cstat-no" title="statement not covered" ></span>
2948
+ <span class="cstat-no" title="statement not covered" > const handleReceiveAssetAmountChange = (amount) =&gt; {</span>
2949
+ <span class="cstat-no" title="statement not covered" > let sendAssetAmount = "";</span>
2950
+ <span class="cstat-no" title="statement not covered" > if (amount != null &amp;&amp; amount !== "") {</span>
2951
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount = AmountUtils.trim(</span>
2952
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).div(swapRate),</span>
2953
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount</span>
2954
+ <span class="cstat-no" title="statement not covered" > );</span>
2955
+ <span class="cstat-no" title="statement not covered" > }</span>
2956
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(sendAssetAmount);</span>
2957
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(sendAssetAmount);</span>
2958
+ <span class="cstat-no" title="statement not covered" > };</span>
2959
+ <span class="cstat-no" title="statement not covered" ></span>
2960
+ <span class="cstat-no" title="statement not covered" > const handleMinimalAmountClick = () =&gt; {</span>
2961
+ <span class="cstat-no" title="statement not covered" > if (!minimalAmount.current) return;</span>
2962
+ <span class="cstat-no" title="statement not covered" ></span>
2963
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(minimalAmount.current?.crypto);</span>
2964
+ <span class="cstat-no" title="statement not covered" > handleSendAssetAmountChange(minimalAmount.current?.crypto);</span>
2965
+ <span class="cstat-no" title="statement not covered" > };</span>
2966
+ <span class="cstat-no" title="statement not covered" ></span>
2967
+ <span class="cstat-no" title="statement not covered" > const handleMaximumAmountClick = () =&gt; {</span>
2968
+ <span class="cstat-no" title="statement not covered" > if (!maximumAmount.current) return;</span>
2969
+ <span class="cstat-no" title="statement not covered" ></span>
2970
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(maximumAmount.current?.crypto);</span>
2971
+ <span class="cstat-no" title="statement not covered" > handleSendAssetAmountChange(maximumAmount.current?.crypto);</span>
2972
+ <span class="cstat-no" title="statement not covered" > };</span>
2973
+ <span class="cstat-no" title="statement not covered" ></span>
2974
+ <span class="cstat-no" title="statement not covered" > const handleSwapAllClick = (resetButtonLoader) =&gt; {</span>
2975
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll((prev) =&gt; {</span>
2976
+ <span class="cstat-no" title="statement not covered" > if (prev) {</span>
2977
+ <span class="cstat-no" title="statement not covered" > // Setting amount inputs to empty string if we are handling the disabling of previously enabled swap all</span>
2978
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo("");</span>
2979
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo("");</span>
2980
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(null);</span>
2981
+ <span class="cstat-no" title="statement not covered" > }</span>
2982
+ <span class="cstat-no" title="statement not covered" > return !prev;</span>
2983
+ <span class="cstat-no" title="statement not covered" > });</span>
2984
+ <span class="cstat-no" title="statement not covered" > setSwapAllButtonLoaderReSetter([resetButtonLoader]);</span>
2985
+ <span class="cstat-no" title="statement not covered" > };</span>
2986
+ <span class="cstat-no" title="statement not covered" ></span>
2987
+ <span class="cstat-no" title="statement not covered" > const processMinMaxAmounts = (amount) =&gt; {</span>
2988
+ <span class="cstat-no" title="statement not covered" > if (amount === null) return;</span>
2989
+ <span class="cstat-no" title="statement not covered" ></span>
2990
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid(</span>
2991
+ <span class="cstat-no" title="statement not covered" > !maximumAmount.current ||</span>
2992
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).eq("0") ||</span>
2993
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).lte(maximumAmount.current.crypto)</span>
2994
+ <span class="cstat-no" title="statement not covered" > );</span>
2995
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid(</span>
2996
+ <span class="cstat-no" title="statement not covered" > !minimalAmount.current ||</span>
2997
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).eq("0") ||</span>
2998
+ <span class="cstat-no" title="statement not covered" > BigNumber(amount).gte(minimalAmount.current?.crypto)</span>
2999
+ <span class="cstat-no" title="statement not covered" > );</span>
3000
+ <span class="cstat-no" title="statement not covered" > };</span>
3001
+ <span class="cstat-no" title="statement not covered" ></span>
3002
+ <span class="cstat-no" title="statement not covered" > const requestDataRefresh = (</span>
3003
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3004
+ <span class="cstat-no" title="statement not covered" > immediately = false,</span>
3005
+ <span class="cstat-no" title="statement not covered" > isSwapAll = false</span>
3006
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {</span>
3007
+ <span class="cstat-no" title="statement not covered" > try {</span>
3008
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3009
+ <span class="cstat-no" title="statement not covered" ></span>
3010
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll) {</span>
3011
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(null);</span>
3012
+ <span class="cstat-no" title="statement not covered" > return;</span>
3013
+ <span class="cstat-no" title="statement not covered" > }</span>
3014
+ <span class="cstat-no" title="statement not covered" ></span>
3015
+ <span class="cstat-no" title="statement not covered" > if (!amount) {</span>
3016
+ <span class="cstat-no" title="statement not covered" > return;</span>
3017
+ <span class="cstat-no" title="statement not covered" > }</span>
3018
+ <span class="cstat-no" title="statement not covered" ></span>
3019
+ <span class="cstat-no" title="statement not covered" > if (BigNumber(amount).eq("0")) {</span>
3020
+ <span class="cstat-no" title="statement not covered" > if (immediately) {</span>
3021
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate(true);</span>
3022
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3023
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(</span>
3024
+ <span class="cstat-no" title="statement not covered" > setTimeout(</span>
3025
+ <span class="cstat-no" title="statement not covered" > () =&gt; loadMinimalAmountAndSwapRate(true),</span>
3026
+ <span class="cstat-no" title="statement not covered" > recalculationDelayOnTyping</span>
3027
+ <span class="cstat-no" title="statement not covered" > )</span>
3028
+ <span class="cstat-no" title="statement not covered" > );</span>
3029
+ <span class="cstat-no" title="statement not covered" > }</span>
3030
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3031
+ <span class="cstat-no" title="statement not covered" > if (immediately) {</span>
3032
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(</span>
3033
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3034
+ <span class="cstat-no" title="statement not covered" > preservedAmount &amp;&amp; String(preservedAmount) !== "0"</span>
3035
+ <span class="cstat-no" title="statement not covered" > ? true</span>
3036
+ <span class="cstat-no" title="statement not covered" > : undefined</span>
3037
+ <span class="cstat-no" title="statement not covered" > );</span>
3038
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3039
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(</span>
3040
+ <span class="cstat-no" title="statement not covered" > setTimeout(</span>
3041
+ <span class="cstat-no" title="statement not covered" > () =&gt; loadFullEstimation(amount),</span>
3042
+ <span class="cstat-no" title="statement not covered" > recalculationDelayOnTyping</span>
3043
+ <span class="cstat-no" title="statement not covered" > )</span>
3044
+ <span class="cstat-no" title="statement not covered" > );</span>
3045
+ <span class="cstat-no" title="statement not covered" > }</span>
3046
+ <span class="cstat-no" title="statement not covered" > }</span>
3047
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3048
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3049
+ <span class="cstat-no" title="statement not covered" > }</span>
3050
+ <span class="cstat-no" title="statement not covered" > };</span>
3051
+ <span class="cstat-no" title="statement not covered" ></span>
3052
+ <span class="cstat-no" title="statement not covered" > const setAmountLimitsAndRate = (details) =&gt; {</span>
3053
+ <span class="cstat-no" title="statement not covered" > setSwapRate(details?.rate ?? null);</span>
3054
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(</span>
3055
+ <span class="cstat-no" title="statement not covered" > details.min == null</span>
3056
+ <span class="cstat-no" title="statement not covered" > ? null</span>
3057
+ <span class="cstat-no" title="statement not covered" > : { crypto: details.min, fiat: details.fiatMin }</span>
3058
+ <span class="cstat-no" title="statement not covered" > );</span>
3059
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(</span>
3060
+ <span class="cstat-no" title="statement not covered" > details.max == null</span>
3061
+ <span class="cstat-no" title="statement not covered" > ? null</span>
3062
+ <span class="cstat-no" title="statement not covered" > : { crypto: details.max, fiat: details.fiatMax }</span>
3063
+ <span class="cstat-no" title="statement not covered" > );</span>
3064
+ <span class="cstat-no" title="statement not covered" > if (details.feeCoins != null) {</span>
3065
+ <span class="cstat-no" title="statement not covered" > setTransactionFee({</span>
3066
+ <span class="cstat-no" title="statement not covered" > crypto: details.feeCoins,</span>
3067
+ <span class="cstat-no" title="statement not covered" > fiat: details.feeFiat,</span>
3068
+ <span class="cstat-no" title="statement not covered" > });</span>
3069
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3070
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3071
+ <span class="cstat-no" title="statement not covered" > }</span>
3072
+ <span class="cstat-no" title="statement not covered" > };</span>
3073
+ <span class="cstat-no" title="statement not covered" ></span>
3074
+ <span class="cstat-no" title="statement not covered" > const loadFullEstimation = (amount, isForPreserved = false) =&gt; {</span>
3075
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3076
+ <span class="cstat-no" title="statement not covered" > try {</span>
3077
+ <span class="cstat-no" title="statement not covered" > const dataMemento = {</span>
3078
+ <span class="cstat-no" title="statement not covered" > rate: swapRate,</span>
3079
+ <span class="cstat-no" title="statement not covered" > min: minimalAmount.current?.crypto,</span>
3080
+ <span class="cstat-no" title="statement not covered" > max: maximumAmount.current?.crypto,</span>
3081
+ <span class="cstat-no" title="statement not covered" > feeCoins: transactionFee?.crypto,</span>
3082
+ <span class="cstat-no" title="statement not covered" > feeFiat: transactionFee?.fiat,</span>
3083
+ <span class="cstat-no" title="statement not covered" > };</span>
3084
+ <span class="cstat-no" title="statement not covered" > setIsLoading(true);</span>
3085
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(null);</span>
3086
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(null);</span>
3087
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3088
+ <span class="cstat-no" title="statement not covered" > setValidationContent(null);</span>
3089
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation(null);</span>
3090
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins(false);</span>
3091
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported(true);</span>
3092
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3093
+ <span class="cstat-no" title="statement not covered" ></span>
3094
+ <span class="cstat-no" title="statement not covered" > const response = await retrieveSwapDetails(</span>
3095
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3096
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3097
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3098
+ <span class="cstat-no" title="statement not covered" > isSwapAll.current</span>
3099
+ <span class="cstat-no" title="statement not covered" > );</span>
3100
+ <span class="cstat-no" title="statement not covered" ></span>
3101
+ <span class="cstat-no" title="statement not covered" > if (</span>
3102
+ <span class="cstat-no" title="statement not covered" > !isSwapAll.current &amp;&amp;</span>
3103
+ <span class="cstat-no" title="statement not covered" > String(amount) !==</span>
3104
+ <span class="cstat-no" title="statement not covered" > String(</span>
3105
+ <span class="cstat-no" title="statement not covered" > isForPreserved &amp;&amp; sendAssetAmount.current == null</span>
3106
+ <span class="cstat-no" title="statement not covered" > ? preservedAmount</span>
3107
+ <span class="cstat-no" title="statement not covered" > : sendAssetAmount.current</span>
3108
+ <span class="cstat-no" title="statement not covered" > )</span>
3109
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3110
+ <span class="cstat-no" title="statement not covered" > // Means amount changed and we no more need to do this exact calculation</span>
3111
+ <span class="cstat-no" title="statement not covered" > return;</span>
3112
+ <span class="cstat-no" title="statement not covered" > }</span>
3113
+ <span class="cstat-no" title="statement not covered" ></span>
3114
+ <span class="cstat-no" title="statement not covered" > if (response.result) {</span>
3115
+ <span class="cstat-no" title="statement not covered" > const swapCreationInfo = response.swapCreationInfo;</span>
3116
+ <span class="cstat-no" title="statement not covered" ></span>
3117
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(swapCreationInfo.fromAmountCoins);</span>
3118
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(swapCreationInfo.toAmountCoins);</span>
3119
+ <span class="cstat-no" title="statement not covered" ></span>
3120
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current) {</span>
3121
+ <span class="cstat-no" title="statement not covered" > setIsAmountZero(</span>
3122
+ <span class="cstat-no" title="statement not covered" > BigNumber("0").eq(swapCreationInfo.fromAmountCoins)</span>
3123
+ <span class="cstat-no" title="statement not covered" > );</span>
3124
+ <span class="cstat-no" title="statement not covered" > }</span>
3125
+ <span class="cstat-no" title="statement not covered" ></span>
3126
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(swapCreationInfo);</span>
3127
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation(swapCreationInfo);</span>
3128
+ <span class="cstat-no" title="statement not covered" > processMinMaxAmounts(</span>
3129
+ <span class="cstat-no" title="statement not covered" > isSwapAll.current</span>
3130
+ <span class="cstat-no" title="statement not covered" > ? swapCreationInfo.fromAmountCoins</span>
3131
+ <span class="cstat-no" title="statement not covered" > : amount</span>
3132
+ <span class="cstat-no" title="statement not covered" > );</span>
3133
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(true);</span>
3134
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3135
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError(</span>
3136
+ <span class="cstat-no" title="statement not covered" > response.reason,</span>
3137
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3138
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3139
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3140
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3141
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3142
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3143
+ <span class="cstat-no" title="statement not covered" > );</span>
3144
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current) {</span>
3145
+ <span class="cstat-no" title="statement not covered" > /* We disable swap all if swap all details retrieval fails and set</span>
3146
+ <span class="cstat-no" title="statement not covered" > * previous limits and rate. We set null to avoid triggering reloading of initial data.</span>
3147
+ <span class="cstat-no" title="statement not covered" > */</span>
3148
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll(null);</span>
3149
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(dataMemento);</span>
3150
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3151
+ <span class="cstat-no" title="statement not covered" > /* We set returned amount limits and rate only if the failed details retrieval is not</span>
3152
+ <span class="cstat-no" title="statement not covered" > * for the swap All case.</span>
3153
+ <span class="cstat-no" title="statement not covered" > */</span>
3154
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(response);</span>
3155
+ <span class="cstat-no" title="statement not covered" > }</span>
3156
+ <span class="cstat-no" title="statement not covered" > }</span>
3157
+ <span class="cstat-no" title="statement not covered" > setIsLoading(false);</span>
3158
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3159
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3160
+ <span class="cstat-no" title="statement not covered" > }</span>
3161
+ <span class="cstat-no" title="statement not covered" > })();</span>
3162
+ <span class="cstat-no" title="statement not covered" > };</span>
3163
+ <span class="cstat-no" title="statement not covered" ></span>
3164
+ <span class="cstat-no" title="statement not covered" > const loadMinimalAmountAndSwapRate = (isCalledForClearedInput = false) =&gt; {</span>
3165
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3166
+ <span class="cstat-no" title="statement not covered" > try {</span>
3167
+ <span class="cstat-no" title="statement not covered" > setIsLoading(true);</span>
3168
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(null);</span>
3169
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(null);</span>
3170
+ <span class="cstat-no" title="statement not covered" > setSwapRate(null);</span>
3171
+ <span class="cstat-no" title="statement not covered" > setValidationContent(null);</span>
3172
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3173
+ <span class="cstat-no" title="statement not covered" ></span>
3174
+ <span class="cstat-no" title="statement not covered" > const swapData = await retrieveInitialSwapData(</span>
3175
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3176
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker</span>
3177
+ <span class="cstat-no" title="statement not covered" > );</span>
3178
+ <span class="cstat-no" title="statement not covered" ></span>
3179
+ <span class="cstat-no" title="statement not covered" > if (</span>
3180
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current != null &amp;&amp;</span>
3181
+ <span class="cstat-no" title="statement not covered" > !isCalledForClearedInput</span>
3182
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3183
+ <span class="cstat-no" title="statement not covered" > // Means user already entered amount after starting the form initialization</span>
3184
+ <span class="cstat-no" title="statement not covered" > return;</span>
3185
+ <span class="cstat-no" title="statement not covered" > }</span>
3186
+ <span class="cstat-no" title="statement not covered" ></span>
3187
+ <span class="cstat-no" title="statement not covered" > if (swapData.result === true) {</span>
3188
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(swapData);</span>
3189
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3190
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError(</span>
3191
+ <span class="cstat-no" title="statement not covered" > swapData.reason,</span>
3192
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3193
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3194
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3195
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3196
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3197
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3198
+ <span class="cstat-no" title="statement not covered" > );</span>
3199
+ <span class="cstat-no" title="statement not covered" > }</span>
3200
+ <span class="cstat-no" title="statement not covered" ></span>
3201
+ <span class="cstat-no" title="statement not covered" > setIsLoading(false);</span>
3202
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3203
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3204
+ <span class="cstat-no" title="statement not covered" > }</span>
3205
+ <span class="cstat-no" title="statement not covered" > })();</span>
3206
+ <span class="cstat-no" title="statement not covered" > };</span>
3207
+ <span class="cstat-no" title="statement not covered" ></span>
3208
+ <span class="cstat-no" title="statement not covered" > const handleChangeAssetsIconClick = (e) =&gt; {</span>
3209
+ <span class="cstat-no" title="statement not covered" > callHandlingErrors(() =&gt; {</span>
3210
+ <span class="cstat-no" title="statement not covered" > if (!isLoading.current) {</span>
3211
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll(null);</span>
3212
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid(true);</span>
3213
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid(true);</span>
3214
+ <span class="cstat-no" title="statement not covered" > rotateAssets(sendingAssetTicker, receivingAssetTicker);</span>
3215
+ <span class="cstat-no" title="statement not covered" > }</span>
3216
+ <span class="cstat-no" title="statement not covered" > }, e);</span>
3217
+ <span class="cstat-no" title="statement not covered" > };</span>
3218
+ <span class="cstat-no" title="statement not covered" ></span>
3219
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3220
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current === true) {</span>
3221
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(undefined, true, true);</span>
3222
+ <span class="cstat-no" title="statement not covered" > } else if (isSwapAll.current === false) {</span>
3223
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate();</span>
3224
+ <span class="cstat-no" title="statement not covered" > }</span>
3225
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3226
+ <span class="cstat-no" title="statement not covered" > }, [isSwapAll.current]);</span>
3227
+ <span class="cstat-no" title="statement not covered" ></span>
3228
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3229
+ <span class="cstat-no" title="statement not covered" > setConfirmButtonTo(</span>
3230
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo(</span>
3231
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3232
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3233
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current || preservedAmount || null</span>
3234
+ <span class="cstat-no" title="statement not covered" > )</span>
3235
+ <span class="cstat-no" title="statement not covered" > );</span>
3236
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3237
+ <span class="cstat-no" title="statement not covered" > }, [sendingAssetTicker, receivingAssetTicker]);</span>
3238
+ <span class="cstat-no" title="statement not covered" ></span>
3239
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3240
+ <span class="cstat-no" title="statement not covered" > if (!sendingAssetTicker || !receivingAssetTicker) return;</span>
3241
+ <span class="cstat-no" title="statement not covered" ></span>
3242
+ <span class="cstat-no" title="statement not covered" > const isCurrentAmountNotZero =</span>
3243
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current &amp;&amp;</span>
3244
+ <span class="cstat-no" title="statement not covered" > !BigNumber("0").eq(sendAssetAmount.current);</span>
3245
+ <span class="cstat-no" title="statement not covered" > const isPreservedAmountNotZero =</span>
3246
+ <span class="cstat-no" title="statement not covered" > preservedAmount &amp;&amp; !BigNumber("0").eq(preservedAmount);</span>
3247
+ <span class="cstat-no" title="statement not covered" > if (isCurrentAmountNotZero) {</span>
3248
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(sendAssetAmount.current);</span>
3249
+ <span class="cstat-no" title="statement not covered" > } else if (isPreservedAmountNotZero) {</span>
3250
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(preservedAmount, true);</span>
3251
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3252
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate();</span>
3253
+ <span class="cstat-no" title="statement not covered" > }</span>
3254
+ <span class="cstat-no" title="statement not covered" ></span>
3255
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3256
+ <span class="cstat-no" title="statement not covered" > }, [sendingAssetTicker, receivingAssetTicker]);</span>
3257
+ <span class="cstat-no" title="statement not covered" ></span>
3258
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3259
+ <span class="cstat-no" title="statement not covered" > if (!minimalAmountValid || isAmountZero) {</span>
3260
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3261
+ <span class="cstat-no" title="statement not covered" > }</span>
3262
+ <span class="cstat-no" title="statement not covered" > if (isAmountZero) {</span>
3263
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3264
+ <span class="cstat-no" title="statement not covered" > }</span>
3265
+ <span class="cstat-no" title="statement not covered" ></span>
3266
+ <span class="cstat-no" title="statement not covered" > setReadyToSwap(</span>
3267
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive ||</span>
3268
+ <span class="cstat-no" title="statement not covered" > ((balanceValid || !formHasBalance) &amp;&amp;</span>
3269
+ <span class="cstat-no" title="statement not covered" > minimalAmountValid &amp;&amp;</span>
3270
+ <span class="cstat-no" title="statement not covered" > !isAmountZero &amp;&amp;</span>
3271
+ <span class="cstat-no" title="statement not covered" > isSwapCalculated &amp;&amp;</span>
3272
+ <span class="cstat-no" title="statement not covered" > (!isSameCoins || !formHasBalance) &amp;&amp;</span>
3273
+ <span class="cstat-no" title="statement not covered" > isPairSupported &amp;&amp;</span>
3274
+ <span class="cstat-no" title="statement not covered" > (!isAddressFieldEnabled || recepientAddressValid))</span>
3275
+ <span class="cstat-no" title="statement not covered" > );</span>
3276
+ <span class="cstat-no" title="statement not covered" ></span>
3277
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3278
+ <span class="cstat-no" title="statement not covered" > }, [</span>
3279
+ <span class="cstat-no" title="statement not covered" > balanceValid,</span>
3280
+ <span class="cstat-no" title="statement not covered" > formHasBalance,</span>
3281
+ <span class="cstat-no" title="statement not covered" > minimalAmountValid,</span>
3282
+ <span class="cstat-no" title="statement not covered" > isAmountZero,</span>
3283
+ <span class="cstat-no" title="statement not covered" > isSwapCalculated,</span>
3284
+ <span class="cstat-no" title="statement not covered" > isSameCoins,</span>
3285
+ <span class="cstat-no" title="statement not covered" > isPairSupported,</span>
3286
+ <span class="cstat-no" title="statement not covered" > isAddressFieldEnabled,</span>
3287
+ <span class="cstat-no" title="statement not covered" > recepientAddressValid,</span>
3288
+ <span class="cstat-no" title="statement not covered" > ]);</span>
3289
+ <span class="cstat-no" title="statement not covered" ></span>
3290
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3291
+ <span class="cstat-no" title="statement not covered" > // Here we set up auto recalculations for the swap details if the form is ready to swap but is idle for some time</span>
3292
+ <span class="cstat-no" title="statement not covered" > let timeoutId = null;</span>
3293
+ <span class="cstat-no" title="statement not covered" > if (readyToSwap) {</span>
3294
+ <span class="cstat-no" title="statement not covered" > timeoutId = setTimeout(</span>
3295
+ <span class="cstat-no" title="statement not covered" > () =&gt;</span>
3296
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(</span>
3297
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current ?? preservedAmount,</span>
3298
+ <span class="cstat-no" title="statement not covered" > true</span>
3299
+ <span class="cstat-no" title="statement not covered" > ),</span>
3300
+ <span class="cstat-no" title="statement not covered" > DETAIL_REFRESH_INTERVAL_MS</span>
3301
+ <span class="cstat-no" title="statement not covered" > );</span>
3302
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(timeoutId);</span>
3303
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3304
+ <span class="cstat-no" title="statement not covered" > clearTimeout(idleDataUpdateTimeoutId.current);</span>
3305
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(null);</span>
3306
+ <span class="cstat-no" title="statement not covered" > }</span>
3307
+ <span class="cstat-no" title="statement not covered" > return () =&gt; {</span>
3308
+ <span class="cstat-no" title="statement not covered" > timeoutId != null &amp;&amp; clearTimeout(timeoutId);</span>
3309
+ <span class="cstat-no" title="statement not covered" > };</span>
3310
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3311
+ <span class="cstat-no" title="statement not covered" > }, [readyToSwap]);</span>
3312
+ <span class="cstat-no" title="statement not covered" ></span>
3313
+ <span class="cstat-no" title="statement not covered" > // TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da</span>
3314
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3315
+ <span class="cstat-no" title="statement not covered" > if (triggerDataUpdateResetting) {</span>
3316
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3317
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(null);</span>
3318
+ <span class="cstat-no" title="statement not covered" ></span>
3319
+ <span class="cstat-no" title="statement not covered" > clearTimeout(idleDataUpdateTimeoutId.current);</span>
3320
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(null);</span>
3321
+ <span class="cstat-no" title="statement not covered" > }</span>
3322
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3323
+ <span class="cstat-no" title="statement not covered" > }, [triggerDataUpdateResetting]);</span>
3324
+ <span class="cstat-no" title="statement not covered" ></span>
3325
+ <span class="cstat-no" title="statement not covered" > // Resets the passed "set value to" param to null, so it can be used multiple times with any value</span>
3326
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3327
+ <span class="cstat-no" title="statement not covered" > if (!!updateSendInputTo) setUpdateSendInputTo(null);</span>
3328
+ <span class="cstat-no" title="statement not covered" > if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);</span>
3329
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3330
+ <span class="cstat-no" title="statement not covered" > }, [updateSendInputTo, updateReceiveInputTo]);</span>
3331
+ <span class="cstat-no" title="statement not covered" ></span>
3332
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3333
+ <span class="cstat-no" title="statement not covered" > if (swapRate != null &amp;&amp; sendAssetAmount.current != null) {</span>
3334
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(</span>
3335
+ <span class="cstat-no" title="statement not covered" > AmountUtils.trim(</span>
3336
+ <span class="cstat-no" title="statement not covered" > BigNumber(sendAssetAmount.current).times(swapRate),</span>
3337
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount</span>
3338
+ <span class="cstat-no" title="statement not covered" > )</span>
3339
+ <span class="cstat-no" title="statement not covered" > );</span>
3340
+ <span class="cstat-no" title="statement not covered" > }</span>
3341
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3342
+ <span class="cstat-no" title="statement not covered" > }, [swapRate]);</span>
3343
+ <span class="cstat-no" title="statement not covered" ></span>
3344
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3345
+ <span class="cstat-no" title="statement not covered" > if (</span>
3346
+ <span class="cstat-no" title="statement not covered" > isLoading.current === false &amp;&amp;</span>
3347
+ <span class="cstat-no" title="statement not covered" > swapAllButtonLoaderReSetter?.length</span>
3348
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3349
+ <span class="cstat-no" title="statement not covered" > swapAllButtonLoaderReSetter[0]();</span>
3350
+ <span class="cstat-no" title="statement not covered" > setSwapAllButtonLoaderReSetter([]);</span>
3351
+ <span class="cstat-no" title="statement not covered" > }</span>
3352
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3353
+ <span class="cstat-no" title="statement not covered" > }, [isLoading.current, swapAllButtonLoaderReSetter]);</span>
3354
+ <span class="cstat-no" title="statement not covered" ></span>
3355
+ <span class="cstat-no" title="statement not covered" > // Handlers upon changing the asset amount</span>
3356
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3357
+ <span class="cstat-no" title="statement not covered" > setConfirmButtonTo(</span>
3358
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo(</span>
3359
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3360
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3361
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current</span>
3362
+ <span class="cstat-no" title="statement not covered" > )</span>
3363
+ <span class="cstat-no" title="statement not covered" > );</span>
3364
+ <span class="cstat-no" title="statement not covered" ></span>
3365
+ <span class="cstat-no" title="statement not covered" > if (sendAssetAmount.current == null) return;</span>
3366
+ <span class="cstat-no" title="statement not covered" > let processingAmount =</span>
3367
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current === "" ? "0" : sendAssetAmount.current;</span>
3368
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(processingAmount);</span>
3369
+ <span class="cstat-no" title="statement not covered" > processMinMaxAmounts(processingAmount);</span>
3370
+ <span class="cstat-no" title="statement not covered" > setIsAmountZero(BigNumber("0").eq(processingAmount));</span>
3371
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3372
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3373
+ <span class="cstat-no" title="statement not covered" > }, [sendAssetAmount.current]);</span>
3374
+ <span class="cstat-no" title="statement not covered" ></span>
3375
+ <span class="cstat-no" title="statement not covered" > // Checking if all necessary props for address input are passed properly.</span>
3376
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3377
+ <span class="cstat-no" title="statement not covered" > setIsAddressFieldEnabled(</span>
3378
+ <span class="cstat-no" title="statement not covered" > recepientAddress !== undefined &amp;&amp;</span>
3379
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraId !== undefined &amp;&amp;</span>
3380
+ <span class="cstat-no" title="statement not covered" > recepientAddressValid !== undefined &amp;&amp;</span>
3381
+ <span class="cstat-no" title="statement not covered" > setRecepientAddress !== undefined &amp;&amp;</span>
3382
+ <span class="cstat-no" title="statement not covered" > typeof setRecepientAddress === "function" &amp;&amp;</span>
3383
+ <span class="cstat-no" title="statement not covered" > setRecepientAddressExtraId !== undefined &amp;&amp;</span>
3384
+ <span class="cstat-no" title="statement not covered" > typeof setRecepientAddressExtraId === "function"</span>
3385
+ <span class="cstat-no" title="statement not covered" > );</span>
3386
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3387
+ <span class="cstat-no" title="statement not covered" > }, [</span>
3388
+ <span class="cstat-no" title="statement not covered" > recepientAddress,</span>
3389
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraId,</span>
3390
+ <span class="cstat-no" title="statement not covered" > recepientAddressValid,</span>
3391
+ <span class="cstat-no" title="statement not covered" > recepientAddressExtraIdValid,</span>
3392
+ <span class="cstat-no" title="statement not covered" > setRecepientAddress,</span>
3393
+ <span class="cstat-no" title="statement not covered" > setRecepientAddressExtraId,</span>
3394
+ <span class="cstat-no" title="statement not covered" > ]);</span>
3395
+ <span class="cstat-no" title="statement not covered" ></span>
3396
+ <span class="cstat-no" title="statement not covered" > return (</span>
3397
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form"]}&gt;</span>
3398
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3399
+ <span class="cstat-no" title="statement not covered" > linkButtonClick={</span>
3400
+ <span class="cstat-no" title="statement not covered" > BigNumber(sendingAssetBalance?.assetAmount).eq(0)</span>
3401
+ <span class="cstat-no" title="statement not covered" > ? null</span>
3402
+ <span class="cstat-no" title="statement not covered" > : (resetButtonLoader) =&gt;</span>
3403
+ <span class="cstat-no" title="statement not covered" > handleSwapAllClick(resetButtonLoader)</span>
3404
+ <span class="cstat-no" title="statement not covered" > }</span>
3405
+ <span class="cstat-no" title="statement not covered" > linkText={</span>
3406
+ <span class="cstat-no" title="statement not covered" > !formHasBalance</span>
3407
+ <span class="cstat-no" title="statement not covered" > ? ""</span>
3408
+ <span class="cstat-no" title="statement not covered" > : isSwapAll.current</span>
3409
+ <span class="cstat-no" title="statement not covered" > ? translations.swapAllButtonTitles.cancel</span>
3410
+ <span class="cstat-no" title="statement not covered" > : translations.swapAllButtonTitles.enable</span>
3411
+ <span class="cstat-no" title="statement not covered" > }</span>
3412
+ <span class="cstat-no" title="statement not covered" > linkButtonLoader={true}</span>
3413
+ <span class="cstat-no" title="statement not covered" > isLinkButtonDisabled={</span>
3414
+ <span class="cstat-no" title="statement not covered" > isLoading.current ||</span>
3415
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker === receivingAssetTicker ||</span>
3416
+ <span class="cstat-no" title="statement not covered" > BigNumber(sendingAssetBalance?.assetAmount).eq(0)</span>
3417
+ <span class="cstat-no" title="statement not covered" > }</span>
3418
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3419
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-inputs"]}&gt;</span>
3420
+ <span class="cstat-no" title="statement not covered" > &lt;AmountInput</span>
3421
+ <span class="cstat-no" title="statement not covered" > ticker={sendingAssetTicker}</span>
3422
+ <span class="cstat-no" title="statement not covered" > tickerPrintable={sendingAssetTickerPrintable}</span>
3423
+ <span class="cstat-no" title="statement not covered" > assetDecimalPlaces={sendingAssetDecimalCount}</span>
3424
+ <span class="cstat-no" title="statement not covered" > assetBalance={sendingAssetBalance}</span>
3425
+ <span class="cstat-no" title="statement not covered" > assetIconSrc={sendingAssetIconSrc}</span>
3426
+ <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={sendingAssetProtocolIconSrc}</span>
3427
+ <span class="cstat-no" title="statement not covered" > fallbackAssetIconSrc={fallBackAssetIconSrc}</span>
3428
+ <span class="cstat-no" title="statement not covered" > disabled={</span>
3429
+ <span class="cstat-no" title="statement not covered" > isSwapAll.current ||</span>
3430
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker === null ||</span>
3431
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker === null</span>
3432
+ <span class="cstat-no" title="statement not covered" > }</span>
3433
+ <span class="cstat-no" title="statement not covered" > handleCoinAmountChange={handleSendAssetAmountChange}</span>
3434
+ <span class="cstat-no" title="statement not covered" > handleChangeAssetClick={handleChangeSendingAssetClick}</span>
3435
+ <span class="cstat-no" title="statement not covered" > handleBalanceValidationChange={(isValid) =&gt;</span>
3436
+ <span class="cstat-no" title="statement not covered" > setBalanceValid(!isValid)</span>
3437
+ <span class="cstat-no" title="statement not covered" > }</span>
3438
+ <span class="cstat-no" title="statement not covered" > updateAssetInputTo={updateSendInputTo}</span>
3439
+ <span class="cstat-no" title="statement not covered" > showBalance={formHasBalance}</span>
3440
+ <span class="cstat-no" title="statement not covered" > showBalanceValidation={formHasBalance}</span>
3441
+ <span class="cstat-no" title="statement not covered" > showChangeAssetButton</span>
3442
+ <span class="cstat-no" title="statement not covered" > changeAssetButtonProtocol={sendingAssetProtocol}</span>
3443
+ <span class="cstat-no" title="statement not covered" > upperFormPosition</span>
3444
+ <span class="cstat-no" title="statement not covered" > errorEncountered={!minimalAmountValid}</span>
3445
+ <span class="cstat-no" title="statement not covered" > ref={fromAssetSelectionButtonRef}</span>
3446
+ <span class="cstat-no" title="statement not covered" > isLoading={false}</span>
3447
+ <span class="cstat-no" title="statement not covered" > cryptoAssetToFiatRate={sendingAssetToFiatRate}</span>
3448
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode={formHasFiat ? fiatCurrencyCode : null}</span>
3449
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals={fiatCurrencyDecimals}</span>
3450
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText={translations.input.balanceLoaderText}</span>
3451
+ <span class="cstat-no" title="statement not covered" > fiatInputPlaceholderText={</span>
3452
+ <span class="cstat-no" title="statement not covered" > translations.input.fiatPlaceholder</span>
3453
+ <span class="cstat-no" title="statement not covered" > }</span>
3454
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3455
+ <span class="cstat-no" title="statement not covered" > &lt;div</span>
3456
+ <span class="cstat-no" title="statement not covered" > className={</span>
3457
+ <span class="cstat-no" title="statement not covered" > s["swap-form-inputs-separator"] +</span>
3458
+ <span class="cstat-no" title="statement not covered" > " " +</span>
3459
+ <span class="cstat-no" title="statement not covered" > (isLoading.current ||</span>
3460
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker === null ||</span>
3461
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker === null</span>
3462
+ <span class="cstat-no" title="statement not covered" > ? s["disabled"]</span>
3463
+ <span class="cstat-no" title="statement not covered" > : "")</span>
3464
+ <span class="cstat-no" title="statement not covered" > }</span>
3465
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3466
+ <span class="cstat-no" title="statement not covered" > &lt;img</span>
3467
+ <span class="cstat-no" title="statement not covered" > src={swapSeparatorIconSrc}</span>
3468
+ <span class="cstat-no" title="statement not covered" > alt="swap icon"</span>
3469
+ <span class="cstat-no" title="statement not covered" > draggable={false}</span>
3470
+ <span class="cstat-no" title="statement not covered" > onClick={(e) =&gt;</span>
3471
+ <span class="cstat-no" title="statement not covered" > callHandlingErrors(</span>
3472
+ <span class="cstat-no" title="statement not covered" > handleChangeAssetsIconClick,</span>
3473
+ <span class="cstat-no" title="statement not covered" > e</span>
3474
+ <span class="cstat-no" title="statement not covered" > )</span>
3475
+ <span class="cstat-no" title="statement not covered" > }</span>
3476
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3477
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3478
+ <span class="cstat-no" title="statement not covered" > &lt;AmountInput</span>
3479
+ <span class="cstat-no" title="statement not covered" > ticker={receivingAssetTicker}</span>
3480
+ <span class="cstat-no" title="statement not covered" > tickerPrintable={receivingAssetTickerPrintable}</span>
3481
+ <span class="cstat-no" title="statement not covered" > assetDecimalPlaces={receivingAssetDecimalCount}</span>
3482
+ <span class="cstat-no" title="statement not covered" > assetBalance={receivingAssetBalance}</span>
3483
+ <span class="cstat-no" title="statement not covered" > assetIconSrc={receivingAssetIconSrc}</span>
3484
+ <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={receivingAssetProtocolIconSrc}</span>
3485
+ <span class="cstat-no" title="statement not covered" > fallbackAssetIconSrc={fallBackAssetIconSrc}</span>
3486
+ <span class="cstat-no" title="statement not covered" > disabled={</span>
3487
+ <span class="cstat-no" title="statement not covered" > isSwapAll.current ||</span>
3488
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker === null ||</span>
3489
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker === null</span>
3490
+ <span class="cstat-no" title="statement not covered" > }</span>
3491
+ <span class="cstat-no" title="statement not covered" > handleCoinAmountChange={handleReceiveAssetAmountChange}</span>
3492
+ <span class="cstat-no" title="statement not covered" > handleChangeAssetClick={handleChangeReceivingAssetClick}</span>
3493
+ <span class="cstat-no" title="statement not covered" > updateAssetInputTo={updateReceiveInputTo}</span>
3494
+ <span class="cstat-no" title="statement not covered" > showChangeAssetButton</span>
3495
+ <span class="cstat-no" title="statement not covered" > changeAssetButtonProtocol={receivingAssetProtocol}</span>
3496
+ <span class="cstat-no" title="statement not covered" > showBalance={formHasBalance}</span>
3497
+ <span class="cstat-no" title="statement not covered" > lowerFormPosition</span>
3498
+ <span class="cstat-no" title="statement not covered" > estimateAmount</span>
3499
+ <span class="cstat-no" title="statement not covered" > ref={toAssetSelectionButtonRef}</span>
3500
+ <span class="cstat-no" title="statement not covered" > isLoading={isLoading.current}</span>
3501
+ <span class="cstat-no" title="statement not covered" > cryptoAssetToFiatRate={receivingAssetToFiatRate}</span>
3502
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode={formHasFiat ? fiatCurrencyCode : null}</span>
3503
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals={fiatCurrencyDecimals}</span>
3504
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText={translations.input.balanceLoaderText}</span>
3505
+ <span class="cstat-no" title="statement not covered" > fiatInputPlaceholderText={</span>
3506
+ <span class="cstat-no" title="statement not covered" > translations.input.fiatPlaceholder</span>
3507
+ <span class="cstat-no" title="statement not covered" > }</span>
3508
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3509
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3510
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-information-field"]}&gt;</span>
3511
+ <span class="cstat-no" title="statement not covered" > &lt;p&gt;</span>
3512
+ <span class="cstat-no" title="statement not covered" > {!isPairSupported ? (</span>
3513
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock.pairNotAvailable</span>
3514
+ <span class="cstat-no" title="statement not covered" > ) : transactionFee &amp;&amp; minimalAmountValid ? (</span>
3515
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3516
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.transactionFee}</span>
3517
+ <span class="cstat-no" title="statement not covered" > &lt;span&gt;</span>
3518
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(</span>
3519
+ <span class="cstat-no" title="statement not covered" > transactionFee?.crypto,</span>
3520
+ <span class="cstat-no" title="statement not covered" > sendingAssetFeeCoinTickerPrintable</span>
3521
+ <span class="cstat-no" title="statement not covered" > )}</span>
3522
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3523
+ <span class="cstat-no" title="statement not covered" > {transactionFee?.fiat != null &amp;&amp;</span>
3524
+ <span class="cstat-no" title="statement not covered" > transactionFee?.fiat !== "" ? (</span>
3525
+ <span class="cstat-no" title="statement not covered" > &lt;span className={s["semi-transparent"]}&gt;</span>
3526
+ <span class="cstat-no" title="statement not covered" > {" ~ " +</span>
3527
+ <span class="cstat-no" title="statement not covered" > AmountUtils.fiat(</span>
3528
+ <span class="cstat-no" title="statement not covered" > transactionFee?.fiat,</span>
3529
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode</span>
3530
+ <span class="cstat-no" title="statement not covered" > )}</span>
3531
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3532
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3533
+ <span class="cstat-no" title="statement not covered" > ""</span>
3534
+ <span class="cstat-no" title="statement not covered" > )}</span>
3535
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3536
+ <span class="cstat-no" title="statement not covered" > ) : isSwapCalculated ? (</span>
3537
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3538
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.swapRate}</span>
3539
+ <span class="cstat-no" title="statement not covered" > &lt;span&gt;</span>
3540
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.composeRateText(</span>
3541
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable,</span>
3542
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable,</span>
3543
+ <span class="cstat-no" title="statement not covered" > swapRate</span>
3544
+ <span class="cstat-no" title="statement not covered" > )}</span>
3545
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3546
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3547
+ <span class="cstat-no" title="statement not covered" > ) : minimalAmount.current ? (</span>
3548
+ <span class="cstat-no" title="statement not covered" > !maximumAmountValid &amp;&amp;</span>
3549
+ <span class="cstat-no" title="statement not covered" > maximumAmount.current != null ? (</span>
3550
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3551
+ <span class="cstat-no" title="statement not covered" > {</span>
3552
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock</span>
3553
+ <span class="cstat-no" title="statement not covered" > .maximumAmount</span>
3554
+ <span class="cstat-no" title="statement not covered" > }</span>
3555
+ <span class="cstat-no" title="statement not covered" > &lt;span</span>
3556
+ <span class="cstat-no" title="statement not covered" > className={</span>
3557
+ <span class="cstat-no" title="statement not covered" > s["interactable"] + " " + s["red"]</span>
3558
+ <span class="cstat-no" title="statement not covered" > }</span>
3559
+ <span class="cstat-no" title="statement not covered" > onClick={</span>
3560
+ <span class="cstat-no" title="statement not covered" > isLoading.current</span>
3561
+ <span class="cstat-no" title="statement not covered" > ? () =&gt; {}</span>
3562
+ <span class="cstat-no" title="statement not covered" > : (e) =&gt;</span>
3563
+ <span class="cstat-no" title="statement not covered" > callHandlingErrors(</span>
3564
+ <span class="cstat-no" title="statement not covered" > handleMaximumAmountClick,</span>
3565
+ <span class="cstat-no" title="statement not covered" > e</span>
3566
+ <span class="cstat-no" title="statement not covered" > )</span>
3567
+ <span class="cstat-no" title="statement not covered" > }</span>
3568
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3569
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(</span>
3570
+ <span class="cstat-no" title="statement not covered" > maximumAmount.current?.crypto,</span>
3571
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable</span>
3572
+ <span class="cstat-no" title="statement not covered" > )}</span>
3573
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3574
+ <span class="cstat-no" title="statement not covered" > {maximumAmount.current?.fiat != null &amp;&amp;</span>
3575
+ <span class="cstat-no" title="statement not covered" > maximumAmount.current?.fiat !== "" ? (</span>
3576
+ <span class="cstat-no" title="statement not covered" > &lt;span className={s["semi-transparent"]}&gt;</span>
3577
+ <span class="cstat-no" title="statement not covered" > {" ~ " +</span>
3578
+ <span class="cstat-no" title="statement not covered" > AmountUtils.fiat(</span>
3579
+ <span class="cstat-no" title="statement not covered" > maximumAmount.current.fiat,</span>
3580
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode</span>
3581
+ <span class="cstat-no" title="statement not covered" > )}</span>
3582
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3583
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3584
+ <span class="cstat-no" title="statement not covered" > ""</span>
3585
+ <span class="cstat-no" title="statement not covered" > )}</span>
3586
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3587
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3588
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3589
+ <span class="cstat-no" title="statement not covered" > {</span>
3590
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock</span>
3591
+ <span class="cstat-no" title="statement not covered" > .minimumAmount</span>
3592
+ <span class="cstat-no" title="statement not covered" > }</span>
3593
+ <span class="cstat-no" title="statement not covered" > &lt;span</span>
3594
+ <span class="cstat-no" title="statement not covered" > className={</span>
3595
+ <span class="cstat-no" title="statement not covered" > s["interactable"] +</span>
3596
+ <span class="cstat-no" title="statement not covered" > " " +</span>
3597
+ <span class="cstat-no" title="statement not covered" > (!minimalAmountValid</span>
3598
+ <span class="cstat-no" title="statement not covered" > ? s["red"]</span>
3599
+ <span class="cstat-no" title="statement not covered" > : "")</span>
3600
+ <span class="cstat-no" title="statement not covered" > }</span>
3601
+ <span class="cstat-no" title="statement not covered" > onClick={</span>
3602
+ <span class="cstat-no" title="statement not covered" > isLoading.current</span>
3603
+ <span class="cstat-no" title="statement not covered" > ? () =&gt; {}</span>
3604
+ <span class="cstat-no" title="statement not covered" > : (e) =&gt;</span>
3605
+ <span class="cstat-no" title="statement not covered" > callHandlingErrors(</span>
3606
+ <span class="cstat-no" title="statement not covered" > handleMinimalAmountClick,</span>
3607
+ <span class="cstat-no" title="statement not covered" > e</span>
3608
+ <span class="cstat-no" title="statement not covered" > )</span>
3609
+ <span class="cstat-no" title="statement not covered" > }</span>
3610
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3611
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(</span>
3612
+ <span class="cstat-no" title="statement not covered" > minimalAmount.current.crypto,</span>
3613
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable</span>
3614
+ <span class="cstat-no" title="statement not covered" > )}</span>
3615
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3616
+ <span class="cstat-no" title="statement not covered" > {minimalAmount.current?.fiat != null &amp;&amp;</span>
3617
+ <span class="cstat-no" title="statement not covered" > minimalAmount.current.fiat !== "" ? (</span>
3618
+ <span class="cstat-no" title="statement not covered" > &lt;span className={s["semi-transparent"]}&gt;</span>
3619
+ <span class="cstat-no" title="statement not covered" > {" ~ " +</span>
3620
+ <span class="cstat-no" title="statement not covered" > AmountUtils.fiat(</span>
3621
+ <span class="cstat-no" title="statement not covered" > minimalAmount.current.fiat,</span>
3622
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode</span>
3623
+ <span class="cstat-no" title="statement not covered" > )}</span>
3624
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3625
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3626
+ <span class="cstat-no" title="statement not covered" > ""</span>
3627
+ <span class="cstat-no" title="statement not covered" > )}</span>
3628
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3629
+ <span class="cstat-no" title="statement not covered" > )</span>
3630
+ <span class="cstat-no" title="statement not covered" > ) : sendAssetAmount.current || isSwapAll.current ? (</span>
3631
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock[</span>
3632
+ <span class="cstat-no" title="statement not covered" > formHasBalance</span>
3633
+ <span class="cstat-no" title="statement not covered" > ? "calculatingNetworkFee"</span>
3634
+ <span class="cstat-no" title="statement not covered" > : "calculatingSwapRates"</span>
3635
+ <span class="cstat-no" title="statement not covered" > ]</span>
3636
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3637
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock.loadingMinimalAmount</span>
3638
+ <span class="cstat-no" title="statement not covered" > )}</span>
3639
+ <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
3640
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3641
+ <span class="cstat-no" title="statement not covered" ></span>
3642
+ <span class="cstat-no" title="statement not covered" > {isAddressFieldEnabled ? (</span>
3643
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-address-field"]}&gt;</span>
3644
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3645
+ <span class="cstat-no" title="statement not covered" > title={translations.addressFields.addressTitle}</span>
3646
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3647
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3648
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3649
+ <span class="cstat-no" title="statement not covered" > onChange={(e) =&gt;</span>
3650
+ <span class="cstat-no" title="statement not covered" > setRecepientAddress(e.target.value)</span>
3651
+ <span class="cstat-no" title="statement not covered" > }</span>
3652
+ <span class="cstat-no" title="statement not covered" > value={recepientAddress}</span>
3653
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3654
+ <span class="cstat-no" title="statement not covered" > errorEncountered={</span>
3655
+ <span class="cstat-no" title="statement not covered" > !recepientAddressValid &amp;&amp;</span>
3656
+ <span class="cstat-no" title="statement not covered" > recepientAddress !== ""</span>
3657
+ <span class="cstat-no" title="statement not covered" > }</span>
3658
+ <span class="cstat-no" title="statement not covered" > placeholder={</span>
3659
+ <span class="cstat-no" title="statement not covered" > translations.addressFields</span>
3660
+ <span class="cstat-no" title="statement not covered" > .addressPlaceholder</span>
3661
+ <span class="cstat-no" title="statement not covered" > }</span>
3662
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3663
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3664
+ <span class="cstat-no" title="statement not covered" > {recepientAddressExtraIdAvailable ? (</span>
3665
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3666
+ <span class="cstat-no" title="statement not covered" > title={translations.addressFields.extraIdTitle}</span>
3667
+ <span class="cstat-no" title="statement not covered" > titleNoticeText={</span>
3668
+ <span class="cstat-no" title="statement not covered" > translations.addressFields.extraIdNotice</span>
3669
+ <span class="cstat-no" title="statement not covered" > }</span>
3670
+ <span class="cstat-no" title="statement not covered" > titleNoticePosition={TOOLTIP_POSITIONS.TOP_LEFT}</span>
3671
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3672
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3673
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3674
+ <span class="cstat-no" title="statement not covered" > onChange={(e) =&gt;</span>
3675
+ <span class="cstat-no" title="statement not covered" > setRecepientAddressExtraId(</span>
3676
+ <span class="cstat-no" title="statement not covered" > e.target.value</span>
3677
+ <span class="cstat-no" title="statement not covered" > )</span>
3678
+ <span class="cstat-no" title="statement not covered" > }</span>
3679
+ <span class="cstat-no" title="statement not covered" > value={recepientAddressExtraId}</span>
3680
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3681
+ <span class="cstat-no" title="statement not covered" > errorEncountered={</span>
3682
+ <span class="cstat-no" title="statement not covered" > !recepientAddressExtraIdValid</span>
3683
+ <span class="cstat-no" title="statement not covered" > }</span>
3684
+ <span class="cstat-no" title="statement not covered" > placeholder={</span>
3685
+ <span class="cstat-no" title="statement not covered" > translations.addressFields</span>
3686
+ <span class="cstat-no" title="statement not covered" > .extraIdPlaceholder</span>
3687
+ <span class="cstat-no" title="statement not covered" > }</span>
3688
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3689
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3690
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3691
+ <span class="cstat-no" title="statement not covered" > ""</span>
3692
+ <span class="cstat-no" title="statement not covered" > )}</span>
3693
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3694
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3695
+ <span class="cstat-no" title="statement not covered" > ""</span>
3696
+ <span class="cstat-no" title="statement not covered" > )}</span>
3697
+ <span class="cstat-no" title="statement not covered" ></span>
3698
+ <span class="cstat-no" title="statement not covered" > {typeof isFixed === "boolean" &amp;&amp;</span>
3699
+ <span class="cstat-no" title="statement not covered" > setIsFixed &amp;&amp;</span>
3700
+ <span class="cstat-no" title="statement not covered" > typeof setIsFixed === "function" ? (</span>
3701
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-rate-selector"]}&gt;</span>
3702
+ <span class="cstat-no" title="statement not covered" > &lt;RateSelector</span>
3703
+ <span class="cstat-no" title="statement not covered" > isFixed={isFixed}</span>
3704
+ <span class="cstat-no" title="statement not covered" > setIsFixed={setIsFixed}</span>
3705
+ <span class="cstat-no" title="statement not covered" > translations={translations.rateSelector}</span>
3706
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3707
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3708
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3709
+ <span class="cstat-no" title="statement not covered" > ""</span>
3710
+ <span class="cstat-no" title="statement not covered" > )}</span>
3711
+ <span class="cstat-no" title="statement not covered" ></span>
3712
+ <span class="cstat-no" title="statement not covered" > {validationContent ? (</span>
3713
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-validation-text"]}&gt;</span>
3714
+ <span class="cstat-no" title="statement not covered" > &lt;Validation text={validationContent} /&gt;</span>
3715
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3716
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3717
+ <span class="cstat-no" title="statement not covered" > ""</span>
3718
+ <span class="cstat-no" title="statement not covered" > )}</span>
3719
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-button-container"]}&gt;</span>
3720
+ <span class="cstat-no" title="statement not covered" > {!termsOfUseUrl || !privacyPolicyUrl ? null : (</span>
3721
+ <span class="cstat-no" title="statement not covered" > &lt;p</span>
3722
+ <span class="cstat-no" title="statement not covered" > className={</span>
3723
+ <span class="cstat-no" title="statement not covered" > s["swap-form-button-container-consent-text"]</span>
3724
+ <span class="cstat-no" title="statement not covered" > }</span>
3725
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3726
+ <span class="cstat-no" title="statement not covered" > {translations.consents.consentText + " "}</span>
3727
+ <span class="cstat-no" title="statement not covered" > &lt;a</span>
3728
+ <span class="cstat-no" title="statement not covered" > href={termsOfUseUrl}</span>
3729
+ <span class="cstat-no" title="statement not covered" > className={</span>
3730
+ <span class="cstat-no" title="statement not covered" > s[</span>
3731
+ <span class="cstat-no" title="statement not covered" > "swap-form-button-container-consent-text-link"</span>
3732
+ <span class="cstat-no" title="statement not covered" > ]</span>
3733
+ <span class="cstat-no" title="statement not covered" > }</span>
3734
+ <span class="cstat-no" title="statement not covered" > target="_blank"</span>
3735
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3736
+ <span class="cstat-no" title="statement not covered" > {translations.consents.termsOfUse}</span>
3737
+ <span class="cstat-no" title="statement not covered" > &lt;/a&gt;</span>
3738
+ <span class="cstat-no" title="statement not covered" > {" " + translations.consents.and + " "}</span>
3739
+ <span class="cstat-no" title="statement not covered" > &lt;a</span>
3740
+ <span class="cstat-no" title="statement not covered" > href={privacyPolicyUrl}</span>
3741
+ <span class="cstat-no" title="statement not covered" > className={</span>
3742
+ <span class="cstat-no" title="statement not covered" > s[</span>
3743
+ <span class="cstat-no" title="statement not covered" > "swap-form-button-container-consent-text-link"</span>
3744
+ <span class="cstat-no" title="statement not covered" > ]</span>
3745
+ <span class="cstat-no" title="statement not covered" > }</span>
3746
+ <span class="cstat-no" title="statement not covered" > target="_blank"</span>
3747
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3748
+ <span class="cstat-no" title="statement not covered" > {translations.consents.privacyPolicy}</span>
3749
+ <span class="cstat-no" title="statement not covered" > &lt;/a&gt;</span>
3750
+ <span class="cstat-no" title="statement not covered" > .</span>
3751
+ <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
3752
+ <span class="cstat-no" title="statement not covered" > )}</span>
3753
+ <span class="cstat-no" title="statement not covered" > &lt;Button</span>
3754
+ <span class="cstat-no" title="statement not covered" > size="lg"</span>
3755
+ <span class="cstat-no" title="statement not covered" > mode="primary"</span>
3756
+ <span class="cstat-no" title="statement not covered" > content={translations.confirmButtonText}</span>
3757
+ <span class="cstat-no" title="statement not covered" > onClick={handleConfirmButtonClick}</span>
3758
+ <span class="cstat-no" title="statement not covered" > fullWidthOnMobiles</span>
3759
+ <span class="cstat-no" title="statement not covered" > isDisabled={!readyToSwap}</span>
3760
+ <span class="cstat-no" title="statement not covered" > to={formHasBalance ? "" : confirmButtonTo}</span>
3761
+ <span class="cstat-no" title="statement not covered" > loader={formHasBalance || isAddressFieldEnabled}</span>
3762
+ <span class="cstat-no" title="statement not covered" > handleError={callHandlingErrors}</span>
3763
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3764
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3765
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3766
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3767
+ <span class="cstat-no" title="statement not covered" > );</span>
3768
+ <span class="cstat-no" title="statement not covered" >};</span>
3769
+ <span class="cstat-no" title="statement not covered" ></span>
3770
+ <span class="cstat-no" title="statement not covered" >SwapForm.propTypes = {</span>
3771
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker: PropTypes.string.isRequired,</span>
3772
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker: PropTypes.string.isRequired,</span>
3773
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount: PropTypes.number,</span>
3774
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount: PropTypes.number,</span>
3775
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable: PropTypes.string.isRequired,</span>
3776
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable: PropTypes.string.isRequired,</span>
3777
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocol: PropTypes.string,</span>
3778
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocol: PropTypes.string,</span>
3779
+ <span class="cstat-no" title="statement not covered" > sendingAssetIconSrc: PropTypes.string.isRequired,</span>
3780
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc: PropTypes.oneOfType([PropTypes.string, null]),</span>
3781
+ <span class="cstat-no" title="statement not covered" > receivingAssetIconSrc: PropTypes.string.isRequired,</span>
3782
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc: PropTypes.oneOfType([</span>
3783
+ <span class="cstat-no" title="statement not covered" > PropTypes.string,</span>
3784
+ <span class="cstat-no" title="statement not covered" > null,</span>
3785
+ <span class="cstat-no" title="statement not covered" > ]),</span>
3786
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc: PropTypes.oneOfType([PropTypes.string, null]),</span>
3787
+ <span class="cstat-no" title="statement not covered" > sendingAssetFeeCoinTickerPrintable: PropTypes.string,</span>
3788
+ <span class="cstat-no" title="statement not covered" > sendingAssetBalance: PropTypes.string,</span>
3789
+ <span class="cstat-no" title="statement not covered" > receivingAssetBalance: PropTypes.string,</span>
3790
+ <span class="cstat-no" title="statement not covered" > handleChangeSendingAssetClick: PropTypes.func.isRequired,</span>
3791
+ <span class="cstat-no" title="statement not covered" > handleChangeReceivingAssetClick: PropTypes.func.isRequired,</span>
3792
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick: PropTypes.func,</span>
3793
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo: PropTypes.func,</span>
3794
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation: PropTypes.func,</span>
3795
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError: PropTypes.func,</span>
3796
+ <span class="cstat-no" title="statement not covered" > rotateAssets: PropTypes.func,</span>
3797
+ <span class="cstat-no" title="statement not covered" > preservedAmount: PropTypes.oneOfType([PropTypes.string, null]),</span>
3798
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError: PropTypes.func.isRequired,</span>
3799
+ <span class="cstat-no" title="statement not covered" > formHasBalance: PropTypes.bool,</span>
3800
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails: PropTypes.func.isRequired,</span>
3801
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData: PropTypes.func.isRequired,</span>
3802
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting: PropTypes.number,</span>
3803
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef: PropTypes.any,</span>
3804
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef: PropTypes.any,</span>
3805
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate: PropTypes.oneOfType([</span>
3806
+ <span class="cstat-no" title="statement not covered" > PropTypes.number,</span>
3807
+ <span class="cstat-no" title="statement not covered" > PropTypes.string,</span>
3808
+ <span class="cstat-no" title="statement not covered" > null,</span>
3809
+ <span class="cstat-no" title="statement not covered" > ]),</span>
3810
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate: PropTypes.oneOfType([</span>
3811
+ <span class="cstat-no" title="statement not covered" > PropTypes.number,</span>
3812
+ <span class="cstat-no" title="statement not covered" > PropTypes.string,</span>
3813
+ <span class="cstat-no" title="statement not covered" > null,</span>
3814
+ <span class="cstat-no" title="statement not covered" > ]),</span>
3815
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),</span>
3816
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),</span>
3817
+ <span class="cstat-no" title="statement not covered" > formHasFiat: PropTypes.bool,</span>
3818
+ <span class="cstat-no" title="statement not covered" > translations: PropTypes.object,</span>
3819
+ <span class="cstat-no" title="statement not covered" > swapSeparatorIconSrc: PropTypes.string.isRequired,</span>
3820
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive: PropTypes.bool,</span>
3821
+ <span class="cstat-no" title="statement not covered" >};</span>
3822
+ <span class="cstat-no" title="statement not covered" ></span>
3823
+ <span class="cstat-no" title="statement not covered" >SwapForm.defaultProps = {</span>
3824
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount: AmountUtils.significantDecimalCount,</span>
3825
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount: AmountUtils.significantDecimalCount,</span>
3826
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc: null,</span>
3827
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc: null,</span>
3828
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc: null,</span>
3829
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick: () =&gt; {},</span>
3830
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo: (fromTicker, toTicker, fromAmount) =&gt; "",</span>
3831
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation: (details) =&gt; {},</span>
3832
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError: (error) =&gt; {},</span>
3833
+ <span class="cstat-no" title="statement not covered" > rotateAssets: (fromTicker, toTicker) =&gt; {},</span>
3834
+ <span class="cstat-no" title="statement not covered" > preservedAmount: null,</span>
3835
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError: (</span>
3836
+ <span class="cstat-no" title="statement not covered" > errorCode,</span>
3837
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3838
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3839
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3840
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3841
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3842
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3843
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3844
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails: async (</span>
3845
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3846
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3847
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3848
+ <span class="cstat-no" title="statement not covered" > isSwapAll = false</span>
3849
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3850
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData: async (</span>
3851
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3852
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker</span>
3853
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3854
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting: 0,</span>
3855
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef: null,</span>
3856
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef: null,</span>
3857
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate: null,</span>
3858
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate: null,</span>
3859
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode: null,</span>
3860
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals: null,</span>
3861
+ <span class="cstat-no" title="statement not covered" > formHasFiat: true,</span>
3862
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive: false,</span>
3863
+ <span class="cstat-no" title="statement not covered" >};</span>
3864
+ &nbsp;</pre></td></tr></table></pre>
3865
+
3866
+ <div class='push'></div><!-- for sticky footer -->
3867
+ </div><!-- /wrapper -->
3868
+ <div class='footer quiet pad2 space-top1 center small'>
3869
+ Code coverage generated by
3870
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3871
+ at 2024-05-23T11:38:15.438Z
3872
+ </div>
3873
+ <script src="../../../../../prettify.js"></script>
3874
+ <script>
3875
+ window.onload = function () {
3876
+ prettyPrint();
3877
+ };
3878
+ </script>
3879
+ <script src="../../../../../sorter.js"></script>
3880
+ <script src="../../../../../block-navigation.js"></script>
3881
+ </body>
3882
+ </html>
3883
+