@skyux/docs-tools 5.0.0-beta.1 → 5.0.0-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 (280) hide show
  1. package/LICENSE +21 -0
  2. package/bundles/skyux-docs-tools.umd.js +1946 -1732
  3. package/bundles/skyux-docs-tools.umd.js.map +1 -1
  4. package/docs-tools.module.d.ts +10 -0
  5. package/documentation.json +10696 -0
  6. package/esm2015/docs-tools.module.js +30 -21
  7. package/esm2015/modules/anatomy/anatomy-item.component.js +18 -16
  8. package/esm2015/modules/anatomy/anatomy.component.js +22 -19
  9. package/esm2015/modules/anatomy/anatomy.module.js +30 -19
  10. package/esm2015/modules/code-examples/code-example-module-dependencies.js +2 -1
  11. package/esm2015/modules/code-examples/code-example-theme.js +1 -1
  12. package/esm2015/modules/code-examples/code-example.component.js +23 -26
  13. package/esm2015/modules/code-examples/code-example.js +2 -1
  14. package/esm2015/modules/code-examples/code-examples-editor.service.js +31 -23
  15. package/esm2015/modules/code-examples/code-examples.component.js +28 -25
  16. package/esm2015/modules/code-examples/code-examples.module.js +37 -26
  17. package/esm2015/modules/demo/demo-content-alignment.js +2 -1
  18. package/esm2015/modules/demo/demo-control-panel-change.js +2 -1
  19. package/esm2015/modules/demo/demo-control-panel-checkbox.component.js +25 -28
  20. package/esm2015/modules/demo/demo-control-panel-radio-choice.js +2 -1
  21. package/esm2015/modules/demo/demo-control-panel-radio-group.component.js +29 -32
  22. package/esm2015/modules/demo/demo-control-panel-section.component.js +15 -13
  23. package/esm2015/modules/demo/demo-control-panel.component.js +27 -34
  24. package/esm2015/modules/demo/demo.component.js +27 -36
  25. package/esm2015/modules/demo/demo.module.js +51 -31
  26. package/esm2015/modules/demo-page/demo-page-dom-adapter.service.js +10 -12
  27. package/esm2015/modules/demo-page/demo-page-module-info.component.js +13 -11
  28. package/esm2015/modules/demo-page/demo-page-section.component.js +19 -16
  29. package/esm2015/modules/demo-page/demo-page-summary.component.js +15 -13
  30. package/esm2015/modules/demo-page/demo-page-title.service.js +13 -12
  31. package/esm2015/modules/demo-page/demo-page-type-definitions.component.js +25 -19
  32. package/esm2015/modules/demo-page/demo-page.component.js +51 -54
  33. package/esm2015/modules/demo-page/demo-page.module.js +60 -29
  34. package/esm2015/modules/design-guidelines/design-guideline-thumbnail.component.js +28 -31
  35. package/esm2015/modules/design-guidelines/design-guideline.component.js +24 -22
  36. package/esm2015/modules/design-guidelines/design-guidelines.component.js +14 -12
  37. package/esm2015/modules/design-guidelines/design-guidelines.module.js +34 -21
  38. package/esm2015/modules/heading-anchor/heading-anchor.component.js +22 -19
  39. package/esm2015/modules/heading-anchor/heading-anchor.module.js +26 -17
  40. package/esm2015/modules/markdown/markdown.module.js +23 -18
  41. package/esm2015/modules/markdown/markdown.pipe.js +12 -10
  42. package/esm2015/modules/module-info/module-info.component.js +32 -30
  43. package/esm2015/modules/module-info/module-info.module.js +32 -17
  44. package/esm2015/modules/safe-html/safe-html.component.js +17 -19
  45. package/esm2015/modules/safe-html/safe-html.module.js +22 -17
  46. package/esm2015/modules/shared/docs-tools-component-info.js +2 -1
  47. package/esm2015/modules/shared/docs-tools-options.js +1 -1
  48. package/esm2015/modules/shared/docs-tools-supportal.service.js +13 -12
  49. package/esm2015/modules/shared/sky-docs-tools-resources.module.js +41 -0
  50. package/esm2015/modules/source-code/source-code-file.js +2 -1
  51. package/esm2015/modules/source-code/source-code-provider.js +12 -8
  52. package/esm2015/modules/source-code/source-code.service.js +13 -12
  53. package/esm2015/modules/thumbnail/thumbnail.component.js +29 -31
  54. package/esm2015/modules/thumbnail/thumbnail.module.js +24 -17
  55. package/esm2015/modules/type-definitions/anchor-link-service-config.js +2 -1
  56. package/esm2015/modules/type-definitions/anchor-link-service-format.js +2 -1
  57. package/esm2015/modules/type-definitions/anchor-link.js +2 -1
  58. package/esm2015/modules/type-definitions/anchor-link.service.js +13 -12
  59. package/esm2015/modules/type-definitions/call-signature-definition.component.js +23 -20
  60. package/esm2015/modules/type-definitions/call-signature-definition.js +2 -1
  61. package/esm2015/modules/type-definitions/class-definition.component.js +24 -16
  62. package/esm2015/modules/type-definitions/class-definition.js +2 -1
  63. package/esm2015/modules/type-definitions/comment-tags.js +2 -1
  64. package/esm2015/modules/type-definitions/directive-definition.component.js +24 -16
  65. package/esm2015/modules/type-definitions/directive-definition.js +2 -1
  66. package/esm2015/modules/type-definitions/entry-child-definition.js +2 -1
  67. package/esm2015/modules/type-definitions/entry-definition.js +2 -1
  68. package/esm2015/modules/type-definitions/enumeration-definition.component.js +22 -15
  69. package/esm2015/modules/type-definitions/enumeration-definition.js +2 -1
  70. package/esm2015/modules/type-definitions/enumeration-member-definition.js +2 -1
  71. package/esm2015/modules/type-definitions/index-signature-definition.js +2 -1
  72. package/esm2015/modules/type-definitions/interface-definition.component.js +24 -19
  73. package/esm2015/modules/type-definitions/interface-definition.js +2 -1
  74. package/esm2015/modules/type-definitions/interface-property-definition.js +2 -1
  75. package/esm2015/modules/type-definitions/method-definition.js +2 -1
  76. package/esm2015/modules/type-definitions/method-definitions.component.js +27 -24
  77. package/esm2015/modules/type-definitions/parameter-definition.js +2 -1
  78. package/esm2015/modules/type-definitions/pipe-definition.component.js +24 -16
  79. package/esm2015/modules/type-definitions/pipe-definition.js +2 -1
  80. package/esm2015/modules/type-definitions/property-decorator.js +2 -1
  81. package/esm2015/modules/type-definitions/property-definition.js +2 -1
  82. package/esm2015/modules/type-definitions/property-definitions.component.js +31 -30
  83. package/esm2015/modules/type-definitions/type-alias-definition.component.js +25 -20
  84. package/esm2015/modules/type-definitions/type-alias-definition.js +2 -1
  85. package/esm2015/modules/type-definitions/type-anchor-links.pipe.js +14 -15
  86. package/esm2015/modules/type-definitions/type-definition.js +2 -1
  87. package/esm2015/modules/type-definitions/type-definitions-format.service.js +12 -8
  88. package/esm2015/modules/type-definitions/type-definitions-provider.js +9 -8
  89. package/esm2015/modules/type-definitions/type-definitions.js +2 -1
  90. package/esm2015/modules/type-definitions/type-definitions.module.js +75 -51
  91. package/esm2015/modules/type-definitions/type-definitions.service.js +15 -15
  92. package/esm2015/modules/type-definitions/type-parameter-definition.js +2 -1
  93. package/esm2015/modules/type-definitions/typedoc-adapter.service.js +46 -22
  94. package/esm2015/modules/type-definitions/typedoc-types.js +2 -1
  95. package/esm2015/public-api.js +66 -0
  96. package/esm2015/skyux-docs-tools.js +2 -46
  97. package/fesm2015/skyux-docs-tools.js +1529 -1411
  98. package/fesm2015/skyux-docs-tools.js.map +1 -1
  99. package/modules/anatomy/anatomy-item.component.d.ts +3 -0
  100. package/modules/anatomy/anatomy.component.d.ts +3 -0
  101. package/modules/anatomy/anatomy.module.d.ts +9 -0
  102. package/modules/code-examples/code-example.component.d.ts +3 -0
  103. package/modules/code-examples/code-examples-editor.service.d.ts +3 -0
  104. package/modules/code-examples/code-examples.component.d.ts +3 -0
  105. package/modules/code-examples/code-examples.module.d.ts +12 -0
  106. package/modules/demo/demo-control-panel-checkbox.component.d.ts +3 -0
  107. package/modules/demo/demo-control-panel-radio-group.component.d.ts +3 -0
  108. package/modules/demo/demo-control-panel-section.component.d.ts +3 -0
  109. package/modules/demo/demo-control-panel.component.d.ts +3 -5
  110. package/modules/demo/demo.component.d.ts +3 -6
  111. package/modules/demo/demo.module.d.ts +15 -0
  112. package/modules/demo-page/demo-page-dom-adapter.service.d.ts +3 -0
  113. package/modules/demo-page/demo-page-module-info.component.d.ts +3 -0
  114. package/modules/demo-page/demo-page-section.component.d.ts +3 -0
  115. package/modules/demo-page/demo-page-summary.component.d.ts +3 -0
  116. package/modules/demo-page/demo-page-title.service.d.ts +3 -0
  117. package/modules/demo-page/demo-page-type-definitions.component.d.ts +3 -0
  118. package/modules/demo-page/demo-page.component.d.ts +3 -0
  119. package/modules/demo-page/demo-page.module.d.ts +19 -0
  120. package/modules/design-guidelines/design-guideline-thumbnail.component.d.ts +3 -0
  121. package/modules/design-guidelines/design-guideline.component.d.ts +3 -0
  122. package/modules/design-guidelines/design-guidelines.component.d.ts +3 -0
  123. package/modules/design-guidelines/design-guidelines.module.d.ts +10 -0
  124. package/modules/heading-anchor/heading-anchor.component.d.ts +3 -0
  125. package/modules/heading-anchor/heading-anchor.module.d.ts +8 -0
  126. package/modules/markdown/markdown.module.d.ts +5 -0
  127. package/modules/markdown/markdown.pipe.d.ts +3 -0
  128. package/modules/module-info/module-info.component.d.ts +3 -0
  129. package/modules/module-info/module-info.module.d.ts +11 -0
  130. package/modules/safe-html/safe-html.component.d.ts +3 -0
  131. package/modules/safe-html/safe-html.module.d.ts +6 -0
  132. package/modules/shared/docs-tools-supportal.service.d.ts +3 -0
  133. package/modules/shared/sky-docs-tools-resources.module.d.ts +14 -0
  134. package/modules/source-code/source-code-provider.d.ts +3 -0
  135. package/modules/source-code/source-code.service.d.ts +3 -0
  136. package/modules/thumbnail/thumbnail.component.d.ts +3 -0
  137. package/modules/thumbnail/thumbnail.module.d.ts +7 -0
  138. package/modules/type-definitions/anchor-link.service.d.ts +3 -0
  139. package/modules/type-definitions/call-signature-definition.component.d.ts +3 -0
  140. package/modules/type-definitions/class-definition.component.d.ts +3 -0
  141. package/modules/type-definitions/directive-definition.component.d.ts +3 -0
  142. package/modules/type-definitions/enumeration-definition.component.d.ts +3 -0
  143. package/modules/type-definitions/interface-definition.component.d.ts +3 -0
  144. package/modules/type-definitions/method-definitions.component.d.ts +3 -0
  145. package/modules/type-definitions/pipe-definition.component.d.ts +3 -0
  146. package/modules/type-definitions/property-definitions.component.d.ts +3 -0
  147. package/modules/type-definitions/type-alias-definition.component.d.ts +3 -0
  148. package/modules/type-definitions/type-anchor-links.pipe.d.ts +3 -0
  149. package/modules/type-definitions/type-definitions-format.service.d.ts +3 -0
  150. package/modules/type-definitions/type-definitions-provider.d.ts +3 -0
  151. package/modules/type-definitions/type-definitions.module.d.ts +22 -0
  152. package/modules/type-definitions/type-definitions.service.d.ts +3 -0
  153. package/modules/type-definitions/typedoc-adapter.service.d.ts +3 -0
  154. package/package.json +22 -34
  155. package/public-api.d.ts +63 -0
  156. package/skyux-docs-tools.d.ts +2 -45
  157. package/CHANGELOG.md +0 -403
  158. package/bundles/skyux-docs-tools.umd.min.js +0 -2
  159. package/bundles/skyux-docs-tools.umd.min.js.map +0 -1
  160. package/esm2015/modules/demo/demo-control-panel-theme.component.js +0 -102
  161. package/esm2015/modules/demo/demo-theme.service.js +0 -14
  162. package/esm2015/modules/shared/docs-tools-resources.module.js +0 -20
  163. package/esm2015/modules/source-code/source-code.module.js +0 -16
  164. package/esm2015/plugin-resources/docs-tools-resources-provider.js +0 -16
  165. package/esm2015/public_api.js +0 -19
  166. package/esm5/docs-tools.module.js +0 -34
  167. package/esm5/modules/anatomy/anatomy-item.component.js +0 -21
  168. package/esm5/modules/anatomy/anatomy.component.js +0 -29
  169. package/esm5/modules/anatomy/anatomy.module.js +0 -31
  170. package/esm5/modules/code-examples/code-example-module-dependencies.js +0 -1
  171. package/esm5/modules/code-examples/code-example-theme.js +0 -6
  172. package/esm5/modules/code-examples/code-example.component.js +0 -77
  173. package/esm5/modules/code-examples/code-example.js +0 -1
  174. package/esm5/modules/code-examples/code-examples-editor.service.js +0 -148
  175. package/esm5/modules/code-examples/code-examples.component.js +0 -101
  176. package/esm5/modules/code-examples/code-examples.module.js +0 -43
  177. package/esm5/modules/demo/demo-content-alignment.js +0 -1
  178. package/esm5/modules/demo/demo-control-panel-change.js +0 -1
  179. package/esm5/modules/demo/demo-control-panel-checkbox.component.js +0 -94
  180. package/esm5/modules/demo/demo-control-panel-radio-choice.js +0 -1
  181. package/esm5/modules/demo/demo-control-panel-radio-group.component.js +0 -85
  182. package/esm5/modules/demo/demo-control-panel-section.component.js +0 -28
  183. package/esm5/modules/demo/demo-control-panel-theme.component.js +0 -114
  184. package/esm5/modules/demo/demo-control-panel.component.js +0 -95
  185. package/esm5/modules/demo/demo-theme.service.js +0 -15
  186. package/esm5/modules/demo/demo.component.js +0 -84
  187. package/esm5/modules/demo/demo.module.js +0 -52
  188. package/esm5/modules/demo-page/demo-page-dom-adapter.service.js +0 -93
  189. package/esm5/modules/demo-page/demo-page-module-info.component.js +0 -15
  190. package/esm5/modules/demo-page/demo-page-section.component.js +0 -51
  191. package/esm5/modules/demo-page/demo-page-summary.component.js +0 -27
  192. package/esm5/modules/demo-page/demo-page-title.service.js +0 -32
  193. package/esm5/modules/demo-page/demo-page-type-definitions.component.js +0 -32
  194. package/esm5/modules/demo-page/demo-page.component.js +0 -146
  195. package/esm5/modules/demo-page/demo-page.module.js +0 -60
  196. package/esm5/modules/design-guidelines/design-guideline-thumbnail.component.js +0 -36
  197. package/esm5/modules/design-guidelines/design-guideline.component.js +0 -41
  198. package/esm5/modules/design-guidelines/design-guidelines.component.js +0 -16
  199. package/esm5/modules/design-guidelines/design-guidelines.module.js +0 -34
  200. package/esm5/modules/heading-anchor/heading-anchor.component.js +0 -24
  201. package/esm5/modules/heading-anchor/heading-anchor.module.js +0 -28
  202. package/esm5/modules/markdown/markdown.module.js +0 -23
  203. package/esm5/modules/markdown/markdown.pipe.js +0 -21
  204. package/esm5/modules/module-info/module-info.component.js +0 -101
  205. package/esm5/modules/module-info/module-info.module.js +0 -34
  206. package/esm5/modules/safe-html/safe-html.component.js +0 -27
  207. package/esm5/modules/safe-html/safe-html.module.js +0 -24
  208. package/esm5/modules/shared/docs-tools-component-info.js +0 -1
  209. package/esm5/modules/shared/docs-tools-options.js +0 -7
  210. package/esm5/modules/shared/docs-tools-resources.module.js +0 -23
  211. package/esm5/modules/shared/docs-tools-supportal.service.js +0 -23
  212. package/esm5/modules/source-code/source-code-file.js +0 -1
  213. package/esm5/modules/source-code/source-code-provider.js +0 -12
  214. package/esm5/modules/source-code/source-code.module.js +0 -19
  215. package/esm5/modules/source-code/source-code.service.js +0 -42
  216. package/esm5/modules/thumbnail/thumbnail.component.js +0 -36
  217. package/esm5/modules/thumbnail/thumbnail.module.js +0 -26
  218. package/esm5/modules/type-definitions/anchor-link-service-config.js +0 -1
  219. package/esm5/modules/type-definitions/anchor-link-service-format.js +0 -1
  220. package/esm5/modules/type-definitions/anchor-link.js +0 -1
  221. package/esm5/modules/type-definitions/anchor-link.service.js +0 -99
  222. package/esm5/modules/type-definitions/call-signature-definition.component.js +0 -54
  223. package/esm5/modules/type-definitions/call-signature-definition.js +0 -1
  224. package/esm5/modules/type-definitions/class-definition.component.js +0 -20
  225. package/esm5/modules/type-definitions/class-definition.js +0 -1
  226. package/esm5/modules/type-definitions/comment-tags.js +0 -1
  227. package/esm5/modules/type-definitions/directive-definition.component.js +0 -20
  228. package/esm5/modules/type-definitions/directive-definition.js +0 -1
  229. package/esm5/modules/type-definitions/entry-child-definition.js +0 -1
  230. package/esm5/modules/type-definitions/entry-definition.js +0 -1
  231. package/esm5/modules/type-definitions/enumeration-definition.component.js +0 -19
  232. package/esm5/modules/type-definitions/enumeration-definition.js +0 -1
  233. package/esm5/modules/type-definitions/enumeration-member-definition.js +0 -1
  234. package/esm5/modules/type-definitions/index-signature-definition.js +0 -1
  235. package/esm5/modules/type-definitions/interface-definition.component.js +0 -38
  236. package/esm5/modules/type-definitions/interface-definition.js +0 -1
  237. package/esm5/modules/type-definitions/interface-property-definition.js +0 -1
  238. package/esm5/modules/type-definitions/method-definition.js +0 -1
  239. package/esm5/modules/type-definitions/method-definitions.component.js +0 -66
  240. package/esm5/modules/type-definitions/parameter-definition.js +0 -1
  241. package/esm5/modules/type-definitions/pipe-definition.component.js +0 -20
  242. package/esm5/modules/type-definitions/pipe-definition.js +0 -1
  243. package/esm5/modules/type-definitions/property-decorator.js +0 -1
  244. package/esm5/modules/type-definitions/property-definition.js +0 -1
  245. package/esm5/modules/type-definitions/property-definitions.component.js +0 -75
  246. package/esm5/modules/type-definitions/type-alias-definition.component.js +0 -39
  247. package/esm5/modules/type-definitions/type-alias-definition.js +0 -1
  248. package/esm5/modules/type-definitions/type-anchor-links.pipe.js +0 -29
  249. package/esm5/modules/type-definitions/type-definition.js +0 -1
  250. package/esm5/modules/type-definitions/type-definitions-format.service.js +0 -248
  251. package/esm5/modules/type-definitions/type-definitions-provider.js +0 -12
  252. package/esm5/modules/type-definitions/type-definitions.js +0 -1
  253. package/esm5/modules/type-definitions/type-definitions.module.js +0 -81
  254. package/esm5/modules/type-definitions/type-definitions.service.js +0 -95
  255. package/esm5/modules/type-definitions/type-parameter-definition.js +0 -1
  256. package/esm5/modules/type-definitions/typedoc-adapter.service.js +0 -462
  257. package/esm5/modules/type-definitions/typedoc-types.js +0 -1
  258. package/esm5/plugin-resources/docs-tools-resources-provider.js +0 -17
  259. package/esm5/public_api.js +0 -19
  260. package/esm5/skyux-docs-tools.js +0 -49
  261. package/fesm5/skyux-docs-tools.js +0 -3201
  262. package/fesm5/skyux-docs-tools.js.map +0 -1
  263. package/modules/demo/demo-control-panel-theme.component.d.ts +0 -32
  264. package/modules/demo/demo-theme.service.d.ts +0 -6
  265. package/modules/shared/docs-tools-resources.module.d.ts +0 -2
  266. package/modules/source-code/source-code.module.d.ts +0 -2
  267. package/plugin-resources/docs-tools-resources-provider.d.ts +0 -5
  268. package/public_api.d.ts +0 -33
  269. package/skyux-docs-tools.metadata.json +0 -1
  270. package/src/assets/img/guidelines/popover/anatomy.png +0 -0
  271. package/src/assets/img/guidelines/popover/behavior-responsive.png +0 -0
  272. package/src/assets/img/guidelines/popover/content-dont-overload.png +0 -0
  273. package/src/assets/img/guidelines/popover/content-html.png +0 -0
  274. package/src/assets/img/guidelines/popover/content-simple.png +0 -0
  275. package/src/assets/img/guidelines/popover/layout-alternate.png +0 -0
  276. package/src/assets/img/guidelines/popover/layout-default.png +0 -0
  277. package/src/assets/img/guidelines/popover/option-position.png +0 -0
  278. package/src/assets/img/guidelines/popover/popover-auto.mp4 +0 -0
  279. package/src/assets/img/guidelines/popover/popover-click.mp4 +0 -0
  280. package/src/assets/locales/resources_en_US.json +0 -22
@@ -1,15 +1,12 @@
1
- import { __decorate } from "tslib";
2
1
  import { CommonModule } from '@angular/common';
3
2
  import { NgModule } from '@angular/core';
4
3
  import { RouterModule } from '@angular/router';
5
4
  import { SkyCodeBlockModule, SkyCodeModule } from '@blackbaud/skyux-lib-code-block';
6
- import { SkyMediaQueryModule } from '@skyux/core';
7
5
  import { SkyIconModule } from '@skyux/indicators';
8
6
  import { SkyDefinitionListModule } from '@skyux/layout';
9
7
  import { SkyDocsHeadingAnchorModule } from '../heading-anchor/heading-anchor.module';
10
8
  import { SkyDocsMarkdownModule } from '../markdown/markdown.module';
11
9
  import { SkyDocsSafeHtmlModule } from '../safe-html/safe-html.module';
12
- import { SkyDocsAnchorLinkService } from './anchor-link.service';
13
10
  import { SkyDocsCallSignatureDefinitionComponent } from './call-signature-definition.component';
14
11
  import { SkyDocsDirectiveDefinitionComponent } from './directive-definition.component';
15
12
  import { SkyDocsEnumerationDefinitionComponent } from './enumeration-definition.component';
@@ -19,16 +16,39 @@ import { SkyDocsPipeDefinitionComponent } from './pipe-definition.component';
19
16
  import { SkyDocsPropertyDefinitionsComponent } from './property-definitions.component';
20
17
  import { SkyDocsClassDefinitionComponent } from './class-definition.component';
21
18
  import { SkyDocsTypeAliasDefinitionComponent } from './type-alias-definition.component';
22
- import { SkyDocsTypeDefinitionsFormatService } from './type-definitions-format.service';
23
- import { SkyDocsTypeDefinitionsService } from './type-definitions.service';
24
- import { SkyDocsTypeDefinitionsProvider } from './type-definitions-provider';
25
19
  import { SkyDocsTypeAnchorLinksPipe } from './type-anchor-links.pipe';
26
- import { SkyDocsTypeDocAdapterService } from './typedoc-adapter.service';
27
- let SkyDocsTypeDefinitionsModule = class SkyDocsTypeDefinitionsModule {
28
- };
29
- SkyDocsTypeDefinitionsModule = __decorate([
30
- NgModule({
31
- imports: [
20
+ import * as i0 from "@angular/core";
21
+ export class SkyDocsTypeDefinitionsModule {
22
+ }
23
+ SkyDocsTypeDefinitionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ SkyDocsTypeDefinitionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsModule, declarations: [SkyDocsCallSignatureDefinitionComponent,
25
+ SkyDocsClassDefinitionComponent,
26
+ SkyDocsDirectiveDefinitionComponent,
27
+ SkyDocsEnumerationDefinitionComponent,
28
+ SkyDocsInterfaceDefinitionComponent,
29
+ SkyDocsMethodDefinitionsComponent,
30
+ SkyDocsPipeDefinitionComponent,
31
+ SkyDocsPropertyDefinitionsComponent,
32
+ SkyDocsTypeAliasDefinitionComponent,
33
+ SkyDocsTypeAnchorLinksPipe], imports: [CommonModule,
34
+ RouterModule,
35
+ SkyCodeBlockModule,
36
+ SkyCodeModule,
37
+ SkyDefinitionListModule,
38
+ SkyDocsHeadingAnchorModule,
39
+ SkyDocsMarkdownModule,
40
+ SkyDocsSafeHtmlModule,
41
+ SkyIconModule], exports: [SkyDocsCallSignatureDefinitionComponent,
42
+ SkyDocsClassDefinitionComponent,
43
+ SkyDocsDirectiveDefinitionComponent,
44
+ SkyDocsEnumerationDefinitionComponent,
45
+ SkyDocsInterfaceDefinitionComponent,
46
+ SkyDocsMethodDefinitionsComponent,
47
+ SkyDocsPipeDefinitionComponent,
48
+ SkyDocsPropertyDefinitionsComponent,
49
+ SkyDocsTypeAliasDefinitionComponent,
50
+ SkyDocsTypeAnchorLinksPipe] });
51
+ SkyDocsTypeDefinitionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsModule, imports: [[
32
52
  CommonModule,
33
53
  RouterModule,
34
54
  SkyCodeBlockModule,
@@ -37,42 +57,46 @@ SkyDocsTypeDefinitionsModule = __decorate([
37
57
  SkyDocsHeadingAnchorModule,
38
58
  SkyDocsMarkdownModule,
39
59
  SkyDocsSafeHtmlModule,
40
- SkyIconModule,
41
- SkyMediaQueryModule
42
- ],
43
- declarations: [
44
- SkyDocsCallSignatureDefinitionComponent,
45
- SkyDocsClassDefinitionComponent,
46
- SkyDocsDirectiveDefinitionComponent,
47
- SkyDocsEnumerationDefinitionComponent,
48
- SkyDocsInterfaceDefinitionComponent,
49
- SkyDocsMethodDefinitionsComponent,
50
- SkyDocsPipeDefinitionComponent,
51
- SkyDocsPropertyDefinitionsComponent,
52
- SkyDocsTypeAliasDefinitionComponent,
53
- SkyDocsTypeAnchorLinksPipe
54
- ],
55
- exports: [
56
- SkyDocsCallSignatureDefinitionComponent,
57
- SkyDocsClassDefinitionComponent,
58
- SkyDocsDirectiveDefinitionComponent,
59
- SkyDocsEnumerationDefinitionComponent,
60
- SkyDocsInterfaceDefinitionComponent,
61
- SkyDocsMethodDefinitionsComponent,
62
- SkyDocsPipeDefinitionComponent,
63
- SkyDocsPropertyDefinitionsComponent,
64
- SkyDocsTypeAliasDefinitionComponent,
65
- SkyDocsTypeAnchorLinksPipe
66
- ],
67
- providers: [
68
- SkyDocsAnchorLinkService,
69
- SkyDocsTypeAnchorLinksPipe,
70
- SkyDocsTypeDefinitionsFormatService,
71
- SkyDocsTypeDefinitionsProvider,
72
- SkyDocsTypeDefinitionsService,
73
- SkyDocsTypeDocAdapterService
74
- ]
75
- })
76
- ], SkyDocsTypeDefinitionsModule);
77
- export { SkyDocsTypeDefinitionsModule };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvZG9jcy10b29scy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWRlZmluaXRpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNkLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsYUFBYSxFQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsMEJBQTBCLEVBQzNCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3pCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUNMLHVDQUF1QyxFQUN4QyxNQUFNLHVDQUF1QyxDQUFDO0FBRS9DLE9BQU8sRUFDTCxtQ0FBbUMsRUFDcEMsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wscUNBQXFDLEVBQ3RDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDbEMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ3BDLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFDTCw2QkFBNkIsRUFDOUIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFDTCw0QkFBNEIsRUFDN0IsTUFBTSwyQkFBMkIsQ0FBQztBQWdEbkMsSUFBYSw0QkFBNEIsR0FBekMsTUFBYSw0QkFBNEI7Q0FBSSxDQUFBO0FBQWhDLDRCQUE0QjtJQTlDeEMsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsWUFBWTtZQUNaLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsbUJBQW1CO1NBQ3BCO1FBQ0QsWUFBWSxFQUFFO1lBQ1osdUNBQXVDO1lBQ3ZDLCtCQUErQjtZQUMvQixtQ0FBbUM7WUFDbkMscUNBQXFDO1lBQ3JDLG1DQUFtQztZQUNuQyxpQ0FBaUM7WUFDakMsOEJBQThCO1lBQzlCLG1DQUFtQztZQUNuQyxtQ0FBbUM7WUFDbkMsMEJBQTBCO1NBQzNCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsdUNBQXVDO1lBQ3ZDLCtCQUErQjtZQUMvQixtQ0FBbUM7WUFDbkMscUNBQXFDO1lBQ3JDLG1DQUFtQztZQUNuQyxpQ0FBaUM7WUFDakMsOEJBQThCO1lBQzlCLG1DQUFtQztZQUNuQyxtQ0FBbUM7WUFDbkMsMEJBQTBCO1NBQzNCO1FBQ0QsU0FBUyxFQUFFO1lBQ1Qsd0JBQXdCO1lBQ3hCLDBCQUEwQjtZQUMxQixtQ0FBbUM7WUFDbkMsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3Qiw0QkFBNEI7U0FDN0I7S0FDRixDQUFDO0dBQ1csNEJBQTRCLENBQUk7U0FBaEMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tbW9uTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBSb3V0ZXJNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtcbiAgU2t5Q29kZUJsb2NrTW9kdWxlLFxuICBTa3lDb2RlTW9kdWxlXG59IGZyb20gJ0BibGFja2JhdWQvc2t5dXgtbGliLWNvZGUtYmxvY2snO1xuXG5pbXBvcnQge1xuICBTa3lNZWRpYVF1ZXJ5TW9kdWxlXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5SWNvbk1vZHVsZVxufSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreURlZmluaXRpb25MaXN0TW9kdWxlXG59IGZyb20gJ0Bza3l1eC9sYXlvdXQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzSGVhZGluZ0FuY2hvck1vZHVsZVxufSBmcm9tICcuLi9oZWFkaW5nLWFuY2hvci9oZWFkaW5nLWFuY2hvci5tb2R1bGUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzTWFya2Rvd25Nb2R1bGVcbn0gZnJvbSAnLi4vbWFya2Rvd24vbWFya2Rvd24ubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1NhZmVIdG1sTW9kdWxlXG59IGZyb20gJy4uL3NhZmUtaHRtbC9zYWZlLWh0bWwubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0FuY2hvckxpbmtTZXJ2aWNlXG59IGZyb20gJy4vYW5jaG9yLWxpbmsuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL2NhbGwtc2lnbmF0dXJlLWRlZmluaXRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vZW51bWVyYXRpb24tZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NNZXRob2REZWZpbml0aW9uc0NvbXBvbmVudFxufSBmcm9tICcuL21ldGhvZC1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUGlwZURlZmluaXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9waXBlLWRlZmluaXRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1Byb3BlcnR5RGVmaW5pdGlvbnNDb21wb25lbnRcbn0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vY2xhc3MtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL3R5cGUtYWxpYXMtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25zRm9ybWF0U2VydmljZVxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMtZm9ybWF0LnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25zU2VydmljZVxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlclxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMtcHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZUFuY2hvckxpbmtzUGlwZVxufSBmcm9tICcuL3R5cGUtYW5jaG9yLWxpbmtzLnBpcGUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBTa3lDb2RlQmxvY2tNb2R1bGUsXG4gICAgU2t5Q29kZU1vZHVsZSxcbiAgICBTa3lEZWZpbml0aW9uTGlzdE1vZHVsZSxcbiAgICBTa3lEb2NzSGVhZGluZ0FuY2hvck1vZHVsZSxcbiAgICBTa3lEb2NzTWFya2Rvd25Nb2R1bGUsXG4gICAgU2t5RG9jc1NhZmVIdG1sTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5TWVkaWFRdWVyeU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc0NsYXNzRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NNZXRob2REZWZpbml0aW9uc0NvbXBvbmVudCxcbiAgICBTa3lEb2NzUGlwZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc1Byb3BlcnR5RGVmaW5pdGlvbnNDb21wb25lbnQsXG4gICAgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc1R5cGVBbmNob3JMaW5rc1BpcGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc01ldGhvZERlZmluaXRpb25zQ29tcG9uZW50LFxuICAgIFNreURvY3NQaXBlRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzUHJvcGVydHlEZWZpbml0aW9uc0NvbXBvbmVudCxcbiAgICBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzVHlwZUFuY2hvckxpbmtzUGlwZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lEb2NzQW5jaG9yTGlua1NlcnZpY2UsXG4gICAgU2t5RG9jc1R5cGVBbmNob3JMaW5rc1BpcGUsXG4gICAgU2t5RG9jc1R5cGVEZWZpbml0aW9uc0Zvcm1hdFNlcnZpY2UsXG4gICAgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyLFxuICAgIFNreURvY3NUeXBlRGVmaW5pdGlvbnNTZXJ2aWNlLFxuICAgIFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURlZmluaXRpb25zTW9kdWxlIHsgfVxuIl19
60
+ SkyIconModule
61
+ ]] });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsModule, decorators: [{
63
+ type: NgModule,
64
+ args: [{
65
+ imports: [
66
+ CommonModule,
67
+ RouterModule,
68
+ SkyCodeBlockModule,
69
+ SkyCodeModule,
70
+ SkyDefinitionListModule,
71
+ SkyDocsHeadingAnchorModule,
72
+ SkyDocsMarkdownModule,
73
+ SkyDocsSafeHtmlModule,
74
+ SkyIconModule
75
+ ],
76
+ declarations: [
77
+ SkyDocsCallSignatureDefinitionComponent,
78
+ SkyDocsClassDefinitionComponent,
79
+ SkyDocsDirectiveDefinitionComponent,
80
+ SkyDocsEnumerationDefinitionComponent,
81
+ SkyDocsInterfaceDefinitionComponent,
82
+ SkyDocsMethodDefinitionsComponent,
83
+ SkyDocsPipeDefinitionComponent,
84
+ SkyDocsPropertyDefinitionsComponent,
85
+ SkyDocsTypeAliasDefinitionComponent,
86
+ SkyDocsTypeAnchorLinksPipe
87
+ ],
88
+ exports: [
89
+ SkyDocsCallSignatureDefinitionComponent,
90
+ SkyDocsClassDefinitionComponent,
91
+ SkyDocsDirectiveDefinitionComponent,
92
+ SkyDocsEnumerationDefinitionComponent,
93
+ SkyDocsInterfaceDefinitionComponent,
94
+ SkyDocsMethodDefinitionsComponent,
95
+ SkyDocsPipeDefinitionComponent,
96
+ SkyDocsPropertyDefinitionsComponent,
97
+ SkyDocsTypeAliasDefinitionComponent,
98
+ SkyDocsTypeAnchorLinksPipe
99
+ ]
100
+ }]
101
+ }] });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1kZWZpbml0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNkLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNMLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3RCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsT0FBTyxFQUNMLHVDQUF1QyxFQUN4QyxNQUFNLHVDQUF1QyxDQUFDO0FBRS9DLE9BQU8sRUFDTCxtQ0FBbUMsRUFDcEMsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wscUNBQXFDLEVBQ3RDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDbEMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ3BDLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLDBCQUEwQixDQUFDOztBQXVDbEMsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQXhCckMsdUNBQXVDO1FBQ3ZDLCtCQUErQjtRQUMvQixtQ0FBbUM7UUFDbkMscUNBQXFDO1FBQ3JDLG1DQUFtQztRQUNuQyxpQ0FBaUM7UUFDakMsOEJBQThCO1FBQzlCLG1DQUFtQztRQUNuQyxtQ0FBbUM7UUFDbkMsMEJBQTBCLGFBcEIxQixZQUFZO1FBQ1osWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLGFBQWEsYUFlYix1Q0FBdUM7UUFDdkMsK0JBQStCO1FBQy9CLG1DQUFtQztRQUNuQyxxQ0FBcUM7UUFDckMsbUNBQW1DO1FBQ25DLGlDQUFpQztRQUNqQyw4QkFBOEI7UUFDOUIsbUNBQW1DO1FBQ25DLG1DQUFtQztRQUNuQywwQkFBMEI7MkhBR2pCLDRCQUE0QixZQXBDOUI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLGFBQWE7U0FDZDs0RkEwQlUsNEJBQTRCO2tCQXJDeEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGFBQWE7cUJBQ2Q7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVDQUF1Qzt3QkFDdkMsK0JBQStCO3dCQUMvQixtQ0FBbUM7d0JBQ25DLHFDQUFxQzt3QkFDckMsbUNBQW1DO3dCQUNuQyxpQ0FBaUM7d0JBQ2pDLDhCQUE4Qjt3QkFDOUIsbUNBQW1DO3dCQUNuQyxtQ0FBbUM7d0JBQ25DLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVDQUF1Qzt3QkFDdkMsK0JBQStCO3dCQUMvQixtQ0FBbUM7d0JBQ25DLHFDQUFxQzt3QkFDckMsbUNBQW1DO3dCQUNuQyxpQ0FBaUM7d0JBQ2pDLDhCQUE4Qjt3QkFDOUIsbUNBQW1DO3dCQUNuQyxtQ0FBbUM7d0JBQ25DLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21tb25Nb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTmdNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFJvdXRlck1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBTa3lDb2RlQmxvY2tNb2R1bGUsXG4gIFNreUNvZGVNb2R1bGVcbn0gZnJvbSAnQGJsYWNrYmF1ZC9za3l1eC1saWItY29kZS1ibG9jayc7XG5cbmltcG9ydCB7XG4gIFNreUljb25Nb2R1bGVcbn0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lEZWZpbml0aW9uTGlzdE1vZHVsZVxufSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0hlYWRpbmdBbmNob3JNb2R1bGVcbn0gZnJvbSAnLi4vaGVhZGluZy1hbmNob3IvaGVhZGluZy1hbmNob3IubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc01hcmtkb3duTW9kdWxlXG59IGZyb20gJy4uL21hcmtkb3duL21hcmtkb3duLm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NTYWZlSHRtbE1vZHVsZVxufSBmcm9tICcuLi9zYWZlLWh0bWwvc2FmZS1odG1sLm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL2NhbGwtc2lnbmF0dXJlLWRlZmluaXRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vZW51bWVyYXRpb24tZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NNZXRob2REZWZpbml0aW9uc0NvbXBvbmVudFxufSBmcm9tICcuL21ldGhvZC1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUGlwZURlZmluaXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9waXBlLWRlZmluaXRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1Byb3BlcnR5RGVmaW5pdGlvbnNDb21wb25lbnRcbn0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vY2xhc3MtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbkNvbXBvbmVudFxufSBmcm9tICcuL3R5cGUtYWxpYXMtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZUFuY2hvckxpbmtzUGlwZVxufSBmcm9tICcuL3R5cGUtYW5jaG9yLWxpbmtzLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBTa3lDb2RlQmxvY2tNb2R1bGUsXG4gICAgU2t5Q29kZU1vZHVsZSxcbiAgICBTa3lEZWZpbml0aW9uTGlzdE1vZHVsZSxcbiAgICBTa3lEb2NzSGVhZGluZ0FuY2hvck1vZHVsZSxcbiAgICBTa3lEb2NzTWFya2Rvd25Nb2R1bGUsXG4gICAgU2t5RG9jc1NhZmVIdG1sTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NDbGFzc0RlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzTWV0aG9kRGVmaW5pdGlvbnNDb21wb25lbnQsXG4gICAgU2t5RG9jc1BpcGVEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NQcm9wZXJ0eURlZmluaXRpb25zQ29tcG9uZW50LFxuICAgIFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NUeXBlQW5jaG9yTGlua3NQaXBlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc0NsYXNzRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbkNvbXBvbmVudCxcbiAgICBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uQ29tcG9uZW50LFxuICAgIFNreURvY3NNZXRob2REZWZpbml0aW9uc0NvbXBvbmVudCxcbiAgICBTa3lEb2NzUGlwZURlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc1Byb3BlcnR5RGVmaW5pdGlvbnNDb21wb25lbnQsXG4gICAgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb25Db21wb25lbnQsXG4gICAgU2t5RG9jc1R5cGVBbmNob3JMaW5rc1BpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURlZmluaXRpb25zTW9kdWxlIHsgfVxuIl19
@@ -1,11 +1,11 @@
1
- import { __decorate } from "tslib";
2
1
  import { Injectable } from '@angular/core';
3
- import { SkyDocsTypeDefinitionsProvider } from './type-definitions-provider';
4
- import { SkyDocsTypeDocAdapterService } from './typedoc-adapter.service';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./type-definitions-provider";
4
+ import * as i2 from "./typedoc-adapter.service";
5
5
  /**
6
6
  * Handles all type definitions that have been converted from the third-party documentation generator.
7
7
  */
8
- let SkyDocsTypeDefinitionsService = class SkyDocsTypeDefinitionsService {
8
+ export class SkyDocsTypeDefinitionsService {
9
9
  constructor(typeDefinitionsProvider, adapter) {
10
10
  this.typeDefinitionsProvider = typeDefinitionsProvider;
11
11
  this.adapter = adapter;
@@ -38,7 +38,7 @@ let SkyDocsTypeDefinitionsService = class SkyDocsTypeDefinitionsService {
38
38
  return types;
39
39
  }
40
40
  // Only process types that match the requested source code location.
41
- const typeDefinitions = allDefinitions.filter((i) => i.sources[0].fileName.match(requestedDir));
41
+ const typeDefinitions = allDefinitions.filter((i) => i.sources && i.sources[0].fileName.match(requestedDir));
42
42
  if (typeDefinitions.length === 0) {
43
43
  console.warn(`Type definitions were not found for location: ${requestedDir}`);
44
44
  }
@@ -81,13 +81,13 @@ let SkyDocsTypeDefinitionsService = class SkyDocsTypeDefinitionsService {
81
81
  });
82
82
  return types;
83
83
  }
84
- };
85
- SkyDocsTypeDefinitionsService.ctorParameters = () => [
86
- { type: SkyDocsTypeDefinitionsProvider },
87
- { type: SkyDocsTypeDocAdapterService }
88
- ];
89
- SkyDocsTypeDefinitionsService = __decorate([
90
- Injectable()
91
- ], SkyDocsTypeDefinitionsService);
92
- export { SkyDocsTypeDefinitionsService };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2RvY3MtdG9vbHMvIiwic291cmNlcyI6WyJtb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsNEJBQTRCLEVBQzdCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkM7O0dBRUc7QUFFSCxJQUFhLDZCQUE2QixHQUExQyxNQUFhLDZCQUE2QjtJQUV4QyxZQUNVLHVCQUF1RCxFQUN2RCxPQUFxQztRQURyQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWdDO1FBQ3ZELFlBQU8sR0FBUCxPQUFPLENBQThCO0lBQzNDLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsY0FBc0I7UUFFOUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUM5RTtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7UUFDcEUsTUFBTSxZQUFZLEdBQUcsY0FBYzthQUNoQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO2FBQ2pDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7UUFFN0MsTUFBTSxLQUFLLEdBQTJCO1lBQ3BDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsVUFBVSxFQUFFLEVBQUU7WUFDZCxVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFVB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1xufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXJcbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVEb2NBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL3R5cGVkb2MtYWRhcHRlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBIYW5kbGVzIGFsbCB0eXBlIGRlZmluaXRpb25zIHRoYXQgaGF2ZSBiZWVuIGNvbnZlcnRlZCBmcm9tIHRoZSB0aGlyZC1wYXJ0eSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvci5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreURvY3NUeXBlRGVmaW5pdGlvbnNTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyOiBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHlwZSBkZWZpbml0aW9ucyBmcm9tIGEgc3BlY2lmaWMgc291cmNlIGNvZGUgbG9jYXRpb24uXG4gICAqIEBwYXJhbSBzb3VyY2VDb2RlUGF0aCBUaGUgZGlyZWN0b3J5IG9mIHRoZSBzb3VyY2UgY29kZSB5b3Ugd2lzaCB0byBwdWxsIHR5cGUgZGVmaW5pdGlvbnMgZnJvbSxcbiAgICogcmVsYXRpdmUgdG8gdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0VHlwZURlZmluaXRpb25zKHNvdXJjZUNvZGVQYXRoOiBzdHJpbmcpOiBTa3lEb2NzVHlwZURlZmluaXRpb25zIHtcblxuICAgIGlmIChzb3VyY2VDb2RlUGF0aC5jaGFyQXQoc291cmNlQ29kZVBhdGgubGVuZ3RoIC0gMSkgIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc291cmNlIGNvZGUgcGF0aCBtdXN0IGVuZCB3aXRoIGEgZm9yd2FyZCBzbGFzaCAoYC9gKS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxEZWZpbml0aW9ucyA9IHRoaXMudHlwZURlZmluaXRpb25zUHJvdmlkZXIudHlwZURlZmluaXRpb25zO1xuICAgIGNvbnN0IHJlcXVlc3RlZERpciA9IHNvdXJjZUNvZGVQYXRoXG4gICAgICAucmVwbGFjZSgvc3JjXFwvYXBwXFwvcHVibGljXFwvLywgJycpXG4gICAgICAucmVwbGFjZSgvXlxcLy8sICcnKTsgLy8gcmVtb3ZlIGZpcnN0IHNsYXNoLlxuXG4gICAgY29uc3QgdHlwZXM6IFNreURvY3NUeXBlRGVmaW5pdGlvbnMgPSB7XG4gICAgICBjbGFzc2VzOiBbXSxcbiAgICAgIGNvbXBvbmVudHM6IFtdLFxuICAgICAgZGlyZWN0aXZlczogW10sXG4gICAgICBlbnVtZXJhdGlvbnM6IFtdLFxuICAgICAgaW50ZXJmYWNlczogW10sXG4gICAgICBwaXBlczogW10sXG4gICAgICBzZXJ2aWNlczogW10sXG4gICAgICB0eXBlQWxpYXNlczogW11cbiAgICB9O1xuXG4gICAgaWYgKCFhbGxEZWZpbml0aW9ucykge1xuICAgICAgY29uc29sZS53YXJuKGBObyB0eXBlcyB3ZXJlIGZvdW5kIGZvciB0aGlzIHByb2plY3QhYCk7XG4gICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuXG4gICAgLy8gT25seSBwcm9jZXNzIHR5cGVzIHRoYXQgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzb3VyY2UgY29kZSBsb2NhdGlvbi5cbiAgICBjb25zdCB0eXBlRGVmaW5pdGlvbnMgPSBhbGxEZWZpbml0aW9ucy5maWx0ZXIoKGkpID0+IGkuc291cmNlc1swXS5maWxlTmFtZS5tYXRjaChyZXF1ZXN0ZWREaXIpKTtcbiAgICBpZiAodHlwZURlZmluaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS53YXJuKGBUeXBlIGRlZmluaXRpb25zIHdlcmUgbm90IGZvdW5kIGZvciBsb2NhdGlvbjogJHtyZXF1ZXN0ZWREaXJ9YCk7XG4gICAgfVxuXG4gICAgdHlwZURlZmluaXRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGRlY29yYXRvciA9IGl0ZW0uZGVjb3JhdG9ycyAmJiBpdGVtLmRlY29yYXRvcnNbMF0ubmFtZTtcbiAgICAgIGNvbnN0IGtpbmRTdHJpbmcgPSBpdGVtLmtpbmRTdHJpbmc7XG5cbiAgICAgIHN3aXRjaCAoZGVjb3JhdG9yKSB7XG4gICAgICAgIGNhc2UgJ0NvbXBvbmVudCc6XG4gICAgICAgICAgdHlwZXMuY29tcG9uZW50cy5wdXNoKHRoaXMuYWRhcHRlci50b0RpcmVjdGl2ZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEaXJlY3RpdmUnOlxuICAgICAgICAgIHR5cGVzLmRpcmVjdGl2ZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9EaXJlY3RpdmVEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSW5qZWN0YWJsZSc6XG4gICAgICAgICAgdHlwZXMuc2VydmljZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9DbGFzc0RlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdOZ01vZHVsZSc6XG4gICAgICAgICAgLy8gRG9uJ3QgZG9jdW1lbnQgbW9kdWxlcy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGlwZSc6XG4gICAgICAgICAgdHlwZXMucGlwZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9QaXBlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLyp0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3dpdGNoLWRlZmF1bHQqL1xuICAgICAgICAgIHN3aXRjaCAoa2luZFN0cmluZykge1xuICAgICAgICAgICAgY2FzZSAnQ2xhc3MnOlxuICAgICAgICAgICAgICB0eXBlcy5jbGFzc2VzLnB1c2godGhpcy5hZGFwdGVyLnRvQ2xhc3NEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJbnRlcmZhY2UnOlxuICAgICAgICAgICAgICB0eXBlcy5pbnRlcmZhY2VzLnB1c2godGhpcy5hZGFwdGVyLnRvSW50ZXJmYWNlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW51bWVyYXRpb24nOlxuICAgICAgICAgICAgICB0eXBlcy5lbnVtZXJhdGlvbnMucHVzaCh0aGlzLmFkYXB0ZXIudG9FbnVtZXJhdGlvbkRlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1R5cGUgYWxpYXMnOlxuICAgICAgICAgICAgICB0eXBlcy50eXBlQWxpYXNlcy5wdXNoKHRoaXMuYWRhcHRlci50b1R5cGVBbGlhc0RlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxufVxuIl19
84
+ }
85
+ SkyDocsTypeDefinitionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsService, deps: [{ token: i1.SkyDocsTypeDefinitionsProvider }, { token: i2.SkyDocsTypeDocAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ SkyDocsTypeDefinitionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsService, providedIn: 'any' });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDefinitionsService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'any'
91
+ }]
92
+ }], ctorParameters: function () { return [{ type: i1.SkyDocsTypeDefinitionsProvider }, { type: i2.SkyDocsTypeDocAdapterService }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDOzs7O0FBY3ZCOztHQUVHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxZQUNVLHVCQUF1RCxFQUN2RCxPQUFxQztRQURyQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWdDO1FBQ3ZELFlBQU8sR0FBUCxPQUFPLENBQThCO0lBQzNDLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsY0FBc0I7UUFFOUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUM5RTtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7UUFDcEUsTUFBTSxZQUFZLEdBQUcsY0FBYzthQUNoQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO2FBQ2pDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7UUFFN0MsTUFBTSxLQUFLLEdBQTJCO1lBQ3BDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsVUFBVSxFQUFFLEVBQUU7WUFDZCxVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLEVBQUUsRUFBRTtZQUNaLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsb0VBQW9FO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQy9FO1FBRUQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUVuQyxRQUFRLFNBQVMsRUFBRTtnQkFDakIsS0FBSyxXQUFXO29CQUNkLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDaEUsTUFBTTtnQkFDUixLQUFLLFdBQVc7b0JBQ2QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNoRSxNQUFNO2dCQUNSLEtBQUssWUFBWTtvQkFDZixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzFELE1BQU07Z0JBQ1IsS0FBSyxVQUFVO29CQUNiLDBCQUEwQjtvQkFDMUIsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN0RCxNQUFNO2dCQUNSO29CQUNFLDJDQUEyQztvQkFDM0MsUUFBUSxVQUFVLEVBQUU7d0JBQ2xCLEtBQUssT0FBTzs0QkFDVixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ3pELE1BQU07d0JBQ1IsS0FBSyxXQUFXOzRCQUNkLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFDaEUsTUFBTTt3QkFDUixLQUFLLGFBQWE7NEJBQ2hCLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFDcEUsTUFBTTt3QkFDUixLQUFLLFlBQVk7NEJBQ2YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUNqRSxNQUFNO3FCQUNUO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MkhBckZVLDZCQUE2QjsrSEFBN0IsNkJBQTZCLGNBRjVCLEtBQUs7NEZBRU4sNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NUeXBlRGVmaW5pdGlvbnNcbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyXG59IGZyb20gJy4vdHlwZS1kZWZpbml0aW9ucy1wcm92aWRlcic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2Vcbn0gZnJvbSAnLi90eXBlZG9jLWFkYXB0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogSGFuZGxlcyBhbGwgdHlwZSBkZWZpbml0aW9ucyB0aGF0IGhhdmUgYmVlbiBjb252ZXJ0ZWQgZnJvbSB0aGUgdGhpcmQtcGFydHkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueSdcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc1R5cGVEZWZpbml0aW9uc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHlwZURlZmluaXRpb25zUHJvdmlkZXI6IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlcixcbiAgICBwcml2YXRlIGFkYXB0ZXI6IFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0dXJucyB0eXBlIGRlZmluaXRpb25zIGZyb20gYSBzcGVjaWZpYyBzb3VyY2UgY29kZSBsb2NhdGlvbi5cbiAgICogQHBhcmFtIHNvdXJjZUNvZGVQYXRoIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIHNvdXJjZSBjb2RlIHlvdSB3aXNoIHRvIHB1bGwgdHlwZSBkZWZpbml0aW9ucyBmcm9tLFxuICAgKiByZWxhdGl2ZSB0byB0aGUgYXBwbGljYXRpb24ncyByb290IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBnZXRUeXBlRGVmaW5pdGlvbnMoc291cmNlQ29kZVBhdGg6IHN0cmluZyk6IFNreURvY3NUeXBlRGVmaW5pdGlvbnMge1xuXG4gICAgaWYgKHNvdXJjZUNvZGVQYXRoLmNoYXJBdChzb3VyY2VDb2RlUGF0aC5sZW5ndGggLSAxKSAhPT0gJy8nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzb3VyY2UgY29kZSBwYXRoIG11c3QgZW5kIHdpdGggYSBmb3J3YXJkIHNsYXNoIChgL2ApLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbERlZmluaXRpb25zID0gdGhpcy50eXBlRGVmaW5pdGlvbnNQcm92aWRlci50eXBlRGVmaW5pdGlvbnM7XG4gICAgY29uc3QgcmVxdWVzdGVkRGlyID0gc291cmNlQ29kZVBhdGhcbiAgICAgIC5yZXBsYWNlKC9zcmNcXC9hcHBcXC9wdWJsaWNcXC8vLCAnJylcbiAgICAgIC5yZXBsYWNlKC9eXFwvLywgJycpOyAvLyByZW1vdmUgZmlyc3Qgc2xhc2guXG5cbiAgICBjb25zdCB0eXBlczogU2t5RG9jc1R5cGVEZWZpbml0aW9ucyA9IHtcbiAgICAgIGNsYXNzZXM6IFtdLFxuICAgICAgY29tcG9uZW50czogW10sXG4gICAgICBkaXJlY3RpdmVzOiBbXSxcbiAgICAgIGVudW1lcmF0aW9uczogW10sXG4gICAgICBpbnRlcmZhY2VzOiBbXSxcbiAgICAgIHBpcGVzOiBbXSxcbiAgICAgIHNlcnZpY2VzOiBbXSxcbiAgICAgIHR5cGVBbGlhc2VzOiBbXVxuICAgIH07XG5cbiAgICBpZiAoIWFsbERlZmluaXRpb25zKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIHR5cGVzIHdlcmUgZm91bmQgZm9yIHRoaXMgcHJvamVjdCFgKTtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBPbmx5IHByb2Nlc3MgdHlwZXMgdGhhdCBtYXRjaCB0aGUgcmVxdWVzdGVkIHNvdXJjZSBjb2RlIGxvY2F0aW9uLlxuICAgIGNvbnN0IHR5cGVEZWZpbml0aW9ucyA9IGFsbERlZmluaXRpb25zLmZpbHRlcigoaSkgPT4gaS5zb3VyY2VzICYmIGkuc291cmNlc1swXS5maWxlTmFtZS5tYXRjaChyZXF1ZXN0ZWREaXIpKTtcbiAgICBpZiAodHlwZURlZmluaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS53YXJuKGBUeXBlIGRlZmluaXRpb25zIHdlcmUgbm90IGZvdW5kIGZvciBsb2NhdGlvbjogJHtyZXF1ZXN0ZWREaXJ9YCk7XG4gICAgfVxuXG4gICAgdHlwZURlZmluaXRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGRlY29yYXRvciA9IGl0ZW0uZGVjb3JhdG9ycyAmJiBpdGVtLmRlY29yYXRvcnNbMF0ubmFtZTtcbiAgICAgIGNvbnN0IGtpbmRTdHJpbmcgPSBpdGVtLmtpbmRTdHJpbmc7XG5cbiAgICAgIHN3aXRjaCAoZGVjb3JhdG9yKSB7XG4gICAgICAgIGNhc2UgJ0NvbXBvbmVudCc6XG4gICAgICAgICAgdHlwZXMuY29tcG9uZW50cy5wdXNoKHRoaXMuYWRhcHRlci50b0RpcmVjdGl2ZURlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEaXJlY3RpdmUnOlxuICAgICAgICAgIHR5cGVzLmRpcmVjdGl2ZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9EaXJlY3RpdmVEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSW5qZWN0YWJsZSc6XG4gICAgICAgICAgdHlwZXMuc2VydmljZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9DbGFzc0RlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdOZ01vZHVsZSc6XG4gICAgICAgICAgLy8gRG9uJ3QgZG9jdW1lbnQgbW9kdWxlcy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGlwZSc6XG4gICAgICAgICAgdHlwZXMucGlwZXMucHVzaCh0aGlzLmFkYXB0ZXIudG9QaXBlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLyp0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3dpdGNoLWRlZmF1bHQqL1xuICAgICAgICAgIHN3aXRjaCAoa2luZFN0cmluZykge1xuICAgICAgICAgICAgY2FzZSAnQ2xhc3MnOlxuICAgICAgICAgICAgICB0eXBlcy5jbGFzc2VzLnB1c2godGhpcy5hZGFwdGVyLnRvQ2xhc3NEZWZpbml0aW9uKGl0ZW0pKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJbnRlcmZhY2UnOlxuICAgICAgICAgICAgICB0eXBlcy5pbnRlcmZhY2VzLnB1c2godGhpcy5hZGFwdGVyLnRvSW50ZXJmYWNlRGVmaW5pdGlvbihpdGVtKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW51bWVyYXRpb24nOlxuICAgICAgICAgICAgICB0eXBlcy5lbnVtZXJhdGlvbnMucHVzaCh0aGlzLmFkYXB0ZXIudG9FbnVtZXJhdGlvbkRlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1R5cGUgYWxpYXMnOlxuICAgICAgICAgICAgICB0eXBlcy50eXBlQWxpYXNlcy5wdXNoKHRoaXMuYWRhcHRlci50b1R5cGVBbGlhc0RlZmluaXRpb24oaXRlbSkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxufVxuIl19
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1wYXJhbWV0ZXItZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9kb2NzLXRvb2xzLyIsInNvdXJjZXMiOlsibW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtcGFyYW1ldGVyLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNreURvY3NUeXBlRGVmaW5pdGlvblxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbic7XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgdHlwZSBwYXJhbWV0ZXIsIGUuZy4gYDxUPmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgdHlwZT86IFNreURvY3NUeXBlRGVmaW5pdGlvbjtcblxufVxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1wYXJhbWV0ZXItZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLXBhcmFtZXRlci1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb24nO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIHR5cGUgcGFyYW1ldGVyLCBlLmcuIGA8VD5gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURvY3NUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbiB7XG5cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHR5cGU/OiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
- import { __decorate, __param } from "tslib";
2
1
  import { Injectable, Optional } from '@angular/core';
3
- import { SkyDocsTypeDefinitionsProvider } from './type-definitions-provider';
4
2
  import orderBy from 'lodash.orderby';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./type-definitions-provider";
5
5
  /**
6
6
  * Converts TypeDoc types into SKY UX docs-tools types, to be supplied to the various definitions components.
7
7
  */
8
- let SkyDocsTypeDocAdapterService = class SkyDocsTypeDocAdapterService {
8
+ export class SkyDocsTypeDocAdapterService {
9
9
  constructor(typeDefinitionsProvider) {
10
10
  this.typeDefinitionsProvider = typeDefinitionsProvider;
11
11
  }
@@ -113,21 +113,43 @@ let SkyDocsTypeDocAdapterService = class SkyDocsTypeDocAdapterService {
113
113
  const definitions = entry.children
114
114
  .filter(child => child.kindString === 'Property' || child.kindString === 'Accessor')
115
115
  .map(child => {
116
- const tags = this.getCommentTags(child.comment);
117
- const definition = {
118
- isOptional: !tags.extras.required,
116
+ var _a, _b, _c;
117
+ let definition = {
118
+ isOptional: true,
119
119
  name: this.getPropertyName(child),
120
120
  type: this.getTypeDefinition(child)
121
121
  };
122
- this.applyCommentTagValues(definition, tags);
123
- const decorator = this.getDecorator(child);
124
- if (decorator) {
125
- definition.decorator = decorator;
122
+ let defaultValue;
123
+ /* Ensure we are properly capturing definitions which use a getter/setter. Final check is a sanity check */
124
+ if (child.kindString === 'Accessor' && !((_a = child.comment) === null || _a === void 0 ? void 0 : _a.shortText) && ((_b = child.getSignature) === null || _b === void 0 ? void 0 : _b.length) > 0) {
125
+ const mainTags = this.getCommentTags(child.comment);
126
+ const getTags = this.getCommentTags(child.getSignature[0].comment);
127
+ this.applyCommentTagValues(definition, mainTags);
128
+ this.applyCommentTagValues(definition, getTags);
129
+ if (((_c = child.setSignature) === null || _c === void 0 ? void 0 : _c.length) > 0) {
130
+ const setTags = this.getCommentTags(child.setSignature[0].comment);
131
+ this.applyCommentTagValues(definition, setTags);
132
+ definition.isOptional = !setTags.extras.required;
133
+ defaultValue = this.getDefaultValue(child, setTags);
134
+ }
135
+ else {
136
+ definition.isOptional = !mainTags.extras.required;
137
+ defaultValue = this.getDefaultValue(child, mainTags);
138
+ }
139
+ }
140
+ else {
141
+ const tags = this.getCommentTags(child.comment);
142
+ definition.isOptional = !tags.extras.required;
143
+ this.applyCommentTagValues(definition, tags);
144
+ defaultValue = this.getDefaultValue(child, tags);
126
145
  }
127
- const defaultValue = this.getDefaultValue(child, tags);
128
146
  if (defaultValue) {
129
147
  definition.defaultValue = defaultValue;
130
148
  }
149
+ const decorator = this.getDecorator(child);
150
+ if (decorator) {
151
+ definition.decorator = decorator;
152
+ }
131
153
  return definition;
132
154
  });
133
155
  return orderBy(definitions, ['isOptional', 'name'], ['asc', 'asc']);
@@ -241,7 +263,7 @@ let SkyDocsTypeDocAdapterService = class SkyDocsTypeDocAdapterService {
241
263
  const indexSignature = declaration.indexSignature;
242
264
  definition.indexSignature = this.getIndexSignatureDefinition(indexSignature);
243
265
  }
244
- else if (declaration.children) {
266
+ else /* istanbul ignore else */ if (declaration.children) {
245
267
  definition.typeLiteral = {
246
268
  properties: this.getInterfaceProperties({
247
269
  children: declaration.children
@@ -441,13 +463,15 @@ let SkyDocsTypeDocAdapterService = class SkyDocsTypeDocAdapterService {
441
463
  var _a;
442
464
  return entry.anchorId || ((_a = this.typeDefinitionsProvider) === null || _a === void 0 ? void 0 : _a.anchorIds[entry.name]) || '';
443
465
  }
444
- };
445
- SkyDocsTypeDocAdapterService.ctorParameters = () => [
446
- { type: SkyDocsTypeDefinitionsProvider, decorators: [{ type: Optional }] }
447
- ];
448
- SkyDocsTypeDocAdapterService = __decorate([
449
- Injectable(),
450
- __param(0, Optional())
451
- ], SkyDocsTypeDocAdapterService);
452
- export { SkyDocsTypeDocAdapterService };
453
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvZG9jcy10b29scy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFrRXZCLE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSw2QkFBNkIsQ0FBQztBQWdCckMsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFckM7O0dBRUc7QUFFSCxJQUFhLDRCQUE0QixHQUF6QyxNQUFhLDRCQUE0QjtJQUV2QyxZQUNzQix1QkFBd0Q7UUFBeEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztJQUMzRSxDQUFDO0lBRUcsaUJBQWlCLENBQUMsS0FBbUI7UUFDMUMsTUFBTSxVQUFVLEdBQTJCO1lBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsVUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDOUI7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3JCLFVBQVUsQ0FB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QUFRLFdBQUksSUFBSSxDQUFDLHVCQUF1QiwwQ0FBRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRixDQUFDO0NBRUYsQ0FBQTs7WUFwakJpRCw4QkFBOEIsdUJBQTNFLFFBQVE7O0FBSEEsNEJBQTRCO0lBRHhDLFVBQVUsRUFBRTtJQUlSLFdBQUEsUUFBUSxFQUFFLENBQUE7R0FIRiw0QkFBNEIsQ0F1akJ4QztTQXZqQlksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvblxufSBmcm9tICcuL2NhbGwtc2lnbmF0dXJlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uXG59IGZyb20gJy4vY2xhc3MtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDbGFzc1Byb3BlcnR5RGVmaW5pdGlvblxufSBmcm9tICcuL3Byb3BlcnR5LWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29tbWVudFRhZ3Ncbn0gZnJvbSAnLi9jb21tZW50LXRhZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvblxufSBmcm9tICcuL2RpcmVjdGl2ZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvblxufSBmcm9tICcuL2VudW1lcmF0aW9uLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uXG59IGZyb20gJy4vZW51bWVyYXRpb24tbWVtYmVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzSW5kZXhTaWduYXR1cmVEZWZpbml0aW9uXG59IGZyb20gJy4vaW5kZXgtc2lnbmF0dXJlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvblxufSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvblxufSBmcm9tICcuL2ludGVyZmFjZS1wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvblxufSBmcm9tICcuL21ldGhvZC1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25cbn0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NQaXBlRGVmaW5pdGlvblxufSBmcm9tICcuL3BpcGUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NQcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25cbn0gZnJvbSAnLi9wcm9wZXJ0eS1kZWNvcmF0b3InO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvblxufSBmcm9tICcuL3R5cGUtYWxpYXMtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NUeXBlRGVmaW5pdGlvblxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlclxufSBmcm9tICcuL3R5cGUtZGVmaW5pdGlvbnMtcHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLXBhcmFtZXRlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgVHlwZURvY0NvbW1lbnQsXG4gIFR5cGVEb2NFbnRyeSxcbiAgVHlwZURvY0VudHJ5Q2hpbGQsXG4gIFR5cGVEb2NQYXJhbWV0ZXIsXG4gIFR5cGVEb2NTaWduYXR1cmUsXG4gIFR5cGVEb2NUeXBlLFxuICBUeXBlRG9jVHlwZVBhcmFtZXRlclxufSBmcm9tICcuL3R5cGVkb2MtdHlwZXMnO1xuXG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gub3JkZXJieSc7XG5cbi8qKlxuICogQ29udmVydHMgVHlwZURvYyB0eXBlcyBpbnRvIFNLWSBVWCBkb2NzLXRvb2xzIHR5cGVzLCB0byBiZSBzdXBwbGllZCB0byB0aGUgdmFyaW91cyBkZWZpbml0aW9ucyBjb21wb25lbnRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RG9jc1R5cGVEb2NBZGFwdGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0eXBlRGVmaW5pdGlvbnNQcm92aWRlcj86IFNreURvY3NUeXBlRGVmaW5pdGlvbnNQcm92aWRlclxuICApIHt9XG5cbiAgcHVibGljIHRvQ2xhc3NEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZVxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgaWYgKG1ldGhvZHMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLm1ldGhvZHMgPSBtZXRob2RzO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG4gICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvRGlyZWN0aXZlRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHNlbGVjdG9yOiB0aGlzLmdldFNlbGVjdG9yKGVudHJ5KVxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG5cbiAgICBjb25zdCBldmVudFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnT3V0cHV0Jyk7XG4gICAgaWYgKGV2ZW50UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uZXZlbnRQcm9wZXJ0aWVzID0gZXZlbnRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5kZWNvcmF0b3I/Lm5hbWUgPT09ICdJbnB1dCcpO1xuICAgIGlmIChpbnB1dFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLmlucHV0UHJvcGVydGllcyA9IGlucHV0UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0VudW1lcmF0aW9uRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMuZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbWVtYmVycyxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWVcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0ludGVyZmFjZURlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICBwcm9wZXJ0aWVzXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhlbnRyeS50eXBlUGFyYW1ldGVyKTtcbiAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9QaXBlRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc1BpcGVEZWZpbml0aW9uIHtcbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU1ldGhvZCA9IG1ldGhvZHMuZmluZChtID0+IG0ubmFtZSA9PT0gJ3RyYW5zZm9ybScpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NQaXBlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0cmFuc2Zvcm1NZXRob2RcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b1R5cGVBbGlhc0RlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZVxuICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKGVudHJ5LnR5cGVQYXJhbWV0ZXIpO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9yU291cmNlID0gZW50cnkuZGVjb3JhdG9yc1swXS5hcmd1bWVudHMub2JqO1xuICAgIHJldHVybiAoZGVjb3JhdG9yU291cmNlLmluZGV4T2YoJ3NlbGVjdG9yOiBgJykgPiAtMSlcbiAgICAgID8gZGVjb3JhdG9yU291cmNlLnNwbGl0KCdzZWxlY3RvcjogYCcpWzFdLnNwbGl0KCdgJylbMF0ucmVwbGFjZSgvXFxzXFxzKy9nLCAnICcpXG4gICAgICA6IGRlY29yYXRvclNvdXJjZS5zcGxpdCgnc2VsZWN0b3I6IFxcJycpWzFdLnNwbGl0KCdcXCcnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xhc3NQcm9wZXJ0aWVzKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoY2hpbGQgPT4gY2hpbGQua2luZFN0cmluZyA9PT0gJ1Byb3BlcnR5JyB8fCBjaGlsZC5raW5kU3RyaW5nID09PSAnQWNjZXNzb3InKVxuICAgICAgLm1hcChjaGlsZCA9PiB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogIXRhZ3MuZXh0cmFzLnJlcXVpcmVkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgICAgIGNvbnN0IGRlY29yYXRvciA9IHRoaXMuZ2V0RGVjb3JhdG9yKGNoaWxkKTtcbiAgICAgICAgaWYgKGRlY29yYXRvcikge1xuICAgICAgICAgIGRlZmluaXRpb24uZGVjb3JhdG9yID0gZGVjb3JhdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy5nZXREZWZhdWx0VmFsdWUoY2hpbGQsIHRhZ3MpO1xuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9yZGVyQnkoXG4gICAgICBkZWZpbml0aW9ucyxcbiAgICAgIFsnaXNPcHRpb25hbCcsICduYW1lJ10sXG4gICAgICBbJ2FzYycsICdhc2MnXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzTWV0aG9kcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbWV0aG9kcyA9IGVudHJ5LmNoaWxkcmVuXG4gICAgICAuZmlsdGVyKGNoaWxkID0+IGNoaWxkLmtpbmRTdHJpbmcgPT09ICdNZXRob2QnICYmIC9ebmcvLnRlc3QoY2hpbGQubmFtZSkgPT09IGZhbHNlKVxuICAgICAgLm1hcChjaGlsZCA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb24gPSB7XG4gICAgICAgICAgbmFtZTogdGhpcy5nZXRQcm9wZXJ0eU5hbWUoY2hpbGQpLFxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQpXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQ29tbWVudHMgZm9yIG1ldGhvZHMgYXJlIHN0b3JlZCBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbi5cbiAgICAgICAgY29uc3QgY29tbWVudCA9IGNoaWxkLnNpZ25hdHVyZXNbMF0uY29tbWVudDtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY29tbWVudCk7XG4gICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgICAgIGNvbnN0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy5nZXRUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbnMoY2hpbGQuc2lnbmF0dXJlc1swXS50eXBlUGFyYW1ldGVyKTtcbiAgICAgICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb3JkZXJCeShcbiAgICAgIG1ldGhvZHMsXG4gICAgICBbJ25hbWUnXSxcbiAgICAgIFsnYXNjJ11cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4gJiYgIWVudHJ5LmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSBlbnRyeS5jaGlsZHJlbj8ubWFwKGNoaWxkID0+IHtcbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgICAgICAgaXNPcHRpb25hbDogKHRhZ3MuZXh0cmFzLnJlcXVpcmVkKSA/IGZhbHNlIDogISEoY2hpbGQuZmxhZ3M/LmlzT3B0aW9uYWwpLFxuICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQpXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfSkgfHwgW107XG5cbiAgICBjb25zdCBzb3J0ZWQgPSBvcmRlckJ5KFxuICAgICAgZGVmaW5pdGlvbnMsXG4gICAgICBbJ2lzT3B0aW9uYWwnLCAnbmFtZSddLFxuICAgICAgWydhc2MnLCAnYXNjJ11cbiAgICApO1xuXG4gICAgLy8gQWRkIGFueSBpbmRleCBzaWduYXR1cmVzLCBlLmcuIGBbXzogc3RyaW5nXTogYW55YFxuICAgIGlmIChlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBlbnRyeS5pbmRleFNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6IHRydWUsXG4gICAgICAgIG5hbWU6IGluZGV4U2lnbmF0dXJlLm5hbWUsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICBpbmRleFNpZ25hdHVyZTogdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGluZGV4U2lnbmF0dXJlLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG4gICAgICBzb3J0ZWQucHVzaChkZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnVtZXJhdGlvbk1lbWJlcnMoZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NFbnVtZXJhdGlvbk1lbWJlckRlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgbmFtZTogY2hpbGQubmFtZVxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG4gICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVEZWZpbml0aW9uKGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZCk6IFNreURvY3NUeXBlRGVmaW5pdGlvbiB7XG4gICAgbGV0IGRlZmluaXRpb246IFNreURvY3NUeXBlRGVmaW5pdGlvbjtcblxuICAgIGNvbnN0IGtpbmRTdHJpbmcgPSBjaGlsZC5raW5kU3RyaW5nO1xuICAgIHN3aXRjaCAoa2luZFN0cmluZykge1xuICAgICAgY2FzZSAnQWNjZXNzb3InOlxuICAgICAgICBpZiAoY2hpbGQuc2V0U2lnbmF0dXJlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2hpbGQuc2V0U2lnbmF0dXJlWzBdLnBhcmFtZXRlcnNbMF0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkLmdldFNpZ25hdHVyZVswXSk7XG5cbiAgICAgIGNhc2UgJ01ldGhvZCc6XG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgY2FsbFNpZ25hdHVyZTogdGhpcy5nZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihjaGlsZC5zaWduYXR1cmVzWzBdLCB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpKSxcbiAgICAgICAgICBuYW1lOiBjaGlsZC5zaWduYXR1cmVzWzBdLm5hbWVcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGV0IG5hbWU6IHN0cmluZyA9IGNoaWxkLnR5cGUubmFtZSB8fCBjaGlsZC50eXBlLmVsZW1lbnRUeXBlPy5uYW1lIHx8IGNoaWxkLnR5cGUudmFsdWU7XG5cbiAgICAgICAgZGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICB0eXBlOiBjaGlsZC50eXBlLnR5cGVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IG5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbmlvbj9cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZXMpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLnVuaW9uVHlwZXMgPSBjaGlsZC50eXBlLnR5cGVzLm1hcCh0ID0+IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0IH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbnZlcnQgcmVmbGVjdGlvbiB0eXBlcy5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZSA9PT0gJ3JlZmxlY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgZGVjbGFyYXRpb24gPSBjaGlsZC50eXBlLmRlY2xhcmF0aW9uO1xuICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi5zaWduYXR1cmVzKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24uY2FsbFNpZ25hdHVyZSA9IHRoaXMuZ2V0Q2FsbFNpZ25hdHVyZURlZmluaXRpb24oXG4gICAgICAgICAgICAgICAgZGVjbGFyYXRpb24uc2lnbmF0dXJlc1swXSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4U2lnbmF0dXJlID0gZGVjbGFyYXRpb24uaW5kZXhTaWduYXR1cmU7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24uaW5kZXhTaWduYXR1cmUgPSB0aGlzLmdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihpbmRleFNpZ25hdHVyZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGRlZmluaXRpb24udHlwZUxpdGVyYWwgPSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKHtcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWNsYXJhdGlvbi5jaGlsZHJlblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQudHlwZS50eXBlID09PSAndHlwZU9wZXJhdG9yJykge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGAke2NoaWxkLnR5cGUub3BlcmF0b3J9ICR7Y2hpbGQudHlwZS50YXJnZXQubmFtZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZUFyZ3VtZW50cykge1xuICAgICAgICAgIGRlZmluaXRpb24udHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMoY2hpbGQudHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmFtZXRlckRlZmluaXRpb25zKFxuICAgIGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsXG4gICAgcGFyZW50VGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghY2FsbFNpZ25hdHVyZS5wYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1ldGVyczogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb25bXSA9IGNhbGxTaWduYXR1cmUucGFyYW1ldGVycy5tYXAocCA9PiB7XG4gICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRQYXJhbWV0ZXJDb21tZW50VGFncyhwLCBwYXJlbnRUYWdzKTtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKHAsIHRhZ3MpO1xuICAgICAgY29uc3QgdHlwZUFyZ3VtZW50cyA9IHRoaXMuZ2V0VHlwZUFyZ3VtZW50RGVmaW5pdGlvbnMocC50eXBlKTtcblxuICAgICAgY29uc3QgcGFyYW1ldGVyOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgaXNPcHRpb25hbDogISEoZGVmYXVsdFZhbHVlIHx8ICEhcC5mbGFncz8uaXNPcHRpb25hbCksXG4gICAgICAgIG5hbWU6IHAubmFtZSxcbiAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihwKVxuICAgICAgfTtcblxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBhcmFtZXRlci5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIHBhcmFtZXRlci5kZXNjcmlwdGlvbiA9IHRhZ3MuZGVzY3JpcHRpb247XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBwYXJhbWV0ZXIudHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVBcmd1bWVudERlZmluaXRpb25zKHR5cGVDb25maWc6IFR5cGVEb2NUeXBlKTogU2t5RG9jc1R5cGVEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZUNvbmZpZyB8fCAhdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVDb25maWcudHlwZUFyZ3VtZW50cy5tYXAoKHR5cGVBcmd1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZURlZmluaXRpb24oeyB0eXBlOiB0eXBlQXJndW1lbnQgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKGNhbGxTaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUsIHRhZ3M6IFNreURvY3NDb21tZW50VGFncyk6IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uID0ge1xuICAgICAgcmV0dXJuVHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlKVxuICAgIH07XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5nZXRQYXJhbWV0ZXJEZWZpbml0aW9ucyhjYWxsU2lnbmF0dXJlLCB0YWdzKTtcbiAgICBpZiAocGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24ucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldEluZGV4U2lnbmF0dXJlRGVmaW5pdGlvbihzaWduYXR1cmU6IFR5cGVEb2NTaWduYXR1cmUpOiBTa3lEb2NzSW5kZXhTaWduYXR1cmVEZWZpbml0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiB7XG4gICAgICAgIG5hbWU6IHNpZ25hdHVyZS5wYXJhbWV0ZXJzWzBdLm5hbWUsXG4gICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oc2lnbmF0dXJlLnBhcmFtZXRlcnNbMF0pXG4gICAgICB9LFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihzaWduYXR1cmUpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKHR5cGVQYXJhbWV0ZXJzOiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdKTogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghdHlwZVBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbSA9PiB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgIG5hbWU6IHR5cGVQYXJhbS5uYW1lXG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZVBhcmFtLnR5cGUpIHtcbiAgICAgICAgZGVmaW5pdGlvbi50eXBlID0gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbih7XG4gICAgICAgICAgdHlwZTogdHlwZVBhcmFtLnR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50VGFncyhjb21tZW50OiBUeXBlRG9jQ29tbWVudCk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgbGV0IGNvZGVFeGFtcGxlOiBzdHJpbmc7XG4gICAgbGV0IGNvZGVFeGFtcGxlTGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrdXAnO1xuICAgIGxldCBkZXByZWNhdGlvbldhcm5pbmc6IHN0cmluZztcbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIGxldCBwYXJhbWV0ZXJzOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgfVtdO1xuXG4gICAgY29uc3QgZXh0cmFzOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgICB9ID0ge307XG5cbiAgICBpZiAoY29tbWVudCkge1xuICAgICAgaWYgKGNvbW1lbnQudGFncykge1xuICAgICAgICBjb21tZW50LnRhZ3MuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodGFnLnRhZykge1xuICAgICAgICAgICAgY2FzZSAnZGVwcmVjYXRlZCc6XG4gICAgICAgICAgICAgIGRlcHJlY2F0aW9uV2FybmluZyA9IHRhZy50ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICAgICAgY2FzZSAnZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGFnLnRleHQudHJpbSgpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnZXhhbXBsZSc6XG4gICAgICAgICAgICAgIGNvZGVFeGFtcGxlID0gdGFnLnRleHQudHJpbSgpLnNwbGl0KCdgYGAnKVsxXS50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gY29kZUV4YW1wbGUuc3BsaXQoJ1xcbicpWzBdO1xuICAgICAgICAgICAgICBpZiAobGFuZ3VhZ2UgPT09ICdtYXJrdXAnIHx8IGxhbmd1YWdlID09PSAndHlwZXNjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IGNvZGVFeGFtcGxlLnNsaWNlKGxhbmd1YWdlLmxlbmd0aCkudHJpbSgpO1xuICAgICAgICAgICAgICAgIGNvZGVFeGFtcGxlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAncGFyYW0nOlxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycyB8fCBbXTtcbiAgICAgICAgICAgICAgcGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0YWcucGFyYW0sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRhZy50ZXh0LnRyaW0oKVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGV4dHJhc1t0YWcudGFnXSA9IHRhZy50ZXh0O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBkZXNjcmlwdGlvbiA9IChjb21tZW50LnNob3J0VGV4dCB8fCBjb21tZW50LnRleHQgfHwgJycpLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29kZUV4YW1wbGUsXG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBleHRyYXMsXG4gICAgICBwYXJhbWV0ZXJzXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgZGVzY3JpcHRpb25zIGFyZSBkZXJpdmVkIGZyb20gdGhlIHBhcmVudCdzIChmdW5jdGlvbi9tZXRob2QpIGNvbW1lbnQuXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtZXRlckNvbW1lbnRUYWdzKHBhcmFtZXRlcjogVHlwZURvY1BhcmFtZXRlciwgcGFyZW50VGFnczogU2t5RG9jc0NvbW1lbnRUYWdzKTogU2t5RG9jc0NvbW1lbnRUYWdzIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhwYXJhbWV0ZXIuY29tbWVudCk7XG4gICAgY29uc3QgcGFyYW1UYWdzID0gcGFyZW50VGFncy5wYXJhbWV0ZXJzO1xuICAgIGNvbnN0IHRhZ1BhcmFtID0gKHBhcmFtVGFncykgPyBwYXJhbVRhZ3MuZmluZCgocGFyYW0pID0+IHBhcmFtLm5hbWUgPT09IHBhcmFtZXRlci5uYW1lKSA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghdGFnUGFyYW0gfHwgIXRhZ1BhcmFtLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGFncztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGFncyxcbiAgICAgIC4uLntcbiAgICAgICAgZGVzY3JpcHRpb246IHRhZ1BhcmFtLmRlc2NyaXB0aW9uXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGNvbW1lbnQgdGFnIChlLmcuIGBAcGFyYW1gKSB2YWx1ZXMgdG8gdGhlIHByb3ZpZGVkIGRlZmluaXRpb24sIGlmIHRoZSB2YWx1ZSBpcyBkZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseUNvbW1lbnRUYWdWYWx1ZXMoXG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgY29kZUV4YW1wbGU/OiBzdHJpbmc7XG4gICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlPzogc3RyaW5nO1xuICAgICAgZGVwcmVjYXRpb25XYXJuaW5nPzogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfSxcbiAgICB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3NcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRhZ3MuY29kZUV4YW1wbGUpIHtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGUgPSB0YWdzLmNvZGVFeGFtcGxlO1xuICAgICAgZGVmaW5pdGlvbi5jb2RlRXhhbXBsZUxhbmd1YWdlID0gdGFncy5jb2RlRXhhbXBsZUxhbmd1YWdlO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlcHJlY2F0aW9uV2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbml0aW9uLmRlcHJlY2F0aW9uV2FybmluZyA9IHRhZ3MuZGVwcmVjYXRpb25XYXJuaW5nO1xuICAgIH1cblxuICAgIGlmICh0YWdzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZWZpbml0aW9uLmRlc2NyaXB0aW9uID0gdGFncy5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlY29yYXRvcihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uIHtcbiAgICBjb25zdCBuYW1lID0gY2hpbGQuZGVjb3JhdG9ycyAmJiBjaGlsZC5kZWNvcmF0b3JzWzBdICYmIGNoaWxkLmRlY29yYXRvcnNbMF0ubmFtZTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuIHsgbmFtZSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5OiBUeXBlRG9jRW50cnlDaGlsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9ycyA9IHByb3BlcnR5LmRlY29yYXRvcnMgJiYgcHJvcGVydHkuZGVjb3JhdG9yc1swXTtcbiAgICAvLyBVc2UgdGhlIElucHV0J3MgYm91bmQgcHJvcGVydHkgbmFtZSwgaWYgZm91bmQuXG4gICAgLy8gZS5nLiBASW5wdXQoJ2Zvb2JhcicpXG4gICAgcmV0dXJuIChkZWNvcmF0b3JzPy5hcmd1bWVudHM/LmJpbmRpbmdQcm9wZXJ0eU5hbWUpXG4gICAgICA/IGRlY29yYXRvcnMuYXJndW1lbnRzLmJpbmRpbmdQcm9wZXJ0eU5hbWUucmVwbGFjZSgvKFxcJ3xcXFwiKS9nLCAnJylcbiAgICAgIDogcHJvcGVydHkubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFZhbHVlKGNoaWxkOiBUeXBlRG9jRW50cnlDaGlsZCwgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGFncy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiB0YWdzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBUeXBlRG9jIHZlcnNpb24gMC4yMC54IHN0b3BwZWQgYXV0by1nZW5lcmF0aW5nIGluaXRpYWxpemVycyBmb3IgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICAvLyAoYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBcIi4uLlwiKSBkdWUgdG8gdGhlIGNvbXBsaWNhdGVkIGxvZ2ljIGl0IHJlcXVpcmVkLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL1R5cGVTdHJvbmcvdHlwZWRvYy9pc3N1ZXMvMTU1MlxuICAgIGlmIChjaGlsZC5kZWZhdWx0VmFsdWUgPT09ICcuLi4nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkLmRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5jaG9ySWQoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVudHJ5LmFuY2hvcklkIHx8IHRoaXMudHlwZURlZmluaXRpb25zUHJvdmlkZXI/LmFuY2hvcklkc1tlbnRyeS5uYW1lXSB8fCAnJztcbiAgfVxuXG59XG4iXX0=
466
+ }
467
+ SkyDocsTypeDocAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDocAdapterService, deps: [{ token: i1.SkyDocsTypeDefinitionsProvider, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
468
+ SkyDocsTypeDocAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDocAdapterService, providedIn: 'any' });
469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyDocsTypeDocAdapterService, decorators: [{
470
+ type: Injectable,
471
+ args: [{
472
+ providedIn: 'any'
473
+ }]
474
+ }], ctorParameters: function () { return [{ type: i1.SkyDocsTypeDefinitionsProvider, decorators: [{
475
+ type: Optional
476
+ }] }]; } });
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFvRnZCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQ3NCLHVCQUF3RDtRQUF4RCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWlDO0lBQzFFLENBQUM7SUFFRSxpQkFBaUIsQ0FBQyxLQUFtQjtRQUMxQyxNQUFNLFVBQVUsR0FBMkI7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM5QjtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckIsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDcEM7UUFFRCxPQUFPLFVBQVUs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O1FBRUQsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzVCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBbUI7O1FBQ3JDLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSSxNQUFBLElBQUksQ0FBQyx1QkFBdUIsMENBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQSxJQUFJLEVBQUUsQ0FBQztJQUNyRixDQUFDOzswSEFobEJVLDRCQUE0Qjs4SEFBNUIsNEJBQTRCLGNBRjNCLEtBQUs7NEZBRU4sNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBSUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb25cbn0gZnJvbSAnLi9jYWxsLXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NsYXNzRGVmaW5pdGlvblxufSBmcm9tICcuL2NsYXNzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25cbn0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NvbW1lbnRUYWdzXG59IGZyb20gJy4vY29tbWVudC10YWdzJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb25cbn0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb25cbn0gZnJvbSAnLi9lbnVtZXJhdGlvbi1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvblxufSBmcm9tICcuL2VudW1lcmF0aW9uLW1lbWJlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0luZGV4U2lnbmF0dXJlRGVmaW5pdGlvblxufSBmcm9tICcuL2luZGV4LXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2UtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2UtcHJvcGVydHktZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25cbn0gZnJvbSAnLi9tZXRob2QtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uXG59IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUGlwZURlZmluaXRpb25cbn0gZnJvbSAnLi9waXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uXG59IGZyb20gJy4vcHJvcGVydHktZGVjb3JhdG9yJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLWFsaWFzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXJcbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uXG59IGZyb20gJy4vdHlwZS1wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFR5cGVEb2NDb21tZW50LFxuICBUeXBlRG9jRW50cnksXG4gIFR5cGVEb2NFbnRyeUNoaWxkLFxuICBUeXBlRG9jUGFyYW1ldGVyLFxuICBUeXBlRG9jU2lnbmF0dXJlLFxuICBUeXBlRG9jVHlwZSxcbiAgVHlwZURvY1R5cGVQYXJhbWV0ZXJcbn0gZnJvbSAnLi90eXBlZG9jLXR5cGVzJztcblxuaW1wb3J0IG9yZGVyQnkgZnJvbSAnbG9kYXNoLm9yZGVyYnknO1xuXG4vKipcbiAqIENvbnZlcnRzIFR5cGVEb2MgdHlwZXMgaW50byBTS1kgVVggZG9jcy10b29scyB0eXBlcywgdG8gYmUgc3VwcGxpZWQgdG8gdGhlIHZhcmlvdXMgZGVmaW5pdGlvbnMgY29tcG9uZW50cy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55J1xufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURvY0FkYXB0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPzogU2t5RG9jc1R5cGVEZWZpbml0aW9uc1Byb3ZpZGVyXG4gICkgeyB9XG5cbiAgcHVibGljIHRvQ2xhc3NEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZVxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLmdldENsYXNzTWV0aG9kcyhlbnRyeSk7XG4gICAgaWYgKG1ldGhvZHMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLm1ldGhvZHMgPSBtZXRob2RzO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG4gICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvRGlyZWN0aXZlRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHNlbGVjdG9yOiB0aGlzLmdldFNlbGVjdG9yKGVudHJ5KVxuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldENsYXNzUHJvcGVydGllcyhlbnRyeSk7XG5cbiAgICBjb25zdCBldmVudFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnT3V0cHV0Jyk7XG4gICAgaWYgKGV2ZW50UHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24uZXZlbnRQcm9wZXJ0aWVzID0gZXZlbnRQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5kZWNvcmF0b3I/Lm5hbWUgPT09ICdJbnB1dCcpO1xuICAgIGlmIChpbnB1dFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLmlucHV0UHJvcGVydGllcyA9IGlucHV0UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0VudW1lcmF0aW9uRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMuZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRW51bWVyYXRpb25EZWZpbml0aW9uID0ge1xuICAgICAgYW5jaG9ySWQ6IHRoaXMuZ2V0QW5jaG9ySWQoZW50cnkpLFxuICAgICAgbWVtYmVycyxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWVcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0ludGVyZmFjZURlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NJbnRlcmZhY2VEZWZpbml0aW9uIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRJbnRlcmZhY2VQcm9wZXJ0aWVzKGVudHJ5KTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICBwcm9wZXJ0aWVzXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhlbnRyeS50eXBlUGFyYW1ldGVyKTtcbiAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9QaXBlRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc1BpcGVEZWZpbml0aW9uIHtcbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU1ldGhvZCA9IG1ldGhvZHMuZmluZChtID0+IG0ubmFtZSA9PT0gJ3RyYW5zZm9ybScpO1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NQaXBlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0cmFuc2Zvcm1NZXRob2RcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b1R5cGVBbGlhc0RlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHtcbiAgICAgICAgY29tbWVudDogZW50cnkuY29tbWVudCxcbiAgICAgICAgdHlwZTogZW50cnkudHlwZVxuICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKGVudHJ5LnR5cGVQYXJhbWV0ZXIpO1xuICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIGRlZmluaXRpb24udHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IoZW50cnk6IFR5cGVEb2NFbnRyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjb3JhdG9yU291cmNlID0gZW50cnkuZGVjb3JhdG9yc1swXS5hcmd1bWVudHMub2JqO1xuICAgIHJldHVybiAoZGVjb3JhdG9yU291cmNlLmluZGV4T2YoJ3NlbGVjdG9yOiBgJykgPiAtMSlcbiAgICAgID8gZGVjb3JhdG9yU291cmNlLnNwbGl0KCdzZWxlY3RvcjogYCcpWzFdLnNwbGl0KCdgJylbMF0ucmVwbGFjZSgvXFxzXFxzKy9nLCAnICcpXG4gICAgICA6IGRlY29yYXRvclNvdXJjZS5zcGxpdCgnc2VsZWN0b3I6IFxcJycpWzFdLnNwbGl0KCdcXCcnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xhc3NQcm9wZXJ0aWVzKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoY2hpbGQgPT4gY2hpbGQua2luZFN0cmluZyA9PT0gJ1Byb3BlcnR5JyB8fCBjaGlsZC5raW5kU3RyaW5nID09PSAnQWNjZXNzb3InKVxuICAgICAgLm1hcChjaGlsZCA9PiB7XG4gICAgICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgICAgaXNPcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZClcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuXG4gICAgICAgIC8qIEVuc3VyZSB3ZSBhcmUgcHJvcGVybHkgY2FwdHVyaW5nIGRlZmluaXRpb25zIHdoaWNoIHVzZSBhIGdldHRlci9zZXR0ZXIuIEZpbmFsIGNoZWNrIGlzIGEgc2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmIChjaGlsZC5raW5kU3RyaW5nID09PSAnQWNjZXNzb3InICYmICFjaGlsZC5jb21tZW50Py5zaG9ydFRleHQgJiYgY2hpbGQuZ2V0U2lnbmF0dXJlPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgbWFpblRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgICAgIGNvbnN0IGdldFRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmdldFNpZ25hdHVyZVswXS5jb21tZW50KTtcblxuICAgICAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIG1haW5UYWdzKTtcbiAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCBnZXRUYWdzKTtcblxuICAgICAgICAgIGlmIChjaGlsZC5zZXRTaWduYXR1cmU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNldFRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLnNldFNpZ25hdHVyZVswXS5jb21tZW50KTtcblxuICAgICAgICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgc2V0VGFncyk7XG5cbiAgICAgICAgICAgIGRlZmluaXRpb24uaXNPcHRpb25hbCA9ICFzZXRUYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBzZXRUYWdzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVmaW5pdGlvbi5pc09wdGlvbmFsID0gIW1haW5UYWdzLmV4dHJhcy5yZXF1aXJlZDtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCBtYWluVGFncyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoY2hpbGQuY29tbWVudCk7XG5cbiAgICAgICAgICBkZWZpbml0aW9uLmlzT3B0aW9uYWwgPSAhdGFncy5leHRyYXMucmVxdWlyZWQ7XG5cbiAgICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCB0YWdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29yYXRvciA9IHRoaXMuZ2V0RGVjb3JhdG9yKGNoaWxkKTtcbiAgICAgICAgaWYgKGRlY29yYXRvcikge1xuICAgICAgICAgIGRlZmluaXRpb24uZGVjb3JhdG9yID0gZGVjb3JhdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgZGVmaW5pdGlvbnMsXG4gICAgICBbJ2lzT3B0aW9uYWwnLCAnbmFtZSddLFxuICAgICAgWydhc2MnLCAnYXNjJ11cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc01ldGhvZHMoZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZHMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihjaGlsZCA9PiBjaGlsZC5raW5kU3RyaW5nID09PSAnTWV0aG9kJyAmJiAvXm5nLy50ZXN0KGNoaWxkLm5hbWUpID09PSBmYWxzZSlcbiAgICAgIC5tYXAoY2hpbGQgPT4ge1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENvbW1lbnRzIGZvciBtZXRob2RzIGFyZSBzdG9yZWQgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uXG4gICAgICAgIGNvbnN0IGNvbW1lbnQgPSBjaGlsZC5zaWduYXR1cmVzWzBdLmNvbW1lbnQ7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNvbW1lbnQpO1xuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKGNoaWxkLnNpZ25hdHVyZXNbMF0udHlwZVBhcmFtZXRlcik7XG4gICAgICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9yZGVyQnkoXG4gICAgICBtZXRob2RzLFxuICAgICAgWyduYW1lJ10sXG4gICAgICBbJ2FzYyddXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW50ZXJmYWNlUHJvcGVydGllcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuICYmICFlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW4/Lm1hcChjaGlsZCA9PiB7XG4gICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6ICh0YWdzLmV4dHJhcy5yZXF1aXJlZCkgPyBmYWxzZSA6ICEhKGNoaWxkLmZsYWdzPy5pc09wdGlvbmFsKSxcbiAgICAgICAgbmFtZTogdGhpcy5nZXRQcm9wZXJ0eU5hbWUoY2hpbGQpLFxuICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKVxuICAgICAgfTtcblxuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pIHx8IFtdO1xuXG4gICAgY29uc3Qgc29ydGVkID0gb3JkZXJCeShcbiAgICAgIGRlZmluaXRpb25zLFxuICAgICAgWydpc09wdGlvbmFsJywgJ25hbWUnXSxcbiAgICAgIFsnYXNjJywgJ2FzYyddXG4gICAgKTtcblxuICAgIC8vIEFkZCBhbnkgaW5kZXggc2lnbmF0dXJlcywgZS5nLiBgW186IHN0cmluZ106IGFueWBcbiAgICBpZiAoZW50cnkuaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgIGNvbnN0IGluZGV4U2lnbmF0dXJlID0gZW50cnkuaW5kZXhTaWduYXR1cmU7XG4gICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICBpc09wdGlvbmFsOiB0cnVlLFxuICAgICAgICBuYW1lOiBpbmRleFNpZ25hdHVyZS5uYW1lLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgaW5kZXhTaWduYXR1cmU6IHRoaXMuZ2V0SW5kZXhTaWduYXR1cmVEZWZpbml0aW9uKGluZGV4U2lnbmF0dXJlKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhpbmRleFNpZ25hdHVyZS5jb21tZW50KTtcbiAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuICAgICAgc29ydGVkLnB1c2goZGVmaW5pdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvcnRlZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnkuY2hpbGRyZW4ubWFwKGNoaWxkID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NFbnVtZXJhdGlvbk1lbWJlckRlZmluaXRpb24gPSB7XG4gICAgICAgIG5hbWU6IGNoaWxkLm5hbWVcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlRGVmaW5pdGlvbihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzVHlwZURlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbiAgICBjb25zdCBraW5kU3RyaW5nID0gY2hpbGQua2luZFN0cmluZztcbiAgICBzd2l0Y2ggKGtpbmRTdHJpbmcpIHtcbiAgICAgIGNhc2UgJ0FjY2Vzc29yJzpcbiAgICAgICAgaWYgKGNoaWxkLnNldFNpZ25hdHVyZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkLnNldFNpZ25hdHVyZVswXS5wYXJhbWV0ZXJzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZC5nZXRTaWduYXR1cmVbMF0pO1xuXG4gICAgICBjYXNlICdNZXRob2QnOlxuICAgICAgICBkZWZpbml0aW9uID0ge1xuICAgICAgICAgIGNhbGxTaWduYXR1cmU6IHRoaXMuZ2V0Q2FsbFNpZ25hdHVyZURlZmluaXRpb24oY2hpbGQuc2lnbmF0dXJlc1swXSwgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KSksXG4gICAgICAgICAgbmFtZTogY2hpbGQuc2lnbmF0dXJlc1swXS5uYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPSBjaGlsZC50eXBlLm5hbWUgfHwgY2hpbGQudHlwZS5lbGVtZW50VHlwZT8ubmFtZSB8fCBjaGlsZC50eXBlLnZhbHVlO1xuXG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgdHlwZTogY2hpbGQudHlwZS50eXBlXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAodCA9PiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID0gdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpO1xuICAgICAgICAgICAgfSBlbHNlIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovIGlmIChkZWNsYXJhdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLnR5cGVMaXRlcmFsID0ge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXMuZ2V0SW50ZXJmYWNlUHJvcGVydGllcyh7XG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogZGVjbGFyYXRpb24uY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZSA9PT0gJ3R5cGVPcGVyYXRvcicpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBgJHtjaGlsZC50eXBlLm9wZXJhdG9yfSAke2NoaWxkLnR5cGUudGFyZ2V0Lm5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVBcmd1bWVudHMpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLnR5cGVBcmd1bWVudHMgPSB0aGlzLmdldFR5cGVBcmd1bWVudERlZmluaXRpb25zKGNoaWxkLnR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICBjYWxsU2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlLFxuICAgIHBhcmVudFRhZ3M6IFNreURvY3NDb21tZW50VGFnc1xuICApOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWNhbGxTaWduYXR1cmUucGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uW10gPSBjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMubWFwKHAgPT4ge1xuICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShwLCB0YWdzKTtcbiAgICAgIGNvbnN0IHR5cGVBcmd1bWVudHMgPSB0aGlzLmdldFR5cGVBcmd1bWVudERlZmluaXRpb25zKHAudHlwZSk7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6ICEhKGRlZmF1bHRWYWx1ZSB8fCAhIXAuZmxhZ3M/LmlzT3B0aW9uYWwpLFxuICAgICAgICBuYW1lOiBwLm5hbWUsXG4gICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocClcbiAgICAgIH07XG5cbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwYXJhbWV0ZXIuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFncy5kZXNjcmlwdGlvbikge1xuICAgICAgICBwYXJhbWV0ZXIuZGVzY3JpcHRpb24gPSB0YWdzLmRlc2NyaXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgcGFyYW1ldGVyLnR5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyh0eXBlQ29uZmlnOiBUeXBlRG9jVHlwZSk6IFNreURvY3NUeXBlRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIXR5cGVDb25maWcgfHwgIXR5cGVDb25maWcudHlwZUFyZ3VtZW50cykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlQ29uZmlnLnR5cGVBcmd1bWVudHMubWFwKCh0eXBlQXJndW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdHlwZUFyZ3VtZW50IH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlLCB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3MpOiBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiA9IHtcbiAgICAgIHJldHVyblR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2FsbFNpZ25hdHVyZSlcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlKTogU2t5RG9jc0luZGV4U2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleToge1xuICAgICAgICBuYW1lOiBzaWduYXR1cmUucGFyYW1ldGVyc1swXS5uYW1lLFxuICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHNpZ25hdHVyZS5wYXJhbWV0ZXJzWzBdKVxuICAgICAgfSxcbiAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oc2lnbmF0dXJlKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyh0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXSk6IFNreURvY3NUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIXR5cGVQYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW0gPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZVxuICAgICAgfTtcblxuICAgICAgaWYgKHR5cGVQYXJhbS50eXBlKSB7XG4gICAgICAgIGRlZmluaXRpb24udHlwZSA9IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oe1xuICAgICAgICAgIHR5cGU6IHR5cGVQYXJhbS50eXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tbWVudFRhZ3MoY29tbWVudDogVHlwZURvY0NvbW1lbnQpOiBTa3lEb2NzQ29tbWVudFRhZ3Mge1xuICAgIGxldCBjb2RlRXhhbXBsZTogc3RyaW5nO1xuICAgIGxldCBjb2RlRXhhbXBsZUxhbmd1YWdlOiBzdHJpbmcgPSAnbWFya3VwJztcbiAgICBsZXQgZGVwcmVjYXRpb25XYXJuaW5nOiBzdHJpbmc7XG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIGxldCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XG5cbiAgICBsZXQgcGFyYW1ldGVyczoge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSA9IHt9O1xuXG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgIGlmIChjb21tZW50LnRhZ3MpIHtcbiAgICAgICAgY29tbWVudC50YWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRhZy50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RlcHJlY2F0ZWQnOlxuICAgICAgICAgICAgICBkZXByZWNhdGlvbldhcm5pbmcgPSB0YWcudGV4dC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICAgIGNhc2UgJ2RlZmF1bHRWYWx1ZSc6XG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRhZy50ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2V4YW1wbGUnOlxuICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IHRhZy50ZXh0LnRyaW0oKS5zcGxpdCgnYGBgJylbMV0udHJpbSgpO1xuICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IGNvZGVFeGFtcGxlLnNwbGl0KCdcXG4nKVswXTtcbiAgICAgICAgICAgICAgaWYgKGxhbmd1YWdlID09PSAnbWFya3VwJyB8fCBsYW5ndWFnZSA9PT0gJ3R5cGVzY3JpcHQnKSB7XG4gICAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSBjb2RlRXhhbXBsZS5zbGljZShsYW5ndWFnZS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3BhcmFtJzpcbiAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwgW107XG4gICAgICAgICAgICAgIHBhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogdGFnLnBhcmFtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0YWcudGV4dC50cmltKClcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBleHRyYXNbdGFnLnRhZ10gPSB0YWcudGV4dDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZGVzY3JpcHRpb24gPSAoY29tbWVudC5zaG9ydFRleHQgfHwgY29tbWVudC50ZXh0IHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGVFeGFtcGxlLFxuICAgICAgY29kZUV4YW1wbGVMYW5ndWFnZSxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIGRlcHJlY2F0aW9uV2FybmluZyxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgZXh0cmFzLFxuICAgICAgcGFyYW1ldGVyc1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUGFyYW1ldGVyIGRlc2NyaXB0aW9ucyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwYXJlbnQncyAoZnVuY3Rpb24vbWV0aG9kKSBjb21tZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJDb21tZW50VGFncyhwYXJhbWV0ZXI6IFR5cGVEb2NQYXJhbWV0ZXIsIHBhcmVudFRhZ3M6IFNreURvY3NDb21tZW50VGFncyk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MocGFyYW1ldGVyLmNvbW1lbnQpO1xuICAgIGNvbnN0IHBhcmFtVGFncyA9IHBhcmVudFRhZ3MucGFyYW1ldGVycztcbiAgICBjb25zdCB0YWdQYXJhbSA9IChwYXJhbVRhZ3MpID8gcGFyYW1UYWdzLmZpbmQoKHBhcmFtKSA9PiBwYXJhbS5uYW1lID09PSBwYXJhbWV0ZXIubmFtZSkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRhZ1BhcmFtIHx8ICF0YWdQYXJhbS5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRhZ3MsXG4gICAgICAuLi57XG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YWdQYXJhbS5kZXNjcmlwdGlvblxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBjb21tZW50IHRhZyAoZS5nLiBgQHBhcmFtYCkgdmFsdWVzIHRvIHRoZSBwcm92aWRlZCBkZWZpbml0aW9uLCBpZiB0aGUgdmFsdWUgaXMgZGVmaW5lZC5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlDb21tZW50VGFnVmFsdWVzKFxuICAgIGRlZmluaXRpb246IHtcbiAgICAgIGNvZGVFeGFtcGxlPzogc3RyaW5nO1xuICAgICAgY29kZUV4YW1wbGVMYW5ndWFnZT86IHN0cmluZztcbiAgICAgIGRlcHJlY2F0aW9uV2FybmluZz86IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIH0sXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IHZvaWQge1xuICAgIGlmICh0YWdzLmNvZGVFeGFtcGxlKSB7XG4gICAgICBkZWZpbml0aW9uLmNvZGVFeGFtcGxlID0gdGFncy5jb2RlRXhhbXBsZTtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGVMYW5ndWFnZSA9IHRhZ3MuY29kZUV4YW1wbGVMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBpZiAodGFncy5kZXByZWNhdGlvbldhcm5pbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5pdGlvbi5kZXByZWNhdGlvbldhcm5pbmcgPSB0YWdzLmRlcHJlY2F0aW9uV2FybmluZztcbiAgICB9XG5cbiAgICBpZiAodGFncy5kZXNjcmlwdGlvbikge1xuICAgICAgZGVmaW5pdGlvbi5kZXNjcmlwdGlvbiA9IHRhZ3MuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWNvcmF0b3IoY2hpbGQ6IFR5cGVEb2NFbnRyeUNoaWxkKTogU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbmFtZSA9IGNoaWxkLmRlY29yYXRvcnMgJiYgY2hpbGQuZGVjb3JhdG9yc1swXSAmJiBjaGlsZC5kZWNvcmF0b3JzWzBdLm5hbWU7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiB7IG5hbWUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eTogVHlwZURvY0VudHJ5Q2hpbGQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSBwcm9wZXJ0eS5kZWNvcmF0b3JzICYmIHByb3BlcnR5LmRlY29yYXRvcnNbMF07XG4gICAgLy8gVXNlIHRoZSBJbnB1dCdzIGJvdW5kIHByb3BlcnR5IG5hbWUsIGlmIGZvdW5kLlxuICAgIC8vIGUuZy4gQElucHV0KCdmb29iYXInKVxuICAgIHJldHVybiAoZGVjb3JhdG9ycz8uYXJndW1lbnRzPy5iaW5kaW5nUHJvcGVydHlOYW1lKVxuICAgICAgPyBkZWNvcmF0b3JzLmFyZ3VtZW50cy5iaW5kaW5nUHJvcGVydHlOYW1lLnJlcGxhY2UoLyhcXCd8XFxcIikvZywgJycpXG4gICAgICA6IHByb3BlcnR5Lm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZShjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQsIHRhZ3M6IFNreURvY3NDb21tZW50VGFncyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRhZ3MuZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGFncy5kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHlwZURvYyB2ZXJzaW9uIDAuMjAueCBzdG9wcGVkIGF1dG8tZ2VuZXJhdGluZyBpbml0aWFsaXplcnMgZm9yIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAgLy8gKGFuZCByZXBsYWNlZCB0aGVtIHdpdGggXCIuLi5cIikgZHVlIHRvIHRoZSBjb21wbGljYXRlZCBsb2dpYyBpdCByZXF1aXJlZC5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UeXBlU3Ryb25nL3R5cGVkb2MvaXNzdWVzLzE1NTJcbiAgICBpZiAoY2hpbGQuZGVmYXVsdFZhbHVlID09PSAnLi4uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZC5kZWZhdWx0VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldEFuY2hvcklkKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbnRyeS5hbmNob3JJZCB8fCB0aGlzLnR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPy5hbmNob3JJZHNbZW50cnkubmFtZV0gfHwgJyc7XG4gIH1cblxufVxuIl19
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9kb2NzLXRvb2xzLyIsInNvdXJjZXMiOlsibW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGVkb2MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0NvbW1lbnQge1xuXG4gIHNob3J0VGV4dD86IHN0cmluZztcblxuICB0YWdzPzoge1xuICAgIHBhcmFtPzogc3RyaW5nO1xuICAgIHRhZzogJ2RlZmF1bHQnIHwgJ2RlZmF1bHRWYWx1ZScgfCAnZGVwcmVjYXRlZCcgfCAnZXhhbXBsZScgfCAncGFyYW0nIHwgJ3JlcXVpcmVkJztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gIH1bXTtcblxuICB0ZXh0Pzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1NvdXJjZSB7XG5cbiAgZmlsZU5hbWU6IHN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NTaWduYXR1cmUge1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBraW5kU3RyaW5nPzogJ0NhbGwgc2lnbmF0dXJlJyB8ICdJbmRleCBzaWduYXR1cmUnO1xuXG4gIG5hbWU6IHN0cmluZztcblxuICBwYXJhbWV0ZXJzPzogVHlwZURvY1BhcmFtZXRlcltdO1xuXG4gIHR5cGU6IFR5cGVEb2NUeXBlO1xuXG4gIHR5cGVQYXJhbWV0ZXI/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGVQYXJhbWV0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIGtpbmRTdHJpbmc6ICdUeXBlIHBhcmFtZXRlcic7XG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jVHlwZSB7XG5cbiAgY29uc3RyYWludD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgZGVjbGFyYXRpb24/OiB7XG4gICAgY2hpbGRyZW4/OiBUeXBlRG9jRW50cnlDaGlsZFtdO1xuICAgIGluZGV4U2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZTtcbiAgICBzaWduYXR1cmVzPzogVHlwZURvY1NpZ25hdHVyZVtdO1xuICB9O1xuXG4gIGVsZW1lbnRUeXBlPzogVHlwZURvY1R5cGU7XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBvcGVyYXRvcj86ICdrZXlvZic7XG5cbiAgdGFyZ2V0Pzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcblxuICB0eXBlPzogJ2FycmF5JyB8ICdpbnRyaW5zaWMnIHwgJ3JlZmVyZW5jZScgfCAncmVmbGVjdGlvbicgfCAnc3RyaW5nTGl0ZXJhbCcgfCAndHlwZVBhcmFtZXRlcicgfCAndHlwZU9wZXJhdG9yJyB8ICd1bmlvbicgfCAndW5rbm93bic7XG5cbiAgdHlwZUFyZ3VtZW50cz86IFR5cGVEb2NUeXBlW107XG5cbiAgdHlwZXM/OiBUeXBlRG9jVHlwZVtdO1xuXG4gIHZhbHVlPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1BhcmFtZXRlciB7XG5cbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBraW5kU3RyaW5nOiAnUGFyYW1ldGVyJztcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgdHlwZTogVHlwZURvY1R5cGU7XG5cbiAgZmxhZ3M/OiB7XG4gICAgaXNPcHRpb25hbD86IGJvb2xlYW47XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jRW50cnlDaGlsZCB7XG5cbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgYmluZGluZ1Byb3BlcnR5TmFtZT86IHN0cmluZztcbiAgICB9O1xuICAgIG5hbWU6ICdJbnB1dCcgfCAnT3V0cHV0JztcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICBmbGFncz86IHtcbiAgICBpc09wdGlvbmFsPzogYm9vbGVhbjtcbiAgfTtcblxuICBraW5kU3RyaW5nPzogJ0FjY2Vzc29yJyB8ICdDYWxsIHNpZ25hdHVyZScgfCAnSW5kZXggc2lnbmF0dXJlJyB8ICdFbnVtZXJhdGlvbiBtZW1iZXInIHwgJ1BhcmFtZXRlcicgfCAnUHJvcGVydHknIHwgJ01ldGhvZCc7XG5cbiAgZ2V0U2lnbmF0dXJlPzoge1xuICAgIGNvbW1lbnQ6IFR5cGVEb2NDb21tZW50O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgc2V0U2lnbmF0dXJlPzoge1xuICAgIGNvbW1lbnQ6IFR5cGVEb2NDb21tZW50O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzPzogVHlwZURvY1BhcmFtZXRlcltdO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAgc2lnbmF0dXJlcz86IFR5cGVEb2NTaWduYXR1cmVbXTtcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jRW50cnkge1xuXG4gIGFuY2hvcklkPzogc3RyaW5nO1xuXG4gIGNoaWxkcmVuPzogVHlwZURvY0VudHJ5Q2hpbGRbXTtcblxuICBjb21tZW50PzogVHlwZURvY0NvbW1lbnQ7XG5cbiAgZGVjb3JhdG9ycz86IHtcbiAgICBhcmd1bWVudHM/OiB7XG4gICAgICBvYmo/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBuYW1lOiAnQ29tcG9uZW50JyB8ICdEaXJlY3RpdmUnIHwgJ0luamVjdGFibGUnIHwgJ05nTW9kdWxlJyB8ICdQaXBlJztcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIGtpbmRTdHJpbmc/OiAnQ2xhc3MnIHwgJ0VudW1lcmF0aW9uJyB8ICdJbnRlcmZhY2UnIHwgJ1R5cGUgYWxpYXMnO1xuXG4gIGluZGV4U2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIHNvdXJjZXM/OiBUeXBlRG9jU291cmNlW107XG5cbiAgdHlwZT86IFR5cGVEb2NUeXBlO1xuXG4gIHR5cGVQYXJhbWV0ZXI/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xuXG59XG4iXX0=
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NDb21tZW50IHtcblxuICBzaG9ydFRleHQ/OiBzdHJpbmc7XG5cbiAgdGFncz86IHtcbiAgICBwYXJhbT86IHN0cmluZztcbiAgICB0YWc6ICdkZWZhdWx0JyB8ICdkZWZhdWx0VmFsdWUnIHwgJ2RlcHJlY2F0ZWQnIHwgJ2V4YW1wbGUnIHwgJ3BhcmFtJyB8ICdyZXF1aXJlZCc7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9W107XG5cbiAgdGV4dD86IHN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NTb3VyY2Uge1xuXG4gIGZpbGVOYW1lOiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jU2lnbmF0dXJlIHtcblxuICBjb21tZW50PzogVHlwZURvY0NvbW1lbnQ7XG5cbiAga2luZFN0cmluZz86ICdDYWxsIHNpZ25hdHVyZScgfCAnSW5kZXggc2lnbmF0dXJlJztcblxuICBuYW1lOiBzdHJpbmc7XG5cbiAgcGFyYW1ldGVycz86IFR5cGVEb2NQYXJhbWV0ZXJbXTtcblxuICB0eXBlOiBUeXBlRG9jVHlwZTtcblxuICB0eXBlUGFyYW1ldGVyPzogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXTtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NUeXBlUGFyYW1ldGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kU3RyaW5nOiAnVHlwZSBwYXJhbWV0ZXInO1xuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGUge1xuXG4gIGNvbnN0cmFpbnQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIGRlY2xhcmF0aW9uPzoge1xuICAgIGNoaWxkcmVuPzogVHlwZURvY0VudHJ5Q2hpbGRbXTtcbiAgICBpbmRleFNpZ25hdHVyZT86IFR5cGVEb2NTaWduYXR1cmU7XG4gICAgc2lnbmF0dXJlcz86IFR5cGVEb2NTaWduYXR1cmVbXTtcbiAgfTtcblxuICBlbGVtZW50VHlwZT86IFR5cGVEb2NUeXBlO1xuXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgb3BlcmF0b3I/OiAna2V5b2YnO1xuXG4gIHRhcmdldD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgdHlwZT86ICdhcnJheScgfCAnaW50cmluc2ljJyB8ICdyZWZlcmVuY2UnIHwgJ3JlZmxlY3Rpb24nIHwgJ3N0cmluZ0xpdGVyYWwnIHwgJ3R5cGVQYXJhbWV0ZXInIHwgJ3R5cGVPcGVyYXRvcicgfCAndW5pb24nIHwgJ3Vua25vd24nO1xuXG4gIHR5cGVBcmd1bWVudHM/OiBUeXBlRG9jVHlwZVtdO1xuXG4gIHR5cGVzPzogVHlwZURvY1R5cGVbXTtcblxuICB2YWx1ZT86IHN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NQYXJhbWV0ZXIge1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAga2luZFN0cmluZzogJ1BhcmFtZXRlcic7XG5cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHR5cGU6IFR5cGVEb2NUeXBlO1xuXG4gIGZsYWdzPzoge1xuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICB9O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0VudHJ5Q2hpbGQge1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBkZWNvcmF0b3JzPzoge1xuICAgIGFyZ3VtZW50cz86IHtcbiAgICAgIGJpbmRpbmdQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBuYW1lOiAnSW5wdXQnIHwgJ091dHB1dCc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgZmxhZ3M/OiB7XG4gICAgaXNPcHRpb25hbD86IGJvb2xlYW47XG4gIH07XG5cbiAga2luZFN0cmluZz86ICdBY2Nlc3NvcicgfCAnQ2FsbCBzaWduYXR1cmUnIHwgJ0luZGV4IHNpZ25hdHVyZScgfCAnRW51bWVyYXRpb24gbWVtYmVyJyB8ICdQYXJhbWV0ZXInIHwgJ1Byb3BlcnR5JyB8ICdNZXRob2QnO1xuXG4gIGdldFNpZ25hdHVyZT86IHtcbiAgICBjb21tZW50OiBUeXBlRG9jQ29tbWVudDtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIHNldFNpZ25hdHVyZT86IHtcbiAgICBjb21tZW50OiBUeXBlRG9jQ29tbWVudDtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGFyYW1ldGVycz86IFR5cGVEb2NQYXJhbWV0ZXJbXTtcbiAgICB0eXBlOiBUeXBlRG9jVHlwZTtcbiAgfVtdO1xuXG4gIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG5cbiAgc291cmNlcz86IFR5cGVEb2NTb3VyY2VbXTtcblxuICB0eXBlPzogVHlwZURvY1R5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0VudHJ5IHtcblxuICBhbmNob3JJZD86IHN0cmluZztcblxuICBjaGlsZHJlbj86IFR5cGVEb2NFbnRyeUNoaWxkW107XG5cbiAgY29tbWVudD86IFR5cGVEb2NDb21tZW50O1xuXG4gIGRlY29yYXRvcnM/OiB7XG4gICAgYXJndW1lbnRzPzoge1xuICAgICAgb2JqPzogc3RyaW5nO1xuICAgIH07XG4gICAgbmFtZTogJ0NvbXBvbmVudCcgfCAnRGlyZWN0aXZlJyB8ICdJbmplY3RhYmxlJyB8ICdOZ01vZHVsZScgfCAnUGlwZSc7XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBraW5kU3RyaW5nPzogJ0NsYXNzJyB8ICdFbnVtZXJhdGlvbicgfCAnSW50ZXJmYWNlJyB8ICdUeXBlIGFsaWFzJztcblxuICBpbmRleFNpZ25hdHVyZT86IFR5cGVEb2NTaWduYXR1cmU7XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICB0eXBlUGFyYW1ldGVyPzogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXTtcblxufVxuIl19