@lcap/nasl 3.7.3-beta.4 → 3.7.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/out/concepts/BindAttribute__.js +5 -4
  2. package/out/concepts/BindAttribute__.js.map +1 -1
  3. package/out/concepts/BindDirective__.js +3 -3
  4. package/out/concepts/BindDirective__.js.map +1 -1
  5. package/out/concepts/StringLiteral__.js +3 -3
  6. package/out/concepts/StringLiteral__.js.map +1 -1
  7. package/out/concepts/ViewElement__.d.ts +2 -0
  8. package/out/concepts/ViewElement__.js.map +1 -1
  9. package/out/natural/transformTS2UI.js +3 -5
  10. package/out/natural/transformTS2UI.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/concepts/BindAttribute__.ts +5 -4
  13. package/src/concepts/BindDirective__.ts +3 -3
  14. package/src/concepts/StringLiteral__.ts +3 -3
  15. package/src/concepts/ViewElement__.ts +2 -0
  16. package/src/natural/transformTS2UI.ts +3 -3
  17. package/.nyc_output/943352aa-23df-44e0-863b-3dcd3e8bf57a.json +0 -1
  18. package/.nyc_output/processinfo/943352aa-23df-44e0-863b-3dcd3e8bf57a.json +0 -1
  19. package/.nyc_output/processinfo/index.json +0 -1
  20. package/coverage/base.css +0 -224
  21. package/coverage/block-navigation.js +0 -87
  22. package/coverage/cobertura-coverage.xml +0 -72356
  23. package/coverage/favicon.png +0 -0
  24. package/coverage/index.html +0 -161
  25. package/coverage/prettify.css +0 -1
  26. package/coverage/prettify.js +0 -2
  27. package/coverage/sort-arrow-sprite.png +0 -0
  28. package/coverage/sorter.js +0 -196
  29. package/coverage/src/automate/engine/index.html +0 -116
  30. package/coverage/src/automate/engine/utils.js.html +0 -1414
  31. package/coverage/src/bak/index.html +0 -116
  32. package/coverage/src/bak/translator.js.html +0 -622
  33. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +0 -175
  34. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +0 -169
  35. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +0 -1246
  36. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +0 -145
  37. package/coverage/src/breakpoint/generator/index.html +0 -176
  38. package/coverage/src/breakpoint/generator/index.ts.html +0 -508
  39. package/coverage/src/breakpoint/index.html +0 -116
  40. package/coverage/src/breakpoint/index.ts.html +0 -94
  41. package/coverage/src/breakpoint/shared/constants.ts.html +0 -436
  42. package/coverage/src/breakpoint/shared/index.html +0 -176
  43. package/coverage/src/breakpoint/shared/index.ts.html +0 -94
  44. package/coverage/src/breakpoint/shared/operations.ts.html +0 -160
  45. package/coverage/src/breakpoint/shared/socket.ts.html +0 -1297
  46. package/coverage/src/breakpoint/shared/utils.ts.html +0 -1087
  47. package/coverage/src/breakpoint/store/core.ts.html +0 -1600
  48. package/coverage/src/breakpoint/store/dock.ts.html +0 -733
  49. package/coverage/src/breakpoint/store/index.html +0 -146
  50. package/coverage/src/breakpoint/store/index.ts.html +0 -91
  51. package/coverage/src/common/BaseNode.ts.html +0 -3874
  52. package/coverage/src/common/Command.ts.html +0 -310
  53. package/coverage/src/common/EventEmitter.ts.html +0 -370
  54. package/coverage/src/common/Messager.ts.html +0 -820
  55. package/coverage/src/common/asyncFuncMap.ts.html +0 -127
  56. package/coverage/src/common/index.html +0 -191
  57. package/coverage/src/common/index.ts.html +0 -94
  58. package/coverage/src/concepts/Abort__.ts.html +0 -328
  59. package/coverage/src/concepts/Anchor__.ts.html +0 -646
  60. package/coverage/src/concepts/AnonymousFunction__.ts.html +0 -2029
  61. package/coverage/src/concepts/App__.ts.html +0 -13252
  62. package/coverage/src/concepts/Argument__.ts.html +0 -964
  63. package/coverage/src/concepts/Assignee__.ts.html +0 -2236
  64. package/coverage/src/concepts/AssignmentLine__.ts.html +0 -409
  65. package/coverage/src/concepts/Assignment__.ts.html +0 -1123
  66. package/coverage/src/concepts/Attribute__.ts.html +0 -733
  67. package/coverage/src/concepts/AuthInterface__.ts.html +0 -367
  68. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +0 -1984
  69. package/coverage/src/concepts/AuthLogic__.ts.html +0 -781
  70. package/coverage/src/concepts/BackendVariable__.ts.html +0 -1483
  71. package/coverage/src/concepts/Backend__.ts.html +0 -1165
  72. package/coverage/src/concepts/BatchAssignment__.ts.html +0 -3301
  73. package/coverage/src/concepts/BinaryExpression__.ts.html +0 -1441
  74. package/coverage/src/concepts/BindAttribute__.ts.html +0 -3835
  75. package/coverage/src/concepts/BindDirective__.ts.html +0 -1921
  76. package/coverage/src/concepts/BindEvent__.ts.html +0 -3406
  77. package/coverage/src/concepts/BindStyle__.ts.html +0 -1612
  78. package/coverage/src/concepts/BooleanLiteral__.ts.html +0 -418
  79. package/coverage/src/concepts/CallAuthInterface__.ts.html +0 -1615
  80. package/coverage/src/concepts/CallConnector__.ts.html +0 -922
  81. package/coverage/src/concepts/CallFunction__.ts.html +0 -2122
  82. package/coverage/src/concepts/CallInterface__.ts.html +0 -2719
  83. package/coverage/src/concepts/CallLogic__.ts.html +0 -4807
  84. package/coverage/src/concepts/CallQueryComponent__.ts.html +0 -5308
  85. package/coverage/src/concepts/Comment__.ts.html +0 -394
  86. package/coverage/src/concepts/CompletionProperty__.ts.html +0 -925
  87. package/coverage/src/concepts/ConfigGroup__.ts.html +0 -1105
  88. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +0 -424
  89. package/coverage/src/concepts/ConfigProperty__.ts.html +0 -1348
  90. package/coverage/src/concepts/Configuration__.ts.html +0 -1027
  91. package/coverage/src/concepts/Connection__.ts.html +0 -1360
  92. package/coverage/src/concepts/ConnectorTrigger__.ts.html +0 -595
  93. package/coverage/src/concepts/Connector__.ts.html +0 -4255
  94. package/coverage/src/concepts/Constant__.ts.html +0 -913
  95. package/coverage/src/concepts/DataSource__.ts.html +0 -1771
  96. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +0 -331
  97. package/coverage/src/concepts/Destination__.ts.html +0 -2731
  98. package/coverage/src/concepts/End__.ts.html +0 -433
  99. package/coverage/src/concepts/EntityIndex__.ts.html +0 -787
  100. package/coverage/src/concepts/EntityProperty__.ts.html +0 -2668
  101. package/coverage/src/concepts/Entity__.ts.html +0 -2950
  102. package/coverage/src/concepts/EnumItem__.ts.html +0 -550
  103. package/coverage/src/concepts/Enum__.ts.html +0 -1231
  104. package/coverage/src/concepts/Event__.ts.html +0 -1084
  105. package/coverage/src/concepts/ExternalDestination__.ts.html +0 -1033
  106. package/coverage/src/concepts/ForEachStatement__.ts.html +0 -1957
  107. package/coverage/src/concepts/FrontendLibrary__.ts.html +0 -1711
  108. package/coverage/src/concepts/FrontendVariable__.ts.html +0 -292
  109. package/coverage/src/concepts/Frontend__.ts.html +0 -3961
  110. package/coverage/src/concepts/Function__.ts.html +0 -3598
  111. package/coverage/src/concepts/Identifier__.ts.html +0 -1057
  112. package/coverage/src/concepts/IfStatement__.ts.html +0 -1594
  113. package/coverage/src/concepts/Integration__.ts.html +0 -1228
  114. package/coverage/src/concepts/InterfaceParam__.ts.html +0 -1087
  115. package/coverage/src/concepts/Interface__.ts.html +0 -3394
  116. package/coverage/src/concepts/JSBlock__.ts.html +0 -421
  117. package/coverage/src/concepts/JavaLogic__.ts.html +0 -460
  118. package/coverage/src/concepts/LogicItem__.ts.html +0 -1171
  119. package/coverage/src/concepts/Logic__.ts.html +0 -7408
  120. package/coverage/src/concepts/MatchCase__.ts.html +0 -2929
  121. package/coverage/src/concepts/Match__.ts.html +0 -2455
  122. package/coverage/src/concepts/MemberExpression__.ts.html +0 -1726
  123. package/coverage/src/concepts/MicroApp__.ts.html +0 -436
  124. package/coverage/src/concepts/Module__.ts.html +0 -9220
  125. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +0 -1045
  126. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +0 -1018
  127. package/coverage/src/concepts/Namespace__.ts.html +0 -7942
  128. package/coverage/src/concepts/NewComposite__.ts.html +0 -4729
  129. package/coverage/src/concepts/NewList__.ts.html +0 -1618
  130. package/coverage/src/concepts/NewMap__.ts.html +0 -2326
  131. package/coverage/src/concepts/New__.ts.html +0 -289
  132. package/coverage/src/concepts/NullLiteral__.ts.html +0 -349
  133. package/coverage/src/concepts/NumericLiteral__.ts.html +0 -676
  134. package/coverage/src/concepts/OqlQueryComponent__.ts.html +0 -1141
  135. package/coverage/src/concepts/OverriddenLogic__.ts.html +0 -6817
  136. package/coverage/src/concepts/Param__.ts.html +0 -1726
  137. package/coverage/src/concepts/Point__.ts.html +0 -331
  138. package/coverage/src/concepts/ProcessComponent__.ts.html +0 -1666
  139. package/coverage/src/concepts/ProcessElement__.ts.html +0 -5884
  140. package/coverage/src/concepts/ProcessOutcome__.ts.html +0 -352
  141. package/coverage/src/concepts/ProcessOutcomes__.ts.html +0 -343
  142. package/coverage/src/concepts/Process__.ts.html +0 -4768
  143. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +0 -568
  144. package/coverage/src/concepts/QueryFieldExpression__.ts.html +0 -583
  145. package/coverage/src/concepts/QueryFromExpression__.ts.html +0 -910
  146. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +0 -559
  147. package/coverage/src/concepts/QueryJoinExpression__.ts.html +0 -1567
  148. package/coverage/src/concepts/QueryLimitExpression__.ts.html +0 -637
  149. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +0 -679
  150. package/coverage/src/concepts/QuerySelectExpression__.ts.html +0 -1714
  151. package/coverage/src/concepts/Rect__.ts.html +0 -373
  152. package/coverage/src/concepts/Return__.ts.html +0 -1312
  153. package/coverage/src/concepts/Role__.ts.html +0 -601
  154. package/coverage/src/concepts/SelectMembers__.ts.html +0 -1246
  155. package/coverage/src/concepts/Slot__.ts.html +0 -628
  156. package/coverage/src/concepts/SqlQueryComponent__.ts.html +0 -982
  157. package/coverage/src/concepts/Start__.ts.html +0 -304
  158. package/coverage/src/concepts/StringInterpolation__.ts.html +0 -1129
  159. package/coverage/src/concepts/StringLiteral__.ts.html +0 -505
  160. package/coverage/src/concepts/StructureProperty__.ts.html +0 -1132
  161. package/coverage/src/concepts/Structure__.ts.html +0 -2092
  162. package/coverage/src/concepts/SwitchCase__.ts.html +0 -1174
  163. package/coverage/src/concepts/SwitchStatement__.ts.html +0 -877
  164. package/coverage/src/concepts/Theme__.ts.html +0 -358
  165. package/coverage/src/concepts/Transactional__.ts.html +0 -628
  166. package/coverage/src/concepts/TriggerEvent__.ts.html +0 -1012
  167. package/coverage/src/concepts/TriggerLauncher__.ts.html +0 -775
  168. package/coverage/src/concepts/TypeAnnotation__.ts.html +0 -3718
  169. package/coverage/src/concepts/TypeParam__.ts.html +0 -319
  170. package/coverage/src/concepts/UnaryExpression__.ts.html +0 -697
  171. package/coverage/src/concepts/Unparsed__.ts.html +0 -394
  172. package/coverage/src/concepts/UseComponent__.ts.html +0 -331
  173. package/coverage/src/concepts/ValidationRule__.ts.html +0 -1840
  174. package/coverage/src/concepts/Variable__.ts.html +0 -1489
  175. package/coverage/src/concepts/ViewBlock__.ts.html +0 -352
  176. package/coverage/src/concepts/ViewComponent__.ts.html +0 -4180
  177. package/coverage/src/concepts/ViewElement__.ts.html +0 -8803
  178. package/coverage/src/concepts/View__.ts.html +0 -8620
  179. package/coverage/src/concepts/WhileStatement__.ts.html +0 -1063
  180. package/coverage/src/concepts/basics/stdlib/index.html +0 -356
  181. package/coverage/src/concepts/basics/stdlib/index.ts.html +0 -208
  182. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +0 -565
  183. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +0 -517
  184. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +0 -226
  185. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +0 -172
  186. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +0 -214
  187. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +0 -145
  188. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +0 -589
  189. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +0 -214
  190. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +0 -229
  191. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +0 -268
  192. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +0 -1999
  193. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +0 -3259
  194. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +0 -6844
  195. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +0 -1768
  196. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +0 -163
  197. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +0 -664
  198. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +0 -121
  199. package/coverage/src/concepts/basics/types/index.html +0 -131
  200. package/coverage/src/concepts/basics/types/index.ts.html +0 -160
  201. package/coverage/src/concepts/index.html +0 -1961
  202. package/coverage/src/concepts/index.ts.html +0 -103
  203. package/coverage/src/concepts/index__.ts.html +0 -451
  204. package/coverage/src/config.ts.html +0 -343
  205. package/coverage/src/decorators/index.html +0 -131
  206. package/coverage/src/decorators/index.ts.html +0 -739
  207. package/coverage/src/decorators/promise.ts.html +0 -169
  208. package/coverage/src/eventBus.ts.html +0 -100
  209. package/coverage/src/generator/compileComponent.ts.html +0 -142
  210. package/coverage/src/generator/genBundleFiles.ts.html +0 -1828
  211. package/coverage/src/generator/genHash.ts.html +0 -124
  212. package/coverage/src/generator/genMetaData.ts.html +0 -1042
  213. package/coverage/src/generator/genReleaseBody.ts.html +0 -1282
  214. package/coverage/src/generator/icestark.ts.html +0 -220
  215. package/coverage/src/generator/index.html +0 -266
  216. package/coverage/src/generator/index.ts.html +0 -106
  217. package/coverage/src/generator/microApp.ts.html +0 -172
  218. package/coverage/src/generator/permission.ts.html +0 -1036
  219. package/coverage/src/generator/qiankun.ts.html +0 -232
  220. package/coverage/src/generator/styleReplacer.ts.html +0 -199
  221. package/coverage/src/index.html +0 -116
  222. package/coverage/src/index.ts.html +0 -121
  223. package/coverage/src/manager/diagnostic.ts.html +0 -442
  224. package/coverage/src/manager/index.html +0 -131
  225. package/coverage/src/manager/stepRecorder.ts.html +0 -457
  226. package/coverage/src/natural/genNaturalTS.ts.html +0 -355
  227. package/coverage/src/natural/index.html +0 -161
  228. package/coverage/src/natural/index.ts.html +0 -91
  229. package/coverage/src/natural/naslStdlibMap.ts.html +0 -157
  230. package/coverage/src/natural/transformTSCode.ts.html +0 -2647
  231. package/coverage/src/sentry/index.html +0 -116
  232. package/coverage/src/sentry/index.ts.html +0 -676
  233. package/coverage/src/server/createUiTs.ts.html +0 -910
  234. package/coverage/src/server/entity2LogicNamespace.ts.html +0 -1294
  235. package/coverage/src/server/event.js.html +0 -526
  236. package/coverage/src/server/extendBaseNode.ts.html +0 -1762
  237. package/coverage/src/server/formatTsUtils.ts.html +0 -2689
  238. package/coverage/src/server/getConnector.ts.html +0 -316
  239. package/coverage/src/server/getExtensionModules.ts.html +0 -178
  240. package/coverage/src/server/getFunctions.ts.html +0 -133
  241. package/coverage/src/server/getInterfaces.ts.html +0 -229
  242. package/coverage/src/server/getLogging.ts.html +0 -100
  243. package/coverage/src/server/getLogics.ts.html +0 -1363
  244. package/coverage/src/server/getMemberIdentifier.ts.html +0 -1561
  245. package/coverage/src/server/getProcessComponents.ts.html +0 -112
  246. package/coverage/src/server/getProcesses.ts.html +0 -2023
  247. package/coverage/src/server/getValidates.ts.html +0 -115
  248. package/coverage/src/server/index.html +0 -401
  249. package/coverage/src/server/index.ts.html +0 -229
  250. package/coverage/src/server/naslServer.ts.html +0 -14401
  251. package/coverage/src/server/naslStdlibMap.ts.html +0 -241
  252. package/coverage/src/server/process2LogicNamespace.ts.html +0 -454
  253. package/coverage/src/server/translator.ts.html +0 -2566
  254. package/coverage/src/service/creator/add.configs.js.html +0 -379
  255. package/coverage/src/service/creator/errHandles.js.html +0 -322
  256. package/coverage/src/service/creator/index.html +0 -146
  257. package/coverage/src/service/creator/index.js.html +0 -352
  258. package/coverage/src/service/datasource/api.js.html +0 -118
  259. package/coverage/src/service/datasource/index.html +0 -131
  260. package/coverage/src/service/datasource/index.js.html +0 -103
  261. package/coverage/src/service/logic/api.js.html +0 -109
  262. package/coverage/src/service/logic/index.html +0 -131
  263. package/coverage/src/service/logic/index.js.html +0 -103
  264. package/coverage/src/service/storage/api.js.html +0 -202
  265. package/coverage/src/service/storage/index.html +0 -206
  266. package/coverage/src/service/storage/index.ts.html +0 -103
  267. package/coverage/src/service/storage/init.ts.html +0 -2761
  268. package/coverage/src/service/storage/jsoner.ts.html +0 -502
  269. package/coverage/src/service/storage/map.ts.html +0 -256
  270. package/coverage/src/service/storage/service.ts.html +0 -331
  271. package/coverage/src/service/storage/storagePoint.ts.html +0 -304
  272. package/coverage/src/templator/genCallComponentLogic.ts.html +0 -163
  273. package/coverage/src/templator/genCreateBlock.ts.html +0 -1093
  274. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +0 -1609
  275. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +0 -2254
  276. package/coverage/src/templator/genEditTableBlock.ts.html +0 -955
  277. package/coverage/src/templator/genEnumSelectBlock.ts.html +0 -178
  278. package/coverage/src/templator/genGetBlock.ts.html +0 -451
  279. package/coverage/src/templator/genGridViewBlock.ts.html +0 -1114
  280. package/coverage/src/templator/genListViewBlock.ts.html +0 -475
  281. package/coverage/src/templator/genQueryComponent.ts.html +0 -1207
  282. package/coverage/src/templator/genSelectBlock.ts.html +0 -1243
  283. package/coverage/src/templator/genTableBlock.ts.html +0 -910
  284. package/coverage/src/templator/genUpdateBlock.ts.html +0 -1192
  285. package/coverage/src/templator/index.html +0 -326
  286. package/coverage/src/templator/index.ts.html +0 -154
  287. package/coverage/src/templator/utils.ts.html +0 -1861
  288. package/coverage/src/translator/constant.ts.html +0 -106
  289. package/coverage/src/translator/index.html +0 -146
  290. package/coverage/src/translator/index.ts.html +0 -94
  291. package/coverage/src/translator/utils.ts.html +0 -436
  292. package/coverage/src/utils/cookie.ts.html +0 -265
  293. package/coverage/src/utils/env.ts.html +0 -91
  294. package/coverage/src/utils/index.html +0 -206
  295. package/coverage/src/utils/index.ts.html +0 -1429
  296. package/coverage/src/utils/logger.ts.html +0 -145
  297. package/coverage/src/utils/sortTsString.ts.html +0 -187
  298. package/coverage/src/utils/string.ts.html +0 -544
  299. package/coverage/src/utils/time-slicing/controller.ts.html +0 -1144
  300. package/coverage/src/utils/time-slicing/index.html +0 -221
  301. package/coverage/src/utils/time-slicing/index.ts.html +0 -103
  302. package/coverage/src/utils/time-slicing/page-state.ts.html +0 -121
  303. package/coverage/src/utils/time-slicing/performance.ts.html +0 -253
  304. package/coverage/src/utils/time-slicing/runner.ts.html +0 -241
  305. package/coverage/src/utils/time-slicing/tool.ts.html +0 -220
  306. package/coverage/src/utils/time-slicing/utils.ts.html +0 -355
  307. package/coverage/src/utils/time-slicing/wrapper.ts.html +0 -259
  308. package/coverage/src/utils/time-slicing.ts.html +0 -418
  309. package/coverage/src/utils/traverse.ts.html +0 -568
  310. package/coverage/src/utils/types.ts.html +0 -133
  311. package/coverage/src/utils/window.ts.html +0 -112
@@ -1,2566 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/server/translator.ts</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">src/server</a> translator.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">4.51% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>14/310</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/314</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">5% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/20</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">5% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>14/280</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
894
- <span class="cline-any cline-yes">1x</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-yes">1x</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-yes">1x</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-no">&nbsp;</span>
960
- <span class="cline-any cline-no">&nbsp;</span>
961
- <span class="cline-any cline-no">&nbsp;</span>
962
- <span class="cline-any cline-no">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-no">&nbsp;</span>
965
- <span class="cline-any cline-no">&nbsp;</span>
966
- <span class="cline-any cline-no">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-no">&nbsp;</span>
969
- <span class="cline-any cline-no">&nbsp;</span>
970
- <span class="cline-any cline-no">&nbsp;</span>
971
- <span class="cline-any cline-no">&nbsp;</span>
972
- <span class="cline-any cline-no">&nbsp;</span>
973
- <span class="cline-any cline-no">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-no">&nbsp;</span>
977
- <span class="cline-any cline-no">&nbsp;</span>
978
- <span class="cline-any cline-no">&nbsp;</span>
979
- <span class="cline-any cline-no">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-no">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-no">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-no">&nbsp;</span>
987
- <span class="cline-any cline-no">&nbsp;</span>
988
- <span class="cline-any cline-no">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-no">&nbsp;</span>
991
- <span class="cline-any cline-no">&nbsp;</span>
992
- <span class="cline-any cline-no">&nbsp;</span>
993
- <span class="cline-any cline-no">&nbsp;</span>
994
- <span class="cline-any cline-no">&nbsp;</span>
995
- <span class="cline-any cline-no">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-no">&nbsp;</span>
1000
- <span class="cline-any cline-no">&nbsp;</span>
1001
- <span class="cline-any cline-no">&nbsp;</span>
1002
- <span class="cline-any cline-no">&nbsp;</span>
1003
- <span class="cline-any cline-no">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-no">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-no">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-yes">1x</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-no">&nbsp;</span>
1029
- <span class="cline-any cline-no">&nbsp;</span>
1030
- <span class="cline-any cline-no">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-no">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-no">&nbsp;</span>
1037
- <span class="cline-any cline-no">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-no">&nbsp;</span>
1042
- <span class="cline-any cline-no">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-yes">1x</span>
1046
- <span class="cline-any cline-no">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-yes">1x</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-yes">1x</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-neutral">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-neutral">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-neutral">&nbsp;</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-neutral">&nbsp;</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-neutral">&nbsp;</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-neutral">&nbsp;</span>
1230
- <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-neutral">&nbsp;</span>
1234
- <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-neutral">&nbsp;</span>
1240
- <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-neutral">&nbsp;</span>
1243
- <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-neutral">&nbsp;</span>
1247
- <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-neutral">&nbsp;</span>
1260
- <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-neutral">&nbsp;</span>
1262
- <span class="cline-any cline-neutral">&nbsp;</span>
1263
- <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-neutral">&nbsp;</span>
1266
- <span class="cline-any cline-neutral">&nbsp;</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-neutral">&nbsp;</span>
1270
- <span class="cline-any cline-neutral">&nbsp;</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-neutral">&nbsp;</span>
1274
- <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-neutral">&nbsp;</span>
1284
- <span class="cline-any cline-neutral">&nbsp;</span>
1285
- <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-neutral">&nbsp;</span>
1289
- <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-neutral">&nbsp;</span>
1291
- <span class="cline-any cline-neutral">&nbsp;</span>
1292
- <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-neutral">&nbsp;</span>
1294
- <span class="cline-any cline-neutral">&nbsp;</span>
1295
- <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-neutral">&nbsp;</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-yes">1x</span>
1300
- <span class="cline-any cline-neutral">&nbsp;</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-neutral">&nbsp;</span>
1305
- <span class="cline-any cline-neutral">&nbsp;</span>
1306
- <span class="cline-any cline-neutral">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-neutral">&nbsp;</span>
1309
- <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-neutral">&nbsp;</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-neutral">&nbsp;</span>
1316
- <span class="cline-any cline-neutral">&nbsp;</span>
1317
- <span class="cline-any cline-neutral">&nbsp;</span>
1318
- <span class="cline-any cline-neutral">&nbsp;</span>
1319
- <span class="cline-any cline-neutral">&nbsp;</span>
1320
- <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-neutral">&nbsp;</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-neutral">&nbsp;</span>
1324
- <span class="cline-any cline-neutral">&nbsp;</span>
1325
- <span class="cline-any cline-neutral">&nbsp;</span>
1326
- <span class="cline-any cline-neutral">&nbsp;</span>
1327
- <span class="cline-any cline-neutral">&nbsp;</span>
1328
- <span class="cline-any cline-neutral">&nbsp;</span>
1329
- <span class="cline-any cline-neutral">&nbsp;</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-neutral">&nbsp;</span>
1332
- <span class="cline-any cline-neutral">&nbsp;</span>
1333
- <span class="cline-any cline-neutral">&nbsp;</span>
1334
- <span class="cline-any cline-neutral">&nbsp;</span>
1335
- <span class="cline-any cline-neutral">&nbsp;</span>
1336
- <span class="cline-any cline-neutral">&nbsp;</span>
1337
- <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-yes">1x</span>
1339
- <span class="cline-any cline-yes">13x</span>
1340
- <span class="cline-any cline-neutral">&nbsp;</span>
1341
- <span class="cline-any cline-neutral">&nbsp;</span>
1342
- <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-neutral">&nbsp;</span>
1344
- <span class="cline-any cline-neutral">&nbsp;</span>
1345
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-no">&nbsp;</span>
1353
- <span class="cline-any cline-neutral">&nbsp;</span>
1354
- <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-no">&nbsp;</span>
1381
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-no">&nbsp;</span>
1390
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-no">&nbsp;</span>
1404
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-no">&nbsp;</span>
1409
- <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1427
- <span class="cline-any cline-no">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-neutral">&nbsp;</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1442
- <span class="cline-any cline-neutral">&nbsp;</span>
1443
- <span class="cline-any cline-no">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-no">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-no">&nbsp;</span>
1471
- <span class="cline-any cline-neutral">&nbsp;</span>
1472
- <span class="cline-any cline-neutral">&nbsp;</span>
1473
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-neutral">&nbsp;</span>
1485
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1492
- <span class="cline-any cline-no">&nbsp;</span>
1493
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1498
- <span class="cline-any cline-neutral">&nbsp;</span>
1499
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1508
- <span class="cline-any cline-no">&nbsp;</span>
1509
- <span class="cline-any cline-neutral">&nbsp;</span>
1510
- <span class="cline-any cline-neutral">&nbsp;</span>
1511
- <span class="cline-any cline-neutral">&nbsp;</span>
1512
- <span class="cline-any cline-neutral">&nbsp;</span>
1513
- <span class="cline-any cline-neutral">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1545
- <span class="cline-any cline-no">&nbsp;</span>
1546
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1550
- <span class="cline-any cline-no">&nbsp;</span>
1551
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1567
- <span class="cline-any cline-no">&nbsp;</span>
1568
- <span class="cline-any cline-neutral">&nbsp;</span>
1569
- <span class="cline-any cline-no">&nbsp;</span>
1570
- <span class="cline-any cline-neutral">&nbsp;</span>
1571
- <span class="cline-any cline-neutral">&nbsp;</span>
1572
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1579
- <span class="cline-any cline-neutral">&nbsp;</span>
1580
- <span class="cline-any cline-neutral">&nbsp;</span>
1581
- <span class="cline-any cline-no">&nbsp;</span>
1582
- <span class="cline-any cline-neutral">&nbsp;</span>
1583
- <span class="cline-any cline-neutral">&nbsp;</span>
1584
- <span class="cline-any cline-neutral">&nbsp;</span>
1585
- <span class="cline-any cline-no">&nbsp;</span>
1586
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1597
- <span class="cline-any cline-neutral">&nbsp;</span>
1598
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1608
- <span class="cline-any cline-neutral">&nbsp;</span>
1609
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1614
- <span class="cline-any cline-neutral">&nbsp;</span>
1615
- <span class="cline-any cline-neutral">&nbsp;</span>
1616
- <span class="cline-any cline-no">&nbsp;</span>
1617
- <span class="cline-any cline-neutral">&nbsp;</span>
1618
- <span class="cline-any cline-neutral">&nbsp;</span>
1619
- <span class="cline-any cline-neutral">&nbsp;</span>
1620
- <span class="cline-any cline-no">&nbsp;</span>
1621
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1625
- <span class="cline-any cline-neutral">&nbsp;</span>
1626
- <span class="cline-any cline-neutral">&nbsp;</span>
1627
- <span class="cline-any cline-neutral">&nbsp;</span>
1628
- <span class="cline-any cline-neutral">&nbsp;</span>
1629
- <span class="cline-any cline-neutral">&nbsp;</span>
1630
- <span class="cline-any cline-neutral">&nbsp;</span>
1631
- <span class="cline-any cline-neutral">&nbsp;</span>
1632
- <span class="cline-any cline-neutral">&nbsp;</span>
1633
- <span class="cline-any cline-neutral">&nbsp;</span>
1634
- <span class="cline-any cline-neutral">&nbsp;</span>
1635
- <span class="cline-any cline-neutral">&nbsp;</span>
1636
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1644
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1653
- <span class="cline-any cline-no">&nbsp;</span>
1654
- <span class="cline-any cline-neutral">&nbsp;</span>
1655
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1669
- <span class="cline-any cline-no">&nbsp;</span>
1670
- <span class="cline-any cline-neutral">&nbsp;</span>
1671
- <span class="cline-any cline-neutral">&nbsp;</span>
1672
- <span class="cline-any cline-no">&nbsp;</span>
1673
- <span class="cline-any cline-neutral">&nbsp;</span>
1674
- <span class="cline-any cline-neutral">&nbsp;</span>
1675
- <span class="cline-any cline-neutral">&nbsp;</span>
1676
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1680
- <span class="cline-any cline-neutral">&nbsp;</span>
1681
- <span class="cline-any cline-no">&nbsp;</span>
1682
- <span class="cline-any cline-neutral">&nbsp;</span>
1683
- <span class="cline-any cline-neutral">&nbsp;</span>
1684
- <span class="cline-any cline-neutral">&nbsp;</span>
1685
- <span class="cline-any cline-neutral">&nbsp;</span>
1686
- <span class="cline-any cline-neutral">&nbsp;</span>
1687
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1695
- <span class="cline-any cline-no">&nbsp;</span>
1696
- <span class="cline-any cline-neutral">&nbsp;</span>
1697
- <span class="cline-any cline-neutral">&nbsp;</span>
1698
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1715
- <span class="cline-any cline-neutral">&nbsp;</span>
1716
- <span class="cline-any cline-neutral">&nbsp;</span>
1717
- <span class="cline-any cline-neutral">&nbsp;</span>
1718
- <span class="cline-any cline-no">&nbsp;</span>
1719
- <span class="cline-any cline-neutral">&nbsp;</span>
1720
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { getDisplayString2Type } from './naslServer';
1721
- import {
1722
- Module,
1723
- BaseNode,
1724
- App,
1725
- Structure,
1726
- Logic,
1727
- Entity,
1728
- TypeAnnotation,
1729
- MemberExpression,
1730
- EntityProperty,
1731
- EntityIndex,
1732
- View,
1733
- Destination,
1734
- Enum,
1735
- BindEvent,
1736
- QueryFromExpression,
1737
- QueryJoinExpression,
1738
- QueryFieldExpression,
1739
- Identifier,
1740
- CallLogic,
1741
- EnumItem,
1742
- Param,
1743
- Process,
1744
- Interface,
1745
- Argument,
1746
- ViewElement,
1747
- BindAttribute,
1748
- Assignment,
1749
- CallQueryComponent,
1750
- Role,
1751
- Configuration,
1752
- CallInterface,
1753
- Return,
1754
- ProcessElement,
1755
- NullLiteral,
1756
- SwitchCase,
1757
- WhileStatement,
1758
- IfStatement,
1759
- UnaryExpression,
1760
- ForEachStatement,
1761
- CallFunction,
1762
- ProcessOutcome,
1763
- Function,
1764
- Anchor,
1765
- BatchAssignment,
1766
- AnonymousFunction,
1767
- MatchCase,
1768
- OqlQueryComponent,
1769
- NewMap,
1770
- NewList,
1771
- NewComposite,
1772
- ValidationRule,
1773
- } from '../concepts';
1774
- import { SourceMapItem } from '../translator';
1775
- import { Diagnostic } from '../manager/diagnostic';
1776
- import { sortTsString } from '../utils/sortTsString';
1777
- import { getNodeByNodeCallee } from '../automate/engine/utils.js';
1778
- export interface MinRange {
1779
- node: BaseNode;
1780
- item: SourceMapItem;
1781
- }
1782
- &nbsp;
1783
- const mapAstString = new Map();
1784
- &nbsp;
1785
- function <span class="fstat-no" title="function not covered" >transformType(</span>tsType: string): string {
1786
- <span class="cstat-no" title="statement not covered" > if (tsType === 'string' || tsType === 'String') <span class="cstat-no" title="statement not covered" >return '字符串';</span></span>
1787
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'number') <span class="cstat-no" title="statement not covered" >return '数字';</span></span>
1788
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Integer') <span class="cstat-no" title="statement not covered" >return '整数';</span></span>
1789
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Double') <span class="cstat-no" title="statement not covered" >return '小数';</span></span>
1790
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Decimal') <span class="cstat-no" title="statement not covered" >return '小数';</span></span>
1791
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Long') <span class="cstat-no" title="statement not covered" >return '整数';</span></span>
1792
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'DateTime') <span class="cstat-no" title="statement not covered" >return '日期时间';</span></span>
1793
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Date') <span class="cstat-no" title="statement not covered" >return '日期';</span></span>
1794
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Time') <span class="cstat-no" title="statement not covered" >return '时间';</span></span>
1795
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'boolean' || tsType === 'Boolean') <span class="cstat-no" title="statement not covered" >return '布尔值';</span></span>
1796
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'unknown') <span class="cstat-no" title="statement not covered" >return '未知类型';</span></span>
1797
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Enums') <span class="cstat-no" title="statement not covered" >return '枚举';</span></span>
1798
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'views') <span class="cstat-no" title="statement not covered" >return '页面';</span></span>
1799
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'void') <span class="cstat-no" title="statement not covered" >return '无返回值';</span></span>
1800
- else <span class="cstat-no" title="statement not covered" >if (tsType === '__elements') <span class="cstat-no" title="statement not covered" >return '页面元素';</span></span>
1801
- else <span class="cstat-no" title="statement not covered" >if (tsType === '__unknown__') <span class="cstat-no" title="statement not covered" >return '无效';</span></span>
1802
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'extensions') <span class="cstat-no" title="statement not covered" >return '拓展模块';</span></span>
1803
- else <span class="cstat-no" title="statement not covered" >if (tsType === 'Promise&lt;void&gt;') <span class="cstat-no" title="statement not covered" >return '未知类型';</span></span>
1804
- else <span class="cstat-no" title="statement not covered" >if ((tsType.startsWith('{') &amp;&amp; tsType.endsWith('}')) || (tsType.startsWith('{') &amp;&amp; tsType.endsWith('...'))) {</span>
1805
- <span class="cstat-no" title="statement not covered" > if (tsType.includes('__name: "AStructure_')) {</span>
1806
- <span class="cstat-no" title="statement not covered" > return tsType.replace(/__name: "AStructure_\w{8}";/g, '');</span>
1807
- }
1808
- <span class="cstat-no" title="statement not covered" > return '当前节点';</span>
1809
- } else <span class="cstat-no" title="statement not covered" >if (tsType.endsWith('[]')) {</span>
1810
- <span class="cstat-no" title="statement not covered" > return `List&lt;${transformType(tsType.slice(0, -2))}&gt;`;</span>
1811
- } else <span class="cstat-no" title="statement not covered" >if (tsType.startsWith('&lt;T extends ') &amp;&amp; tsType.endsWith('&gt;() =&gt; T')) {</span>
1812
- const types = <span class="cstat-no" title="statement not covered" >getDisplayString2Type(tsType);</span>
1813
- let tsStr = <span class="cstat-no" title="statement not covered" >'';</span>
1814
- <span class="cstat-no" title="statement not covered" > types.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, index) =&gt; {</span>
1815
- <span class="cstat-no" title="statement not covered" > tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);</span>
1816
- });
1817
- <span class="cstat-no" title="statement not covered" > return tsStr;</span>
1818
- } else <span class="cstat-no" title="statement not covered" >if (tsType.includes(' &amp; ')) {</span>
1819
- const types = <span class="cstat-no" title="statement not covered" >tsType.split(' &amp; ');</span>
1820
- let tsStr = <span class="cstat-no" title="statement not covered" >'';</span>
1821
- <span class="cstat-no" title="statement not covered" > types.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, index) =&gt; {</span>
1822
- <span class="cstat-no" title="statement not covered" > tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);</span>
1823
- });
1824
- <span class="cstat-no" title="statement not covered" > return tsStr;</span>
1825
- } else <span class="cstat-no" title="statement not covered" >if (tsType.includes(' | ')) {</span>
1826
- const types = <span class="cstat-no" title="statement not covered" >tsType.split(' | ');</span>
1827
- let tsStr = <span class="cstat-no" title="statement not covered" >'';</span>
1828
- <span class="cstat-no" title="statement not covered" > types.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, index) =&gt; {</span>
1829
- const newItem = <span class="cstat-no" title="statement not covered" >item.replace(/[a-zA-Z_]+/g, <span class="fstat-no" title="function not covered" >(t</span>ext) =&gt; <span class="cstat-no" title="statement not covered" >transformType(text))</span>;</span>
1830
- <span class="cstat-no" title="statement not covered" > tsStr += index === 0 ? newItem : ' 或 ' + newItem;</span>
1831
- });
1832
- <span class="cstat-no" title="statement not covered" > return tsStr;</span>
1833
- } else {
1834
- <span class="cstat-no" title="statement not covered" > return tsType;</span>
1835
- }
1836
- }
1837
- &nbsp;
1838
- const NAMESPACE_CONCEPT_MAP: Record&lt;string, string&gt; = {
1839
- entities: '实体',
1840
- structures: '数据结构',
1841
- enums: '枚举',
1842
- logics: '逻辑',
1843
- interfaces: '接口',
1844
- views: '页面',
1845
- elements: '元素',
1846
- processes: '流程',
1847
- roles: '角色',
1848
- extensions: '扩展模块',
1849
- apis: '接口应用',
1850
- components: '扩展组件',
1851
- properties: '配置参数',
1852
- };
1853
- &nbsp;
1854
- function <span class="fstat-no" title="function not covered" >transformNamespace(</span>tsNamespace: string): string {
1855
- <span class="cstat-no" title="statement not covered" > for (const key in NAMESPACE_CONCEPT_MAP) {</span>
1856
- const value = <span class="cstat-no" title="statement not covered" >NAMESPACE_CONCEPT_MAP[key];</span>
1857
- <span class="cstat-no" title="statement not covered" > if (tsNamespace.endsWith(key)) <span class="cstat-no" title="statement not covered" >return value;</span></span>
1858
- }
1859
- <span class="cstat-no" title="statement not covered" > return tsNamespace;</span>
1860
- }
1861
- &nbsp;
1862
- function <span class="fstat-no" title="function not covered" >transformMethod(</span>tsMethod: string): string {
1863
- <span class="cstat-no" title="statement not covered" > if (tsMethod === 'forEach') <span class="cstat-no" title="statement not covered" >return 'ForEach';</span></span>
1864
- else <span class="cstat-no" title="statement not covered" >return tsMethod;</span>
1865
- }
1866
- &nbsp;
1867
- function <span class="fstat-no" title="function not covered" >transformIdentifier(</span>identifier: string): string {
1868
- <span class="cstat-no" title="statement not covered" > if (NAMESPACE_CONCEPT_MAP[identifier]) <span class="cstat-no" title="statement not covered" >return NAMESPACE_CONCEPT_MAP[identifier];</span></span>
1869
- else <span class="cstat-no" title="statement not covered" >return ` ${transformType(identifier)} 上的`;</span>
1870
- }
1871
- &nbsp;
1872
- export function <span class="fstat-no" title="function not covered" >outOriginalvalue(</span>value: string) {
1873
- <span class="cstat-no" title="statement not covered" > return value;</span>
1874
- }
1875
- const TS_RULES_TYPE_INCONSISTENCY: Array&lt;RegExp&gt; = [
1876
- /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
1877
- /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
1878
- /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
1879
- /Type '(.+?)' is not assignable to type '(.+?)'/,
1880
- /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
1881
- /Type '(.+?)' is missing the following properties from type '(.+?)'/,
1882
- ];
1883
- &nbsp;
1884
- const TS_RULES: Array&lt;{
1885
- re: RegExp;
1886
- result: string;
1887
- transforms?: Array&lt;(str: string) =&gt; string&gt;;
1888
- }&gt; = [
1889
- {
1890
- re: /Property '(FrontEnd|BackEnd)(.+?)' is private and only accessible within/,
1891
- result: '找不到配置参数$2',
1892
- transforms: [transformType, transformType],
1893
- },
1894
- {
1895
- re: /Object literal may only specify known properties, and '(.+?)' does not exist in type/,
1896
- result: '当前参数$1,不可用。',
1897
- transforms: [transformType],
1898
- },
1899
- {
1900
- re: /Object literal may only specify known properties, but '(.+?)' does not exist in type/,
1901
- result: '当前参数$1,不可用。',
1902
- transforms: [transformType],
1903
- },
1904
- {
1905
- re: /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
1906
- result: '参数类型不一致!传入类型:$1,接收类型:$2。',
1907
- transforms: [transformType, transformType],
1908
- },
1909
- {
1910
- re: /Type '(.+?)' is not assignable to type '(.+?)'/,
1911
- result: '左右参数类型不一致!左边类型:$2,右边类型:$1。',
1912
- transforms: [transformType, transformType],
1913
- },
1914
- {
1915
- re: /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
1916
- result: '参数类型不一致!传入类型:$1,接收类型:$2。',
1917
- transforms: [transformType, transformType],
1918
- },
1919
- {
1920
- re: /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
1921
- result: '左右参数类型不一致!左边类型:$2,右边类型:$3。',
1922
- transforms: [transformType, transformType, transformType],
1923
- },
1924
- {
1925
- re: /Type '(.+?)' is missing the following properties from type '(.+?)'/,
1926
- result: '类型不一致!左边类型:$2,右边类型:$1。',
1927
- transforms: [transformType, transformType],
1928
- },
1929
- {
1930
- re: /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
1931
- result: '类型不一致!左边类型:$3,右边类型:$2。',
1932
- transforms: [outOriginalvalue, transformType, transformType],
1933
- },
1934
- {
1935
- re: /object literal cannot have multiple properties with the same name/,
1936
- result: '不能具有多个名称相同的属性。',
1937
- },
1938
- {
1939
- re: /Invalid character/,
1940
- result: '无效的字符',
1941
- },
1942
- {
1943
- // This expression is not callable.\n Type 'Entity1' has no call signatures.
1944
- re: /This expression is not callable.\s*Type '(.+?)' has no call signatures/,
1945
- result: '此表达式不可用。',
1946
- },
1947
- {
1948
- re: /Expression expected/,
1949
- result: '表达式不能为空。',
1950
- },
1951
- {
1952
- re: /Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'/,
1953
- result: '表达式不能为空。',
1954
- },
1955
- {
1956
- re: /Cannot find name '__(?:FRONTENDVARIABLES)__'/,
1957
- result: '前端全局变量:不可在非页面下使用。',
1958
- },
1959
- {
1960
- re: /Cannot find name '__(?:QueryFieldExpression)__'/,
1961
- result: '数据查询:实体属性不能为空。',
1962
- },
1963
- {
1964
- re: /Cannot find name '__(?:WHERE_MULTIPLE_CONDITION)__'/,
1965
- result: '数据查询:筛选条件不能有多个表达式。',
1966
- },
1967
- {
1968
- re: /Cannot find name '__(?:HAVING_MULTIPLE_CONDITION)__'/,
1969
- result: '数据查询:聚合属性过滤不能有多个表达式。',
1970
- },
1971
- {
1972
- re: /Cannot find name '__(?:EMPTY_AGGREGATE_NAME)__'/,
1973
- result: '数据查询:聚合函数名称不能为空。',
1974
- },
1975
- {
1976
- re: /Cannot find name '__(?:EMPTY_AGGREGATE_ALIAS)__'/,
1977
- result: '数据查询:聚合函数别名不能为空。',
1978
- },
1979
- {
1980
- re: /Cannot find name '__(?:EMPTY_GROUP_BY_NAME)__'/,
1981
- result: '数据查询:分组属性不能为空。',
1982
- },
1983
- {
1984
- re: /Cannot find name '__(?:EMPTY_GROUP_BY_ALIAS)__'/,
1985
- result: '分组属性别名不能为空。',
1986
- },
1987
- {
1988
- re: /Cannot find name '__(?:SQL_GRAMMAR_ERROR)__'/,
1989
- result: 'SQL查询:语句可能有异常。',
1990
- },
1991
- {
1992
- re: /Cannot find name '__(?:OQL_GRAMMAR_ERROR)__'/,
1993
- result: 'SQL查询:语句可能有异常。',
1994
- },
1995
- {
1996
- re: /Cannot find name '__(?:OQL_ALIAS_WARNING)__'/,
1997
- result: 'SQL查询:别名不符合规范。',
1998
- },
1999
- {
2000
- re: /Cannot find name '__(?:OQL_EMPTY_ERROR)__'/,
2001
- result: 'SQL查询:语句不能为空。',
2002
- },
2003
- {
2004
- re: /Cannot find name '__(?:NO_SELECT_TYPE)__'/,
2005
- result: '未选择返回数据类型',
2006
- },
2007
- {
2008
- re: /'_unsupported_syntax_lcap'/,
2009
- result: 'SQL查询:不支持的使用方式',
2010
- },
2011
- {
2012
- re: /Cannot find name '__UsersEmpty__'./,
2013
- result: '任务完成人为空',
2014
- },
2015
- {
2016
- re: /Cannot find name '__assignmentLineEmpty__'./,
2017
- result: '批量赋值没有连线',
2018
- },
2019
- {
2020
- re: /Cannot find name '__ValidationRule__'./,
2021
- result: '校验规则不能为空',
2022
- },
2023
- {
2024
- re: /No value exists in scope for the shorthand property '__(?:IDENTIFIER|LEFT|RIGHT)__'. Either declare one or provide an initializer./,
2025
- result: '用户任务未关联页面',
2026
- },
2027
- {
2028
- re: /No value exists in scope for the shorthand property '__(?:outOfProcess)__'. Either declare one or provide an initializer./,
2029
- result: '节点未关联到流程图',
2030
- },
2031
- {
2032
- re: /'(.+?)' has no exported member(?: named)? '(.+?)'/,
2033
- result: '找不到接口$1 $2。',
2034
- transforms: [transformNamespace, transformType],
2035
- },
2036
- {
2037
- re: /Unreachable code detected\./,
2038
- result: '逻辑中有未使用的。',
2039
- },
2040
- {
2041
- re: /Property '__slice' does not exist on type '(.+?)'/,
2042
- result: 'ForEach:循环列表:参数类型不匹配!所需类型:数组、集合等,提供类型:$1',
2043
- transforms: [transformType],
2044
- },
2045
- {
2046
- re: /Property '(.+?)' does not exist on type 'typeof (.+?)'/,
2047
- result: '找不到$2 $1。',
2048
- transforms: [transformMethod, transformIdentifier],
2049
- },
2050
- {
2051
- re: /Property '(.+?)' does not exist on type '(.+?)'/,
2052
- result: '找不到$2 $1。',
2053
- transforms: [transformMethod, transformIdentifier],
2054
- },
2055
- {
2056
- re: /Cannot find name '(.+?)'. Did you mean '(.+?)'\?/,
2057
- result: '找不到 $1。',
2058
- transforms: [outOriginalvalue, outOriginalvalue],
2059
- },
2060
- {
2061
- re: /Expected (.+?) type arguments, but got (.+?)/,
2062
- result: '预期 $1 个类型参数,但传入了 $2 个。',
2063
- transforms: [outOriginalvalue, outOriginalvalue],
2064
- },
2065
- {
2066
- re: /Expected (.+?) arguments, but got (.+?)./,
2067
- result: '预期 $1 个参数,但传入了 $2 个。',
2068
- transforms: [outOriginalvalue, outOriginalvalue],
2069
- },
2070
- {
2071
- re: /The (.+?)-hand side of an arithmetic operation must be of type (.+?). type./,
2072
- result: '表达式错误!',
2073
- transforms: [outOriginalvalue, outOriginalvalue],
2074
- },
2075
- {
2076
- re: /Operator '(.+?)' cannot be applied to types '(.+?)' and '(.+?)'./,
2077
- result: '符号:$1 参数类型不匹配!所需类型:基础类型&gt;$2,提供类型:$3。',
2078
- transforms: [outOriginalvalue, transformType, transformType],
2079
- },
2080
- {
2081
- re: /Object is possibly 'undefined'./,
2082
- result: '所选择的内容未定义。',
2083
- },
2084
- {
2085
- re: /Cannot find name '(.+?)'./,
2086
- result: '所选择的内容 $1 未定义。',
2087
- transforms: [outOriginalvalue],
2088
- },
2089
- {
2090
- re: /Duplicate identifier '(.+?)'./,
2091
- result: '当前内容中有重复的 $1,可能会影响使用。',
2092
- transforms: [outOriginalvalue],
2093
- },
2094
- {
2095
- re: /'__LogicEmpty' is declared but its value is never read./,
2096
- result: '逻辑为空,请编辑内容',
2097
- },
2098
- {
2099
- re: /'__destinationEmpty__' is declared but its value is never read./,
2100
- result: '任务未关联页面',
2101
- },
2102
- {
2103
- re: /'__devConfigValueEmpty' is declared but its value is never read./,
2104
- result: '配置参数开发环境取值未设置',
2105
- },
2106
- {
2107
- re: /'__onlineConfigValueEmpty' is declared but its value is never read./,
2108
- result: '配置参数生产环境取值未设置',
2109
- },
2110
- {
2111
- re: /Variable '(.+?)' implicitly has an 'any' type./,
2112
- result: '$1推导不出类型!请连线或手动设置',
2113
- transforms: [transformType],
2114
- },
2115
- {
2116
- re: /'(.+?)' refers to a value, but is being used as a type here. Did you mean 'typeof (.+?)'?/,
2117
- result: '$1未初始化!请连线',
2118
- transforms: [transformType],
2119
- },
2120
- ];
2121
- &nbsp;
2122
- const POST_RULES: Array&lt;{
2123
- re: RegExp;
2124
- result: string;
2125
- transforms?: Array&lt;(str: string) =&gt; string&gt;;
2126
- }&gt; = [
2127
- {
2128
- re: /__IDENTIFIER__/g,
2129
- result: 'undefined',
2130
- },
2131
- {
2132
- re: /Integer|"Integer"/g,
2133
- result: '整数',
2134
- },
2135
- {
2136
- re: /Long|"Long"/g,
2137
- result: '整数',
2138
- },
2139
- {
2140
- re: /Double|"Double"/g,
2141
- result: '小数',
2142
- },
2143
- {
2144
- re: /Decimal|"Decimal"/g,
2145
- result: '小数',
2146
- },
2147
- {
2148
- re: /String|"String"/g,
2149
- result: '字符串',
2150
- },
2151
- {
2152
- re: /Boolean|"Boolean"/g,
2153
- result: '布尔值',
2154
- },
2155
- {
2156
- re: /never/g,
2157
- result: '未知类型',
2158
- },
2159
- // 匿名数据结构去掉冗余展示 __name: "AStructure_\w{8}"
2160
- {
2161
- re: /__name: "AStructure_\w{8}";/g,
2162
- result: '',
2163
- },
2164
- ];
2165
- Object.keys(NAMESPACE_CONCEPT_MAP).forEach((key) =&gt; {
2166
- POST_RULES.push({
2167
- re: new RegExp(key, 'g'),
2168
- result: NAMESPACE_CONCEPT_MAP[key],
2169
- });
2170
- });
2171
- &nbsp;
2172
- export function <span class="fstat-no" title="function not covered" >translateDiagnosticMessage(</span>message: string) {
2173
- <span class="cstat-no" title="statement not covered" > for (const rule of TS_RULES) {</span>
2174
- const cap = <span class="cstat-no" title="statement not covered" >rule.re.exec(message);</span>
2175
- <span class="cstat-no" title="statement not covered" > if (cap) {</span>
2176
- <span class="cstat-no" title="statement not covered" > return rule.result.replace(/\$(\d+)/g, <span class="fstat-no" title="function not covered" >(m</span>, index) =&gt; <span class="cstat-no" title="statement not covered" >rule.transforms[index - 1](cap[index]))</span>;</span>
2177
- }
2178
- }
2179
- <span class="cstat-no" title="statement not covered" > return message;</span>
2180
- }
2181
- /**
2182
- * 节点和ts 报错结合,转成更精准的ts报错
2183
- * @param minRange
2184
- * @param tsErrorDetail 报错具体信息
2185
- * @returns
2186
- */
2187
- export function <span class="fstat-no" title="function not covered" >naslNodeTranslateMessage(</span>minRange: MinRange, tsErrorDetail: Diagnostic) {
2188
- const text = <span class="cstat-no" title="statement not covered" >tsErrorDetail?.originalDiagnostic?.text;</span>
2189
- let node = <span class="cstat-no" title="statement not covered" >minRange?.node;</span>
2190
- const logicAncestor = <span class="cstat-no" title="statement not covered" >node.getAncestor('Logic') || ({} as any);</span>
2191
- const { parentNode = <span class="branch-0 cbranch-no" title="branch not covered" >{ concept: '' } </span>} = <span class="cstat-no" title="statement not covered" >logicAncestor;</span>
2192
- const isFELogic = <span class="cstat-no" title="statement not covered" >['BindEvent', 'View'].includes(parentNode.concept);</span>
2193
- &nbsp;
2194
- // 有一些节点报错信息不向外暴露,缺失一些原生标签等等的展示
2195
- <span class="cstat-no" title="statement not covered" > if (node instanceof View || node instanceof ViewElement) {</span>
2196
- <span class="cstat-no" title="statement not covered" > if (text.startsWith(`'nasl.ui' has no exported member named `)) {</span>
2197
- <span class="cstat-no" title="statement not covered" > return null;</span>
2198
- } else <span class="cstat-no" title="statement not covered" >if (text.startsWith(`Property '`) &amp;&amp; text.includes(`does not exist on type 'typeof ui'.`)) {</span>
2199
- <span class="cstat-no" title="statement not covered" > return null;</span>
2200
- } else <span class="cstat-no" title="statement not covered" >if (text.startsWith(`Namespace 'nasl.ui' has no exported member `)) {</span>
2201
- <span class="cstat-no" title="statement not covered" > return null;</span>
2202
- } else <span class="cstat-no" title="statement not covered" >if (text.startsWith(`Function expression, which lacks return-type annotation, implicitly has an 'any[]' return type.`)) {</span>
2203
- <span class="cstat-no" title="statement not covered" > return null;</span>
2204
- }
2205
- }
2206
- // 处理bindevent参数没传递的报错
2207
- <span class="cstat-no" title="statement not covered" > if (/Expected (.+?) arguments, but got (.+?)./.exec(text)) {</span>
2208
- // bindevent本身现在就不传参数
2209
- <span class="cstat-no" title="statement not covered" > if (node instanceof BindEvent) {</span>
2210
- <span class="cstat-no" title="statement not covered" > return null;</span>
2211
- }
2212
- &nbsp;
2213
- <span class="cstat-no" title="statement not covered" > if (node instanceof ProcessElement &amp;&amp; (node.isUserTask || node.type === 'AutoTask' || node.type === 'StartNoneEvent')) {</span>
2214
- const reg = <span class="cstat-no" title="statement not covered" >/Expected (.+?) arguments, but got (.+?)./.exec(text);</span>
2215
- let u;
2216
- <span class="cstat-no" title="statement not covered" > switch (node.type) {</span>
2217
- case 'UserTask':
2218
- <span class="cstat-no" title="statement not covered" > u = '用户任务';</span>
2219
- <span class="cstat-no" title="statement not covered" > break;</span>
2220
- case 'AutoTask':
2221
- <span class="cstat-no" title="statement not covered" > u = '自动任务';</span>
2222
- <span class="cstat-no" title="statement not covered" > break;</span>
2223
- case 'ApprovalTask':
2224
- <span class="cstat-no" title="statement not covered" > u = '审批任务';</span>
2225
- <span class="cstat-no" title="statement not covered" > break;</span>
2226
- case 'InitiateTask':
2227
- <span class="cstat-no" title="statement not covered" > u = '发起任务';</span>
2228
- <span class="cstat-no" title="statement not covered" > break;</span>
2229
- default:
2230
- <span class="cstat-no" title="statement not covered" > u = '任务';</span>
2231
- }
2232
- <span class="cstat-no" title="statement not covered" > if (reg[2] === '0') {</span>
2233
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `${u}出口顺序流个数不能是0`;</span>
2234
- } else {
2235
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `${u}出口顺序流个数不能大于1`;</span>
2236
- }
2237
- &nbsp;
2238
- <span class="cstat-no" title="statement not covered" > if (node.type === 'StartNoneEvent') {</span>
2239
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `开始节点只能有一个出口顺序流`;</span>
2240
- }
2241
- }
2242
- &nbsp;
2243
- <span class="cstat-no" title="statement not covered" > if (node instanceof ProcessElement &amp;&amp; ['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(node.type)) {</span>
2244
- const reg = <span class="cstat-no" title="statement not covered" >/Expected (.+?) arguments, but got (.+?)./.exec(text);</span>
2245
- let u = <span class="cstat-no" title="statement not covered" >'排他网关';</span>
2246
- <span class="cstat-no" title="statement not covered" > if (node.type === 'ParallelGateway') {</span>
2247
- <span class="cstat-no" title="statement not covered" > u = '并行网关';</span>
2248
- } else <span class="cstat-no" title="statement not covered" >if (node.type === 'InclusiveGateway') {</span>
2249
- <span class="cstat-no" title="statement not covered" > u = '包容网关';</span>
2250
- }
2251
- <span class="cstat-no" title="statement not covered" > if (reg[2] === '0') {</span>
2252
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数不能等于0`;</span>
2253
- } else {
2254
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数同时等于1,该${u}没有意义`;</span>
2255
- }
2256
- }
2257
- }
2258
- &nbsp;
2259
- // 因为缺少参数时候有可能有特殊情况,因为原本少的多了就会找到 callLogic上,
2260
- // 但是只少一个的时候就会找到准确的Argument上 需要特殊处理, ui层就可以统一处理
2261
- <span class="cstat-no" title="statement not covered" > if (/Expected (.+?) arguments, but got (.+?)./.exec(text) &amp;&amp; node.getAncestor('CallLogic')) {</span>
2262
- <span class="cstat-no" title="statement not covered" > node = node.getAncestor('CallLogic');</span>
2263
- }
2264
- // 赋值左右侧类型不一致, 把文字换一下
2265
- <span class="cstat-no" title="statement not covered" > if (/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text)) {</span>
2266
- <span class="cstat-no" title="statement not covered" > if (node instanceof OqlQueryComponent) {</span>
2267
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message</span>
2268
- .replace('参数类型不一致!传入类型:', '类型不一致!传入类型:')
2269
- .replace('接收类型:', '期望类型:');
2270
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof Assignment) {</span>
2271
- // OQL 的返回类型报错需要转换翻译,其内部 SQL 语句的参数类型报错不转换翻译
2272
- <span class="cstat-no" title="statement not covered" > if (node instanceof OqlQueryComponent) {</span>
2273
- <span class="cstat-no" title="statement not covered" > if (node.getCurrentSource().currentSource.start.line + 1 === tsErrorDetail.originalDiagnostic.start.line) {</span>
2274
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message</span>
2275
- .replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:')
2276
- .replace('接收类型:', '左边类型:');
2277
- }
2278
- } else {
2279
- // node = node.getAncestor('CallLogic');
2280
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message</span>
2281
- .replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:')
2282
- .replace('接收类型:', '左边类型:');
2283
- }
2284
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof NewMap) {</span>
2285
- <span class="cstat-no" title="statement not covered" > if (text.includes(`is not assignable to parameter of type 'None'`)) {</span>
2286
- const cap = <span class="cstat-no" title="statement not covered" >/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text);</span>
2287
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message = `参数类型不一致!传入类型:${transformType(</span>
2288
- cap[1]
2289
- )},接收类型:字符串 或 布尔值 或 整数 或 小数`;
2290
- } else <span class="cstat-no" title="statement not covered" >if (text.includes(`parameter of type 'never'`)) {</span>
2291
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '自动推导不出类型!newMap中有未知类型';</span>
2292
- }
2293
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof NewList &amp;&amp; text.includes(`parameter of type 'never'`)) {</span>
2294
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '自动推导不出类型!newList中有未知类型';</span>
2295
- }
2296
- }
2297
- <span class="cstat-no" title="statement not covered" > if (node instanceof Argument || node instanceof Anchor) {</span>
2298
- // if (/Type '(.+?)' is not assignable to type '(.+?)'./.exec(text)) {
2299
- // }
2300
- // Argument在callInterface上的报错放到内部
2301
- <span class="cstat-no" title="statement not covered" > if (node.expression) {</span>
2302
- <span class="cstat-no" title="statement not covered" > node = node.expression;</span>
2303
- }
2304
- }
2305
- &nbsp;
2306
- <span class="cstat-no" title="statement not covered" > if (node instanceof AnonymousFunction) {</span>
2307
- <span class="cstat-no" title="statement not covered" > if (node.body) <span class="cstat-no" title="statement not covered" >node = node.body;</span></span>
2308
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof Function) {</span>
2309
- <span class="cstat-no" title="statement not covered" > if (node.returnExpression) <span class="cstat-no" title="statement not covered" >node = node.returnExpression;</span></span>
2310
- }
2311
- &nbsp;
2312
- // 处理一些复制过来的内容 Identifier或者MemberExpression内容缺失,错误要像上冒
2313
- <span class="cstat-no" title="statement not covered" > if (node instanceof Identifier || node instanceof MemberExpression) {</span>
2314
- <span class="cstat-no" title="statement not covered" > if (node.parentNode instanceof MemberExpression) {</span>
2315
- let parentNode: BaseNode = <span class="cstat-no" title="statement not covered" >node;</span>
2316
- <span class="cstat-no" title="statement not covered" > while (parentNode &amp;&amp; parentNode.parentNode instanceof MemberExpression) {</span>
2317
- <span class="cstat-no" title="statement not covered" > parentNode = parentNode.parentNode;</span>
2318
- }
2319
- <span class="cstat-no" title="statement not covered" > node = parentNode || node;</span>
2320
- &nbsp;
2321
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2322
- <span class="cstat-no" title="statement not covered" > str = (node as any).constructor.nodeTitle + ':' + str;</span>
2323
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2324
- }
2325
- }
2326
- // 类型报错的,需要放到上一级
2327
- <span class="cstat-no" title="statement not covered" > if (/'(.+?)' has no exported member(?: named)? '(.+?)'/.exec(text) || /Property '(.+?)' does not exist on type '(.+?)'./.exec(text)) {</span>
2328
- <span class="cstat-no" title="statement not covered" > if (node instanceof TypeAnnotation) {</span>
2329
- // 变量type的报错放到type本身上
2330
- // node = node.parentNode;
2331
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2332
- <span class="cstat-no" title="statement not covered" > if (node) {</span>
2333
- <span class="cstat-no" title="statement not covered" > str = (node as any).parentNode.constructor.nodeTitle + ':' + str;</span>
2334
- }
2335
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2336
- }
2337
- }
2338
- &nbsp;
2339
- /**
2340
- * 所有问题的报错处理具体信息
2341
- * 转成一个最合理的文案
2342
- */
2343
- <span class="cstat-no" title="statement not covered" > if (/^Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'\.$/.exec(text)) {</span>
2344
- <span class="cstat-no" title="statement not covered" > if (node instanceof IfStatement || node instanceof SwitchCase || node instanceof WhileStatement) {</span>
2345
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = (node as any).constructor.nodeTitle + ':参数不能为空!所需类型:基础类型&gt;布尔值';</span>
2346
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof ForEachStatement) {</span>
2347
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = 'ForEach:结束值:不能为空!所需类型:基础类型&gt;整数';</span>
2348
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof UnaryExpression) {</span>
2349
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '!:参数不能为空!';</span>
2350
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof Assignment) {</span>
2351
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '赋值:参数不能为空!';</span>
2352
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof BatchAssignment) {</span>
2353
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '批量赋值:参数不能为空';</span>
2354
- } else <span class="cstat-no" title="statement not covered" >if ((node instanceof Argument &amp;&amp; node.parentNode instanceof CallInterface) || node instanceof CallInterface) {</span>
2355
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '调用接口:参数不能为空!';</span>
2356
- } else <span class="cstat-no" title="statement not covered" >if ((node instanceof Argument &amp;&amp; node.parentNode instanceof CallFunction) || node instanceof CallFunction) {</span>
2357
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '调用函数:参数不能为空!';</span>
2358
- } else <span class="cstat-no" title="statement not covered" >if ((node instanceof Argument &amp;&amp; node.parentNode instanceof CallLogic) || node instanceof CallLogic) {</span>
2359
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '调用逻辑:参数不能为空!';</span>
2360
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof ProcessOutcome || node instanceof Function || node instanceof MatchCase) {</span>
2361
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = (node as any).constructor.nodeTitle + ':不能为空!';</span>
2362
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof NewMap) {</span>
2363
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = 'Map推导不出类型!请手动设置!';</span>
2364
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof NewList) {</span>
2365
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = 'List推导不出类型!请手动设置!';</span>
2366
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof Argument) {</span>
2367
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2368
- <span class="cstat-no" title="statement not covered" > str = (node.parentNode as any).constructor.nodeTitle + ':' + str;</span>
2369
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2370
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof TypeAnnotation) {</span>
2371
- // 如果是TypeAnnotation 嵌套TypeAnnotation,就往上冒,多是那种T嵌套的
2372
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2373
- // TypeAnnotation要冒泡到最上面
2374
- <span class="cstat-no" title="statement not covered" > while (node.parentNode &amp;&amp; node.parentNode instanceof TypeAnnotation) {</span>
2375
- <span class="cstat-no" title="statement not covered" > node = node.parentNode;</span>
2376
- }
2377
- <span class="cstat-no" title="statement not covered" > str = (node.parentNode as any).constructor.nodeTitle + ':' + str;</span>
2378
- &nbsp;
2379
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2380
- } else <span class="cstat-no" title="statement not covered" >if (node instanceof Identifier) {</span>
2381
- // 根据父级内容推断当前缺少啥
2382
- const identifierToString = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(n</span>ode: Identifier) =&gt; {</span>
2383
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2384
- <span class="cstat-no" title="statement not covered" > if (node.parentNode instanceof Assignment) {</span>
2385
- <span class="cstat-no" title="statement not covered" > str = '赋值:参数不能为空!';</span>
2386
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof Argument &amp;&amp; node.parentNode.parentNode instanceof CallLogic) {</span>
2387
- <span class="cstat-no" title="statement not covered" > str = '调用逻辑:参数不能为空!';</span>
2388
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof ValidationRule) {</span>
2389
- <span class="cstat-no" title="statement not covered" > str = '验证逻辑:验证对象不能为空!';</span>
2390
- } else {
2391
- <span class="cstat-no" title="statement not covered" > str = (node.parentNode as any).constructor.nodeTitle + ':' + str;</span>
2392
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2393
- }
2394
- <span class="cstat-no" title="statement not covered" > return str;</span>
2395
- };
2396
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = identifierToString(node);</span>
2397
- }
2398
- }
2399
- &nbsp;
2400
- <span class="cstat-no" title="statement not covered" > if (/'__UpdateNoProperty__' is declared but its value is never read./.exec(text)) {</span>
2401
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = '局部更新:未选择任何属性';</span>
2402
- const callLogic = <span class="cstat-no" title="statement not covered" >node?.parentNode?.parentNode?.parentNode as CallLogic;</span>
2403
- const bodyArgument = <span class="cstat-no" title="statement not covered" >callLogic?.arguments?.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.keyword === 'body')</span>;</span>
2404
- <span class="cstat-no" title="statement not covered" > node = bodyArgument?.expression;</span>
2405
- }
2406
- &nbsp;
2407
- // 左右类型不一致的,把上级信息带上
2408
- <span class="cstat-no" title="statement not covered" > if (</span>
2409
- /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text) ||
2410
- /^This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap./.exec(text)
2411
- ) {
2412
- <span class="cstat-no" title="statement not covered" > if (node instanceof OqlQueryComponent) {</span>
2413
- // SQL语句:查询字段重复:id
2414
- let cap = <span class="cstat-no" title="statement not covered" >/^Type '(.+?)' is not assignable to type 'true'\./.exec(text);</span>
2415
- <span class="cstat-no" title="statement not covered" > if (cap) {</span>
2416
- const errorMsg = <span class="cstat-no" title="statement not covered" >'SQL查询:查询字段重复:$1'.replace(/\$(\d+)/g, <span class="fstat-no" title="function not covered" >(m</span>, index) =&gt; <span class="cstat-no" title="statement not covered" >transformType(cap[index]))</span>;</span>
2417
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = errorMsg;</span>
2418
- } else {
2419
- <span class="cstat-no" title="statement not covered" > cap = /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text);</span>
2420
- <span class="cstat-no" title="statement not covered" > if (cap) {</span>
2421
- const errorMsg = <span class="cstat-no" title="statement not covered" >'SQL查询:返回类型不一致:选择类型:$2,返回类型:$1'.replace(/\$(\d+)/g, <span class="fstat-no" title="function not covered" >(m</span>, index) =&gt; <span class="cstat-no" title="statement not covered" >transformType(cap[index]))</span>;</span>
2422
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = errorMsg;</span>
2423
- }
2424
- }
2425
- } else {
2426
- let str = <span class="cstat-no" title="statement not covered" >tsErrorDetail.message;</span>
2427
- <span class="cstat-no" title="statement not covered" > str = (node.parentNode as any).constructor.nodeTitle + ':' + str;</span>
2428
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = str;</span>
2429
- <span class="cstat-no" title="statement not covered" > if (node.parentNode instanceof AnonymousFunction) {</span>
2430
- // 匿名函数:左右参数类型不一致!左边类型:布尔值,右边类型:整数。
2431
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message.replace('左右参数', '返回值').replace('左边类型', '接收类型').replace('右边类型', '传入类型');</span>
2432
- } else <span class="cstat-no" title="statement not covered" >if (text === `Type 'void' is not assignable to type 'never'.`) {</span>
2433
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = `${node.name}推导不出类型!请连线或手动设置`;</span>
2434
- }
2435
- }
2436
- }
2437
- <span class="cstat-no" title="statement not covered" > if (/Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/.exec(text)) {</span>
2438
- <span class="cstat-no" title="statement not covered" > if (node.parentNode instanceof NewComposite) {</span>
2439
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message</span>
2440
- .replace('类型不一致', '接收与传入类型不一致')
2441
- .replace('左边类型', '左边接收类型')
2442
- .replace('右边类型', '右边传入类型');
2443
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = node.name + tsErrorDetail.message;</span>
2444
- }
2445
- }
2446
- // 参数类型不一致!
2447
- <span class="cstat-no" title="statement not covered" > if (/^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text)) {</span>
2448
- // match
2449
- <span class="cstat-no" title="statement not covered" > if ((node instanceof TypeAnnotation &amp;&amp; node.parentNode instanceof MatchCase) || node instanceof MatchCase) {</span>
2450
- <span class="cstat-no" title="statement not covered" > return null;</span>
2451
- // ide进行计算
2452
- // const reg = /^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text);
2453
- // if (reg[1] &amp;&amp; reg[2]) {
2454
- // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:' + transformType(reg[2]);
2455
- // if (reg[2] === 'never') {
2456
- // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:无可以接收的类型';
2457
- // }
2458
- // }
2459
- // tsErrorDetail.titleTip = '该类型无法满足条件';
2460
- }
2461
- }
2462
- &nbsp;
2463
- // 左右类型不一致的,把上级信息带上
2464
- <span class="cstat-no" title="statement not covered" > if (/^A type literal property cannot have an initializer./.exec(text)) {</span>
2465
- <span class="cstat-no" title="statement not covered" > if (node instanceof Param) <span class="cstat-no" title="statement not covered" >return null;</span></span>
2466
- }
2467
- <span class="cstat-no" title="statement not covered" > if (/'__LogicEmpty' is declared but its value is never read./.exec(text)) {</span>
2468
- <span class="cstat-no" title="statement not covered" > if (node instanceof Logic) {</span>
2469
- <span class="cstat-no" title="statement not covered" > node.isSmpty = true;</span>
2470
- }
2471
- }
2472
- <span class="cstat-no" title="statement not covered" > if (/Variable '(.+?)' implicitly has an 'any' type./.exec(text) || /Variable '(.+?)' implicitly has an 'any\[\]' type./.exec(text)) {</span>
2473
- <span class="cstat-no" title="statement not covered" > if (node.parentNode instanceof NewComposite) {</span>
2474
- //
2475
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof NewList) {</span>
2476
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');</span>
2477
- } else <span class="cstat-no" title="statement not covered" >if (node.parentNode instanceof NewMap) {</span>
2478
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');</span>
2479
- } else {
2480
- <span class="cstat-no" title="statement not covered" > return;</span>
2481
- }
2482
- }
2483
- <span class="cstat-no" title="statement not covered" > if (checkAStructure_(text)) {</span>
2484
- <span class="cstat-no" title="statement not covered" > return null;</span>
2485
- }
2486
- <span class="cstat-no" title="statement not covered" > for (const rule of POST_RULES) {</span>
2487
- <span class="cstat-no" title="statement not covered" > if (rule.re.test(tsErrorDetail.message)) {</span>
2488
- <span class="cstat-no" title="statement not covered" > tsErrorDetail.message = tsErrorDetail.message.replace(rule.re, <span class="fstat-no" title="function not covered" >(v</span>alue, index, oldStr) =&gt; {</span>
2489
- // 处理匹配到的值的左右的内容,是不是还是字母,要是字母就原样输出,防止展示问题
2490
- <span class="cstat-no" title="statement not covered" > try {</span>
2491
- const leftCode = <span class="cstat-no" title="statement not covered" >index - 1 &lt; 0 ? '' : oldStr[index - 1];</span>
2492
- const rightCode = <span class="cstat-no" title="statement not covered" >oldStr[index + value.length] || '';</span>
2493
- <span class="cstat-no" title="statement not covered" > if (/^[A-Za-z]+$/.test(leftCode) || /^[A-Za-z]+$/.test(rightCode)) {</span>
2494
- <span class="cstat-no" title="statement not covered" > return value;</span>
2495
- } else {
2496
- <span class="cstat-no" title="statement not covered" > return rule.result;</span>
2497
- }
2498
- } catch (err) {
2499
- <span class="cstat-no" title="statement not covered" > return value;</span>
2500
- }
2501
- });
2502
- }
2503
- }
2504
- <span class="cstat-no" title="statement not covered" > if (node &amp;&amp; tsErrorDetail) {</span>
2505
- <span class="cstat-no" title="statement not covered" > node.tsErrorDetail = tsErrorDetail;</span>
2506
- }
2507
- &nbsp;
2508
- <span class="cstat-no" title="statement not covered" > return {</span>
2509
- node,
2510
- ...tsErrorDetail,
2511
- };
2512
- }
2513
- &nbsp;
2514
- export function <span class="fstat-no" title="function not covered" >checkAStructure_(</span>errorText: string) {
2515
- const index = <span class="cstat-no" title="statement not covered" >TS_RULES_TYPE_INCONSISTENCY.findIndex(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.exec(errorText))</span>;</span>
2516
- <span class="cstat-no" title="statement not covered" > if (index !== -1) {</span>
2517
- const rule = <span class="cstat-no" title="statement not covered" >TS_RULES_TYPE_INCONSISTENCY[index];</span>
2518
- const cap = <span class="cstat-no" title="statement not covered" >rule.exec(errorText);</span>
2519
- <span class="cstat-no" title="statement not covered" > if (rule === TS_RULES_TYPE_INCONSISTENCY[0] || rule === TS_RULES_TYPE_INCONSISTENCY[1]) {</span>
2520
- <span class="cstat-no" title="statement not covered" > cap.splice(1, 1);</span>
2521
- }
2522
- <span class="cstat-no" title="statement not covered" > if (</span>
2523
- cap[1].includes('__name: "AStructure_') &amp;&amp;
2524
- cap[2].includes('__name: "AStructure_')
2525
- ) {
2526
- const x = <span class="cstat-no" title="statement not covered" >sortTsString(transformType(cap[1]));</span>
2527
- const y = <span class="cstat-no" title="statement not covered" >sortTsString(transformType(cap[2]));</span>
2528
- <span class="cstat-no" title="statement not covered" > if (x === y) {</span>
2529
- <span class="cstat-no" title="statement not covered" > return true;</span>
2530
- } else <span class="cstat-no" title="statement not covered" >if (mapAstString.get(x) === y || mapAstString.get(y) === x) {</span>
2531
- <span class="cstat-no" title="statement not covered" > return true;</span>
2532
- } else {
2533
- const regex = <span class="cstat-no" title="statement not covered" >/Type '"AStructure_(.*)' is not assignable to type '"AStructure_(.*)'/;</span>
2534
- const nameError = <span class="cstat-no" title="statement not covered" >regex.exec(errorText);</span>
2535
- const length1 = <span class="cstat-no" title="statement not covered" >x.match(/:/g) ? x.match(/:/g).length : -1;</span>
2536
- const length2 = <span class="cstat-no" title="statement not covered" >y.match(/:/g) ? y.match(/:/g).length : -2;</span>
2537
- <span class="cstat-no" title="statement not covered" > if (nameError &amp;&amp; length1 === length2) {</span>
2538
- <span class="cstat-no" title="statement not covered" > mapAstString.set(x, y);</span>
2539
- <span class="cstat-no" title="statement not covered" > mapAstString.set(y, x);</span>
2540
- <span class="cstat-no" title="statement not covered" > return true;</span>
2541
- }
2542
- }
2543
- }
2544
- }
2545
- <span class="cstat-no" title="statement not covered" > return false;</span>
2546
- }
2547
- &nbsp;</pre></td></tr></table></pre>
2548
-
2549
- <div class='push'></div><!-- for sticky footer -->
2550
- </div><!-- /wrapper -->
2551
- <div class='footer quiet pad2 space-top1 center small'>
2552
- Code coverage generated by
2553
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2554
- at 2023-10-18T11:36:07.885Z
2555
- </div>
2556
- <script src="../../prettify.js"></script>
2557
- <script>
2558
- window.onload = function () {
2559
- prettyPrint();
2560
- };
2561
- </script>
2562
- <script src="../../sorter.js"></script>
2563
- <script src="../../block-navigation.js"></script>
2564
- </body>
2565
- </html>
2566
-