@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,2872 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/concepts/Entity__.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> Entity__.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">15.28% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>37/242</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">2.58% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/116</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">9.67% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>6/62</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">13.65% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>31/227</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-yes">1x</span>
997
+ <span class="cline-any cline-yes">1x</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-neutral">&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-yes">1x</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-yes">1x</span>
1007
+ <span class="cline-any cline-yes">1x</span>
1008
+ <span class="cline-any cline-yes">1x</span>
1009
+ <span class="cline-any cline-yes">1x</span>
1010
+ <span class="cline-any cline-yes">1x</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-yes">1x</span>
1022
+ <span class="cline-any cline-neutral">&nbsp;</span>
1023
+ <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1036
+ <span class="cline-any cline-yes">1x</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-yes">11x</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-neutral">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-yes">1x</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-yes">1x</span>
1057
+ <span class="cline-any cline-neutral">&nbsp;</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-neutral">&nbsp;</span>
1062
+ <span class="cline-any cline-yes">11x</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-yes">11x</span>
1069
+ <span class="cline-any cline-neutral">&nbsp;</span>
1070
+ <span class="cline-any cline-neutral">&nbsp;</span>
1071
+ <span class="cline-any cline-neutral">&nbsp;</span>
1072
+ <span class="cline-any cline-neutral">&nbsp;</span>
1073
+ <span class="cline-any cline-neutral">&nbsp;</span>
1074
+ <span class="cline-any cline-yes">11x</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-no">&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-no">&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-no">&nbsp;</span>
1093
+ <span class="cline-any cline-neutral">&nbsp;</span>
1094
+ <span class="cline-any cline-neutral">&nbsp;</span>
1095
+ <span class="cline-any cline-neutral">&nbsp;</span>
1096
+ <span class="cline-any cline-neutral">&nbsp;</span>
1097
+ <span class="cline-any cline-neutral">&nbsp;</span>
1098
+ <span class="cline-any cline-neutral">&nbsp;</span>
1099
+ <span class="cline-any cline-yes">11x</span>
1100
+ <span class="cline-any cline-yes">11x</span>
1101
+ <span class="cline-any cline-yes">11x</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-yes">11x</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-no">&nbsp;</span>
1114
+ <span class="cline-any cline-no">&nbsp;</span>
1115
+ <span class="cline-any cline-no">&nbsp;</span>
1116
+ <span class="cline-any cline-neutral">&nbsp;</span>
1117
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1124
+ <span class="cline-any cline-neutral">&nbsp;</span>
1125
+ <span class="cline-any cline-neutral">&nbsp;</span>
1126
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1133
+ <span class="cline-any cline-no">&nbsp;</span>
1134
+ <span class="cline-any cline-no">&nbsp;</span>
1135
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1139
+ <span class="cline-any cline-neutral">&nbsp;</span>
1140
+ <span class="cline-any cline-neutral">&nbsp;</span>
1141
+ <span class="cline-any cline-neutral">&nbsp;</span>
1142
+ <span class="cline-any cline-neutral">&nbsp;</span>
1143
+ <span class="cline-any cline-neutral">&nbsp;</span>
1144
+ <span class="cline-any cline-neutral">&nbsp;</span>
1145
+ <span class="cline-any cline-neutral">&nbsp;</span>
1146
+ <span class="cline-any cline-neutral">&nbsp;</span>
1147
+ <span class="cline-any cline-neutral">&nbsp;</span>
1148
+ <span class="cline-any cline-neutral">&nbsp;</span>
1149
+ <span class="cline-any cline-neutral">&nbsp;</span>
1150
+ <span class="cline-any cline-neutral">&nbsp;</span>
1151
+ <span class="cline-any cline-neutral">&nbsp;</span>
1152
+ <span class="cline-any cline-neutral">&nbsp;</span>
1153
+ <span class="cline-any cline-neutral">&nbsp;</span>
1154
+ <span class="cline-any cline-neutral">&nbsp;</span>
1155
+ <span class="cline-any cline-neutral">&nbsp;</span>
1156
+ <span class="cline-any cline-neutral">&nbsp;</span>
1157
+ <span class="cline-any cline-neutral">&nbsp;</span>
1158
+ <span class="cline-any cline-neutral">&nbsp;</span>
1159
+ <span class="cline-any cline-neutral">&nbsp;</span>
1160
+ <span class="cline-any cline-neutral">&nbsp;</span>
1161
+ <span class="cline-any cline-neutral">&nbsp;</span>
1162
+ <span class="cline-any cline-neutral">&nbsp;</span>
1163
+ <span class="cline-any cline-no">&nbsp;</span>
1164
+ <span class="cline-any cline-no">&nbsp;</span>
1165
+ <span class="cline-any cline-neutral">&nbsp;</span>
1166
+ <span class="cline-any cline-no">&nbsp;</span>
1167
+ <span class="cline-any cline-no">&nbsp;</span>
1168
+ <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-neutral">&nbsp;</span>
1170
+ <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-neutral">&nbsp;</span>
1172
+ <span class="cline-any cline-neutral">&nbsp;</span>
1173
+ <span class="cline-any cline-neutral">&nbsp;</span>
1174
+ <span class="cline-any cline-neutral">&nbsp;</span>
1175
+ <span class="cline-any cline-no">&nbsp;</span>
1176
+ <span class="cline-any cline-no">&nbsp;</span>
1177
+ <span class="cline-any cline-neutral">&nbsp;</span>
1178
+ <span class="cline-any cline-neutral">&nbsp;</span>
1179
+ <span class="cline-any cline-neutral">&nbsp;</span>
1180
+ <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-neutral">&nbsp;</span>
1182
+ <span class="cline-any cline-neutral">&nbsp;</span>
1183
+ <span class="cline-any cline-neutral">&nbsp;</span>
1184
+ <span class="cline-any cline-no">&nbsp;</span>
1185
+ <span class="cline-any cline-no">&nbsp;</span>
1186
+ <span class="cline-any cline-no">&nbsp;</span>
1187
+ <span class="cline-any cline-no">&nbsp;</span>
1188
+ <span class="cline-any cline-neutral">&nbsp;</span>
1189
+ <span class="cline-any cline-no">&nbsp;</span>
1190
+ <span class="cline-any cline-neutral">&nbsp;</span>
1191
+ <span class="cline-any cline-neutral">&nbsp;</span>
1192
+ <span class="cline-any cline-neutral">&nbsp;</span>
1193
+ <span class="cline-any cline-neutral">&nbsp;</span>
1194
+ <span class="cline-any cline-neutral">&nbsp;</span>
1195
+ <span class="cline-any cline-neutral">&nbsp;</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-neutral">&nbsp;</span>
1198
+ <span class="cline-any cline-no">&nbsp;</span>
1199
+ <span class="cline-any cline-no">&nbsp;</span>
1200
+ <span class="cline-any cline-neutral">&nbsp;</span>
1201
+ <span class="cline-any cline-neutral">&nbsp;</span>
1202
+ <span class="cline-any cline-neutral">&nbsp;</span>
1203
+ <span class="cline-any cline-neutral">&nbsp;</span>
1204
+ <span class="cline-any cline-neutral">&nbsp;</span>
1205
+ <span class="cline-any cline-neutral">&nbsp;</span>
1206
+ <span class="cline-any cline-neutral">&nbsp;</span>
1207
+ <span class="cline-any cline-neutral">&nbsp;</span>
1208
+ <span class="cline-any cline-neutral">&nbsp;</span>
1209
+ <span class="cline-any cline-neutral">&nbsp;</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-neutral">&nbsp;</span>
1212
+ <span class="cline-any cline-neutral">&nbsp;</span>
1213
+ <span class="cline-any cline-neutral">&nbsp;</span>
1214
+ <span class="cline-any cline-neutral">&nbsp;</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-neutral">&nbsp;</span>
1217
+ <span class="cline-any cline-neutral">&nbsp;</span>
1218
+ <span class="cline-any cline-neutral">&nbsp;</span>
1219
+ <span class="cline-any cline-neutral">&nbsp;</span>
1220
+ <span class="cline-any cline-neutral">&nbsp;</span>
1221
+ <span class="cline-any cline-no">&nbsp;</span>
1222
+ <span class="cline-any cline-no">&nbsp;</span>
1223
+ <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-neutral">&nbsp;</span>
1225
+ <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-neutral">&nbsp;</span>
1227
+ <span class="cline-any cline-no">&nbsp;</span>
1228
+ <span class="cline-any cline-neutral">&nbsp;</span>
1229
+ <span class="cline-any cline-neutral">&nbsp;</span>
1230
+ <span class="cline-any cline-neutral">&nbsp;</span>
1231
+ <span class="cline-any cline-neutral">&nbsp;</span>
1232
+ <span class="cline-any cline-neutral">&nbsp;</span>
1233
+ <span class="cline-any cline-neutral">&nbsp;</span>
1234
+ <span class="cline-any cline-neutral">&nbsp;</span>
1235
+ <span class="cline-any cline-neutral">&nbsp;</span>
1236
+ <span class="cline-any cline-neutral">&nbsp;</span>
1237
+ <span class="cline-any cline-neutral">&nbsp;</span>
1238
+ <span class="cline-any cline-neutral">&nbsp;</span>
1239
+ <span class="cline-any cline-neutral">&nbsp;</span>
1240
+ <span class="cline-any cline-neutral">&nbsp;</span>
1241
+ <span class="cline-any cline-neutral">&nbsp;</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-neutral">&nbsp;</span>
1244
+ <span class="cline-any cline-neutral">&nbsp;</span>
1245
+ <span class="cline-any cline-neutral">&nbsp;</span>
1246
+ <span class="cline-any cline-neutral">&nbsp;</span>
1247
+ <span class="cline-any cline-neutral">&nbsp;</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-neutral">&nbsp;</span>
1250
+ <span class="cline-any cline-neutral">&nbsp;</span>
1251
+ <span class="cline-any cline-neutral">&nbsp;</span>
1252
+ <span class="cline-any cline-no">&nbsp;</span>
1253
+ <span class="cline-any cline-no">&nbsp;</span>
1254
+ <span class="cline-any cline-neutral">&nbsp;</span>
1255
+ <span class="cline-any cline-neutral">&nbsp;</span>
1256
+ <span class="cline-any cline-neutral">&nbsp;</span>
1257
+ <span class="cline-any cline-neutral">&nbsp;</span>
1258
+ <span class="cline-any cline-neutral">&nbsp;</span>
1259
+ <span class="cline-any cline-neutral">&nbsp;</span>
1260
+ <span class="cline-any cline-neutral">&nbsp;</span>
1261
+ <span class="cline-any cline-neutral">&nbsp;</span>
1262
+ <span class="cline-any cline-neutral">&nbsp;</span>
1263
+ <span class="cline-any cline-neutral">&nbsp;</span>
1264
+ <span class="cline-any cline-neutral">&nbsp;</span>
1265
+ <span class="cline-any cline-neutral">&nbsp;</span>
1266
+ <span class="cline-any cline-neutral">&nbsp;</span>
1267
+ <span class="cline-any cline-neutral">&nbsp;</span>
1268
+ <span class="cline-any cline-neutral">&nbsp;</span>
1269
+ <span class="cline-any cline-neutral">&nbsp;</span>
1270
+ <span class="cline-any cline-neutral">&nbsp;</span>
1271
+ <span class="cline-any cline-neutral">&nbsp;</span>
1272
+ <span class="cline-any cline-neutral">&nbsp;</span>
1273
+ <span class="cline-any cline-neutral">&nbsp;</span>
1274
+ <span class="cline-any cline-neutral">&nbsp;</span>
1275
+ <span class="cline-any cline-neutral">&nbsp;</span>
1276
+ <span class="cline-any cline-no">&nbsp;</span>
1277
+ <span class="cline-any cline-no">&nbsp;</span>
1278
+ <span class="cline-any cline-no">&nbsp;</span>
1279
+ <span class="cline-any cline-neutral">&nbsp;</span>
1280
+ <span class="cline-any cline-neutral">&nbsp;</span>
1281
+ <span class="cline-any cline-neutral">&nbsp;</span>
1282
+ <span class="cline-any cline-neutral">&nbsp;</span>
1283
+ <span class="cline-any cline-no">&nbsp;</span>
1284
+ <span class="cline-any cline-neutral">&nbsp;</span>
1285
+ <span class="cline-any cline-neutral">&nbsp;</span>
1286
+ <span class="cline-any cline-neutral">&nbsp;</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-neutral">&nbsp;</span>
1290
+ <span class="cline-any cline-neutral">&nbsp;</span>
1291
+ <span class="cline-any cline-no">&nbsp;</span>
1292
+ <span class="cline-any cline-neutral">&nbsp;</span>
1293
+ <span class="cline-any cline-neutral">&nbsp;</span>
1294
+ <span class="cline-any cline-neutral">&nbsp;</span>
1295
+ <span class="cline-any cline-neutral">&nbsp;</span>
1296
+ <span class="cline-any cline-neutral">&nbsp;</span>
1297
+ <span class="cline-any cline-neutral">&nbsp;</span>
1298
+ <span class="cline-any cline-neutral">&nbsp;</span>
1299
+ <span class="cline-any cline-neutral">&nbsp;</span>
1300
+ <span class="cline-any cline-neutral">&nbsp;</span>
1301
+ <span class="cline-any cline-neutral">&nbsp;</span>
1302
+ <span class="cline-any cline-neutral">&nbsp;</span>
1303
+ <span class="cline-any cline-neutral">&nbsp;</span>
1304
+ <span class="cline-any cline-neutral">&nbsp;</span>
1305
+ <span class="cline-any cline-neutral">&nbsp;</span>
1306
+ <span class="cline-any cline-neutral">&nbsp;</span>
1307
+ <span class="cline-any cline-neutral">&nbsp;</span>
1308
+ <span class="cline-any cline-neutral">&nbsp;</span>
1309
+ <span class="cline-any cline-neutral">&nbsp;</span>
1310
+ <span class="cline-any cline-neutral">&nbsp;</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-neutral">&nbsp;</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-neutral">&nbsp;</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-no">&nbsp;</span>
1317
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1323
+ <span class="cline-any cline-neutral">&nbsp;</span>
1324
+ <span class="cline-any cline-neutral">&nbsp;</span>
1325
+ <span class="cline-any cline-neutral">&nbsp;</span>
1326
+ <span class="cline-any cline-neutral">&nbsp;</span>
1327
+ <span class="cline-any cline-neutral">&nbsp;</span>
1328
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1332
+ <span class="cline-any cline-neutral">&nbsp;</span>
1333
+ <span class="cline-any cline-neutral">&nbsp;</span>
1334
+ <span class="cline-any cline-neutral">&nbsp;</span>
1335
+ <span class="cline-any cline-neutral">&nbsp;</span>
1336
+ <span class="cline-any cline-neutral">&nbsp;</span>
1337
+ <span class="cline-any cline-no">&nbsp;</span>
1338
+ <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-no">&nbsp;</span>
1340
+ <span class="cline-any cline-no">&nbsp;</span>
1341
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1345
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1354
+ <span class="cline-any cline-neutral">&nbsp;</span>
1355
+ <span class="cline-any cline-neutral">&nbsp;</span>
1356
+ <span class="cline-any cline-neutral">&nbsp;</span>
1357
+ <span class="cline-any cline-neutral">&nbsp;</span>
1358
+ <span class="cline-any cline-neutral">&nbsp;</span>
1359
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1374
+ <span class="cline-any cline-no">&nbsp;</span>
1375
+ <span class="cline-any cline-no">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-neutral">&nbsp;</span>
1378
+ <span class="cline-any cline-neutral">&nbsp;</span>
1379
+ <span class="cline-any cline-neutral">&nbsp;</span>
1380
+ <span class="cline-any cline-no">&nbsp;</span>
1381
+ <span class="cline-any cline-neutral">&nbsp;</span>
1382
+ <span class="cline-any cline-neutral">&nbsp;</span>
1383
+ <span class="cline-any cline-neutral">&nbsp;</span>
1384
+ <span class="cline-any cline-neutral">&nbsp;</span>
1385
+ <span class="cline-any cline-neutral">&nbsp;</span>
1386
+ <span class="cline-any cline-neutral">&nbsp;</span>
1387
+ <span class="cline-any cline-neutral">&nbsp;</span>
1388
+ <span class="cline-any cline-neutral">&nbsp;</span>
1389
+ <span class="cline-any cline-neutral">&nbsp;</span>
1390
+ <span class="cline-any cline-neutral">&nbsp;</span>
1391
+ <span class="cline-any cline-neutral">&nbsp;</span>
1392
+ <span class="cline-any cline-neutral">&nbsp;</span>
1393
+ <span class="cline-any cline-neutral">&nbsp;</span>
1394
+ <span class="cline-any cline-neutral">&nbsp;</span>
1395
+ <span class="cline-any cline-neutral">&nbsp;</span>
1396
+ <span class="cline-any cline-neutral">&nbsp;</span>
1397
+ <span class="cline-any cline-neutral">&nbsp;</span>
1398
+ <span class="cline-any cline-neutral">&nbsp;</span>
1399
+ <span class="cline-any cline-neutral">&nbsp;</span>
1400
+ <span class="cline-any cline-neutral">&nbsp;</span>
1401
+ <span class="cline-any cline-neutral">&nbsp;</span>
1402
+ <span class="cline-any cline-neutral">&nbsp;</span>
1403
+ <span class="cline-any cline-neutral">&nbsp;</span>
1404
+ <span class="cline-any cline-neutral">&nbsp;</span>
1405
+ <span class="cline-any cline-no">&nbsp;</span>
1406
+ <span class="cline-any cline-no">&nbsp;</span>
1407
+ <span class="cline-any cline-neutral">&nbsp;</span>
1408
+ <span class="cline-any cline-neutral">&nbsp;</span>
1409
+ <span class="cline-any cline-neutral">&nbsp;</span>
1410
+ <span class="cline-any cline-neutral">&nbsp;</span>
1411
+ <span class="cline-any cline-neutral">&nbsp;</span>
1412
+ <span class="cline-any cline-neutral">&nbsp;</span>
1413
+ <span class="cline-any cline-neutral">&nbsp;</span>
1414
+ <span class="cline-any cline-neutral">&nbsp;</span>
1415
+ <span class="cline-any cline-neutral">&nbsp;</span>
1416
+ <span class="cline-any cline-neutral">&nbsp;</span>
1417
+ <span class="cline-any cline-neutral">&nbsp;</span>
1418
+ <span class="cline-any cline-neutral">&nbsp;</span>
1419
+ <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-neutral">&nbsp;</span>
1421
+ <span class="cline-any cline-neutral">&nbsp;</span>
1422
+ <span class="cline-any cline-neutral">&nbsp;</span>
1423
+ <span class="cline-any cline-neutral">&nbsp;</span>
1424
+ <span class="cline-any cline-neutral">&nbsp;</span>
1425
+ <span class="cline-any cline-neutral">&nbsp;</span>
1426
+ <span class="cline-any cline-neutral">&nbsp;</span>
1427
+ <span class="cline-any cline-neutral">&nbsp;</span>
1428
+ <span class="cline-any cline-neutral">&nbsp;</span>
1429
+ <span class="cline-any cline-no">&nbsp;</span>
1430
+ <span class="cline-any cline-no">&nbsp;</span>
1431
+ <span class="cline-any cline-no">&nbsp;</span>
1432
+ <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-neutral">&nbsp;</span>
1434
+ <span class="cline-any cline-neutral">&nbsp;</span>
1435
+ <span class="cline-any cline-neutral">&nbsp;</span>
1436
+ <span class="cline-any cline-no">&nbsp;</span>
1437
+ <span class="cline-any cline-neutral">&nbsp;</span>
1438
+ <span class="cline-any cline-neutral">&nbsp;</span>
1439
+ <span class="cline-any cline-neutral">&nbsp;</span>
1440
+ <span class="cline-any cline-neutral">&nbsp;</span>
1441
+ <span class="cline-any cline-neutral">&nbsp;</span>
1442
+ <span class="cline-any cline-neutral">&nbsp;</span>
1443
+ <span class="cline-any cline-neutral">&nbsp;</span>
1444
+ <span class="cline-any cline-neutral">&nbsp;</span>
1445
+ <span class="cline-any cline-neutral">&nbsp;</span>
1446
+ <span class="cline-any cline-neutral">&nbsp;</span>
1447
+ <span class="cline-any cline-neutral">&nbsp;</span>
1448
+ <span class="cline-any cline-neutral">&nbsp;</span>
1449
+ <span class="cline-any cline-neutral">&nbsp;</span>
1450
+ <span class="cline-any cline-neutral">&nbsp;</span>
1451
+ <span class="cline-any cline-neutral">&nbsp;</span>
1452
+ <span class="cline-any cline-neutral">&nbsp;</span>
1453
+ <span class="cline-any cline-no">&nbsp;</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-no">&nbsp;</span>
1456
+ <span class="cline-any cline-no">&nbsp;</span>
1457
+ <span class="cline-any cline-neutral">&nbsp;</span>
1458
+ <span class="cline-any cline-neutral">&nbsp;</span>
1459
+ <span class="cline-any cline-no">&nbsp;</span>
1460
+ <span class="cline-any cline-neutral">&nbsp;</span>
1461
+ <span class="cline-any cline-no">&nbsp;</span>
1462
+ <span class="cline-any cline-neutral">&nbsp;</span>
1463
+ <span class="cline-any cline-neutral">&nbsp;</span>
1464
+ <span class="cline-any cline-neutral">&nbsp;</span>
1465
+ <span class="cline-any cline-no">&nbsp;</span>
1466
+ <span class="cline-any cline-no">&nbsp;</span>
1467
+ <span class="cline-any cline-neutral">&nbsp;</span>
1468
+ <span class="cline-any cline-neutral">&nbsp;</span>
1469
+ <span class="cline-any cline-neutral">&nbsp;</span>
1470
+ <span class="cline-any cline-neutral">&nbsp;</span>
1471
+ <span class="cline-any cline-neutral">&nbsp;</span>
1472
+ <span class="cline-any cline-neutral">&nbsp;</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-no">&nbsp;</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-no">&nbsp;</span>
1479
+ <span class="cline-any cline-no">&nbsp;</span>
1480
+ <span class="cline-any cline-no">&nbsp;</span>
1481
+ <span class="cline-any cline-no">&nbsp;</span>
1482
+ <span class="cline-any cline-neutral">&nbsp;</span>
1483
+ <span class="cline-any cline-neutral">&nbsp;</span>
1484
+ <span class="cline-any cline-no">&nbsp;</span>
1485
+ <span class="cline-any cline-neutral">&nbsp;</span>
1486
+ <span class="cline-any cline-neutral">&nbsp;</span>
1487
+ <span class="cline-any cline-neutral">&nbsp;</span>
1488
+ <span class="cline-any cline-neutral">&nbsp;</span>
1489
+ <span class="cline-any cline-neutral">&nbsp;</span>
1490
+ <span class="cline-any cline-neutral">&nbsp;</span>
1491
+ <span class="cline-any cline-neutral">&nbsp;</span>
1492
+ <span class="cline-any cline-neutral">&nbsp;</span>
1493
+ <span class="cline-any cline-neutral">&nbsp;</span>
1494
+ <span class="cline-any cline-neutral">&nbsp;</span>
1495
+ <span class="cline-any cline-neutral">&nbsp;</span>
1496
+ <span class="cline-any cline-neutral">&nbsp;</span>
1497
+ <span class="cline-any cline-neutral">&nbsp;</span>
1498
+ <span class="cline-any cline-neutral">&nbsp;</span>
1499
+ <span class="cline-any cline-neutral">&nbsp;</span>
1500
+ <span class="cline-any cline-neutral">&nbsp;</span>
1501
+ <span class="cline-any cline-no">&nbsp;</span>
1502
+ <span class="cline-any cline-no">&nbsp;</span>
1503
+ <span class="cline-any cline-no">&nbsp;</span>
1504
+ <span class="cline-any cline-no">&nbsp;</span>
1505
+ <span class="cline-any cline-neutral">&nbsp;</span>
1506
+ <span class="cline-any cline-neutral">&nbsp;</span>
1507
+ <span class="cline-any cline-no">&nbsp;</span>
1508
+ <span class="cline-any cline-neutral">&nbsp;</span>
1509
+ <span class="cline-any cline-no">&nbsp;</span>
1510
+ <span class="cline-any cline-neutral">&nbsp;</span>
1511
+ <span class="cline-any cline-neutral">&nbsp;</span>
1512
+ <span class="cline-any cline-neutral">&nbsp;</span>
1513
+ <span class="cline-any cline-no">&nbsp;</span>
1514
+ <span class="cline-any cline-no">&nbsp;</span>
1515
+ <span class="cline-any cline-neutral">&nbsp;</span>
1516
+ <span class="cline-any cline-neutral">&nbsp;</span>
1517
+ <span class="cline-any cline-neutral">&nbsp;</span>
1518
+ <span class="cline-any cline-neutral">&nbsp;</span>
1519
+ <span class="cline-any cline-neutral">&nbsp;</span>
1520
+ <span class="cline-any cline-neutral">&nbsp;</span>
1521
+ <span class="cline-any cline-no">&nbsp;</span>
1522
+ <span class="cline-any cline-no">&nbsp;</span>
1523
+ <span class="cline-any cline-no">&nbsp;</span>
1524
+ <span class="cline-any cline-no">&nbsp;</span>
1525
+ <span class="cline-any cline-no">&nbsp;</span>
1526
+ <span class="cline-any cline-no">&nbsp;</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-no">&nbsp;</span>
1529
+ <span class="cline-any cline-no">&nbsp;</span>
1530
+ <span class="cline-any cline-neutral">&nbsp;</span>
1531
+ <span class="cline-any cline-neutral">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1533
+ <span class="cline-any cline-neutral">&nbsp;</span>
1534
+ <span class="cline-any cline-neutral">&nbsp;</span>
1535
+ <span class="cline-any cline-neutral">&nbsp;</span>
1536
+ <span class="cline-any cline-neutral">&nbsp;</span>
1537
+ <span class="cline-any cline-neutral">&nbsp;</span>
1538
+ <span class="cline-any cline-neutral">&nbsp;</span>
1539
+ <span class="cline-any cline-neutral">&nbsp;</span>
1540
+ <span class="cline-any cline-neutral">&nbsp;</span>
1541
+ <span class="cline-any cline-no">&nbsp;</span>
1542
+ <span class="cline-any cline-no">&nbsp;</span>
1543
+ <span class="cline-any cline-no">&nbsp;</span>
1544
+ <span class="cline-any cline-no">&nbsp;</span>
1545
+ <span class="cline-any cline-neutral">&nbsp;</span>
1546
+ <span class="cline-any cline-neutral">&nbsp;</span>
1547
+ <span class="cline-any cline-neutral">&nbsp;</span>
1548
+ <span class="cline-any cline-no">&nbsp;</span>
1549
+ <span class="cline-any cline-neutral">&nbsp;</span>
1550
+ <span class="cline-any cline-neutral">&nbsp;</span>
1551
+ <span class="cline-any cline-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-no">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-neutral">&nbsp;</span>
1555
+ <span class="cline-any cline-no">&nbsp;</span>
1556
+ <span class="cline-any cline-neutral">&nbsp;</span>
1557
+ <span class="cline-any cline-neutral">&nbsp;</span>
1558
+ <span class="cline-any cline-neutral">&nbsp;</span>
1559
+ <span class="cline-any cline-neutral">&nbsp;</span>
1560
+ <span class="cline-any cline-neutral">&nbsp;</span>
1561
+ <span class="cline-any cline-neutral">&nbsp;</span>
1562
+ <span class="cline-any cline-no">&nbsp;</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-neutral">&nbsp;</span>
1565
+ <span class="cline-any cline-neutral">&nbsp;</span>
1566
+ <span class="cline-any cline-neutral">&nbsp;</span>
1567
+ <span class="cline-any cline-no">&nbsp;</span>
1568
+ <span class="cline-any cline-no">&nbsp;</span>
1569
+ <span class="cline-any cline-no">&nbsp;</span>
1570
+ <span class="cline-any cline-no">&nbsp;</span>
1571
+ <span class="cline-any cline-no">&nbsp;</span>
1572
+ <span class="cline-any cline-no">&nbsp;</span>
1573
+ <span class="cline-any cline-no">&nbsp;</span>
1574
+ <span class="cline-any cline-neutral">&nbsp;</span>
1575
+ <span class="cline-any cline-neutral">&nbsp;</span>
1576
+ <span class="cline-any cline-no">&nbsp;</span>
1577
+ <span class="cline-any cline-no">&nbsp;</span>
1578
+ <span class="cline-any cline-no">&nbsp;</span>
1579
+ <span class="cline-any cline-neutral">&nbsp;</span>
1580
+ <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-neutral">&nbsp;</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-neutral">&nbsp;</span>
1588
+ <span class="cline-any cline-no">&nbsp;</span>
1589
+ <span class="cline-any cline-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-neutral">&nbsp;</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-no">&nbsp;</span>
1594
+ <span class="cline-any cline-no">&nbsp;</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-no">&nbsp;</span>
1597
+ <span class="cline-any cline-no">&nbsp;</span>
1598
+ <span class="cline-any cline-neutral">&nbsp;</span>
1599
+ <span class="cline-any cline-neutral">&nbsp;</span>
1600
+ <span class="cline-any cline-no">&nbsp;</span>
1601
+ <span class="cline-any cline-no">&nbsp;</span>
1602
+ <span class="cline-any cline-neutral">&nbsp;</span>
1603
+ <span class="cline-any cline-neutral">&nbsp;</span>
1604
+ <span class="cline-any cline-neutral">&nbsp;</span>
1605
+ <span class="cline-any cline-neutral">&nbsp;</span>
1606
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
+ <span class="cline-any cline-neutral">&nbsp;</span>
1608
+ <span class="cline-any cline-no">&nbsp;</span>
1609
+ <span class="cline-any cline-neutral">&nbsp;</span>
1610
+ <span class="cline-any cline-neutral">&nbsp;</span>
1611
+ <span class="cline-any cline-neutral">&nbsp;</span>
1612
+ <span class="cline-any cline-no">&nbsp;</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&nbsp;</span>
1616
+ <span class="cline-any cline-neutral">&nbsp;</span>
1617
+ <span class="cline-any cline-neutral">&nbsp;</span>
1618
+ <span class="cline-any cline-neutral">&nbsp;</span>
1619
+ <span class="cline-any cline-neutral">&nbsp;</span>
1620
+ <span class="cline-any cline-no">&nbsp;</span>
1621
+ <span class="cline-any cline-no">&nbsp;</span>
1622
+ <span class="cline-any cline-neutral">&nbsp;</span>
1623
+ <span class="cline-any cline-no">&nbsp;</span>
1624
+ <span class="cline-any cline-no">&nbsp;</span>
1625
+ <span class="cline-any cline-neutral">&nbsp;</span>
1626
+ <span class="cline-any cline-neutral">&nbsp;</span>
1627
+ <span class="cline-any cline-neutral">&nbsp;</span>
1628
+ <span class="cline-any cline-no">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1630
+ <span class="cline-any cline-no">&nbsp;</span>
1631
+ <span class="cline-any cline-no">&nbsp;</span>
1632
+ <span class="cline-any cline-neutral">&nbsp;</span>
1633
+ <span class="cline-any cline-neutral">&nbsp;</span>
1634
+ <span class="cline-any cline-neutral">&nbsp;</span>
1635
+ <span class="cline-any cline-neutral">&nbsp;</span>
1636
+ <span class="cline-any cline-neutral">&nbsp;</span>
1637
+ <span class="cline-any cline-neutral">&nbsp;</span>
1638
+ <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-neutral">&nbsp;</span>
1640
+ <span class="cline-any cline-no">&nbsp;</span>
1641
+ <span class="cline-any cline-no">&nbsp;</span>
1642
+ <span class="cline-any cline-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-no">&nbsp;</span>
1644
+ <span class="cline-any cline-no">&nbsp;</span>
1645
+ <span class="cline-any cline-no">&nbsp;</span>
1646
+ <span class="cline-any cline-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-neutral">&nbsp;</span>
1648
+ <span class="cline-any cline-neutral">&nbsp;</span>
1649
+ <span class="cline-any cline-neutral">&nbsp;</span>
1650
+ <span class="cline-any cline-neutral">&nbsp;</span>
1651
+ <span class="cline-any cline-neutral">&nbsp;</span>
1652
+ <span class="cline-any cline-neutral">&nbsp;</span>
1653
+ <span class="cline-any cline-neutral">&nbsp;</span>
1654
+ <span class="cline-any cline-no">&nbsp;</span>
1655
+ <span class="cline-any cline-no">&nbsp;</span>
1656
+ <span class="cline-any cline-neutral">&nbsp;</span>
1657
+ <span class="cline-any cline-no">&nbsp;</span>
1658
+ <span class="cline-any cline-no">&nbsp;</span>
1659
+ <span class="cline-any cline-no">&nbsp;</span>
1660
+ <span class="cline-any cline-neutral">&nbsp;</span>
1661
+ <span class="cline-any cline-neutral">&nbsp;</span>
1662
+ <span class="cline-any cline-neutral">&nbsp;</span>
1663
+ <span class="cline-any cline-neutral">&nbsp;</span>
1664
+ <span class="cline-any cline-neutral">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-no">&nbsp;</span>
1669
+ <span class="cline-any cline-no">&nbsp;</span>
1670
+ <span class="cline-any cline-neutral">&nbsp;</span>
1671
+ <span class="cline-any cline-neutral">&nbsp;</span>
1672
+ <span class="cline-any cline-neutral">&nbsp;</span>
1673
+ <span class="cline-any cline-no">&nbsp;</span>
1674
+ <span class="cline-any cline-neutral">&nbsp;</span>
1675
+ <span class="cline-any cline-neutral">&nbsp;</span>
1676
+ <span class="cline-any cline-neutral">&nbsp;</span>
1677
+ <span class="cline-any cline-neutral">&nbsp;</span>
1678
+ <span class="cline-any cline-neutral">&nbsp;</span>
1679
+ <span class="cline-any cline-neutral">&nbsp;</span>
1680
+ <span class="cline-any cline-neutral">&nbsp;</span>
1681
+ <span class="cline-any cline-neutral">&nbsp;</span>
1682
+ <span class="cline-any cline-no">&nbsp;</span>
1683
+ <span class="cline-any cline-no">&nbsp;</span>
1684
+ <span class="cline-any cline-neutral">&nbsp;</span>
1685
+ <span class="cline-any cline-no">&nbsp;</span>
1686
+ <span class="cline-any cline-neutral">&nbsp;</span>
1687
+ <span class="cline-any cline-neutral">&nbsp;</span>
1688
+ <span class="cline-any cline-neutral">&nbsp;</span>
1689
+ <span class="cline-any cline-neutral">&nbsp;</span>
1690
+ <span class="cline-any cline-neutral">&nbsp;</span>
1691
+ <span class="cline-any cline-neutral">&nbsp;</span>
1692
+ <span class="cline-any cline-neutral">&nbsp;</span>
1693
+ <span class="cline-any cline-no">&nbsp;</span>
1694
+ <span class="cline-any cline-no">&nbsp;</span>
1695
+ <span class="cline-any cline-neutral">&nbsp;</span>
1696
+ <span class="cline-any cline-neutral">&nbsp;</span>
1697
+ <span class="cline-any cline-no">&nbsp;</span>
1698
+ <span class="cline-any cline-neutral">&nbsp;</span>
1699
+ <span class="cline-any cline-no">&nbsp;</span>
1700
+ <span class="cline-any cline-neutral">&nbsp;</span>
1701
+ <span class="cline-any cline-neutral">&nbsp;</span>
1702
+ <span class="cline-any cline-neutral">&nbsp;</span>
1703
+ <span class="cline-any cline-yes">11x</span>
1704
+ <span class="cline-any cline-neutral">&nbsp;</span>
1705
+ <span class="cline-any cline-neutral">&nbsp;</span>
1706
+ <span class="cline-any cline-neutral">&nbsp;</span>
1707
+ <span class="cline-any cline-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-neutral">&nbsp;</span>
1710
+ <span class="cline-any cline-neutral">&nbsp;</span>
1711
+ <span class="cline-any cline-neutral">&nbsp;</span>
1712
+ <span class="cline-any cline-neutral">&nbsp;</span>
1713
+ <span class="cline-any cline-neutral">&nbsp;</span>
1714
+ <span class="cline-any cline-neutral">&nbsp;</span>
1715
+ <span class="cline-any cline-neutral">&nbsp;</span>
1716
+ <span class="cline-any cline-neutral">&nbsp;</span>
1717
+ <span class="cline-any cline-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-neutral">&nbsp;</span>
1719
+ <span class="cline-any cline-neutral">&nbsp;</span>
1720
+ <span class="cline-any cline-neutral">&nbsp;</span>
1721
+ <span class="cline-any cline-neutral">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&nbsp;</span>
1723
+ <span class="cline-any cline-neutral">&nbsp;</span>
1724
+ <span class="cline-any cline-neutral">&nbsp;</span>
1725
+ <span class="cline-any cline-neutral">&nbsp;</span>
1726
+ <span class="cline-any cline-neutral">&nbsp;</span>
1727
+ <span class="cline-any cline-neutral">&nbsp;</span>
1728
+ <span class="cline-any cline-neutral">&nbsp;</span>
1729
+ <span class="cline-any cline-neutral">&nbsp;</span>
1730
+ <span class="cline-any cline-neutral">&nbsp;</span>
1731
+ <span class="cline-any cline-neutral">&nbsp;</span>
1732
+ <span class="cline-any cline-neutral">&nbsp;</span>
1733
+ <span class="cline-any cline-neutral">&nbsp;</span>
1734
+ <span class="cline-any cline-neutral">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-neutral">&nbsp;</span>
1742
+ <span class="cline-any cline-neutral">&nbsp;</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-neutral">&nbsp;</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-neutral">&nbsp;</span>
1751
+ <span class="cline-any cline-neutral">&nbsp;</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1758
+ <span class="cline-any cline-neutral">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-neutral">&nbsp;</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-neutral">&nbsp;</span>
1764
+ <span class="cline-any cline-neutral">&nbsp;</span>
1765
+ <span class="cline-any cline-neutral">&nbsp;</span>
1766
+ <span class="cline-any cline-neutral">&nbsp;</span>
1767
+ <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span>
1769
+ <span class="cline-any cline-neutral">&nbsp;</span>
1770
+ <span class="cline-any cline-neutral">&nbsp;</span>
1771
+ <span class="cline-any cline-neutral">&nbsp;</span>
1772
+ <span class="cline-any cline-neutral">&nbsp;</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-neutral">&nbsp;</span>
1776
+ <span class="cline-any cline-neutral">&nbsp;</span>
1777
+ <span class="cline-any cline-neutral">&nbsp;</span>
1778
+ <span class="cline-any cline-neutral">&nbsp;</span>
1779
+ <span class="cline-any cline-neutral">&nbsp;</span>
1780
+ <span class="cline-any cline-neutral">&nbsp;</span>
1781
+ <span class="cline-any cline-neutral">&nbsp;</span>
1782
+ <span class="cline-any cline-neutral">&nbsp;</span>
1783
+ <span class="cline-any cline-neutral">&nbsp;</span>
1784
+ <span class="cline-any cline-neutral">&nbsp;</span>
1785
+ <span class="cline-any cline-neutral">&nbsp;</span>
1786
+ <span class="cline-any cline-neutral">&nbsp;</span>
1787
+ <span class="cline-any cline-neutral">&nbsp;</span>
1788
+ <span class="cline-any cline-neutral">&nbsp;</span>
1789
+ <span class="cline-any cline-neutral">&nbsp;</span>
1790
+ <span class="cline-any cline-neutral">&nbsp;</span>
1791
+ <span class="cline-any cline-neutral">&nbsp;</span>
1792
+ <span class="cline-any cline-neutral">&nbsp;</span>
1793
+ <span class="cline-any cline-neutral">&nbsp;</span>
1794
+ <span class="cline-any cline-neutral">&nbsp;</span>
1795
+ <span class="cline-any cline-neutral">&nbsp;</span>
1796
+ <span class="cline-any cline-neutral">&nbsp;</span>
1797
+ <span class="cline-any cline-neutral">&nbsp;</span>
1798
+ <span class="cline-any cline-neutral">&nbsp;</span>
1799
+ <span class="cline-any cline-neutral">&nbsp;</span>
1800
+ <span class="cline-any cline-neutral">&nbsp;</span>
1801
+ <span class="cline-any cline-neutral">&nbsp;</span>
1802
+ <span class="cline-any cline-neutral">&nbsp;</span>
1803
+ <span class="cline-any cline-neutral">&nbsp;</span>
1804
+ <span class="cline-any cline-neutral">&nbsp;</span>
1805
+ <span class="cline-any cline-neutral">&nbsp;</span>
1806
+ <span class="cline-any cline-neutral">&nbsp;</span>
1807
+ <span class="cline-any cline-yes">1x</span>
1808
+ <span class="cline-any cline-no">&nbsp;</span>
1809
+ <span class="cline-any cline-no">&nbsp;</span>
1810
+ <span class="cline-any cline-no">&nbsp;</span>
1811
+ <span class="cline-any cline-no">&nbsp;</span>
1812
+ <span class="cline-any cline-no">&nbsp;</span>
1813
+ <span class="cline-any cline-no">&nbsp;</span>
1814
+ <span class="cline-any cline-no">&nbsp;</span>
1815
+ <span class="cline-any cline-neutral">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-no">&nbsp;</span>
1818
+ <span class="cline-any cline-no">&nbsp;</span>
1819
+ <span class="cline-any cline-no">&nbsp;</span>
1820
+ <span class="cline-any cline-no">&nbsp;</span>
1821
+ <span class="cline-any cline-no">&nbsp;</span>
1822
+ <span class="cline-any cline-no">&nbsp;</span>
1823
+ <span class="cline-any cline-no">&nbsp;</span>
1824
+ <span class="cline-any cline-neutral">&nbsp;</span>
1825
+ <span class="cline-any cline-no">&nbsp;</span>
1826
+ <span class="cline-any cline-neutral">&nbsp;</span>
1827
+ <span class="cline-any cline-neutral">&nbsp;</span>
1828
+ <span class="cline-any cline-no">&nbsp;</span>
1829
+ <span class="cline-any cline-neutral">&nbsp;</span>
1830
+ <span class="cline-any cline-neutral">&nbsp;</span>
1831
+ <span class="cline-any cline-neutral">&nbsp;</span>
1832
+ <span class="cline-any cline-neutral">&nbsp;</span>
1833
+ <span class="cline-any cline-neutral">&nbsp;</span>
1834
+ <span class="cline-any cline-no">&nbsp;</span>
1835
+ <span class="cline-any cline-no">&nbsp;</span>
1836
+ <span class="cline-any cline-no">&nbsp;</span>
1837
+ <span class="cline-any cline-no">&nbsp;</span>
1838
+ <span class="cline-any cline-neutral">&nbsp;</span>
1839
+ <span class="cline-any cline-no">&nbsp;</span>
1840
+ <span class="cline-any cline-no">&nbsp;</span>
1841
+ <span class="cline-any cline-neutral">&nbsp;</span>
1842
+ <span class="cline-any cline-no">&nbsp;</span>
1843
+ <span class="cline-any cline-neutral">&nbsp;</span>
1844
+ <span class="cline-any cline-neutral">&nbsp;</span>
1845
+ <span class="cline-any cline-neutral">&nbsp;</span>
1846
+ <span class="cline-any cline-yes">198x</span>
1847
+ <span class="cline-any cline-yes">198x</span>
1848
+ <span class="cline-any cline-no">&nbsp;</span>
1849
+ <span class="cline-any cline-neutral">&nbsp;</span>
1850
+ <span class="cline-any cline-neutral">&nbsp;</span>
1851
+ <span class="cline-any cline-neutral">&nbsp;</span>
1852
+ <span class="cline-any cline-neutral">&nbsp;</span>
1853
+ <span class="cline-any cline-neutral">&nbsp;</span>
1854
+ <span class="cline-any cline-neutral">&nbsp;</span>
1855
+ <span class="cline-any cline-neutral">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-neutral">&nbsp;</span>
1858
+ <span class="cline-any cline-neutral">&nbsp;</span>
1859
+ <span class="cline-any cline-neutral">&nbsp;</span>
1860
+ <span class="cline-any cline-yes">11x</span>
1861
+ <span class="cline-any cline-yes">11x</span>
1862
+ <span class="cline-any cline-yes">11x</span>
1863
+ <span class="cline-any cline-neutral">&nbsp;</span>
1864
+ <span class="cline-any cline-neutral">&nbsp;</span>
1865
+ <span class="cline-any cline-neutral">&nbsp;</span>
1866
+ <span class="cline-any cline-neutral">&nbsp;</span>
1867
+ <span class="cline-any cline-neutral">&nbsp;</span>
1868
+ <span class="cline-any cline-yes">11x</span>
1869
+ <span class="cline-any cline-yes">11x</span>
1870
+ <span class="cline-any cline-neutral">&nbsp;</span>
1871
+ <span class="cline-any cline-neutral">&nbsp;</span>
1872
+ <span class="cline-any cline-neutral">&nbsp;</span>
1873
+ <span class="cline-any cline-no">&nbsp;</span>
1874
+ <span class="cline-any cline-no">&nbsp;</span>
1875
+ <span class="cline-any cline-neutral">&nbsp;</span>
1876
+ <span class="cline-any cline-no">&nbsp;</span>
1877
+ <span class="cline-any cline-no">&nbsp;</span>
1878
+ <span class="cline-any cline-no">&nbsp;</span>
1879
+ <span class="cline-any cline-neutral">&nbsp;</span>
1880
+ <span class="cline-any cline-no">&nbsp;</span>
1881
+ <span class="cline-any cline-no">&nbsp;</span>
1882
+ <span class="cline-any cline-neutral">&nbsp;</span>
1883
+ <span class="cline-any cline-no">&nbsp;</span>
1884
+ <span class="cline-any cline-neutral">&nbsp;</span>
1885
+ <span class="cline-any cline-no">&nbsp;</span>
1886
+ <span class="cline-any cline-neutral">&nbsp;</span>
1887
+ <span class="cline-any cline-neutral">&nbsp;</span>
1888
+ <span class="cline-any cline-neutral">&nbsp;</span>
1889
+ <span class="cline-any cline-neutral">&nbsp;</span>
1890
+ <span class="cline-any cline-neutral">&nbsp;</span>
1891
+ <span class="cline-any cline-neutral">&nbsp;</span>
1892
+ <span class="cline-any cline-neutral">&nbsp;</span>
1893
+ <span class="cline-any cline-neutral">&nbsp;</span>
1894
+ <span class="cline-any cline-no">&nbsp;</span>
1895
+ <span class="cline-any cline-no">&nbsp;</span>
1896
+ <span class="cline-any cline-no">&nbsp;</span>
1897
+ <span class="cline-any cline-no">&nbsp;</span>
1898
+ <span class="cline-any cline-neutral">&nbsp;</span>
1899
+ <span class="cline-any cline-neutral">&nbsp;</span>
1900
+ <span class="cline-any cline-no">&nbsp;</span>
1901
+ <span class="cline-any cline-neutral">&nbsp;</span>
1902
+ <span class="cline-any cline-neutral">&nbsp;</span>
1903
+ <span class="cline-any cline-neutral">&nbsp;</span>
1904
+ <span class="cline-any cline-neutral">&nbsp;</span>
1905
+ <span class="cline-any cline-neutral">&nbsp;</span>
1906
+ <span class="cline-any cline-neutral">&nbsp;</span>
1907
+ <span class="cline-any cline-neutral">&nbsp;</span>
1908
+ <span class="cline-any cline-neutral">&nbsp;</span>
1909
+ <span class="cline-any cline-neutral">&nbsp;</span>
1910
+ <span class="cline-any cline-no">&nbsp;</span>
1911
+ <span class="cline-any cline-no">&nbsp;</span>
1912
+ <span class="cline-any cline-neutral">&nbsp;</span>
1913
+ <span class="cline-any cline-neutral">&nbsp;</span>
1914
+ <span class="cline-any cline-neutral">&nbsp;</span>
1915
+ <span class="cline-any cline-neutral">&nbsp;</span>
1916
+ <span class="cline-any cline-neutral">&nbsp;</span>
1917
+ <span class="cline-any cline-neutral">&nbsp;</span>
1918
+ <span class="cline-any cline-neutral">&nbsp;</span>
1919
+ <span class="cline-any cline-yes">1x</span>
1920
+ <span class="cline-any cline-neutral">&nbsp;</span>
1921
+ <span class="cline-any cline-neutral">&nbsp;</span>
1922
+ <span class="cline-any cline-neutral">&nbsp;</span>
1923
+ <span class="cline-any cline-neutral">&nbsp;</span>
1924
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Namespace from './Namespace__';
1925
+ import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
1926
+ import { entity2LogicNamespace } from '../server/entity2LogicNamespace';
1927
+ import CallQueryComponent from './CallQueryComponent__';
1928
+ //================================================================================
1929
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1930
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1931
+ //================================================================================
1932
+ import { EventPayload, Params } from '../common/EventEmitter';
1933
+ import { concept, excludedInJSON, property, className } from '../decorators';
1934
+ &nbsp;
1935
+ import * as utils from '../utils';
1936
+ import { v4 as uuidv4 } from 'uuid';
1937
+ import BaseNode from '../common/BaseNode';
1938
+ import EntityProperty from './EntityProperty__';
1939
+ import EntityIndex from './EntityIndex__';
1940
+ import Module from './Module__';
1941
+ import DataSource from './DataSource__';
1942
+ import App from './App__';
1943
+ &nbsp;
1944
+ /**
1945
+ * 实体
1946
+ */
1947
+ @className
1948
+ @concept('实体')
1949
+ // @ts-ignore
1950
+ export class Entity extends BaseNode {
1951
+ /** 类名 */
1952
+ static readonly ConceptName = 'Entity';
1953
+ &nbsp;
1954
+ /**
1955
+ * 产品概念
1956
+ */
1957
+ // @ts-ignore
1958
+ readonly concept!: 'Entity';
1959
+ &nbsp;
1960
+ /**
1961
+ * 实体名称
1962
+ */
1963
+ @property()
1964
+ // @ts-ignore
1965
+ name!: string;
1966
+ &nbsp;
1967
+ /**
1968
+ * 唯一标识
1969
+ */
1970
+ @property()
1971
+ uuid: string = uuidv4().replace(/-/g, '');
1972
+ &nbsp;
1973
+ /**
1974
+ * 数据库表名
1975
+ */
1976
+ @property()
1977
+ // @ts-ignore
1978
+ tableName!: string;
1979
+ &nbsp;
1980
+ /**
1981
+ * 实体描述
1982
+ */
1983
+ @property()
1984
+ // @ts-ignore
1985
+ description!: string;
1986
+ &nbsp;
1987
+ /**
1988
+ * 实体来源
1989
+ */
1990
+ @property()
1991
+ origin: 'ide' | 'sql' | 'table' | 'excel' = 'ide';
1992
+ &nbsp;
1993
+ /**
1994
+ * 实体属性列表
1995
+ */
1996
+ @property('EntityProperty')
1997
+ properties: Array&lt;EntityProperty&gt; = [];
1998
+ &nbsp;
1999
+ /**
2000
+ * 实体索引列表
2001
+ */
2002
+ @property('EntityIndex')
2003
+ indexes: Array&lt;EntityIndex&gt; = [];
2004
+ &nbsp;
2005
+ /**
2006
+ * 祖先 Module
2007
+ */
2008
+ <span class="fstat-no" title="function not covered" > get m</span>odule() {
2009
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('Module') as Module;</span>
2010
+ }
2011
+ /**
2012
+ * 祖先 App
2013
+ */
2014
+ <span class="fstat-no" title="function not covered" > get a</span>pp() {
2015
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('App') as App;</span>
2016
+ }
2017
+ /**
2018
+ * 祖先 DataSource
2019
+ */
2020
+ <span class="fstat-no" title="function not covered" > get d</span>ataSource() {
2021
+ <span class="cstat-no" title="statement not covered" > return this.getAncestor('DataSource') as DataSource;</span>
2022
+ }
2023
+ &nbsp;
2024
+ /**
2025
+ * @param source 需要合并的部分参数
2026
+ */
2027
+ constructor(source?: Partial&lt;Entity&gt;) {
2028
+ source = Object.assign({}, Entity.getDefaultOptions(), source);
2029
+ super(source);
2030
+ super.subConstructor(source);
2031
+ }
2032
+ &nbsp;
2033
+ static from(source: any, parentNode?: any, parentKey?: string): Entity {
2034
+ return super.from(source, parentNode, parentKey) as Entity;
2035
+ }
2036
+ &nbsp;
2037
+ /**
2038
+ * 从父级删除该节点
2039
+ * @internal
2040
+ */
2041
+ <span class="fstat-no" title="function not covered" > _delete(</span>) {
2042
+ let params: Params = <span class="cstat-no" title="statement not covered" >null;</span>
2043
+ <span class="cstat-no" title="statement not covered" > if (this.parentNode) {</span>
2044
+ <span class="cstat-no" title="statement not covered" > params = (this.parentNode as any)?.__removeEntity?.(this);</span>
2045
+ }
2046
+ <span class="cstat-no" title="statement not covered" > return params;</span>
2047
+ }
2048
+ /**
2049
+ * 设置实体描述
2050
+ */
2051
+ <span class="fstat-no" title="function not covered" > setDescription(</span>description: string) {
2052
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2053
+ description,
2054
+ };
2055
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2056
+ ...object,
2057
+ });
2058
+ }
2059
+ &nbsp;
2060
+ <span class="fstat-no" title="function not covered" > getPropertyExistingNames(</span>excludedList: Array&lt;EntityProperty&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2061
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
2062
+ <span class="cstat-no" title="statement not covered" > return ((this.properties as EntityProperty[]) || [])</span>
2063
+ .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>
2064
+ .map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
2065
+ }
2066
+ <span class="fstat-no" title="function not covered" > getPropertyUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'property1')</span> {
2067
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getPropertyExistingNames(), undefined, false);</span>
2068
+ }
2069
+ &nbsp;
2070
+ /**
2071
+ * 插入实体属性
2072
+ * @internal
2073
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
2074
+ */
2075
+ _insertPropertyAt(name: string, index: number): EntityProperty;
2076
+ &nbsp;
2077
+ /**
2078
+ * 插入实体属性
2079
+ * @internal
2080
+ * @param propertyOptions 实体属性参数
2081
+ */
2082
+ _insertPropertyAt(propertyOptions: Partial&lt;EntityProperty&gt;, index: number): EntityProperty;
2083
+ &nbsp;
2084
+ /**
2085
+ * 插入实体属性
2086
+ * @internal
2087
+ * @param property 已有的实体属性实例
2088
+ */
2089
+ _insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
2090
+ &nbsp;
2091
+ <span class="fstat-no" title="function not covered" > _insertPropertyAt(</span>options: string | Partial&lt;EntityProperty&gt; | EntityProperty, index: number) {
2092
+ const propertyOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
2093
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'properties' };</span>
2094
+ let property: EntityProperty;
2095
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
2096
+ <span class="cstat-no" title="statement not covered" > property = EntityProperty.from(</span>
2097
+ {
2098
+ ...propertyOptions,
2099
+ name: this.getPropertyUniqueName(),
2100
+ },
2101
+ this,
2102
+ 'properties',
2103
+ );
2104
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
2105
+ <span class="cstat-no" title="statement not covered" > property = EntityProperty.from(</span>
2106
+ {
2107
+ ...propertyOptions,
2108
+ name: options,
2109
+ },
2110
+ this,
2111
+ 'properties',
2112
+ );
2113
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof EntityProperty) {</span>
2114
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
2115
+ <span class="cstat-no" title="statement not covered" > property = options;</span>
2116
+ <span class="cstat-no" title="statement not covered" > Object.assign(property, relationOptions);</span>
2117
+ } else {
2118
+ <span class="cstat-no" title="statement not covered" > property = EntityProperty.from(</span>
2119
+ {
2120
+ ...propertyOptions,
2121
+ ...options,
2122
+ },
2123
+ this,
2124
+ 'properties',
2125
+ );
2126
+ }
2127
+ <span class="cstat-no" title="statement not covered" > this.properties.splice(index, 0, property);</span>
2128
+ <span class="cstat-no" title="statement not covered" > return property;</span>
2129
+ }
2130
+ &nbsp;
2131
+ /**
2132
+ * 插入实体属性
2133
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
2134
+ */
2135
+ insertPropertyAt(name: string, index: number): EntityProperty;
2136
+ &nbsp;
2137
+ /**
2138
+ * 插入实体属性
2139
+ * @param propertyOptions 实体属性参数
2140
+ */
2141
+ insertPropertyAt(propertyOptions: Partial&lt;EntityProperty&gt;, index: number): EntityProperty;
2142
+ &nbsp;
2143
+ /**
2144
+ * 插入实体属性
2145
+ * @param property 已有的实体属性实例
2146
+ */
2147
+ insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
2148
+ &nbsp;
2149
+ <span class="fstat-no" title="function not covered" > insertPropertyAt(</span>options: string | Partial&lt;EntityProperty&gt; | EntityProperty, index: number) {
2150
+ const node = <span class="cstat-no" title="statement not covered" >this._insertPropertyAt(options as any, index);</span>
2151
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2152
+ index,
2153
+ parentNode: this,
2154
+ parentKey: 'properties',
2155
+ });
2156
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2157
+ }
2158
+ &nbsp;
2159
+ /**
2160
+ * 添加实体属性
2161
+ * @internal
2162
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
2163
+ */
2164
+ _addProperty(name?: string): EntityProperty;
2165
+ &nbsp;
2166
+ /**
2167
+ * 添加实体属性
2168
+ * @internal
2169
+ * @param propertyOptions 实体属性参数
2170
+ */
2171
+ _addProperty(propertyOptions: Partial&lt;EntityProperty&gt;): EntityProperty;
2172
+ &nbsp;
2173
+ /**
2174
+ * 添加实体属性
2175
+ * @internal
2176
+ * @param property 已有的实体属性实例
2177
+ */
2178
+ _addProperty(property: EntityProperty): EntityProperty;
2179
+ &nbsp;
2180
+ <span class="fstat-no" title="function not covered" > _addProperty(</span>options?: string | Partial&lt;EntityProperty&gt; | EntityProperty) {
2181
+ const index = <span class="cstat-no" title="statement not covered" >this.properties.length;</span>
2182
+ <span class="cstat-no" title="statement not covered" > return this._insertPropertyAt(options as any, index);</span>
2183
+ }
2184
+ &nbsp;
2185
+ /**
2186
+ * 添加实体属性
2187
+ * @internal
2188
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
2189
+ */
2190
+ addProperty(name?: string): EntityProperty;
2191
+ &nbsp;
2192
+ /**
2193
+ * 添加实体属性
2194
+ * @param propertyOptions 实体属性参数
2195
+ */
2196
+ addProperty(propertyOptions: Partial&lt;EntityProperty&gt;): EntityProperty;
2197
+ &nbsp;
2198
+ /**
2199
+ * 添加实体属性
2200
+ * @param property 已有的实体属性实例
2201
+ */
2202
+ addProperty(property: EntityProperty): EntityProperty;
2203
+ &nbsp;
2204
+ <span class="fstat-no" title="function not covered" > addProperty(</span>options?: string | Partial&lt;EntityProperty&gt; | EntityProperty) {
2205
+ const node = <span class="cstat-no" title="statement not covered" >this._addProperty(options as any);</span>
2206
+ const index = <span class="cstat-no" title="statement not covered" >this.properties.indexOf(node);</span>
2207
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2208
+ index,
2209
+ parentNode: this,
2210
+ parentKey: 'properties',
2211
+ });
2212
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2213
+ }
2214
+ &nbsp;
2215
+ <span class="fstat-no" title="function not covered" > getEntityIndexExistingNames(</span>excludedList: Array&lt;EntityIndex&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2216
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
2217
+ <span class="cstat-no" title="statement not covered" > return ((this.indexes as EntityIndex[]) || []).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>
2218
+ }
2219
+ <span class="fstat-no" title="function not covered" > getEntityIndexUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'entityIndex1')</span> {
2220
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getEntityIndexExistingNames(), undefined, false);</span>
2221
+ }
2222
+ &nbsp;
2223
+ /**
2224
+ * 插入实体索引
2225
+ * @internal
2226
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
2227
+ */
2228
+ _insertEntityIndexAt(name: string, index: number): EntityIndex;
2229
+ &nbsp;
2230
+ /**
2231
+ * 插入实体索引
2232
+ * @internal
2233
+ * @param entityIndexOptions 实体索引参数
2234
+ */
2235
+ _insertEntityIndexAt(entityIndexOptions: Partial&lt;EntityIndex&gt;, index: number): EntityIndex;
2236
+ &nbsp;
2237
+ /**
2238
+ * 插入实体索引
2239
+ * @internal
2240
+ * @param entityIndex 已有的实体索引实例
2241
+ */
2242
+ _insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
2243
+ &nbsp;
2244
+ <span class="fstat-no" title="function not covered" > _insertEntityIndexAt(</span>options: string | Partial&lt;EntityIndex&gt; | EntityIndex, index: number) {
2245
+ const entityIndexOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
2246
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'indexes' };</span>
2247
+ let entityIndex: EntityIndex;
2248
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
2249
+ <span class="cstat-no" title="statement not covered" > entityIndex = EntityIndex.from(</span>
2250
+ {
2251
+ ...entityIndexOptions,
2252
+ name: this.getEntityIndexUniqueName(),
2253
+ },
2254
+ this,
2255
+ 'indexes',
2256
+ );
2257
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
2258
+ <span class="cstat-no" title="statement not covered" > entityIndex = EntityIndex.from(</span>
2259
+ {
2260
+ ...entityIndexOptions,
2261
+ name: options,
2262
+ },
2263
+ this,
2264
+ 'indexes',
2265
+ );
2266
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof EntityIndex) {</span>
2267
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
2268
+ <span class="cstat-no" title="statement not covered" > entityIndex = options;</span>
2269
+ <span class="cstat-no" title="statement not covered" > Object.assign(entityIndex, relationOptions);</span>
2270
+ } else {
2271
+ <span class="cstat-no" title="statement not covered" > entityIndex = EntityIndex.from(</span>
2272
+ {
2273
+ ...entityIndexOptions,
2274
+ ...options,
2275
+ },
2276
+ this,
2277
+ 'indexes',
2278
+ );
2279
+ }
2280
+ <span class="cstat-no" title="statement not covered" > this.indexes.splice(index, 0, entityIndex);</span>
2281
+ <span class="cstat-no" title="statement not covered" > return entityIndex;</span>
2282
+ }
2283
+ &nbsp;
2284
+ /**
2285
+ * 插入实体索引
2286
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
2287
+ */
2288
+ insertEntityIndexAt(name: string, index: number): EntityIndex;
2289
+ &nbsp;
2290
+ /**
2291
+ * 插入实体索引
2292
+ * @param entityIndexOptions 实体索引参数
2293
+ */
2294
+ insertEntityIndexAt(entityIndexOptions: Partial&lt;EntityIndex&gt;, index: number): EntityIndex;
2295
+ &nbsp;
2296
+ /**
2297
+ * 插入实体索引
2298
+ * @param entityIndex 已有的实体索引实例
2299
+ */
2300
+ insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
2301
+ &nbsp;
2302
+ <span class="fstat-no" title="function not covered" > insertEntityIndexAt(</span>options: string | Partial&lt;EntityIndex&gt; | EntityIndex, index: number) {
2303
+ const node = <span class="cstat-no" title="statement not covered" >this._insertEntityIndexAt(options as any, index);</span>
2304
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2305
+ index,
2306
+ parentNode: this,
2307
+ parentKey: 'indexes',
2308
+ });
2309
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2310
+ }
2311
+ &nbsp;
2312
+ /**
2313
+ * 添加实体索引
2314
+ * @internal
2315
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
2316
+ */
2317
+ _addEntityIndex(name?: string): EntityIndex;
2318
+ &nbsp;
2319
+ /**
2320
+ * 添加实体索引
2321
+ * @internal
2322
+ * @param entityIndexOptions 实体索引参数
2323
+ */
2324
+ _addEntityIndex(entityIndexOptions: Partial&lt;EntityIndex&gt;): EntityIndex;
2325
+ &nbsp;
2326
+ /**
2327
+ * 添加实体索引
2328
+ * @internal
2329
+ * @param entityIndex 已有的实体索引实例
2330
+ */
2331
+ _addEntityIndex(entityIndex: EntityIndex): EntityIndex;
2332
+ &nbsp;
2333
+ <span class="fstat-no" title="function not covered" > _addEntityIndex(</span>options?: string | Partial&lt;EntityIndex&gt; | EntityIndex) {
2334
+ const index = <span class="cstat-no" title="statement not covered" >this.indexes.length;</span>
2335
+ <span class="cstat-no" title="statement not covered" > return this._insertEntityIndexAt(options as any, index);</span>
2336
+ }
2337
+ &nbsp;
2338
+ /**
2339
+ * 添加实体索引
2340
+ * @internal
2341
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
2342
+ */
2343
+ addEntityIndex(name?: string): EntityIndex;
2344
+ &nbsp;
2345
+ /**
2346
+ * 添加实体索引
2347
+ * @param entityIndexOptions 实体索引参数
2348
+ */
2349
+ addEntityIndex(entityIndexOptions: Partial&lt;EntityIndex&gt;): EntityIndex;
2350
+ &nbsp;
2351
+ /**
2352
+ * 添加实体索引
2353
+ * @param entityIndex 已有的实体索引实例
2354
+ */
2355
+ addEntityIndex(entityIndex: EntityIndex): EntityIndex;
2356
+ &nbsp;
2357
+ <span class="fstat-no" title="function not covered" > addEntityIndex(</span>options?: string | Partial&lt;EntityIndex&gt; | EntityIndex) {
2358
+ const node = <span class="cstat-no" title="statement not covered" >this._addEntityIndex(options as any);</span>
2359
+ const index = <span class="cstat-no" title="statement not covered" >this.indexes.indexOf(node);</span>
2360
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2361
+ index,
2362
+ parentNode: this,
2363
+ parentKey: 'indexes',
2364
+ });
2365
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2366
+ }
2367
+ &nbsp;
2368
+ /**
2369
+ * 删除实体属性
2370
+ * @param name 实体属性名称
2371
+ */
2372
+ removeProperty(name: string): void;
2373
+ &nbsp;
2374
+ /**
2375
+ * 删除实体属性
2376
+ * @param property 已有的实体属性实例
2377
+ */
2378
+ removeProperty(property: EntityProperty): void;
2379
+ &nbsp;
2380
+ <span class="fstat-no" title="function not covered" > removeProperty(</span>options: string | EntityProperty) {
2381
+ let property: EntityProperty;
2382
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
2383
+ <span class="cstat-no" title="statement not covered" > property = (this.properties as EntityProperty[]).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>
2384
+ <span class="cstat-no" title="statement not covered" > if (!property) {</span>
2385
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到实体属性 ' + options);</span>
2386
+ }
2387
+ } else {
2388
+ <span class="cstat-no" title="statement not covered" > property = options;</span>
2389
+ }
2390
+ <span class="cstat-no" title="statement not covered" > return property.delete();</span>
2391
+ }
2392
+ &nbsp;
2393
+ <span class="fstat-no" title="function not covered" > __removeEntityProperty(</span>property: EntityProperty) {
2394
+ const parentKey = <span class="cstat-no" title="statement not covered" >property.parentKey;</span>
2395
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
2396
+ parentNode: this,
2397
+ parentKey,
2398
+ index: -1,
2399
+ object: null,
2400
+ oldObject: property,
2401
+ };
2402
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
2403
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
2404
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
2405
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(property);</span>
2406
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
2407
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
2408
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === property) {</span>
2409
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
2410
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
2411
+ }
2412
+ }
2413
+ <span class="cstat-no" title="statement not covered" > return params;</span>
2414
+ }
2415
+ &nbsp;
2416
+ /**
2417
+ * 删除实体索引
2418
+ * @param name 实体索引名称
2419
+ */
2420
+ removeEntityIndex(name: string): void;
2421
+ &nbsp;
2422
+ /**
2423
+ * 删除实体索引
2424
+ * @param entityIndex 已有的实体索引实例
2425
+ */
2426
+ removeEntityIndex(entityIndex: EntityIndex): void;
2427
+ &nbsp;
2428
+ <span class="fstat-no" title="function not covered" > removeEntityIndex(</span>options: string | EntityIndex) {
2429
+ let entityIndex: EntityIndex;
2430
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
2431
+ <span class="cstat-no" title="statement not covered" > entityIndex = (this.indexes as EntityIndex[]).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>
2432
+ <span class="cstat-no" title="statement not covered" > if (!entityIndex) {</span>
2433
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到实体索引 ' + options);</span>
2434
+ }
2435
+ } else {
2436
+ <span class="cstat-no" title="statement not covered" > entityIndex = options;</span>
2437
+ }
2438
+ <span class="cstat-no" title="statement not covered" > return entityIndex.delete();</span>
2439
+ }
2440
+ &nbsp;
2441
+ <span class="fstat-no" title="function not covered" > __removeEntityIndex(</span>entityIndex: EntityIndex) {
2442
+ const parentKey = <span class="cstat-no" title="statement not covered" >entityIndex.parentKey;</span>
2443
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
2444
+ parentNode: this,
2445
+ parentKey,
2446
+ index: -1,
2447
+ object: null,
2448
+ oldObject: entityIndex,
2449
+ };
2450
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
2451
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
2452
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
2453
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(entityIndex);</span>
2454
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
2455
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
2456
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === entityIndex) {</span>
2457
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
2458
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
2459
+ }
2460
+ }
2461
+ <span class="cstat-no" title="statement not covered" > return params;</span>
2462
+ }
2463
+ &nbsp;
2464
+ //================================================================================
2465
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2466
+ // 自动生成的代码已结束。下面可以手动编写。
2467
+ //================================================================================
2468
+ &nbsp;
2469
+ <span class="fstat-no" title="function not covered" > getPropertyExistingColumnNames(</span>excludedList: Array&lt;EntityProperty&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2470
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
2471
+ <span class="cstat-no" title="statement not covered" > return ((this.properties as EntityProperty[]) || [])</span>
2472
+ .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>
2473
+ .map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.columnName)</span>;
2474
+ }
2475
+ &nbsp;
2476
+ <span class="fstat-no" title="function not covered" > getPropertyUniqueColumnName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'property1',</span> excludedList: Array&lt;EntityProperty&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2477
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getPropertyExistingColumnNames(excludedList), undefined, false);</span>
2478
+ }
2479
+ &nbsp;
2480
+ <span class="fstat-no" title="function not covered" > getPropertyExistingNameList(</span>excludedList: Array&lt;EntityProperty&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2481
+ const excludedSet = <span class="cstat-no" title="statement not covered" >Array.from(new Set(excludedList));</span>
2482
+ const namelist = <span class="cstat-no" title="statement not covered" >excludedSet.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>
2483
+ &nbsp;
2484
+ <span class="cstat-no" title="statement not covered" > return (this.properties || []).filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!namelist.includes(item.name))</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>
2485
+ }
2486
+ &nbsp;
2487
+ /**
2488
+ * 设置实体表名并修改表名
2489
+ */
2490
+ <span class="fstat-no" title="function not covered" > setName(</span>name: string) {
2491
+ const object: any = <span class="cstat-no" title="statement not covered" >{</span>
2492
+ name,
2493
+ };
2494
+ &nbsp;
2495
+ // 根据 name 格式化表名
2496
+ const oldName = <span class="cstat-no" title="statement not covered" >this.name;</span>
2497
+ const oldTableName = <span class="cstat-no" title="statement not covered" >this.tableName;</span>
2498
+ <span class="cstat-no" title="statement not covered" > this.name = name;</span>
2499
+ <span class="cstat-no" title="statement not covered" > this.tableName = name;</span>
2500
+ <span class="cstat-no" title="statement not covered" > this.__formatTableName();</span>
2501
+ <span class="cstat-no" title="statement not covered" > if (this.tableName !== oldTableName &amp;&amp; !this.isIgnoreFormatTableAndColumnName()) {</span>
2502
+ <span class="cstat-no" title="statement not covered" > object.tableName = this.tableName;</span>
2503
+ }
2504
+ &nbsp;
2505
+ <span class="cstat-no" title="statement not covered" > this.name = oldName;</span>
2506
+ <span class="cstat-no" title="statement not covered" > this.tableName = oldTableName;</span>
2507
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2508
+ ...object,
2509
+ field: 'name',
2510
+ });
2511
+ }
2512
+ &nbsp;
2513
+ /**
2514
+ * 设置实体表名
2515
+ */
2516
+ <span class="fstat-no" title="function not covered" > setTableName(</span>tableName: string) {
2517
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2518
+ tableName,
2519
+ };
2520
+ &nbsp;
2521
+ const oldTableName = <span class="cstat-no" title="statement not covered" >this.tableName;</span>
2522
+ <span class="cstat-no" title="statement not covered" > this.tableName = tableName;</span>
2523
+ <span class="cstat-no" title="statement not covered" > this.__formatTableName();</span>
2524
+ &nbsp;
2525
+ <span class="cstat-no" title="statement not covered" > if (this.tableName !== tableName &amp;&amp; !this.isIgnoreFormatTableAndColumnName()) {</span>
2526
+ <span class="cstat-no" title="statement not covered" > object.tableName = this.tableName;</span>
2527
+ }
2528
+ &nbsp;
2529
+ <span class="cstat-no" title="statement not covered" > this.tableName = oldTableName;</span>
2530
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2531
+ ...object,
2532
+ });
2533
+ }
2534
+ &nbsp;
2535
+ // Excel、数据源导入的实体不进行表名格式化
2536
+ <span class="fstat-no" title="function not covered" > isIgnoreFormatTableAndColumnName(</span>) {
2537
+ <span class="cstat-no" title="statement not covered" > return this.origin !== 'ide' &amp;&amp; this.origin !== 'sql';</span>
2538
+ }
2539
+ &nbsp;
2540
+ <span class="fstat-no" title="function not covered" > genFormatTableName(</span>) {
2541
+ <span class="cstat-no" title="statement not covered" > return (this.parentNode as DataSource).genFormatEntityTableName(this);</span>
2542
+ }
2543
+ &nbsp;
2544
+ /**
2545
+ * 根据全局设置中的数据库命名规则,生成 属性列名
2546
+ */
2547
+ <span class="fstat-no" title="function not covered" > genFormatPropertyColumnName(</span>property: EntityProperty) {
2548
+ // Excel、数据源导入的实体不进行列名格式化
2549
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2550
+ <span class="cstat-no" title="statement not covered" > return property.columnName || property.name;</span>
2551
+ }
2552
+ const columnNameRule = <span class="cstat-no" title="statement not covered" >this.app.preferenceMap['namingConvention.columnName'];</span>
2553
+ const formatMap: Record&lt;string, Function&gt; = <span class="cstat-no" title="statement not covered" >{</span>
2554
+ camelCase: utils.snake2Camel,
2555
+ snake_case: utils.Camel2Snake,
2556
+ };
2557
+ const columnNameFormatter = <span class="cstat-no" title="statement not covered" >formatMap[columnNameRule];</span>
2558
+ let newColumnName = <span class="cstat-no" title="statement not covered" >columnNameFormatter &amp;&amp; columnNameFormatter(property.columnName || property.name, true);</span>
2559
+ <span class="cstat-no" title="statement not covered" > newColumnName = this.getPropertyUniqueColumnName(newColumnName, [property]);</span>
2560
+ <span class="cstat-no" title="statement not covered" > return newColumnName;</span>
2561
+ }
2562
+ &nbsp;
2563
+ /**
2564
+ * 根据全局设置中的数据库命名规则,将 实体表名 重命名
2565
+ * 此方法不会 update
2566
+ */
2567
+ <span class="fstat-no" title="function not covered" > __formatTableName(</span>) {
2568
+ // Excel、数据源导入的实体不进行表名格式化
2569
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2570
+ <span class="cstat-no" title="statement not covered" > return;</span>
2571
+ }
2572
+ const newTableName = <span class="cstat-no" title="statement not covered" >this.genFormatTableName();</span>
2573
+ <span class="cstat-no" title="statement not covered" > if (newTableName &amp;&amp; newTableName !== this.tableName) {</span>
2574
+ <span class="cstat-no" title="statement not covered" > this.tableName = newTableName;</span>
2575
+ }
2576
+ }
2577
+ &nbsp;
2578
+ /**
2579
+ * 根据全局设置中的数据库命名规则,将 实体表名 重命名
2580
+ */
2581
+ <span class="fstat-no" title="function not covered" > formatTableName(</span>) {
2582
+ // Excel、数据源导入的实体不进行表名格式化
2583
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2584
+ <span class="cstat-no" title="statement not covered" > return;</span>
2585
+ }
2586
+ const newTableName = <span class="cstat-no" title="statement not covered" >this.genFormatTableName();</span>
2587
+ <span class="cstat-no" title="statement not covered" > if (newTableName &amp;&amp; newTableName !== this.tableName) {</span>
2588
+ <span class="cstat-no" title="statement not covered" > this.update({ tableName: newTableName });</span>
2589
+ }
2590
+ }
2591
+ &nbsp;
2592
+ /**
2593
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
2594
+ */
2595
+ <span class="fstat-no" title="function not covered" > formatPropertyColumnName(</span>) {
2596
+ // Excel、数据源导入的实体不进行列名格式化
2597
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2598
+ <span class="cstat-no" title="statement not covered" > return;</span>
2599
+ }
2600
+ &nbsp;
2601
+ // 重命名 properties columnName
2602
+ <span class="cstat-no" title="statement not covered" > this.properties.forEach(<span class="fstat-no" title="function not covered" >(p</span>rop) =&gt; <span class="cstat-no" title="statement not covered" >prop.formatColumnName())</span>;</span>
2603
+ }
2604
+ &nbsp;
2605
+ /**
2606
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
2607
+ * 此方法不会 update
2608
+ */
2609
+ <span class="fstat-no" title="function not covered" > __formatPropertyColumnName(</span>) {
2610
+ // Excel、数据源导入的实体不进行列名格式化
2611
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2612
+ <span class="cstat-no" title="statement not covered" > return;</span>
2613
+ }
2614
+ <span class="cstat-no" title="statement not covered" > this.properties.forEach(<span class="fstat-no" title="function not covered" >(p</span>rop) =&gt; <span class="cstat-no" title="statement not covered" >prop.__formatColumnName())</span>;</span>
2615
+ }
2616
+ &nbsp;
2617
+ /**
2618
+ * 根据全局设置中的数据库命名规则,将 实体表名 和 属性列名 重命名
2619
+ */
2620
+ <span class="fstat-no" title="function not covered" > formatTableAndColumnName(</span>) {
2621
+ // Excel、数据源导入的实体不进行格式化
2622
+ <span class="cstat-no" title="statement not covered" > if (this.isIgnoreFormatTableAndColumnName()) {</span>
2623
+ <span class="cstat-no" title="statement not covered" > return;</span>
2624
+ }
2625
+ // 重命名 tableName
2626
+ <span class="cstat-no" title="statement not covered" > this.formatTableName();</span>
2627
+ // 重命名 properties columnName
2628
+ <span class="cstat-no" title="statement not covered" > this.formatPropertyColumnName();</span>
2629
+ }
2630
+ &nbsp;
2631
+ public static getDefaultOptions() {
2632
+ return {
2633
+ properties: [
2634
+ {
2635
+ concept: 'EntityProperty',
2636
+ name: 'id',
2637
+ columnName: 'id',
2638
+ label: '主键',
2639
+ description: '主键',
2640
+ primaryKey: true,
2641
+ required: true,
2642
+ typeAnnotation: {
2643
+ concept: 'TypeAnnotation',
2644
+ typeKind: 'primitive',
2645
+ typeNamespace: 'nasl.core',
2646
+ typeName: 'Long',
2647
+ },
2648
+ display: {
2649
+ inTable: false,
2650
+ inFilter: false,
2651
+ inForm: false,
2652
+ inDetail: false,
2653
+ },
2654
+ },
2655
+ {
2656
+ concept: 'EntityProperty',
2657
+ name: 'createdTime',
2658
+ columnName: 'createdTime',
2659
+ label: '创建时间',
2660
+ description: '创建时间',
2661
+ typeAnnotation: {
2662
+ concept: 'TypeAnnotation',
2663
+ typeKind: 'primitive',
2664
+ typeNamespace: 'nasl.core',
2665
+ typeName: 'DateTime',
2666
+ },
2667
+ display: {
2668
+ inTable: true,
2669
+ inFilter: false,
2670
+ inForm: false,
2671
+ inDetail: false,
2672
+ },
2673
+ },
2674
+ {
2675
+ concept: 'EntityProperty',
2676
+ name: 'updatedTime',
2677
+ columnName: 'updatedTime',
2678
+ label: '更新时间',
2679
+ description: '更新时间',
2680
+ typeAnnotation: {
2681
+ concept: 'TypeAnnotation',
2682
+ typeKind: 'primitive',
2683
+ typeNamespace: 'nasl.core',
2684
+ typeName: 'DateTime',
2685
+ },
2686
+ display: {
2687
+ inTable: true,
2688
+ inFilter: false,
2689
+ inForm: false,
2690
+ inDetail: false,
2691
+ },
2692
+ },
2693
+ {
2694
+ concept: 'EntityProperty',
2695
+ name: 'createdBy',
2696
+ columnName: 'createdBy',
2697
+ label: '创建者',
2698
+ description: '创建者',
2699
+ typeAnnotation: {
2700
+ concept: 'TypeAnnotation',
2701
+ typeKind: 'primitive',
2702
+ typeNamespace: 'nasl.core',
2703
+ typeName: 'String',
2704
+ },
2705
+ display: {
2706
+ inTable: false,
2707
+ inFilter: false,
2708
+ inForm: false,
2709
+ inDetail: false,
2710
+ },
2711
+ },
2712
+ {
2713
+ concept: 'EntityProperty',
2714
+ name: 'updatedBy',
2715
+ columnName: 'updatedBy',
2716
+ label: '更新者',
2717
+ description: '更新者',
2718
+ typeAnnotation: {
2719
+ concept: 'TypeAnnotation',
2720
+ typeKind: 'primitive',
2721
+ typeNamespace: 'nasl.core',
2722
+ typeName: 'String',
2723
+ },
2724
+ display: {
2725
+ inTable: false,
2726
+ inFilter: false,
2727
+ inForm: false,
2728
+ inDetail: false,
2729
+ },
2730
+ },
2731
+ ],
2732
+ };
2733
+ }
2734
+ &nbsp;
2735
+ @withSourceMap()
2736
+ <span class="fstat-no" title="function not covered" > toEmbeddedTS(</span>state?: TranslatorState): string {
2737
+ let code = <span class="cstat-no" title="statement not covered" >`export class ${this.name} {\n`;</span>
2738
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
2739
+ <span class="cstat-no" title="statement not covered" > code += `__name: '${this.getNamespace()}.${this.name}';\n`;</span>
2740
+ <span class="cstat-no" title="statement not covered" > this.properties.forEach(<span class="fstat-no" title="function not covered" >(p</span>roperty) =&gt; {</span>
2741
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
2742
+ <span class="cstat-no" title="statement not covered" > code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));</span>
2743
+ <span class="cstat-no" title="statement not covered" > code += ';\n';</span>
2744
+ });
2745
+ <span class="cstat-no" title="statement not covered" > if (this.indexes &amp;&amp; this.indexes.length) {</span>
2746
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
2747
+ <span class="cstat-no" title="statement not covered" > code += `__IndexList() {\n`;</span>
2748
+ <span class="cstat-no" title="statement not covered" > code += ` return [`;</span>
2749
+ <span class="cstat-no" title="statement not covered" > this.indexes.forEach(<span class="fstat-no" title="function not covered" >(e</span>ntityIndex) =&gt; {</span>
2750
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
2751
+ <span class="cstat-no" title="statement not covered" > code += '\n ';</span>
2752
+ <span class="cstat-no" title="statement not covered" > code += entityIndex.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));</span>
2753
+ });
2754
+ <span class="cstat-no" title="statement not covered" > code += `${indent(state?.tabSize || 0)}\n ];\n }\n`;</span>
2755
+ }
2756
+ &nbsp;
2757
+ const { ns } = <span class="cstat-no" title="statement not covered" >this;</span>
2758
+ &nbsp;
2759
+ /**
2760
+ * 11个函数的总行数
2761
+ * 如果修改这里,可能会影响到dataSource的重命名, 在naslserver中,可能要一起修改
2762
+ */
2763
+ <span class="cstat-no" title="statement not covered" > code += `\nstatic logics = {\n`;</span>
2764
+ <span class="cstat-no" title="statement not covered" > ns.logics.forEach(<span class="fstat-no" title="function not covered" >(l</span>ogic) =&gt; {</span>
2765
+ <span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
2766
+ <span class="cstat-no" title="statement not covered" > code += logic.toEmbeddedTS(shiftState(state, code), 'inObject');</span>
2767
+ });
2768
+ <span class="cstat-no" title="statement not covered" > code += '}\n';</span>
2769
+ <span class="cstat-no" title="statement not covered" > code += `${indent(state?.tabSize || 0)}}\n`;</span>
2770
+ &nbsp;
2771
+ <span class="cstat-no" title="statement not covered" > return code;</span>
2772
+ }
2773
+ &nbsp;
2774
+ getNamespace() {
2775
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.parentNode &amp;&amp; (this.parentNode as DataSource).getNamespace)
2776
+ return `${(this.parentNode as DataSource).getNamespace()}.${this.parentNode.name}.entities`;
2777
+ <span class="cstat-no" title="statement not covered" > throw new Error('无法获取命名空间,请设置 parentNode!');</span>
2778
+ }
2779
+ &nbsp;
2780
+ /**
2781
+ * 生成宿主语言的文件路径
2782
+ * @param name 一般不用传,用于 rename
2783
+ */
2784
+ <span class="fstat-no" title="function not covered" > getEmbeddedFilePath(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >this.name)</span> {
2785
+ <span class="cstat-no" title="statement not covered" > return `/embedded/${this.app.name}/datasources/${this.parentNode.name}/entities/${name}.ts`;</span>
2786
+ }
2787
+ &nbsp;
2788
+ get ns() {
2789
+ const ns: Namespace = entity2LogicNamespace(this);
2790
+ ns.path = this.getNamespace();
2791
+ return ns;
2792
+ }
2793
+ // @excludedInJSON()
2794
+ // nslogic: Namespace;
2795
+ &nbsp;
2796
+ get logics() {
2797
+ const { ns } = this;
2798
+ return ns.logics;
2799
+ }
2800
+ &nbsp;
2801
+ <span class="fstat-no" title="function not covered" > toEmbeddedTSFile(</span>) {
2802
+ let code = <span class="cstat-no" title="statement not covered" >`namespace ${this.getNamespace()} {\n`;</span>
2803
+ <span class="cstat-no" title="statement not covered" > code += ' @nasl.annotation.Entity()\n';</span>
2804
+ &nbsp;
2805
+ const state = <span class="cstat-no" title="statement not covered" >createCompilerState(code, { tabSize: 1 });</span>
2806
+ <span class="cstat-no" title="statement not covered" > try {</span>
2807
+ <span class="cstat-no" title="statement not covered" > code += this.toEmbeddedTS(state);</span>
2808
+ } catch (err) {
2809
+ <span class="cstat-no" title="statement not covered" > code += '';</span>
2810
+ <span class="cstat-no" title="statement not covered" > console.log(err);</span>
2811
+ }
2812
+ <span class="cstat-no" title="statement not covered" > code += '}\n';</span>
2813
+ &nbsp;
2814
+ <span class="cstat-no" title="statement not covered" > return {</span>
2815
+ code,
2816
+ filePath: this.getEmbeddedFilePath(),
2817
+ sourceMap: state.sourceMap,
2818
+ };
2819
+ }
2820
+ &nbsp;
2821
+ // 获取当前实体的所有主键名称
2822
+ <span class="fstat-no" title="function not covered" > get p</span>ropertyPrimaryKeyNames() {
2823
+ const arr: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
2824
+ <span class="cstat-no" title="statement not covered" > this.properties.forEach(<span class="fstat-no" title="function not covered" >(p</span>roperty) =&gt; {</span>
2825
+ <span class="cstat-no" title="statement not covered" > if (property.primaryKey) {</span>
2826
+ <span class="cstat-no" title="statement not covered" > arr.push(property.name);</span>
2827
+ }
2828
+ });
2829
+ <span class="cstat-no" title="statement not covered" > return arr;</span>
2830
+ }
2831
+ &nbsp;
2832
+ /**
2833
+ * 获取已有的属性
2834
+ * 因为这个primaryIndex不允许添加
2835
+ * @param excludedList 排除的集合
2836
+ * @returns 有属性
2837
+ */
2838
+ <span class="fstat-no" title="function not covered" > getRenderEntityIndexExistingNames(</span>excludedList: Array&lt;EntityIndex&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2839
+ const arr = <span class="cstat-no" title="statement not covered" >this.getEntityIndexExistingNames(excludedList);</span>
2840
+ <span class="cstat-no" title="statement not covered" > return [...arr, 'primaryIndex'];</span>
2841
+ }
2842
+ //================================================================================
2843
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2844
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2845
+ //================================================================================
2846
+ }
2847
+ &nbsp;
2848
+ export default Entity;
2849
+ //================================================================================
2850
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2851
+ // 自动生成的代码已结束。下面可以手动编写。
2852
+ //================================================================================
2853
+ &nbsp;</pre></td></tr></table></pre>
2854
+
2855
+ <div class='push'></div><!-- for sticky footer -->
2856
+ </div><!-- /wrapper -->
2857
+ <div class='footer quiet pad2 space-top1 center small'>
2858
+ Code coverage generated by
2859
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2860
+ at 2023-10-19T09:18:56.902Z
2861
+ </div>
2862
+ <script src="../../prettify.js"></script>
2863
+ <script>
2864
+ window.onload = function () {
2865
+ prettyPrint();
2866
+ };
2867
+ </script>
2868
+ <script src="../../sorter.js"></script>
2869
+ <script src="../../block-navigation.js"></script>
2870
+ </body>
2871
+ </html>
2872
+