@lcap/nasl 3.3.3-beta.3 → 3.3.3-beta.5

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 (332) hide show
  1. package/.nyc_output/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
  2. package/.nyc_output/processinfo/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +446 -0
  8. package/coverage/prettify.css +1 -0
  9. package/coverage/prettify.js +2 -0
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +196 -0
  12. package/coverage/src/automate/engine/index.html +116 -0
  13. package/coverage/src/automate/engine/utils.js.html +1414 -0
  14. package/coverage/src/bak/index.html +116 -0
  15. package/coverage/src/bak/translator.js.html +619 -0
  16. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +175 -0
  17. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +169 -0
  18. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1243 -0
  19. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +145 -0
  20. package/coverage/src/breakpoint/generator/index.html +176 -0
  21. package/coverage/src/breakpoint/generator/index.ts.html +508 -0
  22. package/coverage/src/breakpoint/index.html +116 -0
  23. package/coverage/src/breakpoint/index.ts.html +94 -0
  24. package/coverage/src/breakpoint/shared/constants.ts.html +430 -0
  25. package/coverage/src/breakpoint/shared/index.html +176 -0
  26. package/coverage/src/breakpoint/shared/index.ts.html +94 -0
  27. package/coverage/src/breakpoint/shared/operations.ts.html +160 -0
  28. package/coverage/src/breakpoint/shared/socket.ts.html +1225 -0
  29. package/coverage/src/breakpoint/shared/utils.ts.html +961 -0
  30. package/coverage/src/breakpoint/store/core.ts.html +1600 -0
  31. package/coverage/src/breakpoint/store/dock.ts.html +583 -0
  32. package/coverage/src/breakpoint/store/index.html +146 -0
  33. package/coverage/src/breakpoint/store/index.ts.html +91 -0
  34. package/coverage/src/common/BaseNode.ts.html +3868 -0
  35. package/coverage/src/common/Command.ts.html +310 -0
  36. package/coverage/src/common/EventEmitter.ts.html +370 -0
  37. package/coverage/src/common/Messager.ts.html +820 -0
  38. package/coverage/src/common/asyncFuncMap.ts.html +127 -0
  39. package/coverage/src/common/index.html +191 -0
  40. package/coverage/src/common/index.ts.html +94 -0
  41. package/coverage/src/concepts/Abort__.ts.html +328 -0
  42. package/coverage/src/concepts/Anchor__.ts.html +604 -0
  43. package/coverage/src/concepts/AnonymousFunction__.ts.html +1951 -0
  44. package/coverage/src/concepts/App__.ts.html +13252 -0
  45. package/coverage/src/concepts/Argument__.ts.html +910 -0
  46. package/coverage/src/concepts/Assignee__.ts.html +2236 -0
  47. package/coverage/src/concepts/AssignmentLine__.ts.html +409 -0
  48. package/coverage/src/concepts/Assignment__.ts.html +1078 -0
  49. package/coverage/src/concepts/Attribute__.ts.html +733 -0
  50. package/coverage/src/concepts/AuthInterface__.ts.html +367 -0
  51. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +1984 -0
  52. package/coverage/src/concepts/AuthLogic__.ts.html +781 -0
  53. package/coverage/src/concepts/BackendVariable__.ts.html +1483 -0
  54. package/coverage/src/concepts/Backend__.ts.html +1165 -0
  55. package/coverage/src/concepts/BatchAssignment__.ts.html +3250 -0
  56. package/coverage/src/concepts/BinaryExpression__.ts.html +1336 -0
  57. package/coverage/src/concepts/BindAttribute__.ts.html +3679 -0
  58. package/coverage/src/concepts/BindDirective__.ts.html +1921 -0
  59. package/coverage/src/concepts/BindEvent__.ts.html +3232 -0
  60. package/coverage/src/concepts/BindStyle__.ts.html +1612 -0
  61. package/coverage/src/concepts/BooleanLiteral__.ts.html +403 -0
  62. package/coverage/src/concepts/CallAuthInterface__.ts.html +1615 -0
  63. package/coverage/src/concepts/CallConnector__.ts.html +868 -0
  64. package/coverage/src/concepts/CallFunction__.ts.html +1966 -0
  65. package/coverage/src/concepts/CallInterface__.ts.html +2614 -0
  66. package/coverage/src/concepts/CallLogic__.ts.html +4420 -0
  67. package/coverage/src/concepts/CallQueryComponent__.ts.html +5308 -0
  68. package/coverage/src/concepts/Comment__.ts.html +376 -0
  69. package/coverage/src/concepts/CompletionProperty__.ts.html +925 -0
  70. package/coverage/src/concepts/ConfigGroup__.ts.html +1105 -0
  71. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +424 -0
  72. package/coverage/src/concepts/ConfigProperty__.ts.html +1348 -0
  73. package/coverage/src/concepts/Configuration__.ts.html +1027 -0
  74. package/coverage/src/concepts/Connection__.ts.html +1360 -0
  75. package/coverage/src/concepts/ConnectorTrigger__.ts.html +595 -0
  76. package/coverage/src/concepts/Connector__.ts.html +4255 -0
  77. package/coverage/src/concepts/Constant__.ts.html +913 -0
  78. package/coverage/src/concepts/DataSource__.ts.html +1771 -0
  79. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +331 -0
  80. package/coverage/src/concepts/Destination__.ts.html +2563 -0
  81. package/coverage/src/concepts/End__.ts.html +433 -0
  82. package/coverage/src/concepts/EntityIndex__.ts.html +787 -0
  83. package/coverage/src/concepts/EntityProperty__.ts.html +2620 -0
  84. package/coverage/src/concepts/Entity__.ts.html +2872 -0
  85. package/coverage/src/concepts/EnumItem__.ts.html +535 -0
  86. package/coverage/src/concepts/Enum__.ts.html +1192 -0
  87. package/coverage/src/concepts/Event__.ts.html +1084 -0
  88. package/coverage/src/concepts/ExternalDestination__.ts.html +1033 -0
  89. package/coverage/src/concepts/ForEachStatement__.ts.html +1819 -0
  90. package/coverage/src/concepts/FrontendLibrary__.ts.html +1711 -0
  91. package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
  92. package/coverage/src/concepts/Frontend__.ts.html +3961 -0
  93. package/coverage/src/concepts/Function__.ts.html +3514 -0
  94. package/coverage/src/concepts/Identifier__.ts.html +1057 -0
  95. package/coverage/src/concepts/IfStatement__.ts.html +1486 -0
  96. package/coverage/src/concepts/Integration__.ts.html +1228 -0
  97. package/coverage/src/concepts/InterfaceParam__.ts.html +1087 -0
  98. package/coverage/src/concepts/Interface__.ts.html +3394 -0
  99. package/coverage/src/concepts/JSBlock__.ts.html +406 -0
  100. package/coverage/src/concepts/JavaLogic__.ts.html +460 -0
  101. package/coverage/src/concepts/LogicItem__.ts.html +1144 -0
  102. package/coverage/src/concepts/Logic__.ts.html +7078 -0
  103. package/coverage/src/concepts/MatchCase__.ts.html +2641 -0
  104. package/coverage/src/concepts/Match__.ts.html +2323 -0
  105. package/coverage/src/concepts/MemberExpression__.ts.html +1666 -0
  106. package/coverage/src/concepts/MicroApp__.ts.html +436 -0
  107. package/coverage/src/concepts/Module__.ts.html +9220 -0
  108. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1045 -0
  109. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1018 -0
  110. package/coverage/src/concepts/Namespace__.ts.html +7942 -0
  111. package/coverage/src/concepts/NewComposite__.ts.html +4684 -0
  112. package/coverage/src/concepts/NewList__.ts.html +1567 -0
  113. package/coverage/src/concepts/NewMap__.ts.html +2275 -0
  114. package/coverage/src/concepts/New__.ts.html +289 -0
  115. package/coverage/src/concepts/NullLiteral__.ts.html +349 -0
  116. package/coverage/src/concepts/NumericLiteral__.ts.html +661 -0
  117. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1123 -0
  118. package/coverage/src/concepts/OverriddenLogic__.ts.html +6817 -0
  119. package/coverage/src/concepts/Param__.ts.html +1609 -0
  120. package/coverage/src/concepts/Point__.ts.html +331 -0
  121. package/coverage/src/concepts/ProcessComponent__.ts.html +1666 -0
  122. package/coverage/src/concepts/ProcessElement__.ts.html +5884 -0
  123. package/coverage/src/concepts/ProcessOutcome__.ts.html +352 -0
  124. package/coverage/src/concepts/ProcessOutcomes__.ts.html +343 -0
  125. package/coverage/src/concepts/Process__.ts.html +4768 -0
  126. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +568 -0
  127. package/coverage/src/concepts/QueryFieldExpression__.ts.html +583 -0
  128. package/coverage/src/concepts/QueryFromExpression__.ts.html +910 -0
  129. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +559 -0
  130. package/coverage/src/concepts/QueryJoinExpression__.ts.html +1567 -0
  131. package/coverage/src/concepts/QueryLimitExpression__.ts.html +637 -0
  132. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +679 -0
  133. package/coverage/src/concepts/QuerySelectExpression__.ts.html +1714 -0
  134. package/coverage/src/concepts/Rect__.ts.html +373 -0
  135. package/coverage/src/concepts/Return__.ts.html +1258 -0
  136. package/coverage/src/concepts/Role__.ts.html +601 -0
  137. package/coverage/src/concepts/SelectMembers__.ts.html +1246 -0
  138. package/coverage/src/concepts/Slot__.ts.html +628 -0
  139. package/coverage/src/concepts/SqlQueryComponent__.ts.html +964 -0
  140. package/coverage/src/concepts/Start__.ts.html +304 -0
  141. package/coverage/src/concepts/StringInterpolation__.ts.html +1078 -0
  142. package/coverage/src/concepts/StringLiteral__.ts.html +490 -0
  143. package/coverage/src/concepts/StructureProperty__.ts.html +1102 -0
  144. package/coverage/src/concepts/Structure__.ts.html +2053 -0
  145. package/coverage/src/concepts/SwitchCase__.ts.html +1063 -0
  146. package/coverage/src/concepts/SwitchStatement__.ts.html +826 -0
  147. package/coverage/src/concepts/Theme__.ts.html +358 -0
  148. package/coverage/src/concepts/Transactional__.ts.html +628 -0
  149. package/coverage/src/concepts/TriggerEvent__.ts.html +1012 -0
  150. package/coverage/src/concepts/TriggerLauncher__.ts.html +775 -0
  151. package/coverage/src/concepts/TypeAnnotation__.ts.html +3583 -0
  152. package/coverage/src/concepts/TypeParam__.ts.html +301 -0
  153. package/coverage/src/concepts/UnaryExpression__.ts.html +640 -0
  154. package/coverage/src/concepts/Unparsed__.ts.html +382 -0
  155. package/coverage/src/concepts/UseComponent__.ts.html +331 -0
  156. package/coverage/src/concepts/ValidationRule__.ts.html +1840 -0
  157. package/coverage/src/concepts/Variable__.ts.html +1435 -0
  158. package/coverage/src/concepts/ViewBlock__.ts.html +352 -0
  159. package/coverage/src/concepts/ViewComponent__.ts.html +4180 -0
  160. package/coverage/src/concepts/ViewElement__.ts.html +8557 -0
  161. package/coverage/src/concepts/View__.ts.html +8278 -0
  162. package/coverage/src/concepts/WhileStatement__.ts.html +991 -0
  163. package/coverage/src/concepts/basics/stdlib/index.html +341 -0
  164. package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
  165. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
  166. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
  167. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
  168. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
  169. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
  170. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
  171. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
  172. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
  173. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
  174. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
  175. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
  176. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
  177. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6787 -0
  178. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
  179. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
  180. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  181. package/coverage/src/concepts/basics/types/index.html +131 -0
  182. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  183. package/coverage/src/concepts/index.html +1961 -0
  184. package/coverage/src/concepts/index.ts.html +103 -0
  185. package/coverage/src/concepts/index__.ts.html +451 -0
  186. package/coverage/src/config.ts.html +325 -0
  187. package/coverage/src/decorators/index.html +131 -0
  188. package/coverage/src/decorators/index.ts.html +574 -0
  189. package/coverage/src/decorators/promise.ts.html +169 -0
  190. package/coverage/src/eventBus.ts.html +100 -0
  191. package/coverage/src/generator/compileComponent.ts.html +142 -0
  192. package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
  193. package/coverage/src/generator/genHash.ts.html +124 -0
  194. package/coverage/src/generator/genMetaData.ts.html +1042 -0
  195. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  196. package/coverage/src/generator/icestark.ts.html +220 -0
  197. package/coverage/src/generator/index.html +266 -0
  198. package/coverage/src/generator/index.ts.html +106 -0
  199. package/coverage/src/generator/microApp.ts.html +172 -0
  200. package/coverage/src/generator/permission.ts.html +1036 -0
  201. package/coverage/src/generator/qiankun.ts.html +232 -0
  202. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  203. package/coverage/src/index.html +146 -0
  204. package/coverage/src/index.ts.html +121 -0
  205. package/coverage/src/manager/diagnostic.ts.html +442 -0
  206. package/coverage/src/manager/index.html +131 -0
  207. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  208. package/coverage/src/sentry/index.html +116 -0
  209. package/coverage/src/sentry/index.ts.html +676 -0
  210. package/coverage/src/server/createUiTs.ts.html +919 -0
  211. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  212. package/coverage/src/server/event.js.html +526 -0
  213. package/coverage/src/server/extendBaseNode.ts.html +1762 -0
  214. package/coverage/src/server/formatTsUtils.ts.html +2689 -0
  215. package/coverage/src/server/getConnector.ts.html +316 -0
  216. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  217. package/coverage/src/server/getFunctions.ts.html +133 -0
  218. package/coverage/src/server/getInterfaces.ts.html +229 -0
  219. package/coverage/src/server/getLogging.ts.html +100 -0
  220. package/coverage/src/server/getLogics.ts.html +1363 -0
  221. package/coverage/src/server/getMemberIdentifier.ts.html +1606 -0
  222. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  223. package/coverage/src/server/getProcesses.ts.html +2023 -0
  224. package/coverage/src/server/getValidates.ts.html +115 -0
  225. package/coverage/src/server/index.html +401 -0
  226. package/coverage/src/server/index.ts.html +229 -0
  227. package/coverage/src/server/naslServer.ts.html +14290 -0
  228. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  229. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  230. package/coverage/src/server/translator.ts.html +2566 -0
  231. package/coverage/src/service/creator/add.configs.js.html +379 -0
  232. package/coverage/src/service/creator/errHandles.js.html +322 -0
  233. package/coverage/src/service/creator/index.html +146 -0
  234. package/coverage/src/service/creator/index.js.html +352 -0
  235. package/coverage/src/service/datasource/api.js.html +118 -0
  236. package/coverage/src/service/datasource/index.html +131 -0
  237. package/coverage/src/service/datasource/index.js.html +103 -0
  238. package/coverage/src/service/logic/api.js.html +109 -0
  239. package/coverage/src/service/logic/index.html +131 -0
  240. package/coverage/src/service/logic/index.js.html +103 -0
  241. package/coverage/src/service/storage/api.js.html +202 -0
  242. package/coverage/src/service/storage/index.html +206 -0
  243. package/coverage/src/service/storage/index.ts.html +103 -0
  244. package/coverage/src/service/storage/init.ts.html +2710 -0
  245. package/coverage/src/service/storage/jsoner.ts.html +502 -0
  246. package/coverage/src/service/storage/map.ts.html +256 -0
  247. package/coverage/src/service/storage/service.ts.html +331 -0
  248. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  249. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  250. package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
  251. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  252. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
  253. package/coverage/src/templator/genEditTableBlock.ts.html +955 -0
  254. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  255. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  256. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  257. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  258. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  259. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  260. package/coverage/src/templator/genTableBlock.ts.html +910 -0
  261. package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
  262. package/coverage/src/templator/index.html +326 -0
  263. package/coverage/src/templator/index.ts.html +154 -0
  264. package/coverage/src/templator/utils.ts.html +1861 -0
  265. package/coverage/src/translator/constant.ts.html +106 -0
  266. package/coverage/src/translator/index.html +146 -0
  267. package/coverage/src/translator/index.ts.html +94 -0
  268. package/coverage/src/translator/utils.ts.html +397 -0
  269. package/coverage/src/utils/cookie.ts.html +265 -0
  270. package/coverage/src/utils/env.ts.html +91 -0
  271. package/coverage/src/utils/index.html +236 -0
  272. package/coverage/src/utils/index.ts.html +655 -0
  273. package/coverage/src/utils/logger.ts.html +145 -0
  274. package/coverage/src/utils/sortTsString.ts.html +187 -0
  275. package/coverage/src/utils/string.ts.html +400 -0
  276. package/coverage/src/utils/time-slicing.ts.html +412 -0
  277. package/coverage/src/utils/traverse.ts.html +568 -0
  278. package/coverage/src/utils/window.ts.html +112 -0
  279. package/out/common/BaseNode.d.ts +22 -11
  280. package/out/common/BaseNode.js +20 -0
  281. package/out/common/BaseNode.js.map +1 -1
  282. package/out/concepts/BinaryExpression__.js +1 -1
  283. package/out/concepts/BinaryExpression__.js.map +1 -1
  284. package/out/concepts/CallLogic__.js +1 -1
  285. package/out/concepts/CallLogic__.js.map +1 -1
  286. package/out/concepts/CallQueryComponent__.js +4 -13
  287. package/out/concepts/CallQueryComponent__.js.map +1 -1
  288. package/out/concepts/ViewElement__.js +21 -0
  289. package/out/concepts/ViewElement__.js.map +1 -1
  290. package/out/concepts/View__.js +7 -2
  291. package/out/concepts/View__.js.map +1 -1
  292. package/out/concepts/types__.d.ts +2 -3
  293. package/out/decorators/index.d.ts +3 -3
  294. package/out/enums/KEYWORDS.js +2 -0
  295. package/out/enums/KEYWORDS.js.map +1 -1
  296. package/out/generator/genMetaData.js +4 -4
  297. package/out/generator/genMetaData.js.map +1 -1
  298. package/out/generator/genReleaseBody.js +2 -2
  299. package/out/generator/genReleaseBody.js.map +1 -1
  300. package/out/generator/permission.js +1 -1
  301. package/out/generator/permission.js.map +1 -1
  302. package/out/natural/transformTSCode.d.ts +2 -2
  303. package/out/server/formatTsUtils.d.ts +3 -3
  304. package/out/server/getMemberIdentifier.d.ts +4 -4
  305. package/out/server/getMemberIdentifier.js +2 -2
  306. package/out/server/getMemberIdentifier.js.map +1 -1
  307. package/out/server/naslServer.js +2 -2
  308. package/out/server/naslServer.js.map +1 -1
  309. package/out/templator/genCurdMultipleKeyBlock.js +2 -1
  310. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  311. package/out/translator/utils.js +2 -2
  312. package/out/translator/utils.js.map +1 -1
  313. package/package.json +1 -1
  314. package/sandbox/stdlib/nasl.util.ts +142 -142
  315. package/src/common/BaseNode.ts +45 -23
  316. package/src/concepts/BinaryExpression__.ts +1 -1
  317. package/src/concepts/CallLogic__.ts +1 -1
  318. package/src/concepts/CallQueryComponent__.ts +4 -12
  319. package/src/concepts/ViewElement__.ts +19 -0
  320. package/src/concepts/View__.ts +7 -2
  321. package/src/concepts/types__.ts +2 -4
  322. package/src/decorators/index.ts +4 -4
  323. package/src/enums/KEYWORDS.ts +2 -0
  324. package/src/generator/genMetaData.ts +4 -4
  325. package/src/generator/genReleaseBody.ts +2 -2
  326. package/src/generator/permission.ts +4 -4
  327. package/src/server/formatTsUtils.ts +8 -8
  328. package/src/server/getMemberIdentifier.ts +6 -6
  329. package/src/server/naslServer.ts +4 -4
  330. package/src/service/storage/init.ts +2 -2
  331. package/src/templator/genCurdMultipleKeyBlock.ts +2 -1
  332. package/src/translator/utils.ts +5 -6
@@ -0,0 +1,2053 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/concepts/Structure__.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/concepts</a> Structure__.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">13.37% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>23/172</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/87</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">5.26% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/38</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">11.58% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>19/164</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-yes">1x</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-yes">1x</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-yes">1x</span>
734
+ <span class="cline-any cline-yes">1x</span>
735
+ <span class="cline-any cline-yes">1x</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-yes">1x</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-yes">1x</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-neutral">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-yes">1x</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-yes">1x</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-yes">1x</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-yes">55x</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-yes">55x</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-no">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-no">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-yes">55x</span>
806
+ <span class="cline-any cline-yes">55x</span>
807
+ <span class="cline-any cline-yes">55x</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-yes">5x</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
820
+ <span class="cline-any cline-no">&nbsp;</span>
821
+ <span class="cline-any cline-no">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-no">&nbsp;</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
833
+ <span class="cline-any cline-neutral">&nbsp;</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-neutral">&nbsp;</span>
839
+ <span class="cline-any cline-neutral">&nbsp;</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-no">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-no">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-no">&nbsp;</span>
852
+ <span class="cline-any cline-no">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-neutral">&nbsp;</span>
855
+ <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-neutral">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-neutral">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
874
+ <span class="cline-any cline-neutral">&nbsp;</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-neutral">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-no">&nbsp;</span>
881
+ <span class="cline-any cline-no">&nbsp;</span>
882
+ <span class="cline-any cline-neutral">&nbsp;</span>
883
+ <span class="cline-any cline-no">&nbsp;</span>
884
+ <span class="cline-any cline-no">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-neutral">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-neutral">&nbsp;</span>
892
+ <span class="cline-any cline-no">&nbsp;</span>
893
+ <span class="cline-any cline-no">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-no">&nbsp;</span>
904
+ <span class="cline-any cline-no">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
916
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-neutral">&nbsp;</span>
968
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-neutral">&nbsp;</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-neutral">&nbsp;</span>
985
+ <span class="cline-any cline-neutral">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-neutral">&nbsp;</span>
999
+ <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
1002
+ <span class="cline-any cline-neutral">&nbsp;</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-no">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1029
+ <span class="cline-any cline-neutral">&nbsp;</span>
1030
+ <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-neutral">&nbsp;</span>
1032
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1036
+ <span class="cline-any cline-no">&nbsp;</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</span>
1038
+ <span class="cline-any cline-no">&nbsp;</span>
1039
+ <span class="cline-any cline-no">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-neutral">&nbsp;</span>
1047
+ <span class="cline-any cline-no">&nbsp;</span>
1048
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1057
+ <span class="cline-any cline-no">&nbsp;</span>
1058
+ <span class="cline-any cline-no">&nbsp;</span>
1059
+ <span class="cline-any cline-no">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1071
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1094
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1125
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1149
+ <span class="cline-any cline-no">&nbsp;</span>
1150
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1173
+ <span class="cline-any cline-no">&nbsp;</span>
1174
+ <span class="cline-any cline-no">&nbsp;</span>
1175
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1179
+ <span class="cline-any cline-neutral">&nbsp;</span>
1180
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1185
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1193
+ <span class="cline-any cline-no">&nbsp;</span>
1194
+ <span class="cline-any cline-no">&nbsp;</span>
1195
+ <span class="cline-any cline-no">&nbsp;</span>
1196
+ <span class="cline-any cline-no">&nbsp;</span>
1197
+ <span class="cline-any cline-no">&nbsp;</span>
1198
+ <span class="cline-any cline-no">&nbsp;</span>
1199
+ <span class="cline-any cline-no">&nbsp;</span>
1200
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1221
+ <span class="cline-any cline-no">&nbsp;</span>
1222
+ <span class="cline-any cline-no">&nbsp;</span>
1223
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1227
+ <span class="cline-any cline-neutral">&nbsp;</span>
1228
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1233
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1241
+ <span class="cline-any cline-no">&nbsp;</span>
1242
+ <span class="cline-any cline-no">&nbsp;</span>
1243
+ <span class="cline-any cline-no">&nbsp;</span>
1244
+ <span class="cline-any cline-no">&nbsp;</span>
1245
+ <span class="cline-any cline-no">&nbsp;</span>
1246
+ <span class="cline-any cline-no">&nbsp;</span>
1247
+ <span class="cline-any cline-no">&nbsp;</span>
1248
+ <span class="cline-any cline-no">&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-no">&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-no">&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-no">&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-no">&nbsp;</span>
1276
+ <span class="cline-any cline-no">&nbsp;</span>
1277
+ <span class="cline-any cline-no">&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-yes">1x</span>
1283
+ <span class="cline-any cline-no">&nbsp;</span>
1284
+ <span class="cline-any cline-no">&nbsp;</span>
1285
+ <span class="cline-any cline-no">&nbsp;</span>
1286
+ <span class="cline-any cline-no">&nbsp;</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-no">&nbsp;</span>
1290
+ <span class="cline-any cline-neutral">&nbsp;</span>
1291
+ <span class="cline-any cline-no">&nbsp;</span>
1292
+ <span class="cline-any cline-neutral">&nbsp;</span>
1293
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1300
+ <span class="cline-any cline-no">&nbsp;</span>
1301
+ <span class="cline-any cline-no">&nbsp;</span>
1302
+ <span class="cline-any cline-neutral">&nbsp;</span>
1303
+ <span class="cline-any cline-no">&nbsp;</span>
1304
+ <span class="cline-any cline-no">&nbsp;</span>
1305
+ <span class="cline-any cline-no">&nbsp;</span>
1306
+ <span class="cline-any cline-no">&nbsp;</span>
1307
+ <span class="cline-any cline-no">&nbsp;</span>
1308
+ <span class="cline-any cline-no">&nbsp;</span>
1309
+ <span class="cline-any cline-neutral">&nbsp;</span>
1310
+ <span class="cline-any cline-no">&nbsp;</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1320
+ <span class="cline-any cline-no">&nbsp;</span>
1321
+ <span class="cline-any cline-neutral">&nbsp;</span>
1322
+ <span class="cline-any cline-no">&nbsp;</span>
1323
+ <span class="cline-any cline-no">&nbsp;</span>
1324
+ <span class="cline-any cline-no">&nbsp;</span>
1325
+ <span class="cline-any cline-no">&nbsp;</span>
1326
+ <span class="cline-any cline-no">&nbsp;</span>
1327
+ <span class="cline-any cline-no">&nbsp;</span>
1328
+ <span class="cline-any cline-neutral">&nbsp;</span>
1329
+ <span class="cline-any cline-no">&nbsp;</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1339
+ <span class="cline-any cline-neutral">&nbsp;</span>
1340
+ <span class="cline-any cline-no">&nbsp;</span>
1341
+ <span class="cline-any cline-no">&nbsp;</span>
1342
+ <span class="cline-any cline-no">&nbsp;</span>
1343
+ <span class="cline-any cline-neutral">&nbsp;</span>
1344
+ <span class="cline-any cline-no">&nbsp;</span>
1345
+ <span class="cline-any cline-no">&nbsp;</span>
1346
+ <span class="cline-any cline-neutral">&nbsp;</span>
1347
+ <span class="cline-any cline-neutral">&nbsp;</span>
1348
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1352
+ <span class="cline-any cline-no">&nbsp;</span>
1353
+ <span class="cline-any cline-no">&nbsp;</span>
1354
+ <span class="cline-any cline-neutral">&nbsp;</span>
1355
+ <span class="cline-any cline-no">&nbsp;</span>
1356
+ <span class="cline-any cline-no">&nbsp;</span>
1357
+ <span class="cline-any cline-neutral">&nbsp;</span>
1358
+ <span class="cline-any cline-no">&nbsp;</span>
1359
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
+ <span class="cline-any cline-no">&nbsp;</span>
1361
+ <span class="cline-any cline-neutral">&nbsp;</span>
1362
+ <span class="cline-any cline-neutral">&nbsp;</span>
1363
+ <span class="cline-any cline-neutral">&nbsp;</span>
1364
+ <span class="cline-any cline-neutral">&nbsp;</span>
1365
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1369
+ <span class="cline-any cline-neutral">&nbsp;</span>
1370
+ <span class="cline-any cline-neutral">&nbsp;</span>
1371
+ <span class="cline-any cline-neutral">&nbsp;</span>
1372
+ <span class="cline-any cline-neutral">&nbsp;</span>
1373
+ <span class="cline-any cline-yes">1x</span>
1374
+ <span class="cline-any cline-neutral">&nbsp;</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-neutral">&nbsp;</span>
1378
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
1379
+ import Namespace from './Namespace__';
1380
+ //================================================================================
1381
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1382
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1383
+ //================================================================================
1384
+ import { EventPayload, Params } from '../common/EventEmitter';
1385
+ import { concept, excludedInJSON, property, className } from '../decorators';
1386
+ &nbsp;
1387
+ import * as utils from '../utils';
1388
+ import { v4 as uuidv4 } from 'uuid';
1389
+ import BaseNode from '../common/BaseNode';
1390
+ import TypeParam from './TypeParam__';
1391
+ import StructureProperty from './StructureProperty__';
1392
+ import Module from './Module__';
1393
+ import App from './App__';
1394
+ &nbsp;
1395
+ /**
1396
+ * 数据结构
1397
+ */
1398
+ @className
1399
+ @concept('数据结构')
1400
+ // @ts-ignore
1401
+ export class Structure extends BaseNode {
1402
+ /** 类名 */
1403
+ static readonly ConceptName = 'Structure';
1404
+ &nbsp;
1405
+ /**
1406
+ * 产品概念
1407
+ */
1408
+ // @ts-ignore
1409
+ readonly concept!: 'Structure';
1410
+ &nbsp;
1411
+ /**
1412
+ * 数据结构名称
1413
+ */
1414
+ @property()
1415
+ // @ts-ignore
1416
+ name!: string;
1417
+ &nbsp;
1418
+ /**
1419
+ * 数据结构描述
1420
+ */
1421
+ @property()
1422
+ // @ts-ignore
1423
+ description!: string;
1424
+ &nbsp;
1425
+ /**
1426
+ * 数据结构来源
1427
+ */
1428
+ @property()
1429
+ // @ts-ignore
1430
+ origin!: 'CallQueryComponent';
1431
+ &nbsp;
1432
+ /**
1433
+ * 类型参数列表
1434
+ */
1435
+ @property('TypeParam')
1436
+ typeParams: Array&lt;TypeParam&gt; = null;
1437
+ &nbsp;
1438
+ /**
1439
+ * 数据结构属性列表
1440
+ */
1441
+ @property('StructureProperty')
1442
+ properties: Array&lt;StructureProperty&gt; = [];
1443
+ &nbsp;
1444
+ /**
1445
+ * 祖先 Module
1446
+ */
1447
+ <span class="fstat-no" title="function not covered" > get m</span>odule() {
1448
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('Module') as Module;</span>
1449
+ }
1450
+ /**
1451
+ * 祖先 App
1452
+ */
1453
+ <span class="fstat-no" title="function not covered" > get a</span>pp() {
1454
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('App') as App;</span>
1455
+ }
1456
+ &nbsp;
1457
+ /**
1458
+ * @param source 需要合并的部分参数
1459
+ */
1460
+ constructor(source?: Partial&lt;Structure&gt;) {
1461
+ source = Object.assign({}, Structure.getDefaultOptions(), source);
1462
+ super(source);
1463
+ super.subConstructor(source);
1464
+ }
1465
+ &nbsp;
1466
+ static from(source: any, parentNode?: any, parentKey?: string): Structure {
1467
+ return super.from(source, parentNode, parentKey) as Structure;
1468
+ }
1469
+ &nbsp;
1470
+ /**
1471
+ * 从父级删除该节点
1472
+ * @internal
1473
+ */
1474
+ <span class="fstat-no" title="function not covered" > _delete(</span>) {
1475
+ let params: Params = <span class="cstat-no" title="statement not covered" >null;</span>
1476
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode) {</span>
1477
+ <span class="cstat-no" title="statement not covered" > params = (this.parentNode as any)?.__removeStructure?.(this);</span>
1478
+ }
1479
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1480
+ }
1481
+ /**
1482
+ * 设置数据结构名称
1483
+ */
1484
+ <span class="fstat-no" title="function not covered" > setName(</span>name: string) {
1485
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
1486
+ name,
1487
+ };
1488
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
1489
+ ...object,
1490
+ field: 'name',
1491
+ });
1492
+ }
1493
+ &nbsp;
1494
+ /**
1495
+ * 设置数据结构描述
1496
+ */
1497
+ <span class="fstat-no" title="function not covered" > setDescription(</span>description: string) {
1498
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
1499
+ description,
1500
+ };
1501
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
1502
+ ...object,
1503
+ });
1504
+ }
1505
+ &nbsp;
1506
+ <span class="fstat-no" title="function not covered" > getTypeParamExistingNames(</span>excludedList: Array&lt;TypeParam&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
1507
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
1508
+ <span class="cstat-no" title="statement not covered" > return ((this.typeParams as TypeParam[]) || []).filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;</span>
1509
+ }
1510
+ <span class="fstat-no" title="function not covered" > getTypeParamUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'typeParam1')</span> {
1511
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);</span>
1512
+ }
1513
+ &nbsp;
1514
+ /**
1515
+ * 插入类型参数
1516
+ * @internal
1517
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
1518
+ */
1519
+ _insertTypeParamAt(name: string, index: number): TypeParam;
1520
+ &nbsp;
1521
+ /**
1522
+ * 插入类型参数
1523
+ * @internal
1524
+ * @param typeParamOptions 类型参数参数
1525
+ */
1526
+ _insertTypeParamAt(typeParamOptions: Partial&lt;TypeParam&gt;, index: number): TypeParam;
1527
+ &nbsp;
1528
+ /**
1529
+ * 插入类型参数
1530
+ * @internal
1531
+ * @param typeParam 已有的类型参数实例
1532
+ */
1533
+ _insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
1534
+ &nbsp;
1535
+ <span class="fstat-no" title="function not covered" > _insertTypeParamAt(</span>options: string | Partial&lt;TypeParam&gt; | TypeParam, index: number) {
1536
+ const typeParamOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1537
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'typeParams' };</span>
1538
+ let typeParam: TypeParam;
1539
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
1540
+ <span class="cstat-no" title="statement not covered" > typeParam = TypeParam.from(</span>
1541
+ {
1542
+ ...typeParamOptions,
1543
+ name: this.getTypeParamUniqueName(),
1544
+ },
1545
+ this,
1546
+ 'typeParams',
1547
+ );
1548
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
1549
+ <span class="cstat-no" title="statement not covered" > typeParam = TypeParam.from(</span>
1550
+ {
1551
+ ...typeParamOptions,
1552
+ name: options,
1553
+ },
1554
+ this,
1555
+ 'typeParams',
1556
+ );
1557
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof TypeParam) {</span>
1558
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1559
+ <span class="cstat-no" title="statement not covered" > typeParam = options;</span>
1560
+ <span class="cstat-no" title="statement not covered" > Object.assign(typeParam, relationOptions);</span>
1561
+ } else {
1562
+ <span class="cstat-no" title="statement not covered" > typeParam = TypeParam.from(</span>
1563
+ {
1564
+ ...typeParamOptions,
1565
+ ...options,
1566
+ },
1567
+ this,
1568
+ 'typeParams',
1569
+ );
1570
+ }
1571
+ <span class="cstat-no" title="statement not covered" > this.typeParams.splice(index, 0, typeParam);</span>
1572
+ <span class="cstat-no" title="statement not covered" > return typeParam;</span>
1573
+ }
1574
+ &nbsp;
1575
+ /**
1576
+ * 插入类型参数
1577
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
1578
+ */
1579
+ insertTypeParamAt(name: string, index: number): TypeParam;
1580
+ &nbsp;
1581
+ /**
1582
+ * 插入类型参数
1583
+ * @param typeParamOptions 类型参数参数
1584
+ */
1585
+ insertTypeParamAt(typeParamOptions: Partial&lt;TypeParam&gt;, index: number): TypeParam;
1586
+ &nbsp;
1587
+ /**
1588
+ * 插入类型参数
1589
+ * @param typeParam 已有的类型参数实例
1590
+ */
1591
+ insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
1592
+ &nbsp;
1593
+ <span class="fstat-no" title="function not covered" > insertTypeParamAt(</span>options: string | Partial&lt;TypeParam&gt; | TypeParam, index: number) {
1594
+ const node = <span class="cstat-no" title="statement not covered" >this._insertTypeParamAt(options as any, index);</span>
1595
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1596
+ index,
1597
+ parentNode: this,
1598
+ parentKey: 'typeParams',
1599
+ });
1600
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1601
+ }
1602
+ &nbsp;
1603
+ /**
1604
+ * 添加类型参数
1605
+ * @internal
1606
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
1607
+ */
1608
+ _addTypeParam(name?: string): TypeParam;
1609
+ &nbsp;
1610
+ /**
1611
+ * 添加类型参数
1612
+ * @internal
1613
+ * @param typeParamOptions 类型参数参数
1614
+ */
1615
+ _addTypeParam(typeParamOptions: Partial&lt;TypeParam&gt;): TypeParam;
1616
+ &nbsp;
1617
+ /**
1618
+ * 添加类型参数
1619
+ * @internal
1620
+ * @param typeParam 已有的类型参数实例
1621
+ */
1622
+ _addTypeParam(typeParam: TypeParam): TypeParam;
1623
+ &nbsp;
1624
+ <span class="fstat-no" title="function not covered" > _addTypeParam(</span>options?: string | Partial&lt;TypeParam&gt; | TypeParam) {
1625
+ const index = <span class="cstat-no" title="statement not covered" >this.typeParams.length;</span>
1626
+ <span class="cstat-no" title="statement not covered" > return this._insertTypeParamAt(options as any, index);</span>
1627
+ }
1628
+ &nbsp;
1629
+ /**
1630
+ * 添加类型参数
1631
+ * @internal
1632
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
1633
+ */
1634
+ addTypeParam(name?: string): TypeParam;
1635
+ &nbsp;
1636
+ /**
1637
+ * 添加类型参数
1638
+ * @param typeParamOptions 类型参数参数
1639
+ */
1640
+ addTypeParam(typeParamOptions: Partial&lt;TypeParam&gt;): TypeParam;
1641
+ &nbsp;
1642
+ /**
1643
+ * 添加类型参数
1644
+ * @param typeParam 已有的类型参数实例
1645
+ */
1646
+ addTypeParam(typeParam: TypeParam): TypeParam;
1647
+ &nbsp;
1648
+ <span class="fstat-no" title="function not covered" > addTypeParam(</span>options?: string | Partial&lt;TypeParam&gt; | TypeParam) {
1649
+ const node = <span class="cstat-no" title="statement not covered" >this._addTypeParam(options as any);</span>
1650
+ const index = <span class="cstat-no" title="statement not covered" >this.typeParams.indexOf(node);</span>
1651
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1652
+ index,
1653
+ parentNode: this,
1654
+ parentKey: 'typeParams',
1655
+ });
1656
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1657
+ }
1658
+ &nbsp;
1659
+ <span class="fstat-no" title="function not covered" > getPropertyExistingNames(</span>excludedList: Array&lt;StructureProperty&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
1660
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
1661
+ <span class="cstat-no" title="statement not covered" > return ((this.properties as StructureProperty[]) || [])</span>
1662
+ .filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>
1663
+ .map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
1664
+ }
1665
+ <span class="fstat-no" title="function not covered" > getPropertyUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'property1')</span> {
1666
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getPropertyExistingNames(), undefined, false);</span>
1667
+ }
1668
+ &nbsp;
1669
+ /**
1670
+ * 插入数据结构属性
1671
+ * @internal
1672
+ * @param name 数据结构属性名称,如果不填会自动生成一个唯一名称
1673
+ */
1674
+ _insertPropertyAt(name: string, index: number): StructureProperty;
1675
+ &nbsp;
1676
+ /**
1677
+ * 插入数据结构属性
1678
+ * @internal
1679
+ * @param propertyOptions 数据结构属性参数
1680
+ */
1681
+ _insertPropertyAt(propertyOptions: Partial&lt;StructureProperty&gt;, index: number): StructureProperty;
1682
+ &nbsp;
1683
+ /**
1684
+ * 插入数据结构属性
1685
+ * @internal
1686
+ * @param property 已有的数据结构属性实例
1687
+ */
1688
+ _insertPropertyAt(property: StructureProperty, index: number): StructureProperty;
1689
+ &nbsp;
1690
+ <span class="fstat-no" title="function not covered" > _insertPropertyAt(</span>options: string | Partial&lt;StructureProperty&gt; | StructureProperty, index: number) {
1691
+ const propertyOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1692
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'properties' };</span>
1693
+ let property: StructureProperty;
1694
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
1695
+ <span class="cstat-no" title="statement not covered" > property = StructureProperty.from(</span>
1696
+ {
1697
+ ...propertyOptions,
1698
+ name: this.getPropertyUniqueName(),
1699
+ },
1700
+ this,
1701
+ 'properties',
1702
+ );
1703
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
1704
+ <span class="cstat-no" title="statement not covered" > property = StructureProperty.from(</span>
1705
+ {
1706
+ ...propertyOptions,
1707
+ name: options,
1708
+ },
1709
+ this,
1710
+ 'properties',
1711
+ );
1712
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof StructureProperty) {</span>
1713
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1714
+ <span class="cstat-no" title="statement not covered" > property = options;</span>
1715
+ <span class="cstat-no" title="statement not covered" > Object.assign(property, relationOptions);</span>
1716
+ } else {
1717
+ <span class="cstat-no" title="statement not covered" > property = StructureProperty.from(</span>
1718
+ {
1719
+ ...propertyOptions,
1720
+ ...options,
1721
+ },
1722
+ this,
1723
+ 'properties',
1724
+ );
1725
+ }
1726
+ <span class="cstat-no" title="statement not covered" > this.properties.splice(index, 0, property);</span>
1727
+ <span class="cstat-no" title="statement not covered" > return property;</span>
1728
+ }
1729
+ &nbsp;
1730
+ /**
1731
+ * 插入数据结构属性
1732
+ * @param name 数据结构属性名称,如果不填会自动生成一个唯一名称
1733
+ */
1734
+ insertPropertyAt(name: string, index: number): StructureProperty;
1735
+ &nbsp;
1736
+ /**
1737
+ * 插入数据结构属性
1738
+ * @param propertyOptions 数据结构属性参数
1739
+ */
1740
+ insertPropertyAt(propertyOptions: Partial&lt;StructureProperty&gt;, index: number): StructureProperty;
1741
+ &nbsp;
1742
+ /**
1743
+ * 插入数据结构属性
1744
+ * @param property 已有的数据结构属性实例
1745
+ */
1746
+ insertPropertyAt(property: StructureProperty, index: number): StructureProperty;
1747
+ &nbsp;
1748
+ <span class="fstat-no" title="function not covered" > insertPropertyAt(</span>options: string | Partial&lt;StructureProperty&gt; | StructureProperty, index: number) {
1749
+ const node = <span class="cstat-no" title="statement not covered" >this._insertPropertyAt(options as any, index);</span>
1750
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1751
+ index,
1752
+ parentNode: this,
1753
+ parentKey: 'properties',
1754
+ });
1755
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1756
+ }
1757
+ &nbsp;
1758
+ /**
1759
+ * 添加数据结构属性
1760
+ * @internal
1761
+ * @param name 数据结构属性名称,如果不填会自动生成一个唯一名称
1762
+ */
1763
+ _addProperty(name?: string): StructureProperty;
1764
+ &nbsp;
1765
+ /**
1766
+ * 添加数据结构属性
1767
+ * @internal
1768
+ * @param propertyOptions 数据结构属性参数
1769
+ */
1770
+ _addProperty(propertyOptions: Partial&lt;StructureProperty&gt;): StructureProperty;
1771
+ &nbsp;
1772
+ /**
1773
+ * 添加数据结构属性
1774
+ * @internal
1775
+ * @param property 已有的数据结构属性实例
1776
+ */
1777
+ _addProperty(property: StructureProperty): StructureProperty;
1778
+ &nbsp;
1779
+ <span class="fstat-no" title="function not covered" > _addProperty(</span>options?: string | Partial&lt;StructureProperty&gt; | StructureProperty) {
1780
+ const index = <span class="cstat-no" title="statement not covered" >this.properties.length;</span>
1781
+ <span class="cstat-no" title="statement not covered" > return this._insertPropertyAt(options as any, index);</span>
1782
+ }
1783
+ &nbsp;
1784
+ /**
1785
+ * 添加数据结构属性
1786
+ * @internal
1787
+ * @param name 数据结构属性名称,如果不填会自动生成一个唯一名称
1788
+ */
1789
+ addProperty(name?: string): StructureProperty;
1790
+ &nbsp;
1791
+ /**
1792
+ * 添加数据结构属性
1793
+ * @param propertyOptions 数据结构属性参数
1794
+ */
1795
+ addProperty(propertyOptions: Partial&lt;StructureProperty&gt;): StructureProperty;
1796
+ &nbsp;
1797
+ /**
1798
+ * 添加数据结构属性
1799
+ * @param property 已有的数据结构属性实例
1800
+ */
1801
+ addProperty(property: StructureProperty): StructureProperty;
1802
+ &nbsp;
1803
+ <span class="fstat-no" title="function not covered" > addProperty(</span>options?: string | Partial&lt;StructureProperty&gt; | StructureProperty) {
1804
+ const node = <span class="cstat-no" title="statement not covered" >this._addProperty(options as any);</span>
1805
+ const index = <span class="cstat-no" title="statement not covered" >this.properties.indexOf(node);</span>
1806
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
1807
+ index,
1808
+ parentNode: this,
1809
+ parentKey: 'properties',
1810
+ });
1811
+ <span class="cstat-no" title="statement not covered" > return node;</span>
1812
+ }
1813
+ &nbsp;
1814
+ /**
1815
+ * 删除类型参数
1816
+ * @param name 类型参数名称
1817
+ */
1818
+ removeTypeParam(name: string): void;
1819
+ &nbsp;
1820
+ /**
1821
+ * 删除类型参数
1822
+ * @param typeParam 已有的类型参数实例
1823
+ */
1824
+ removeTypeParam(typeParam: TypeParam): void;
1825
+ &nbsp;
1826
+ <span class="fstat-no" title="function not covered" > removeTypeParam(</span>options: string | TypeParam) {
1827
+ let typeParam: TypeParam;
1828
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
1829
+ <span class="cstat-no" title="statement not covered" > typeParam = (this.typeParams as TypeParam[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
1830
+ <span class="cstat-no" title="statement not covered" > if (!typeParam) {</span>
1831
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到类型参数 ' + options);</span>
1832
+ }
1833
+ } else {
1834
+ <span class="cstat-no" title="statement not covered" > typeParam = options;</span>
1835
+ }
1836
+ <span class="cstat-no" title="statement not covered" > return typeParam.delete();</span>
1837
+ }
1838
+ &nbsp;
1839
+ <span class="fstat-no" title="function not covered" > __removeTypeParam(</span>typeParam: TypeParam) {
1840
+ const parentKey = <span class="cstat-no" title="statement not covered" >typeParam.parentKey;</span>
1841
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
1842
+ parentNode: this,
1843
+ parentKey,
1844
+ index: -1,
1845
+ object: null,
1846
+ oldObject: typeParam,
1847
+ };
1848
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
1849
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
1850
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
1851
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(typeParam);</span>
1852
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
1853
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
1854
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === typeParam) {</span>
1855
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
1856
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
1857
+ }
1858
+ }
1859
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1860
+ }
1861
+ &nbsp;
1862
+ /**
1863
+ * 删除数据结构属性
1864
+ * @param name 数据结构属性名称
1865
+ */
1866
+ removeProperty(name: string): void;
1867
+ &nbsp;
1868
+ /**
1869
+ * 删除数据结构属性
1870
+ * @param property 已有的数据结构属性实例
1871
+ */
1872
+ removeProperty(property: StructureProperty): void;
1873
+ &nbsp;
1874
+ <span class="fstat-no" title="function not covered" > removeProperty(</span>options: string | StructureProperty) {
1875
+ let property: StructureProperty;
1876
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
1877
+ <span class="cstat-no" title="statement not covered" > property = (this.properties as StructureProperty[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
1878
+ <span class="cstat-no" title="statement not covered" > if (!property) {</span>
1879
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到数据结构属性 ' + options);</span>
1880
+ }
1881
+ } else {
1882
+ <span class="cstat-no" title="statement not covered" > property = options;</span>
1883
+ }
1884
+ <span class="cstat-no" title="statement not covered" > return property.delete();</span>
1885
+ }
1886
+ &nbsp;
1887
+ <span class="fstat-no" title="function not covered" > __removeStructureProperty(</span>property: StructureProperty) {
1888
+ const parentKey = <span class="cstat-no" title="statement not covered" >property.parentKey;</span>
1889
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
1890
+ parentNode: this,
1891
+ parentKey,
1892
+ index: -1,
1893
+ object: null,
1894
+ oldObject: property,
1895
+ };
1896
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
1897
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
1898
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
1899
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(property);</span>
1900
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
1901
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
1902
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === property) {</span>
1903
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
1904
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
1905
+ }
1906
+ }
1907
+ <span class="cstat-no" title="statement not covered" > return params;</span>
1908
+ }
1909
+ &nbsp;
1910
+ //================================================================================
1911
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1912
+ // 自动生成的代码已结束。下面可以手动编写。
1913
+ //================================================================================
1914
+ &nbsp;
1915
+ /**
1916
+ * 是否为连接器,连接器不允许编辑
1917
+ */
1918
+ <span class="fstat-no" title="function not covered" > get i</span>sConnector() {
1919
+ <span class="cstat-no" title="statement not covered" > return !!this.getAncestor('Connector');</span>
1920
+ }
1921
+ &nbsp;
1922
+ /**
1923
+ * 是否可编辑
1924
+ * */
1925
+ <span class="fstat-no" title="function not covered" > get r</span>eadonly() {
1926
+ <span class="cstat-no" title="statement not covered" > return !!this.module || this.origin === 'CallQueryComponent' || this.isConnector;</span>
1927
+ }
1928
+ &nbsp;
1929
+ /* 删除空数据模块 */
1930
+ <span class="fstat-no" title="function not covered" > deleteLogincAndModule(</span>) {
1931
+ <span class="cstat-no" title="statement not covered" > this.delete();</span>
1932
+ <span class="cstat-no" title="statement not covered" > if (this.module &amp;&amp; this.module.interfaces.length === 0 &amp;&amp; this.module.structures.length === 0) {</span>
1933
+ <span class="cstat-no" title="statement not covered" > this.app.removeModuleInInterfaceDependencies(this.module);</span>
1934
+ }
1935
+ }
1936
+ &nbsp;
1937
+ @withSourceMap()
1938
+ <span class="fstat-no" title="function not covered" > toEmbeddedTS(</span>state?: TranslatorState): string {
1939
+ let code = <span class="cstat-no" title="statement not covered" >`export class ${this.tsName} {\n`;</span>
1940
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
1941
+ <span class="cstat-no" title="statement not covered" > code += `__name: '${this.getTsNamespace()}.${this.tsName}';\n`;</span>
1942
+ <span class="cstat-no" title="statement not covered" > this.properties.forEach(<span class="fstat-no" title="function not covered" >(p</span>roperty) =&gt; {</span>
1943
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
1944
+ <span class="cstat-no" title="statement not covered" > code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));</span>
1945
+ <span class="cstat-no" title="statement not covered" > code += ';\n';</span>
1946
+ });
1947
+ <span class="cstat-no" title="statement not covered" > code += `${indent(state?.tabSize || 0)}}\n`;</span>
1948
+ &nbsp;
1949
+ <span class="cstat-no" title="statement not covered" > return code;</span>
1950
+ }
1951
+ &nbsp;
1952
+ <span class="fstat-no" title="function not covered" > getNamespace(</span>) {
1953
+ // 针对 Connector 下的 Interface 需要做额外的兼容处理
1954
+ // 本来 Connector 对应的 Namespace 是 connector,走默认逻辑就成
1955
+ // 但是后端在翻译 Connector 下的 Interface 时选择的前缀为 extensions 故这里需要强行改成 extensions
1956
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode?.concept === 'Connector') {</span>
1957
+ <span class="cstat-no" title="statement not covered" > return `extensions.${this.parentNode.name}.structures`;</span>
1958
+ }
1959
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode &amp;&amp; (this.parentNode as Namespace).getNamespace) {</span>
1960
+ const parentNamespace = (<span class="cstat-no" title="statement not covered" >this.parentNode as Namespace).getNamespace();</span>
1961
+ const parentName = <span class="cstat-no" title="statement not covered" >this.parentNode.name;</span>
1962
+ const arr = <span class="cstat-no" title="statement not covered" >[parentNamespace];</span>
1963
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode.concept !== 'App' &amp;&amp; parentName) {</span>
1964
+ <span class="cstat-no" title="statement not covered" > arr.push(parentName);</span>
1965
+ }
1966
+ <span class="cstat-no" title="statement not covered" > return `${arr.join('.')}.structures`;</span>
1967
+ }
1968
+ <span class="cstat-no" title="statement not covered" > throw new Error('无法获取命名空间,请设置 parentNode!');</span>
1969
+ }
1970
+ &nbsp;
1971
+ <span class="fstat-no" title="function not covered" > getTsNamespace(</span>) {
1972
+ // 针对 Connector 下的 Interface 需要做额外的兼容处理
1973
+ // 本来 Connector 对应的 Namespace 是 connector,走默认逻辑就成
1974
+ // 但是后端在翻译 Connector 下的 Interface 时选择的前缀为 extensions 故这里需要强行改成 extensions
1975
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode?.concept === 'Connector') {</span>
1976
+ <span class="cstat-no" title="statement not covered" > return `extensions.${this.parentNode.tsName}.structures`;</span>
1977
+ }
1978
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode &amp;&amp; (this.parentNode as Namespace).getTsNamespace) {</span>
1979
+ const parentNamespace = (<span class="cstat-no" title="statement not covered" >this.parentNode as Namespace).getTsNamespace();</span>
1980
+ const parentName = <span class="cstat-no" title="statement not covered" >this.parentNode.tsName || this.parentNode.name;</span>
1981
+ const arr = <span class="cstat-no" title="statement not covered" >[parentNamespace];</span>
1982
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode.concept !== 'App' &amp;&amp; parentName) {</span>
1983
+ <span class="cstat-no" title="statement not covered" > arr.push(parentName);</span>
1984
+ }
1985
+ <span class="cstat-no" title="statement not covered" > return `${arr.join('.')}.structures`;</span>
1986
+ }
1987
+ <span class="cstat-no" title="statement not covered" > throw new Error('无法获取命名空间,请设置 parentNode!');</span>
1988
+ }
1989
+ &nbsp;
1990
+ /**
1991
+ * 生成宿主语言的文件路径
1992
+ * @param name 一般不用传,用于 rename
1993
+ */
1994
+ <span class="fstat-no" title="function not covered" > getEmbeddedFilePath(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >this.name)</span> {
1995
+ // 连接器相关的接口,本身没有 module 属性故,需要额外处理
1996
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode.concept === 'Connector') {</span>
1997
+ <span class="cstat-no" title="statement not covered" > return `/embedded/${this.app.name}/dependencies/${this.parentNode.name}/structures/${name}.ts`;</span>
1998
+ <span class="cstat-no" title="statement not covered" > ``;</span>
1999
+ }
2000
+ const _path = <span class="cstat-no" title="statement not covered" >this.module ? `/${this.module.parentKey}/${this.module.name}` : '';</span>
2001
+ <span class="cstat-no" title="statement not covered" > return `/embedded/${this.app.name}${_path}/structures/${name}.ts`;</span>
2002
+ }
2003
+ &nbsp;
2004
+ <span class="fstat-no" title="function not covered" > toEmbeddedTSFile(</span>) {
2005
+ let code = <span class="cstat-no" title="statement not covered" >`namespace ${this.getTsNamespace()} {\n`;</span>
2006
+ &nbsp;
2007
+ const state = <span class="cstat-no" title="statement not covered" >createCompilerState(code, { tabSize: 1 });</span>
2008
+ <span class="cstat-no" title="statement not covered" > try {</span>
2009
+ <span class="cstat-no" title="statement not covered" > code += this.toEmbeddedTS(state);</span>
2010
+ } catch (err) {
2011
+ <span class="cstat-no" title="statement not covered" > code += '';</span>
2012
+ <span class="cstat-no" title="statement not covered" > console.log(err);</span>
2013
+ }
2014
+ <span class="cstat-no" title="statement not covered" > code += '}\n';</span>
2015
+ &nbsp;
2016
+ <span class="cstat-no" title="statement not covered" > return {</span>
2017
+ code,
2018
+ filePath: this.getEmbeddedFilePath(),
2019
+ sourceMap: state.sourceMap,
2020
+ };
2021
+ }
2022
+ &nbsp;
2023
+ //================================================================================
2024
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2025
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2026
+ //================================================================================
2027
+ }
2028
+ &nbsp;
2029
+ export default Structure;
2030
+ //================================================================================
2031
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2032
+ // 自动生成的代码已结束。下面可以手动编写。
2033
+ //================================================================================
2034
+ &nbsp;</pre></td></tr></table></pre>
2035
+
2036
+ <div class='push'></div><!-- for sticky footer -->
2037
+ </div><!-- /wrapper -->
2038
+ <div class='footer quiet pad2 space-top1 center small'>
2039
+ Code coverage generated by
2040
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2041
+ at 2023-10-19T09:18:56.902Z
2042
+ </div>
2043
+ <script src="../../prettify.js"></script>
2044
+ <script>
2045
+ window.onload = function () {
2046
+ prettyPrint();
2047
+ };
2048
+ </script>
2049
+ <script src="../../sorter.js"></script>
2050
+ <script src="../../block-navigation.js"></script>
2051
+ </body>
2052
+ </html>
2053
+