tnp-helpers 18.0.17 → 18.0.18

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 (407) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  3. package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  4. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  5. package/browser/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  6. package/browser/esm2022/lib/base/classes/base-db.mjs +31 -0
  7. package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  8. package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  9. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-git.mjs +2 -2
  10. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  11. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  12. package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  13. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  14. package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  15. package/browser/esm2022/lib/base/classes/base-project.mjs +926 -0
  16. package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  17. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  18. package/browser/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  19. package/browser/esm2022/lib/base/classes/index.mjs +22 -0
  20. package/browser/esm2022/lib/base/commit-data.mjs +1 -1
  21. package/browser/esm2022/lib/base/config-database.mjs +5 -2
  22. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  23. package/browser/esm2022/lib/base/index.mjs +3 -19
  24. package/browser/esm2022/lib/base/project-database.mjs +2 -2
  25. package/browser/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  26. package/browser/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  27. package/browser/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  28. package/browser/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  29. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  30. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  31. package/browser/esm2022/lib/utils.mjs +33 -144
  32. package/browser/esm2022/migrations/1736198527297_init.mjs +41 -0
  33. package/browser/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  34. package/browser/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  35. package/browser/esm2022/migrations/index.mjs +5 -0
  36. package/browser/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  37. package/browser/fesm2022/tnp-helpers.mjs +2135 -1598
  38. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  39. package/{client/lib/base → browser/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  40. package/browser/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  41. package/browser/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  42. package/{client/lib/base → browser/lib/base/classes}/base-library-build.d.ts +1 -1
  43. package/{websql/lib/base → browser/lib/base/classes}/base-linked-projects.d.ts +1 -1
  44. package/{client/lib/base → browser/lib/base/classes}/base-project-resolver.d.ts +4 -4
  45. package/browser/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  46. package/browser/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  47. package/browser/lib/base/classes/base-vscode.d.ts +24 -0
  48. package/browser/lib/base/classes/index.d.ts +16 -0
  49. package/browser/lib/base/config-database.d.ts +2 -2
  50. package/browser/lib/base/core-project.d.ts +1 -1
  51. package/browser/lib/base/index.d.ts +3 -16
  52. package/browser/lib/base/project-database.d.ts +2 -2
  53. package/browser/lib/base/tcp-udp-ports/index.d.ts +5 -0
  54. package/browser/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  55. package/browser/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  56. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  57. package/browser/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  58. package/browser/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  59. package/browser/lib/utils.d.ts +2 -38
  60. package/browser/migrations/1736198527297_init.d.ts +19 -0
  61. package/browser/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  62. package/browser/migrations/1736454437350_addFreePorts.d.ts +10 -0
  63. package/browser/migrations/index.d.ts +2 -0
  64. package/browser/migrations/migrations_index._auto-generated_.d.ts +12 -0
  65. package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  66. package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  67. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  68. package/client/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  69. package/client/esm2022/lib/base/classes/base-db.mjs +31 -0
  70. package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  71. package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  72. package/client/esm2022/lib/base/classes/base-git.mjs +932 -0
  73. package/client/esm2022/lib/base/classes/base-github-pages.mjs +110 -0
  74. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-library-build.mjs +2 -2
  75. package/client/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  76. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  77. package/client/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  78. package/client/esm2022/lib/base/classes/base-project.mjs +926 -0
  79. package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  80. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-release-process.mjs +3 -3
  81. package/client/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  82. package/client/esm2022/lib/base/classes/index.mjs +22 -0
  83. package/client/esm2022/lib/base/commit-data.mjs +1 -1
  84. package/client/esm2022/lib/base/config-database.mjs +5 -2
  85. package/client/esm2022/lib/base/core-project.mjs +1 -1
  86. package/client/esm2022/lib/base/index.mjs +3 -19
  87. package/client/esm2022/lib/base/project-database.mjs +2 -2
  88. package/client/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  89. package/client/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  90. package/client/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  91. package/client/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  92. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  93. package/client/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  94. package/client/esm2022/lib/utils.mjs +33 -144
  95. package/client/esm2022/migrations/1736198527297_init.mjs +41 -0
  96. package/client/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  97. package/client/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  98. package/client/esm2022/migrations/index.mjs +5 -0
  99. package/client/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  100. package/client/fesm2022/tnp-helpers.mjs +2135 -1598
  101. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  102. package/{browser/lib/base → client/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  103. package/client/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  104. package/{websql/lib/base → client/lib/base/classes}/base-git.d.ts +1 -1
  105. package/{browser/lib/base → client/lib/base/classes}/base-library-build.d.ts +1 -1
  106. package/{browser/lib/base → client/lib/base/classes}/base-linked-projects.d.ts +1 -1
  107. package/{websql/lib/base → client/lib/base/classes}/base-project-resolver.d.ts +4 -4
  108. package/client/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  109. package/client/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  110. package/client/lib/base/classes/base-vscode.d.ts +24 -0
  111. package/client/lib/base/classes/index.d.ts +16 -0
  112. package/client/lib/base/config-database.d.ts +2 -2
  113. package/client/lib/base/core-project.d.ts +1 -1
  114. package/client/lib/base/index.d.ts +3 -16
  115. package/client/lib/base/project-database.d.ts +2 -2
  116. package/client/lib/base/tcp-udp-ports/index.d.ts +5 -0
  117. package/client/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  118. package/client/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  119. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  120. package/client/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  121. package/client/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  122. package/client/lib/utils.d.ts +2 -38
  123. package/client/migrations/1736198527297_init.d.ts +19 -0
  124. package/client/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  125. package/client/migrations/1736454437350_addFreePorts.d.ts +10 -0
  126. package/client/migrations/index.d.ts +2 -0
  127. package/client/migrations/migrations_index._auto-generated_.d.ts +12 -0
  128. package/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +4 -4
  129. package/lib/base/{base-cli-worker-controller.js → classes/base-cli-worker-controller.js} +3 -3
  130. package/lib/base/classes/base-cli-worker-controller.js.map +1 -0
  131. package/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  132. package/lib/base/{base-cli-worker.js → classes/base-cli-worker.js} +48 -29
  133. package/lib/base/classes/base-cli-worker.js.map +1 -0
  134. package/lib/base/{command-line-feature.backend.d.ts → classes/base-command-line-feature.backend.d.ts} +1 -1
  135. package/lib/base/{command-line-feature.backend.js → classes/base-command-line-feature.backend.js} +15 -15
  136. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -0
  137. package/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +2 -2
  138. package/lib/base/{base-compiler-for-project.js → classes/base-compiler-for-project.js} +1 -1
  139. package/lib/base/{base-compiler-for-project.js.map → classes/base-compiler-for-project.js.map} +1 -1
  140. package/lib/base/{base-db.d.ts → classes/base-db.d.ts} +1 -1
  141. package/lib/base/{base-db.js → classes/base-db.js} +1 -1
  142. package/lib/base/{base-db.js.map → classes/base-db.js.map} +1 -1
  143. package/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +2 -2
  144. package/lib/base/{base-debounce-compiler-for-project.js.map → classes/base-debounce-compiler-for-project.js.map} +1 -1
  145. package/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  146. package/lib/base/{base-git.js → classes/base-git.js} +3 -3
  147. package/lib/base/{base-git.js.map → classes/base-git.js.map} +1 -1
  148. package/lib/base/{base-github-pages.js → classes/base-github-pages.js} +1 -1
  149. package/lib/base/{base-github-pages.js.map → classes/base-github-pages.js.map} +1 -1
  150. package/lib/base/{base-command-line.backend.d.ts → classes/base-global-command-line.backend.d.ts} +17 -4
  151. package/lib/base/{base-command-line.backend.js → classes/base-global-command-line.backend.js} +236 -161
  152. package/lib/base/classes/base-global-command-line.backend.js.map +1 -0
  153. package/lib/base/{base-ignore-hide.js → classes/base-ignore-hide.js} +1 -1
  154. package/lib/base/{base-ignore-hide.js.map → classes/base-ignore-hide.js.map} +1 -1
  155. package/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +3 -3
  156. package/lib/base/{base-library-build.js → classes/base-library-build.js} +2 -2
  157. package/lib/base/{base-library-build.js.map → classes/base-library-build.js.map} +1 -1
  158. package/lib/base/{base-linked-projects.d.ts → classes/base-linked-projects.d.ts} +1 -1
  159. package/lib/base/{base-linked-projects.js → classes/base-linked-projects.js} +1 -1
  160. package/lib/base/{base-linked-projects.js.map → classes/base-linked-projects.js.map} +1 -1
  161. package/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +3 -3
  162. package/lib/base/{base-npm-helpers.js → classes/base-npm-helpers.js} +1 -1
  163. package/lib/base/{base-npm-helpers.js.map → classes/base-npm-helpers.js.map} +1 -1
  164. package/lib/base/{base-project-resolver.d.ts → classes/base-project-resolver.d.ts} +4 -4
  165. package/lib/base/{base-project-resolver.js → classes/base-project-resolver.js} +6 -6
  166. package/lib/base/{base-project-resolver.js.map → classes/base-project-resolver.js.map} +1 -1
  167. package/lib/base/{base-project.d.ts → classes/base-project.d.ts} +10 -7
  168. package/lib/base/{base-project.js → classes/base-project.js} +20 -5
  169. package/lib/base/{base-project.js.map → classes/base-project.js.map} +1 -1
  170. package/lib/base/{base-quick-fixes.js → classes/base-quick-fixes.js} +1 -1
  171. package/lib/base/{base-quick-fixes.js.map → classes/base-quick-fixes.js.map} +1 -1
  172. package/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +3 -3
  173. package/lib/base/{base-release-process.js → classes/base-release-process.js} +2 -2
  174. package/lib/base/{base-release-process.js.map → classes/base-release-process.js.map} +1 -1
  175. package/lib/base/{base-start-config.backend.js → classes/base-start-config.backend.js} +2 -2
  176. package/lib/base/{base-start-config.backend.js.map → classes/base-start-config.backend.js.map} +1 -1
  177. package/lib/base/classes/base-vscode.d.ts +23 -0
  178. package/lib/base/classes/base-vscode.js +451 -0
  179. package/lib/base/classes/base-vscode.js.map +1 -0
  180. package/lib/base/classes/index.d.ts +18 -0
  181. package/lib/base/classes/index.js +24 -0
  182. package/lib/base/classes/index.js.map +1 -0
  183. package/lib/base/commit-data.js.map +1 -1
  184. package/lib/base/config-database.d.ts +2 -2
  185. package/lib/base/config-database.js +5 -8
  186. package/lib/base/config-database.js.map +1 -1
  187. package/lib/base/core-project.d.ts +3 -3
  188. package/lib/base/gh-temp-code.d.ts +1 -1
  189. package/lib/base/index.d.ts +2 -18
  190. package/lib/base/index.js +2 -18
  191. package/lib/base/index.js.map +1 -1
  192. package/lib/base/project-database.d.ts +2 -2
  193. package/lib/base/project-database.js +1 -1
  194. package/lib/base/project-database.js.map +1 -1
  195. package/lib/base/tcp-udp-ports/index.d.ts +4 -0
  196. package/lib/base/tcp-udp-ports/index.js +8 -0
  197. package/lib/base/tcp-udp-ports/index.js.map +1 -0
  198. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +6 -0
  199. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +45 -0
  200. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -0
  201. package/lib/base/tcp-udp-ports/ports.controller.d.ts +19 -0
  202. package/lib/base/tcp-udp-ports/ports.controller.js +135 -0
  203. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -0
  204. package/lib/base/tcp-udp-ports/ports.entity.d.ts +14 -0
  205. package/lib/base/tcp-udp-ports/ports.entity.js +45 -0
  206. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -0
  207. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +58 -0
  208. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +41 -0
  209. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -0
  210. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +31 -0
  211. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +215 -0
  212. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -0
  213. package/lib/helpers/for-backend/helpers-cli-tool.backend.d.ts +1 -1
  214. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  215. package/lib/helpers/for-backend/helpers-console-gui.js +2 -1
  216. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  217. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
  218. package/lib/helpers/for-backend/helpers-git.backend.js +2 -2
  219. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  220. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -3
  221. package/lib/helpers/for-backend/helpers-process.backend.js +4 -26
  222. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  223. package/lib/helpers/for-backend/helpers-vscode.backend.d.ts +2 -2
  224. package/lib/helpers/for-browser/angular.helper.js +2 -2
  225. package/lib/helpers/helpers.d.ts +1 -1
  226. package/lib/models.d.ts +2 -2
  227. package/lib/old/base-component.js +2 -2
  228. package/lib/old/base-formly-component.js +2 -2
  229. package/lib/old/dual-component-ctrl.js +2 -2
  230. package/lib/utils.d.ts +2 -38
  231. package/lib/utils.js +51 -158
  232. package/lib/utils.js.map +1 -1
  233. package/migrations/1736198527297_init.d.ts +18 -0
  234. package/migrations/1736198527297_init.js +72 -0
  235. package/migrations/1736198527297_init.js.map +1 -0
  236. package/migrations/1736199486472_addingNotAssignablePorts.d.ts +10 -0
  237. package/migrations/1736199486472_addingNotAssignablePorts.js +94 -0
  238. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -0
  239. package/migrations/1736454437350_addFreePorts.d.ts +9 -0
  240. package/migrations/1736454437350_addFreePorts.js +78 -0
  241. package/migrations/1736454437350_addFreePorts.js.map +1 -0
  242. package/migrations/migrations_index._auto-generated_.d.ts +11 -0
  243. package/migrations/migrations_index._auto-generated_.js +14 -0
  244. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  245. package/package.json +5 -5
  246. package/tmp-environment.json +30 -29
  247. package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  248. package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  249. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  250. package/websql/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  251. package/websql/esm2022/lib/base/classes/base-db.mjs +31 -0
  252. package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  253. package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  254. package/{browser/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-git.mjs +2 -2
  255. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  256. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  257. package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  258. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  259. package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +280 -0
  260. package/websql/esm2022/lib/base/classes/base-project.mjs +896 -0
  261. package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  262. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  263. package/websql/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  264. package/websql/esm2022/lib/base/classes/index.mjs +22 -0
  265. package/websql/esm2022/lib/base/commit-data.mjs +1 -1
  266. package/websql/esm2022/lib/base/config-database.mjs +5 -2
  267. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  268. package/websql/esm2022/lib/base/index.mjs +3 -19
  269. package/websql/esm2022/lib/base/project-database.mjs +2 -2
  270. package/websql/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  271. package/websql/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +34 -0
  272. package/websql/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  273. package/websql/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +34 -0
  274. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  275. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  276. package/websql/esm2022/lib/utils.mjs +33 -144
  277. package/websql/esm2022/migrations/1736198527297_init.mjs +41 -0
  278. package/websql/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  279. package/websql/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  280. package/websql/esm2022/migrations/index.mjs +5 -0
  281. package/websql/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  282. package/websql/fesm2022/tnp-helpers.mjs +1936 -1379
  283. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  284. package/websql/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +2 -2
  285. package/websql/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  286. package/{client/lib/base → websql/lib/base/classes}/base-git.d.ts +1 -1
  287. package/websql/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +1 -1
  288. package/{client/lib/base → websql/lib/base/classes}/base-linked-projects.d.ts +1 -1
  289. package/{browser/lib/base → websql/lib/base/classes}/base-project-resolver.d.ts +4 -4
  290. package/websql/lib/base/{base-project.d.ts → classes/base-project.d.ts} +7 -4
  291. package/websql/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  292. package/websql/lib/base/classes/base-vscode.d.ts +24 -0
  293. package/websql/lib/base/classes/index.d.ts +16 -0
  294. package/websql/lib/base/config-database.d.ts +2 -2
  295. package/websql/lib/base/core-project.d.ts +1 -1
  296. package/websql/lib/base/index.d.ts +3 -16
  297. package/websql/lib/base/project-database.d.ts +2 -2
  298. package/websql/lib/base/tcp-udp-ports/index.d.ts +5 -0
  299. package/websql/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  300. package/websql/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  301. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  302. package/websql/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  303. package/websql/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  304. package/websql/lib/utils.d.ts +2 -38
  305. package/websql/migrations/1736198527297_init.d.ts +19 -0
  306. package/websql/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  307. package/websql/migrations/1736454437350_addFreePorts.d.ts +10 -0
  308. package/websql/migrations/index.d.ts +2 -0
  309. package/websql/migrations/migrations_index._auto-generated_.d.ts +12 -0
  310. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  311. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  312. package/browser/esm2022/lib/base/base-cli-worker.mjs +0 -451
  313. package/browser/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  314. package/browser/esm2022/lib/base/base-db.mjs +0 -31
  315. package/browser/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  316. package/browser/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  317. package/browser/esm2022/lib/base/base-github-pages.mjs +0 -110
  318. package/browser/esm2022/lib/base/base-linked-projects.mjs +0 -321
  319. package/browser/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  320. package/browser/esm2022/lib/base/base-project-resolver.mjs +0 -291
  321. package/browser/esm2022/lib/base/base-project.mjs +0 -919
  322. package/browser/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  323. package/browser/esm2022/lib/base/base-vscode.mjs +0 -145
  324. package/browser/esm2022/lib/base/ports-worker.mjs +0 -162
  325. package/browser/lib/base/base-vscode.d.ts +0 -13
  326. package/browser/lib/base/ports-worker.d.ts +0 -33
  327. package/client/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  328. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  329. package/client/esm2022/lib/base/base-cli-worker.mjs +0 -451
  330. package/client/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  331. package/client/esm2022/lib/base/base-db.mjs +0 -31
  332. package/client/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  333. package/client/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  334. package/client/esm2022/lib/base/base-git.mjs +0 -932
  335. package/client/esm2022/lib/base/base-linked-projects.mjs +0 -321
  336. package/client/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  337. package/client/esm2022/lib/base/base-project-resolver.mjs +0 -291
  338. package/client/esm2022/lib/base/base-project.mjs +0 -919
  339. package/client/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  340. package/client/esm2022/lib/base/base-vscode.mjs +0 -145
  341. package/client/esm2022/lib/base/ports-worker.mjs +0 -162
  342. package/client/lib/base/base-vscode.d.ts +0 -13
  343. package/client/lib/base/ports-worker.d.ts +0 -33
  344. package/lib/base/base-cli-worker-controller.js.map +0 -1
  345. package/lib/base/base-cli-worker.js.map +0 -1
  346. package/lib/base/base-command-line.backend.js.map +0 -1
  347. package/lib/base/base-vscode.d.ts +0 -12
  348. package/lib/base/base-vscode.js +0 -139
  349. package/lib/base/base-vscode.js.map +0 -1
  350. package/lib/base/command-line-feature.backend.js.map +0 -1
  351. package/lib/base/ports-worker.d.ts +0 -32
  352. package/lib/base/ports-worker.js +0 -244
  353. package/lib/base/ports-worker.js.map +0 -1
  354. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  355. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  356. package/websql/esm2022/lib/base/base-cli-worker.mjs +0 -451
  357. package/websql/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  358. package/websql/esm2022/lib/base/base-db.mjs +0 -31
  359. package/websql/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  360. package/websql/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  361. package/websql/esm2022/lib/base/base-linked-projects.mjs +0 -321
  362. package/websql/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  363. package/websql/esm2022/lib/base/base-project-resolver.mjs +0 -280
  364. package/websql/esm2022/lib/base/base-project.mjs +0 -889
  365. package/websql/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  366. package/websql/esm2022/lib/base/base-vscode.mjs +0 -145
  367. package/websql/esm2022/lib/base/ports-worker.mjs +0 -165
  368. package/websql/lib/base/base-vscode.d.ts +0 -13
  369. package/websql/lib/base/ports-worker.d.ts +0 -33
  370. /package/browser/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  371. /package/browser/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  372. /package/browser/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  373. /package/browser/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  374. /package/browser/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  375. /package/browser/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  376. /package/browser/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  377. /package/browser/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  378. /package/client/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  379. /package/client/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  380. /package/client/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  381. /package/client/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  382. /package/client/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  383. /package/client/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  384. /package/client/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  385. /package/client/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  386. /package/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  387. /package/lib/base/{base-cli-worker-config.js → classes/base-cli-worker-config.js} +0 -0
  388. /package/lib/base/{base-cli-worker-config.js.map → classes/base-cli-worker-config.js.map} +0 -0
  389. /package/lib/base/{base-debounce-compiler-for-project.js → classes/base-debounce-compiler-for-project.js} +0 -0
  390. /package/lib/base/{base-detached-service.d.ts → classes/base-detached-service.d.ts} +0 -0
  391. /package/lib/base/{base-detached-service.js → classes/base-detached-service.js} +0 -0
  392. /package/lib/base/{base-detached-service.js.map → classes/base-detached-service.js.map} +0 -0
  393. /package/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  394. /package/lib/base/{base-feature-for-project.js → classes/base-feature-for-project.js} +0 -0
  395. /package/lib/base/{base-feature-for-project.js.map → classes/base-feature-for-project.js.map} +0 -0
  396. /package/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  397. /package/lib/base/{base-ignore-hide.d.ts → classes/base-ignore-hide.d.ts} +0 -0
  398. /package/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  399. /package/lib/base/{base-start-config.backend.d.ts → classes/base-start-config.backend.d.ts} +0 -0
  400. /package/websql/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  401. /package/websql/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  402. /package/websql/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  403. /package/websql/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  404. /package/websql/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  405. /package/websql/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  406. /package/websql/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  407. /package/websql/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
@@ -1,919 +0,0 @@
1
- /* */
2
- /* */
3
- /* */
4
- /* */
5
- /* */
6
- /* */
7
- /* */
8
- import { path, crossPlatformPath } from 'tnp-core/browser';
9
- import { _ } from 'tnp-core/browser';
10
- import { CoreProject, Helpers, } from '../index'; /* */
11
- /* */
12
- /* */
13
- /* */
14
- /* */
15
- /* */
16
- /* */
17
- /* */
18
- import { BaseProjectResolver } from './base-project-resolver';
19
- const takenPorts = [];
20
- export class BaseProject {
21
- static { this.ins = new BaseProjectResolver(BaseProject, 'taon'); }
22
- static { this.cache = {}; }
23
- get globalCache() {
24
- return BaseProject.cache;
25
- }
26
- get location() {
27
- return this.__location;
28
- }
29
- set location(v) {
30
- this.__location = crossPlatformPath(v);
31
- }
32
- // @ts-ignore
33
- constructor(
34
- /**
35
- * doesn't need to be real path -> can be link
36
- */
37
- location) {
38
- this.cache = {};
39
- this.type = 'unknow';
40
- this.toString = () => {
41
- return `${this.name}=>${this.location}`;
42
- };
43
- this.location = location;
44
- /* */
45
- /* */
46
- /* */
47
- /* */
48
- /* */
49
- /* */
50
- /* */
51
- /* */
52
- /* */
53
- /* */
54
- /* */
55
- /* */
56
- /* */
57
- /* */
58
- /* */
59
- /* */
60
- /* */
61
- /* */
62
- /* */
63
- /* */
64
- /* */
65
- /* */
66
- }
67
- get isMonorepo() {
68
- return false;
69
- }
70
- orderCoreProjects(coreProjects) {
71
- const projectMap = new Map();
72
- for (const project of coreProjects) {
73
- projectMap.set(project, []);
74
- }
75
- for (const project of coreProjects) {
76
- if (!projectMap.has(project.extends)) {
77
- projectMap.set(project.extends, []);
78
- }
79
- projectMap.get(project.extends).push(project);
80
- }
81
- const orderedProjects = [];
82
- const visited = new Set();
83
- const visit = (project) => {
84
- if (!visited.has(project)) {
85
- visited.add(project);
86
- const dependencies = projectMap.get(project);
87
- if (dependencies) {
88
- for (const dep of dependencies) {
89
- visit(dep);
90
- }
91
- }
92
- orderedProjects.push(project);
93
- }
94
- };
95
- for (const project of coreProjects) {
96
- visit(project);
97
- }
98
- return orderedProjects.reverse();
99
- }
100
- get core() {
101
- if (!_.isUndefined(this.cache['core'])) {
102
- return this.cache['core'];
103
- }
104
- let coreProjects = CoreProject.coreProjects.filter(p => p.recognizedFn(this));
105
- coreProjects = this.orderCoreProjects(coreProjects);
106
- this.cache['core'] = _.first(coreProjects);
107
- return this.cache['core'];
108
- }
109
- get linkedProjectsExisted() {
110
- /* */
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- /* */
116
- /* */
117
- return (void 0);
118
- }
119
- setType(type) {
120
- // @ts-ignore
121
- this.type = type;
122
- }
123
- typeIs(...types) {
124
- return this.type && types.includes(this.type);
125
- }
126
- typeIsNot(...types) {
127
- return !this.typeIs(...types);
128
- }
129
- /**
130
- * project folder basename
131
- */
132
- get basename() {
133
- /* */
134
- /* */
135
- return (void 0);
136
- }
137
- /**
138
- * project folder parent basename
139
- */
140
- get parentBasename() {
141
- /* */
142
- /* */
143
- return (void 0);
144
- }
145
- /**
146
- * name from package.json
147
- */
148
- get name() {
149
- return this.npmHelpers?.name || this.nameFromPomXML;
150
- }
151
- get nameForCli() {
152
- return this.name?.endsWith('-cli') ? this.name : `${this.name}-cli`;
153
- }
154
- get nameFromPomXML() {
155
- const artifactIdPattern = /<artifactId>([^<]+)<\/artifactId>/;
156
- const match = (this.readFile('pom.xml') || '').match(artifactIdPattern);
157
- if (match && match[1]) {
158
- return match[1];
159
- }
160
- return '';
161
- }
162
- getFoldersForPossibleProjectChildren() {
163
- /* */
164
- /* */
165
- /* */
166
- /* */
167
- /* */
168
- /* */
169
- /* */
170
- /* */
171
- /* */
172
- /* */
173
- /* */
174
- /* */
175
- /* */
176
- /* */
177
- /* */
178
- /* */
179
- /* */
180
- /* */
181
- /* */
182
- /* */
183
- /* */
184
- return (void 0);
185
- }
186
- getAllChildren() {
187
- /* */
188
- /* */
189
- /* */
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- /* */
195
- /* */
196
- return (void 0);
197
- }
198
- /**
199
- * alias to getAllChildren
200
- */
201
- get children() {
202
- /* */
203
- /* */
204
- return (void 0);
205
- }
206
- getChildBy(nameOrBasename, errors = true) {
207
- /* */
208
- /* */
209
- /* */
210
- /* */
211
- /* */
212
- /* */
213
- /* */
214
- /* */
215
- /* */
216
- /* */
217
- return (void 0);
218
- }
219
- get parent() {
220
- /* */
221
- /* */
222
- /* */
223
- /* */
224
- /* */
225
- return (void 0);
226
- }
227
- get nearestParent() {
228
- /* */
229
- /* */
230
- /* */
231
- /* */
232
- /* */
233
- /* */
234
- /* */
235
- /* */
236
- /* */
237
- /* */
238
- /* */
239
- /* */
240
- /* */
241
- return (void 0);
242
- }
243
- get grandpa() {
244
- /* */
245
- /* */
246
- /* */
247
- /* */
248
- /* */
249
- /* */
250
- return (void 0);
251
- }
252
- get allNpmPackagesNames() {
253
- return [this.name];
254
- }
255
- get titleBarName() {
256
- const allPackagesNames = this.allNpmPackagesNames.filter(f => f !== this.basename).length === 0
257
- ? ''
258
- : `(${this.allNpmPackagesNames.filter(f => f !== this.basename).join(',')})`;
259
- if (this.parent) {
260
- return (`${path.basename(path.dirname(this.parent.location))}/${this.parent.name}/` +
261
- `${this.basename} ${allPackagesNames} [ \${activeEditorShort} ]`);
262
- }
263
- return (`${path.basename(path.dirname(this.location))}/` +
264
- `${this.basename} (${allPackagesNames}) [ \${activeEditorShort}]`);
265
- }
266
- get genericName() {
267
- /* */
268
- /* */
269
- /* */
270
- /* */
271
- /* */
272
- /* */
273
- /* */
274
- /* */
275
- /* */
276
- /* */
277
- /* */
278
- /* */
279
- /* */
280
- /* */
281
- /* */
282
- /* */
283
- /* */
284
- /* */
285
- /* */
286
- /* */
287
- /* */
288
- /* */
289
- /* */
290
- /* */
291
- /* */
292
- /* */
293
- /* */
294
- return (void 0);
295
- }
296
- checkAndBoldenPath(fullPath) {
297
- const parts = fullPath.split('/');
298
- const result = parts.map((part, index) => {
299
- const pathTocheck = parts.slice(0, index + 1).join('/');
300
- /* */
301
- /* */
302
- /* */
303
- /* */
304
- return part;
305
- });
306
- return result.join('/');
307
- }
308
- /**
309
- * same has project.hasFile();
310
- */
311
- pathExists(relativePath) {
312
- return this.hasFile(relativePath);
313
- }
314
- /**
315
- * same as project.pathExists();
316
- */
317
- hasFile(relativePath) {
318
- /* */
319
- /* */
320
- /* */
321
- return (void 0);
322
- }
323
- hasFolder(relativePath) {
324
- /* */
325
- /* */
326
- /* */
327
- /* */
328
- /* */
329
- return (void 0);
330
- }
331
- /**
332
- * Function will return relative path from project location
333
- */
334
- relative(absoultePath) {
335
- return crossPlatformPath(path.relative(this.location, absoultePath));
336
- }
337
- /**
338
- *
339
- * @param relativePath
340
- * @param override it will remove ex
341
- */
342
- createFolder(relativePath, options) {
343
- /* */
344
- /* */
345
- /* */
346
- /* */
347
- /* */
348
- /* */
349
- /* */
350
- /* */
351
- /* */
352
- /* */
353
- /* */
354
- /* */
355
- return (void 0);
356
- }
357
- formatFile(specificRelativePath) {
358
- /* */
359
- /* */
360
- /* */
361
- /* */
362
- return (void 0);
363
- }
364
- formatAllFiles() {
365
- /* */
366
- /* */
367
- /* */
368
- return (void 0);
369
- }
370
- /**
371
- * same as project.pathhasFileExists();
372
- * but with path.resolve
373
- */
374
- containsFile(fileRelativeToProjectPath) {
375
- const fullPath = path.resolve(path.join(this.location, fileRelativeToProjectPath));
376
- return Helpers.exists(fullPath);
377
- }
378
- /**
379
- * absolute path:
380
- * concated project location with relative path
381
- */
382
- pathFor(relativePath) {
383
- /* */
384
- /* */
385
- /* */
386
- /* */
387
- /* */
388
- /* */
389
- /* */
390
- /* */
391
- return (void 0);
392
- }
393
- writeJson(relativePath, json) {
394
- /* */
395
- /* */
396
- /* */
397
- /* */
398
- /* */
399
- return (void 0);
400
- }
401
- writeJsonC(relativePath, json) {
402
- /* */
403
- /* */
404
- /* */
405
- /* */
406
- /* */
407
- return (void 0);
408
- }
409
- /**
410
- * @deprecated us execute instead
411
- * use output from or more preciese crafted api
412
- */
413
- run(command, options) {
414
- let opt;
415
- /* */
416
- /* */
417
- /* */
418
- /* */
419
- /* */
420
- /* */
421
- /* */
422
- /* */
423
- /* */
424
- /* */
425
- /* */
426
- /* */
427
- /* */
428
- /* */
429
- /* */
430
- /* */
431
- /* */
432
- /* */
433
- /* */
434
- /* */
435
- return Helpers.run(command, opt);
436
- }
437
- /**
438
- * same as run but async
439
- */
440
- async execute(command, options) {
441
- /* */
442
- /* */
443
- /* */
444
- /* */
445
- /* */
446
- /* */
447
- /* */
448
- /* */
449
- /* */
450
- /* */
451
- /* */
452
- /* */
453
- /* */
454
- /* */
455
- /* */
456
- /* */
457
- /* */
458
- /* */
459
- /* */
460
- return (void 0);
461
- }
462
- /**
463
- * try run but continue when it fails
464
- * @param command
465
- * @param options
466
- * @returns
467
- */
468
- tryRunSync(command) {
469
- /* */
470
- /* */
471
- /* */
472
- /* */
473
- /* */
474
- /* */
475
- return (void 0);
476
- }
477
- outputFrom(command) {
478
- /* */
479
- /* */
480
- return (void 0);
481
- }
482
- removeFile(fileRelativeToProjectPath) {
483
- /* */
484
- /* */
485
- /* */
486
- /* */
487
- /* */
488
- return (void 0);
489
- }
490
- readFile(fileRelativeToProjectPath) {
491
- /* */
492
- /* */
493
- /* */
494
- /* */
495
- /* */
496
- /* */
497
- return (void 0);
498
- }
499
- /**
500
- * read json file
501
- * handle all json files
502
- * jsonc, json5 , json
503
- * @param fileRelativeToProjectPath
504
- * @returns
505
- */
506
- readJson(fileRelativeToProjectPath) {
507
- /* */
508
- /* */
509
- /* */
510
- /* */
511
- /* */
512
- return (void 0);
513
- }
514
- /**
515
- * copy files or folders from
516
- * project to destination
517
- */
518
- copy(filesOrFolderRelativePathes) {
519
- return {
520
- to: (destination) => {
521
- /* */
522
- /* */
523
- /* */
524
- /* */
525
- /* */
526
- /* */
527
- /* */
528
- /* */
529
- /* */
530
- /* */
531
- /* */
532
- /* */
533
- /* */
534
- /* */
535
- /* */
536
- /* */
537
- /* */
538
- return (void 0);
539
- },
540
- };
541
- }
542
- remove(relativePath, exactPath = true) {
543
- /* */
544
- /* */
545
- /* */
546
- /* */
547
- /* */
548
- /* */
549
- /* */
550
- /* */
551
- /* */
552
- return (void 0);
553
- }
554
- removeFolderByRelativePath(relativePathToFolder) {
555
- /* */
556
- /* */
557
- /* */
558
- /* */
559
- /* */
560
- }
561
- async registerAndAssignPort() {
562
- /* */
563
- /* */
564
- /* */
565
- /* */
566
- /* */
567
- /* */
568
- return (void 0);
569
- }
570
- /**
571
- * @deprecated
572
- */
573
- async assignFreePort(startFrom = 4200, howManyFreePortsAfterThatPort = 0) {
574
- /* */
575
- /* */
576
- /* */
577
- /* */
578
- /* */
579
- /* */
580
- /* */
581
- /* */
582
- /* */
583
- /* */
584
- /* */
585
- /* */
586
- /* */
587
- /* */
588
- /* */
589
- /* */
590
- /* */
591
- /* */
592
- /* */
593
- /* */
594
- /* */
595
- /* */
596
- /* */
597
- /* */
598
- /* */
599
- /* */
600
- /* */
601
- /* */
602
- /* */
603
- /* */
604
- return (void 0);
605
- }
606
- removeItself() {
607
- /* */
608
- /* */
609
- }
610
- /**
611
- * Purpose: not initializing all classes at the beginning
612
- * Only for BaseFeatureForProject class
613
- */
614
- defineProperty(variableName, classFn, options) {
615
- /* */
616
- /* */
617
- /* */
618
- /* */
619
- /* */
620
- /* */
621
- /* */
622
- /* */
623
- /* */
624
- /* */
625
- /* */
626
- /* */
627
- /* */
628
- /* */
629
- /* */
630
- /* */
631
- /* */
632
- /* */
633
- /* */
634
- /* */
635
- /* */
636
- /* */
637
- /* */
638
- /* */
639
- /* */
640
- /* */
641
- /* */
642
- /* */
643
- return (void 0);
644
- }
645
- /**
646
- * fs.copy option filter function for copying only selected folders from project
647
- */
648
- filterOnlyCopy(basePathFoldersOnlyToInclude) {
649
- /* */
650
- /* */
651
- return (void 0);
652
- }
653
- /**
654
- * fs.copy option filter function for copying only not selected folders from project
655
- */
656
- filterDontCopy(basePathFoldersTosSkip) {
657
- /* */
658
- /* */
659
- return (void 0);
660
- }
661
- /**
662
- * general default development branch for all kinds of projects
663
- */
664
- getDefaultDevelopmentBranch() {
665
- return 'develop';
666
- }
667
- /**
668
- * main/default hardcoded branches
669
- */
670
- getMainBranches() {
671
- return ['master', 'develop', 'stage', 'prod', 'test'];
672
- }
673
- isUnsingActionCommit() {
674
- return false;
675
- }
676
- useFeatureInBranchNameForTests() {
677
- return false;
678
- }
679
- async resetProcess(overrideBranch, recrusive = false) {
680
- /* */
681
- /* */
682
- /* */
683
- /* */
684
- /* */
685
- /* */
686
- /* */
687
- /* */
688
- /* */
689
- /* */
690
- /* */
691
- /* */
692
- /* */
693
- /* */
694
- /* */
695
- /* */
696
- /* */
697
- /* */
698
- /* */
699
- /* */
700
- /* */
701
- /* */
702
- /* */
703
- /* */
704
- /* */
705
- /* */
706
- /* */
707
- /* */
708
- /* */
709
- /* */
710
- /* */
711
- /* */
712
- /* */
713
- /* */
714
- /* */
715
- /* */
716
- /* */
717
- /* */
718
- /* */
719
- /* */
720
- /* */
721
- }
722
- linkTo(destPackageLocation) {
723
- /* */
724
- /* */
725
- }
726
- setValueToJSON(relativePath, lodashGetPath, value) {
727
- /* */
728
- /* */
729
- /* */
730
- /* */
731
- /* */
732
- return (void 0);
733
- }
734
- setValueToJSONC(relativePath, lodashGetPath, value) {
735
- /* */
736
- /* */
737
- /* */
738
- /* */
739
- /* */
740
- return (void 0);
741
- }
742
- setValueToJSON5(relativePath, lodashGetPath, value) {
743
- /* */
744
- /* */
745
- /* */
746
- /* */
747
- /* */
748
- return (void 0);
749
- }
750
- getValueFromJSON(relativePath, lodashGetPath, defaultValue = void 0) {
751
- /* */
752
- /* */
753
- /* */
754
- /* */
755
- /* */
756
- /* */
757
- /* */
758
- /* */
759
- /* */
760
- return (void 0);
761
- }
762
- getValueFromJSONC(relativePath, lodashGetPath, defaultValue = void 0) {
763
- /* */
764
- /* */
765
- /* */
766
- /* */
767
- /* */
768
- /* */
769
- /* */
770
- /* */
771
- /* */
772
- return (void 0);
773
- }
774
- writeFile(relativePath, content) {
775
- /* */
776
- /* */
777
- /* */
778
- /* */
779
- /* */
780
- }
781
- runCommandGetString(command) {
782
- /* */
783
- /* */
784
- /* */
785
- /* */
786
- return (void 0);
787
- }
788
- get parentsNames() {
789
- /* */
790
- /* */
791
- return (void 0);
792
- }
793
- openLocation(relativeFolderPath) {
794
- /* */
795
- /* */
796
- return (void 0);
797
- }
798
- findParentsNames(project, parent, result = []) {
799
- /* */
800
- /* */
801
- /* */
802
- /* */
803
- /* */
804
- /* */
805
- /* */
806
- /* */
807
- /* */
808
- /* */
809
- /* */
810
- return (void 0);
811
- }
812
- tryKillAllElectronInstances() {
813
- /* */
814
- /* */
815
- /* */
816
- /* */
817
- /* */
818
- /* */
819
- /* */
820
- /* */
821
- /* */
822
- /* */
823
- return (void 0);
824
- }
825
- /**
826
- * init project files structure and depedencies
827
- */
828
- async init(initOptions) {
829
- throw new Error('TODO IMPLEMENT');
830
- }
831
- /**
832
- * globally link npm as package
833
- */
834
- async link() {
835
- throw new Error('TODO IMPLEMENT');
836
- }
837
- /**
838
- * init project files structure without depedencies
839
- */
840
- async struct(initOptions) {
841
- throw new Error('TODO IMPLEMENT');
842
- }
843
- /**
844
- * init and build() project
845
- */
846
- async test(testOptions) {
847
- throw new Error('TODO IMPLEMENT');
848
- }
849
- /**
850
- * init and build() project
851
- */
852
- async build(buildOptions) {
853
- throw new Error('TODO IMPLEMENT');
854
- }
855
- /**
856
- * publish project to npm
857
- */
858
- async publish(publishOptions) {
859
- throw new Error('TODO IMPLEMENT');
860
- }
861
- async release(releaseOptions) {
862
- throw new Error('TODO IMPLEMENT');
863
- }
864
- /**
865
- * lint porject
866
- */
867
- async lint(lintOptions) {
868
- Helpers.info(`
869
-
870
-
871
- COMMIT LINT NOT IMPLEMENTED
872
-
873
-
874
- `);
875
- }
876
- /**
877
- * get info about porject
878
- */
879
- async info() {
880
- /* */
881
- /* */
882
- /* */
883
- /* */
884
- /* */
885
- /* */
886
- /* */
887
- /* */
888
- /* */
889
- /* */
890
- /* */
891
- /* */
892
- /* */
893
- /* */
894
- /* */
895
- /* */
896
- /* */
897
- /* */
898
- /* */
899
- /* */
900
- /* */
901
- /* */
902
- /* */
903
- /* */
904
- /* */
905
- /* */
906
- /* */
907
- /* */
908
- /* */
909
- /* */
910
- /* */
911
- /* */
912
- /* */
913
- /* */
914
- return (void 0);
915
- }
916
- }
917
- ;
918
- ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project.ts
919
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLFdBQVcsRUFBSSxPQUFPLEdBQStFLE1BQU0sVUFBVSxDQUFDLENBQUEsS0FBSztBQUNwSixLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFpQjlELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUV0QixNQUFNLE9BQWdCLFdBQVc7YUFPeEIsUUFBRyxHQUFHLElBQUksbUJBQW1CLENBQWMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxBQUE1RCxDQUE2RDthQU96RCxVQUFLLEdBQVEsRUFBRSxBQUFWLENBQVc7SUFDOUIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBd0JELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBUztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxhQUFhO0lBQ2I7SUFDRTs7T0FFRztJQUNILFFBQWdCO1FBekNYLFVBQUssR0FBUSxFQUFFLENBQUM7UUFLZCxTQUFJLEdBQWtCLFFBQVEsQ0FBQztRQW9oQ3hDLGFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDO1FBaC9CQSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUlELElBQUksVUFBVTtRQUNaLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUlTLGlCQUFpQixDQUFDLFlBQTJCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBR3pELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7WUFDbkMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUdELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBa0IsRUFBRSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFFdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckIsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzt3QkFDL0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNiLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDLENBQUM7UUFHRixLQUFLLE1BQU0sT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUtELElBQUksSUFBSTtRQUNOLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDckQsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFXLENBQUMsQ0FDNUIsQ0FBQztRQUNGLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFHcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFBSSxxQkFBcUI7UUFDM0IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTSxPQUFPLENBQUMsSUFBVTtRQUN2QixhQUFhO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUlNLE1BQU0sQ0FBQyxHQUFHLEtBQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFJTSxTQUFTLENBQUMsR0FBRyxLQUFhO1FBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ2QsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLGNBQWM7UUFDcEIsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxtQ0FBbUMsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUlTLG9DQUFvQztRQUNoRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsY0FBYztRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxVQUFVLENBQUMsY0FBc0IsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUNsRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksTUFBTTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksYUFBYTtRQUNuQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksT0FBTztRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNwRSxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBRWpGLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FDTCxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUc7Z0JBQzNFLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsNEJBQTRCLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUNMLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHO1lBQ2hELEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsNEJBQTRCLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2pCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTyxrQkFBa0IsQ0FBQyxRQUFnQjtRQUN6QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU5RCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBRUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsWUFBK0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxZQUErQjtRQUN6QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsU0FBUyxDQUFDLFlBQStCO1FBQzNDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFlBQW9CO1FBQzNCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUlEOzs7O09BSUc7SUFDSCxZQUFZLENBQ1YsWUFBK0IsRUFDL0IsT0FFQztRQUVMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxVQUFVLENBQUMsb0JBQXVDO1FBQ3BELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsY0FBYztRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLHlCQUFpQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FDcEQsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLFlBQStCO1FBQ3pDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELFNBQVMsQ0FBQyxZQUFvQixFQUFFLElBQVk7UUFDOUMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsVUFBVSxDQUFDLFlBQW9CLEVBQUUsSUFBWTtRQUMvQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsT0FBZSxFQUFFLE9BQTRDO1FBQy9ELElBQUksR0FBMEIsQ0FBQztRQUNuQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUlEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FDbEIsT0FBZSxFQUNmLE9BQStEO1FBRW5FLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQ1IsT0FBZTtRQUtuQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsVUFBVSxDQUNSLE9BQWU7UUFLbkIsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsVUFBVSxDQUFDLHlCQUFpQztRQUM5QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxRQUFRLENBQUMseUJBQWlDO1FBQzVDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQVMseUJBQWlDO1FBQ3BELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBQUksQ0FBQywyQkFBcUM7UUFHeEMsT0FBTztZQUNMLEVBQUUsRUFBRSxDQUFDLFdBQW1CLEVBQVEsRUFBRTtnQkFDeEMsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUlELE1BQU0sQ0FBQyxZQUErQixFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQzFELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCwwQkFBMEIsQ0FBQyxvQkFBNEI7UUFDekQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBR0QsS0FBSyxDQUFDLHFCQUFxQjtRQUM3QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUNsQixZQUFvQixJQUFJLEVBQ3hCLGdDQUF3QyxDQUFDO1FBRTdDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxZQUFZO1FBQ2QsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUNaLFlBQTJCLEVBQzNCLE9BQWlCLEVBQ2pCLE9BRUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLDRCQUFzQztRQUN2RCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxzQkFBZ0M7UUFDakQsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCwyQkFBMkI7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUlELG9CQUFvQjtRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFJRCw4QkFBOEI7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBSUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUF1QixFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQy9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUlELE1BQU0sQ0FBQyxtQkFBMkI7UUFDcEMsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSUQsY0FBYyxDQUNaLFlBQStCLEVBQy9CLGFBQXFCLEVBQ3JCLEtBQVU7UUFFZCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxlQUFlLENBQ2IsWUFBK0IsRUFDL0IsYUFBcUIsRUFDckIsS0FBVTtRQUVkLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELGVBQWUsQ0FDYixZQUErQixFQUMvQixhQUFxQixFQUNyQixLQUFVO1FBRWQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsZ0JBQWdCLENBQ2QsWUFBK0IsRUFDL0IsYUFBcUIsRUFDckIsZUFBb0IsS0FBSyxDQUFDO1FBRTlCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxpQkFBaUIsQ0FDZixZQUErQixFQUMvQixhQUFxQixFQUNyQixlQUFvQixLQUFLLENBQUM7UUFFOUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUtELFNBQVMsQ0FBQyxZQUErQixFQUFFLE9BQWU7UUFDNUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSU0sbUJBQW1CLENBQW9CLE9BQWU7UUFDL0QsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFVRCxJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0QsWUFBWSxDQUFDLGtCQUEwQjtRQUN6QyxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHTyxnQkFBZ0IsQ0FDdEIsT0FBaUIsRUFDakIsTUFBZ0IsRUFDaEIsTUFBTSxHQUFHLEVBQUU7UUFFZixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCwyQkFBMkI7UUFDN0IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBaUI7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBaUI7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBaUI7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBa0I7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBb0I7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFJRCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQW9CO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQWlCO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Ozs7OztLQU1aLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1osS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O0FBSUYsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyAgIENvbW1pdERhdGEsICAgQ29yZVByb2plY3QsICAgSGVscGVycywgICBMaW5rZWRQb3JqZWN0c0NvbmZpZywgICBMaW5rZWRQcm9qZWN0LCAgIFR5cGVPZkNvbW1pdCwgICBVdGlsc1R5cGVzY3JpcHQsIH0gZnJvbSAnLi4vaW5kZXgnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSAnLi9iYXNlLXByb2plY3QtcmVzb2x2ZXInO1xuaW1wb3J0IHsgICBCYXNlUHJvamVjdFR5cGUsICAgTGlicmFyaWVzQnVpbGRPcHRpb25zLCAgIExpYnJhcnlCdWlsZENvbW1hbmRPcHRpb25zLCAgIE5nUHJvamVjdCwgfSBmcm9tICcuLi9tb2RlbHMnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VMaWJyYXJ5QnVpbGQgfSBmcm9tICcuL2Jhc2UtbGlicmFyeS1idWlsZCc7XG5pbXBvcnQgeyBCYXNlTnBtSGVscGVycyB9IGZyb20gJy4vYmFzZS1ucG0taGVscGVycyc7XG5pbXBvcnQgeyBCYXNlTGlua2VkUHJvamVjdHMgfSBmcm9tICcuL2Jhc2UtbGlua2VkLXByb2plY3RzJztcbmltcG9ydCB7IEJhc2VHaXQgfSBmcm9tICcuL2Jhc2UtZ2l0JztcbmltcG9ydCB7IEJhc2VWc2NvZGVIZWxwZXJzIH0gZnJvbSAnLi9iYXNlLXZzY29kZSc7XG5pbXBvcnQgeyBCYXNlUmVsZWFzZVByb2Nlc3MgfSBmcm9tICcuL2Jhc2UtcmVsZWFzZS1wcm9jZXNzJztcbmltcG9ydCB7IEJhc2VRdWlja0ZpeGVzIH0gZnJvbSAnLi9iYXNlLXF1aWNrLWZpeGVzJztcbmltcG9ydCB7IEJhc2VHaXRodWJQYWdlcyB9IGZyb20gJy4vYmFzZS1naXRodWItcGFnZXMnO1xuXG5cbmNvbnN0IHRha2VuUG9ydHMgPSBbXTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VQcm9qZWN0PFxuICBQUk9KRUNUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBCYXNlUHJvamVjdDxhbnksIGFueT4sXG4gIFRZUEUgPSBCYXNlUHJvamVjdFR5cGUsXG4+IHtcblxuXG5cbiAgc3RhdGljIGlucyA9IG5ldyBCYXNlUHJvamVjdFJlc29sdmVyPEJhc2VQcm9qZWN0PihCYXNlUHJvamVjdCwgJ3Rhb24nKTtcblxuXG5cblxuXG4gIHB1YmxpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBzdGF0aWMgY2FjaGU6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2V0IGdsb2JhbENhY2hlKCkge1xuICAgIHJldHVybiBCYXNlUHJvamVjdC5jYWNoZTtcbiAgfVxuICByZWFkb25seSB0eXBlOiBUWVBFIHwgc3RyaW5nID0gJ3Vua25vdyc7XG5cbiAgLyoqXG4gICAqIHJlc29sdmUgaW5zdGFuY2VcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGluczogQmFzZVByb2plY3RSZXNvbHZlcjxQUk9KRUNUPjtcbiAgLyoqXG4gICAqIFVuaXF1ZSBmcmVlIHBvcnQgZm9yIHByb2plY3QgaW5zdGFuY2VcbiAgICogb25seSBhdmFpbGFibGUgYWZ0ZXIgZXhlY3V0aW5nICp0aGlzLmFzc2lnbkZyZWVQb3J0KCkqXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBzdHJpbmc7XG5cbiAgcHVibGljIGxpYnJhcnlCdWlsZD86IEJhc2VMaWJyYXJ5QnVpbGQ8QmFzZVByb2plY3Q+O1xuICBwdWJsaWMgbnBtSGVscGVycz86IEJhc2VOcG1IZWxwZXJzO1xuICBwdWJsaWMgbGlua2VkUHJvamVjdHM/OiBCYXNlTGlua2VkUHJvamVjdHM7XG4gIHB1YmxpYyB2c0NvZGVIZWxwZXJzPzogQmFzZVZzY29kZUhlbHBlcnM7XG4gIHB1YmxpYyByZWxlYXNlUHJvY2Vzcz86IEJhc2VSZWxlYXNlUHJvY2VzcztcbiAgcHVibGljIGdpdD86IEJhc2VHaXQ7XG4gIHB1YmxpYyBxdWlja0ZpeGVzPzogQmFzZVF1aWNrRml4ZXM7XG4gIHB1YmxpYyBnaXRodWJQYWdlcz86IEJhc2VHaXRodWJQYWdlcztcblxuXG4gIHByaXZhdGUgX19sb2NhdGlvbjogc3RyaW5nO1xuICBnZXQgbG9jYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fX2xvY2F0aW9uO1xuICB9XG4gIHNldCBsb2NhdGlvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fbG9jYXRpb24gPSBjcm9zc1BsYXRmb3JtUGF0aCh2KTtcbiAgfVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbCBwYXRoIC0+IGNhbiBiZSBsaW5rXG4gICAgICovXG4gICAgbG9jYXRpb246IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgZ2V0IGlzTW9ub3JlcG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBvcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHM6IENvcmVQcm9qZWN0W10pOiBDb3JlUHJvamVjdFtdIHtcbiAgICBjb25zdCBwcm9qZWN0TWFwID0gbmV3IE1hcDxDb3JlUHJvamVjdCwgQ29yZVByb2plY3RbXT4oKTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgcHJvamVjdE1hcC5zZXQocHJvamVjdCwgW10pO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgaWYgKCFwcm9qZWN0TWFwLmhhcyhwcm9qZWN0LmV4dGVuZHMpKSB7XG4gICAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QuZXh0ZW5kcywgW10pO1xuICAgICAgfVxuICAgICAgcHJvamVjdE1hcC5nZXQocHJvamVjdC5leHRlbmRzKSEucHVzaChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlcmVkUHJvamVjdHM6IENvcmVQcm9qZWN0W10gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxDb3JlUHJvamVjdD4oKTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IENvcmVQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKHByb2plY3QpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKHByb2plY3QpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwcm9qZWN0TWFwLmdldChwcm9qZWN0KTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcykge1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgdmlzaXQoZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3JkZXJlZFByb2plY3RzLnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgdmlzaXQocHJvamVjdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyZWRQcm9qZWN0cy5yZXZlcnNlKCk7XG4gIH1cblxuXG5cblxuICBnZXQgY29yZSgpOiBDb3JlUHJvamVjdCB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY2FjaGVbJ2NvcmUnXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gICAgfVxuXG4gICAgbGV0IGNvcmVQcm9qZWN0cyA9IENvcmVQcm9qZWN0LmNvcmVQcm9qZWN0cy5maWx0ZXIocCA9PlxuICAgICAgcC5yZWNvZ25pemVkRm4odGhpcyBhcyBhbnkpLFxuICAgICk7XG4gICAgY29yZVByb2plY3RzID0gdGhpcy5vcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHMpO1xuXG5cbiAgICB0aGlzLmNhY2hlWydjb3JlJ10gPSBfLmZpcnN0KGNvcmVQcm9qZWN0cyk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgfVxuXG5cblxuICBnZXQgbGlua2VkUHJvamVjdHNFeGlzdGVkKCk6IFBST0pFQ1RbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc2V0VHlwZSh0eXBlOiBUWVBFKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJcyguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUgYXMgYW55KTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzTm90KC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gIXRoaXMudHlwZUlzKC4uLnR5cGVzKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmb2xkZXIgYmFzZW5hbWVcbiAgICovXG4gIGdldCBiYXNlbmFtZSgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwcm9qZWN0IGZvbGRlciBwYXJlbnQgYmFzZW5hbWVcbiAgICovXG4gIGdldCBwYXJlbnRCYXNlbmFtZSgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBuYW1lIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5wbUhlbHBlcnM/Lm5hbWUgfHwgdGhpcy5uYW1lRnJvbVBvbVhNTDtcbiAgfVxuXG4gIGdldCBuYW1lRm9yQ2xpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZT8uZW5kc1dpdGgoJy1jbGknKSA/IHRoaXMubmFtZSA6IGAke3RoaXMubmFtZX0tY2xpYDtcbiAgfVxuXG4gIGdldCBuYW1lRnJvbVBvbVhNTCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFydGlmYWN0SWRQYXR0ZXJuID0gLzxhcnRpZmFjdElkPihbXjxdKyk8XFwvYXJ0aWZhY3RJZD4vO1xuICAgIGNvbnN0IG1hdGNoID0gKHRoaXMucmVhZEZpbGUoJ3BvbS54bWwnKSB8fCAnJykubWF0Y2goYXJ0aWZhY3RJZFBhdHRlcm4pO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgcmV0dXJuIG1hdGNoWzFdO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEZvbGRlcnNGb3JQb3NzaWJsZVByb2plY3RDaGlsZHJlbigpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRBbGxDaGlsZHJlbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFsaWFzIHRvIGdldEFsbENoaWxkcmVuXG4gICAqL1xuICBnZXQgY2hpbGRyZW4oKTogUFJPSkVDVFtdIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRDaGlsZEJ5KG5hbWVPckJhc2VuYW1lOiBzdHJpbmcsIGVycm9ycyA9IHRydWUpOiBQUk9KRUNUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBwYXJlbnQoKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IG5lYXJlc3RQYXJlbnQoKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgZ3JhbmRwYSgpOiBQUk9KRUNUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGFsbE5wbVBhY2thZ2VzTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbdGhpcy5uYW1lXTtcbiAgfVxuXG4gIGdldCB0aXRsZUJhck5hbWUoKSB7XG4gICAgY29uc3QgYWxsUGFja2FnZXNOYW1lcyA9XG4gICAgICB0aGlzLmFsbE5wbVBhY2thZ2VzTmFtZXMuZmlsdGVyKGYgPT4gZiAhPT0gdGhpcy5iYXNlbmFtZSkubGVuZ3RoID09PSAwXG4gICAgICAgID8gJydcbiAgICAgICAgOiBgKCR7dGhpcy5hbGxOcG1QYWNrYWdlc05hbWVzLmZpbHRlcihmID0+IGYgIT09IHRoaXMuYmFzZW5hbWUpLmpvaW4oJywnKX0pYDtcblxuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYCR7cGF0aC5iYXNlbmFtZShwYXRoLmRpcm5hbWUodGhpcy5wYXJlbnQubG9jYXRpb24pKX0vJHt0aGlzLnBhcmVudC5uYW1lfS9gICtcbiAgICAgICAgYCR7dGhpcy5iYXNlbmFtZX0gJHthbGxQYWNrYWdlc05hbWVzfSBbIFxcJHthY3RpdmVFZGl0b3JTaG9ydH0gXWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBgJHtwYXRoLmJhc2VuYW1lKHBhdGguZGlybmFtZSh0aGlzLmxvY2F0aW9uKSl9L2AgK1xuICAgICAgYCR7dGhpcy5iYXNlbmFtZX0gKCR7YWxsUGFja2FnZXNOYW1lc30pIFsgXFwke2FjdGl2ZUVkaXRvclNob3J0fV1gXG4gICAgKTtcbiAgfVxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBjaGVja0FuZEJvbGRlblBhdGgoZnVsbFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnRzID0gZnVsbFBhdGguc3BsaXQoJy8nKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnRzLm1hcCgocGFydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhdGhUb2NoZWNrID0gcGFydHMuc2xpY2UoMCwgaW5kZXggKyAxKS5qb2luKCcvJyk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJy8nKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBoYXMgcHJvamVjdC5oYXNGaWxlKCk7XG4gICAqL1xuICBwYXRoRXhpc3RzKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNGaWxlKHJlbGF0aXZlUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoRXhpc3RzKCk7XG4gICAqL1xuICBoYXNGaWxlKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgaGFzRm9sZGVyKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogRnVuY3Rpb24gd2lsbCByZXR1cm4gcmVsYXRpdmUgcGF0aCBmcm9tIHByb2plY3QgbG9jYXRpb25cbiAgICovXG4gIHJlbGF0aXZlKGFic291bHRlUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyb3NzUGxhdGZvcm1QYXRoKHBhdGgucmVsYXRpdmUodGhpcy5sb2NhdGlvbiwgYWJzb3VsdGVQYXRoKSk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSByZWxhdGl2ZVBhdGhcbiAgICogQHBhcmFtIG92ZXJyaWRlIGl0IHdpbGwgcmVtb3ZlIGV4XG4gICAqL1xuICBjcmVhdGVGb2xkZXIoXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgb3ZlcnJpZGU/OiBib29sZWFuO1xuICAgIH0sXG4gICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBmb3JtYXRGaWxlKHNwZWNpZmljUmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBmb3JtYXRBbGxGaWxlcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoaGFzRmlsZUV4aXN0cygpO1xuICAgKiBidXQgd2l0aCBwYXRoLnJlc29sdmVcbiAgICovXG4gIGNvbnRhaW5zRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShcbiAgICAgIHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCBmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoKSxcbiAgICApO1xuICAgIHJldHVybiBIZWxwZXJzLmV4aXN0cyhmdWxsUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFic29sdXRlIHBhdGg6XG4gICAqIGNvbmNhdGVkIHByb2plY3QgbG9jYXRpb24gd2l0aCByZWxhdGl2ZSBwYXRoXG4gICAqL1xuICBwYXRoRm9yKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB3cml0ZUpzb24ocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGpzb246IG9iamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbkMocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGpzb246IG9iamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1cyBleGVjdXRlIGluc3RlYWRcbiAgICogdXNlIG91dHB1dCBmcm9tIG9yIG1vcmUgcHJlY2llc2UgY3JhZnRlZCBhcGlcbiAgICovXG4gIHJ1bihjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PENvcmVNb2RlbHMuUnVuT3B0aW9ucywgJ2N3ZCc+KSB7XG4gICAgbGV0IG9wdDogQ29yZU1vZGVscy5SdW5PcHRpb25zO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHJldHVybiBIZWxwZXJzLnJ1bihjb21tYW5kLCBvcHQpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHJ1biBidXQgYXN5bmNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQ29yZU1vZGVscy5FeGVjdXRlT3B0aW9ucyAmIHsgc2hvd0NvbW1hbmQ/OiBib29sZWFuIH0sXG4gICk6IFByb21pc2U8YW55PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogdHJ5IHJ1biBidXQgY29udGludWUgd2hlbiBpdCBmYWlsc1xuICAgKiBAcGFyYW0gY29tbWFuZFxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdHJ5UnVuU3luYyhcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBvdXRwdXRGcm9tKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbi8qICovXG4vKiAqL1xuICBcbiAgKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWFkRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHJlYWQganNvbiBmaWxlXG4gICAqIGhhbmRsZSBhbGwganNvbiBmaWxlc1xuICAgKiBqc29uYywganNvbjUgLCBqc29uXG4gICAqIEBwYXJhbSBmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICByZWFkSnNvbjxUID0ge30+KGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZyk6IFQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBjb3B5IGZpbGVzIG9yIGZvbGRlcnMgZnJvbVxuICAgKiBwcm9qZWN0IHRvIGRlc3RpbmF0aW9uXG4gICAqL1xuICBjb3B5KGZpbGVzT3JGb2xkZXJSZWxhdGl2ZVBhdGhlczogc3RyaW5nW10pOiB7XG4gICAgdG86IChkZXN0aW5hdGlvbjogc3RyaW5nKSA9PiB2b2lkO1xuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdG86IChkZXN0aW5hdGlvbjogc3RyaW5nKTogdm9pZCA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cblxuXG4gIHJlbW92ZShyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUZvbGRlckJ5UmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aFRvRm9sZGVyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgYXN5bmMgcmVnaXN0ZXJBbmRBc3NpZ25Qb3J0KCk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGFzeW5jIGFzc2lnbkZyZWVQb3J0KFxuICAgIHN0YXJ0RnJvbTogbnVtYmVyID0gNDIwMCxcbiAgICBob3dNYW55RnJlZVBvcnRzQWZ0ZXJUaGF0UG9ydDogbnVtYmVyID0gMCxcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlSXRzZWxmKCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBQdXJwb3NlOiBub3QgaW5pdGlhbGl6aW5nIGFsbCBjbGFzc2VzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICogT25seSBmb3IgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IGNsYXNzXG4gICAqL1xuICBkZWZpbmVQcm9wZXJ0eTxQUk9KRUNUPihcbiAgICB2YXJpYWJsZU5hbWU6IGtleW9mIFBST0pFQ1QsXG4gICAgY2xhc3NGbjogRnVuY3Rpb24sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGN1c3RvbUluc3RhbmNlUmV0dXJuPzogKCkgPT4gb2JqZWN0O1xuICAgIH0sXG4gICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGZzLmNvcHkgb3B0aW9uIGZpbHRlciBmdW5jdGlvbiBmb3IgY29weWluZyBvbmx5IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJPbmx5Q29weShiYXNlUGF0aEZvbGRlcnNPbmx5VG9JbmNsdWRlOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBub3Qgc2VsZWN0ZWQgZm9sZGVycyBmcm9tIHByb2plY3RcbiAgICovXG4gIGZpbHRlckRvbnRDb3B5KGJhc2VQYXRoRm9sZGVyc1Rvc1NraXA6IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdlbmVyYWwgZGVmYXVsdCBkZXZlbG9wbWVudCBicmFuY2ggZm9yIGFsbCBraW5kcyBvZiBwcm9qZWN0c1xuICAgKi9cbiAgZ2V0RGVmYXVsdERldmVsb3BtZW50QnJhbmNoKCkge1xuICAgIHJldHVybiAnZGV2ZWxvcCc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG1haW4vZGVmYXVsdCBoYXJkY29kZWQgYnJhbmNoZXNcbiAgICovXG4gIGdldE1haW5CcmFuY2hlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnbWFzdGVyJywgJ2RldmVsb3AnLCAnc3RhZ2UnLCAncHJvZCcsICd0ZXN0J107XG4gIH1cblxuXG5cbiAgaXNVbnNpbmdBY3Rpb25Db21taXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHVzZUZlYXR1cmVJbkJyYW5jaE5hbWVGb3JUZXN0cygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVzZXRQcm9jZXNzKG92ZXJyaWRlQnJhbmNoPzogc3RyaW5nLCByZWNydXNpdmUgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGxpbmtUbyhkZXN0UGFja2FnZUxvY2F0aW9uOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBzZXRWYWx1ZVRvSlNPTihcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzZXRWYWx1ZVRvSlNPTkMoXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueSxcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc2V0VmFsdWVUb0pTT041KFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgbG9kYXNoR2V0UGF0aDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnksXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldFZhbHVlRnJvbUpTT04oXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiBhbnkgPSB2b2lkIDAsXG4gICk6IGFueSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldFZhbHVlRnJvbUpTT05DKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgbG9kYXNoR2V0UGF0aDogc3RyaW5nLFxuICAgIGRlZmF1bHRWYWx1ZTogYW55ID0gdm9pZCAwLFxuICApOiBhbnkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG4gIHdyaXRlRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLCBjb250ZW50OiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBwdWJsaWMgcnVuQ29tbWFuZEdldFN0cmluZyh0aGlzOiBCYXNlUHJvamVjdCwgY29tbWFuZDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB0b1N0cmluZyA9ICgpID0+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfT0+JHt0aGlzLmxvY2F0aW9ufWA7XG4gIH07XG5cblxuXG4gIGdldCBwYXJlbnRzTmFtZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIG9wZW5Mb2NhdGlvbihyZWxhdGl2ZUZvbGRlclBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBwcml2YXRlIGZpbmRQYXJlbnRzTmFtZXMoXG4gICAgcHJvamVjdD86IFBST0pFQ1QsXG4gICAgcGFyZW50PzogUFJPSkVDVCxcbiAgICByZXN1bHQgPSBbXSxcbiAgKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHRyeUtpbGxBbGxFbGVjdHJvbkluc3RhbmNlcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IHByb2plY3QgZmlsZXMgc3RydWN0dXJlIGFuZCBkZXBlZGVuY2llc1xuICAgKi9cbiAgYXN5bmMgaW5pdChpbml0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2xvYmFsbHkgbGluayBucG0gYXMgcGFja2FnZVxuICAgKi9cbiAgYXN5bmMgbGluaygpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgd2l0aG91dCBkZXBlZGVuY2llc1xuICAgKi9cbiAgYXN5bmMgc3RydWN0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IGFuZCBidWlsZCgpIHByb2plY3RcbiAgICovXG4gIGFzeW5jIHRlc3QodGVzdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAgKi9cbiAgYXN5bmMgYnVpbGQoYnVpbGRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwdWJsaXNoIHByb2plY3QgdG8gbnBtXG4gICAqL1xuICBhc3luYyBwdWJsaXNoKHB1Ymxpc2hPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlbGVhc2UocmVsZWFzZU9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGxpbnQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgbGludChsaW50T3B0aW9ucz86IGFueSkge1xuICAgIEhlbHBlcnMuaW5mbyhgXG5cblxuICAgIENPTU1JVCBMSU5UIE5PVCBJTVBMRU1FTlRFRFxuXG5cbiAgICBgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2V0IGluZm8gYWJvdXQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgaW5mbygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdfQ==