@vendure/admin-ui 2.1.0-next.2 → 2.1.0-next.3

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 (255) hide show
  1. package/catalog/components/collection-detail/collection-detail.component.d.ts +3 -1
  2. package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +6 -4
  3. package/catalog/components/facet-detail/facet-detail.component.d.ts +3 -1
  4. package/catalog/components/product-detail/product-detail.component.d.ts +3 -1
  5. package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
  6. package/core/common/base-detail.component.d.ts +11 -1
  7. package/core/common/component-registry-types.d.ts +2 -1
  8. package/core/common/utilities/custom-field-default-value.d.ts +6 -0
  9. package/core/common/version.d.ts +1 -1
  10. package/core/components/app-shell/app-shell.component.d.ts +2 -0
  11. package/core/extension/add-action-bar-item.d.ts +28 -0
  12. package/core/extension/add-nav-menu-item.d.ts +60 -0
  13. package/core/extension/components/angular-route.component.d.ts +6 -0
  14. package/core/extension/components/route.component.d.ts +13 -0
  15. package/core/extension/providers/page-metadata.service.d.ts +9 -0
  16. package/core/{providers/bulk-action-registry → extension}/register-bulk-action.d.ts +1 -1
  17. package/core/extension/register-custom-detail-component.d.ts +10 -0
  18. package/core/{providers/dashboard-widget → extension}/register-dashboard-widget.d.ts +5 -1
  19. package/core/extension/register-data-table-component.d.ts +44 -0
  20. package/core/extension/register-form-input-component.d.ts +50 -0
  21. package/core/extension/register-history-entry-component.d.ts +11 -0
  22. package/core/extension/register-route-component.d.ts +59 -0
  23. package/core/extension/types.d.ts +11 -0
  24. package/core/providers/component-registry/component-registry.service.d.ts +6 -3
  25. package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +2 -1
  26. package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -9
  27. package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +1 -10
  28. package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +17 -1
  29. package/core/providers/modal/modal.service.d.ts +1 -3
  30. package/core/providers/nav-builder/nav-builder.service.d.ts +0 -85
  31. package/core/public_api.d.ts +16 -3
  32. package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +3 -3
  33. package/core/shared/components/data-table-2/data-table-column.component.d.ts +2 -2
  34. package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
  35. package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +0 -1
  36. package/core/shared/components/data-table-2/data-table2.component.d.ts +9 -2
  37. package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +2 -3
  38. package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +13 -4
  39. package/core/shared/dynamic-form-inputs/{register-dynamic-input-components.d.ts → default-form-inputs.d.ts} +1 -50
  40. package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +3 -3
  41. package/core/shared/shared.module.d.ts +25 -25
  42. package/customer/components/customer-detail/customer-detail.component.d.ts +3 -1
  43. package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +3 -1
  44. package/customer/components/customer-history/customer-history-entry-host.component.d.ts +2 -3
  45. package/customer/components/customer-list/customer-list.component.d.ts +1 -0
  46. package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +1 -3
  47. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
  48. package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +3 -3
  49. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +3 -3
  50. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +3 -3
  51. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
  52. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +8 -5
  53. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
  54. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +3 -3
  55. package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +3 -3
  56. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
  57. package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
  58. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +3 -3
  59. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +3 -3
  60. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +3 -3
  61. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +3 -3
  62. package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
  63. package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +3 -3
  64. package/esm2022/core/common/base-detail.component.mjs +9 -7
  65. package/esm2022/core/common/component-registry-types.mjs +1 -1
  66. package/esm2022/core/common/generated-types.mjs +1 -1
  67. package/esm2022/core/common/utilities/create-updated-translatable.mjs +5 -23
  68. package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
  69. package/esm2022/core/common/version.mjs +2 -2
  70. package/esm2022/core/components/app-shell/app-shell.component.mjs +16 -10
  71. package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
  72. package/esm2022/core/components/main-nav/main-nav.component.mjs +3 -3
  73. package/esm2022/core/components/settings-nav/settings-nav.component.mjs +1 -1
  74. package/esm2022/core/core.module.mjs +2 -2
  75. package/esm2022/core/extension/add-action-bar-item.mjs +38 -0
  76. package/esm2022/core/extension/add-nav-menu-item.mjs +79 -0
  77. package/esm2022/core/extension/components/angular-route.component.mjs +22 -0
  78. package/esm2022/core/extension/components/route.component.mjs +59 -0
  79. package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
  80. package/esm2022/core/extension/register-bulk-action.mjs +63 -0
  81. package/esm2022/core/extension/register-custom-detail-component.mjs +20 -0
  82. package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
  83. package/esm2022/core/extension/register-data-table-component.mjs +50 -0
  84. package/esm2022/core/extension/register-form-input-component.mjs +60 -0
  85. package/esm2022/core/extension/register-history-entry-component.mjs +21 -0
  86. package/esm2022/core/extension/register-route-component.mjs +44 -0
  87. package/esm2022/core/extension/types.mjs +2 -0
  88. package/esm2022/core/providers/component-registry/component-registry.service.mjs +3 -3
  89. package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +1 -1
  90. package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +2 -19
  91. package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +2 -20
  92. package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +1 -1
  93. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +1 -8
  94. package/esm2022/core/providers/data-table/data-table-filter.mjs +1 -1
  95. package/esm2022/core/providers/modal/modal.service.mjs +5 -7
  96. package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +2 -113
  97. package/esm2022/core/public_api.mjs +17 -4
  98. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +3 -3
  99. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +3 -3
  100. package/esm2022/core/shared/components/card/card.component.mjs +3 -3
  101. package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
  102. package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +13 -9
  103. package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +5 -6
  104. package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
  105. package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +2 -4
  106. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +23 -10
  107. package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +3 -3
  108. package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +2 -2
  109. package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +3 -3
  110. package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
  111. package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +3 -3
  112. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +6 -4
  113. package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +2 -2
  114. package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +6 -8
  115. package/esm2022/core/shared/components/page-title/page-title.component.mjs +3 -3
  116. package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +2 -2
  117. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
  118. package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +97 -5
  119. package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
  120. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +20 -16
  121. package/esm2022/core/shared/shared.module.mjs +14 -13
  122. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +5 -5
  123. package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
  124. package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -2
  125. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +3 -3
  126. package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
  127. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +5 -7
  128. package/esm2022/customer/components/customer-list/customer-list.component.mjs +10 -7
  129. package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -7
  130. package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +3 -3
  131. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
  132. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +3 -3
  133. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +2 -2
  134. package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
  135. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +7 -9
  136. package/esm2022/order/components/order-list/order-list.component.mjs +3 -3
  137. package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
  138. package/esm2022/react/components/react-custom-column.component.mjs +25 -0
  139. package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
  140. package/esm2022/react/components/react-form-input.component.mjs +24 -0
  141. package/esm2022/react/components/react-route.component.mjs +26 -0
  142. package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
  143. package/esm2022/react/public_api.mjs +19 -0
  144. package/esm2022/react/react-components/Card.mjs +28 -0
  145. package/esm2022/react/react-components/Link.mjs +30 -0
  146. package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
  147. package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
  148. package/esm2022/react/react-hooks/use-injector.mjs +33 -0
  149. package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
  150. package/esm2022/react/react-hooks/use-query.mjs +124 -0
  151. package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
  152. package/esm2022/react/register-react-data-table-component.mjs +62 -0
  153. package/esm2022/react/register-react-form-input-component.mjs +27 -0
  154. package/esm2022/react/register-react-route-component.mjs +25 -0
  155. package/esm2022/react/types.mjs +2 -0
  156. package/esm2022/react/vendure-admin-ui-react.mjs +5 -0
  157. package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
  158. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +3 -3
  159. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +10 -10
  160. package/esm2022/settings/components/channel-list/channel-list.component.mjs +3 -3
  161. package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
  162. package/esm2022/settings/components/country-list/country-list.component.mjs +3 -3
  163. package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
  164. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
  165. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +3 -3
  166. package/esm2022/settings/components/profile/profile.component.mjs +3 -3
  167. package/esm2022/settings/components/role-list/role-list.component.mjs +3 -3
  168. package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
  169. package/esm2022/settings/components/seller-list/seller-list.component.mjs +3 -3
  170. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
  171. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +3 -3
  172. package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
  173. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +3 -3
  174. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
  175. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +3 -3
  176. package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
  177. package/esm2022/settings/components/zone-list/zone-list.component.mjs +3 -3
  178. package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
  179. package/esm2022/settings/settings.routes.mjs +1 -1
  180. package/esm2022/system/components/job-list/job-list.component.mjs +3 -3
  181. package/fesm2022/vendure-admin-ui-catalog.mjs +34 -31
  182. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  183. package/fesm2022/vendure-admin-ui-core.mjs +659 -346
  184. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  185. package/fesm2022/vendure-admin-ui-customer.mjs +19 -18
  186. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  187. package/fesm2022/vendure-admin-ui-dashboard.mjs +5 -8
  188. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  189. package/fesm2022/vendure-admin-ui-marketing.mjs +4 -4
  190. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  191. package/fesm2022/vendure-admin-ui-order.mjs +14 -16
  192. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  193. package/fesm2022/vendure-admin-ui-react.mjs +641 -0
  194. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -0
  195. package/fesm2022/vendure-admin-ui-settings.mjs +41 -41
  196. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  197. package/fesm2022/vendure-admin-ui-system.mjs +2 -2
  198. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  199. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +3 -1
  200. package/order/components/order-detail/order-detail.component.d.ts +3 -1
  201. package/order/components/order-history/order-history-entry-host.component.d.ts +2 -3
  202. package/package.json +21 -13
  203. package/react/components/react-custom-column.component.d.ts +17 -0
  204. package/react/components/react-custom-detail.component.d.ts +24 -0
  205. package/react/components/react-form-input.component.d.ts +20 -0
  206. package/react/components/react-route.component.d.ts +10 -0
  207. package/react/directives/react-component-host.directive.d.ts +23 -0
  208. package/react/index.d.ts +5 -0
  209. package/react/public_api.d.ts +17 -0
  210. package/react/react-components/Card.d.ts +24 -0
  211. package/react/react-components/Link.d.ts +22 -0
  212. package/react/react-hooks/use-detail-component-data.d.ts +32 -0
  213. package/react/react-hooks/use-form-control.d.ts +29 -0
  214. package/react/react-hooks/use-injector.d.ts +24 -0
  215. package/react/react-hooks/use-page-metadata.d.ts +30 -0
  216. package/react/react-hooks/use-query.d.ts +92 -0
  217. package/react/register-react-custom-detail-component.d.ts +38 -0
  218. package/react/register-react-data-table-component.d.ts +81 -0
  219. package/react/register-react-form-input-component.d.ts +9 -0
  220. package/react/register-react-route-component.d.ts +26 -0
  221. package/react/types.d.ts +17 -0
  222. package/settings/components/admin-detail/admin-detail.component.d.ts +3 -1
  223. package/settings/components/channel-detail/channel-detail.component.d.ts +5 -3
  224. package/settings/components/country-detail/country-detail.component.d.ts +3 -1
  225. package/settings/components/global-settings/global-settings.component.d.ts +3 -1
  226. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +3 -1
  227. package/settings/components/profile/profile.component.d.ts +3 -1
  228. package/settings/components/seller-detail/seller-detail.component.d.ts +3 -1
  229. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +3 -1
  230. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +3 -1
  231. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +3 -1
  232. package/settings/components/zone-detail/zone-detail.component.d.ts +3 -1
  233. package/static/i18n-messages/cs.json +789 -789
  234. package/static/i18n-messages/de.json +789 -789
  235. package/static/i18n-messages/en.json +789 -789
  236. package/static/i18n-messages/es.json +789 -789
  237. package/static/i18n-messages/fr.json +789 -789
  238. package/static/i18n-messages/he.json +789 -789
  239. package/static/i18n-messages/it.json +789 -789
  240. package/static/i18n-messages/pl.json +789 -789
  241. package/static/i18n-messages/pt_BR.json +789 -789
  242. package/static/i18n-messages/pt_PT.json +789 -789
  243. package/static/i18n-messages/ru.json +789 -789
  244. package/static/i18n-messages/uk.json +789 -789
  245. package/static/i18n-messages/zh_Hans.json +789 -789
  246. package/static/i18n-messages/zh_Hant.json +789 -789
  247. package/static/styles/_mixins.scss +4 -4
  248. package/static/styles/global/_forms.scss +2 -2
  249. package/static/styles/rtl.scss +1 -1
  250. package/static/styles/theme/dark.scss +1 -16
  251. package/static/styles/theme/default.scss +1 -0
  252. package/static/theme.min.css +1 -1
  253. package/esm2022/core/providers/bulk-action-registry/register-bulk-action.mjs +0 -63
  254. package/esm2022/core/providers/dashboard-widget/register-dashboard-widget.mjs +0 -32
  255. package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +0 -102
@@ -1,5 +1,5 @@
1
1
  import { moveItemInArray } from '@angular/cdk/drag-drop';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, ViewChildren, ViewContainerRef, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, ViewChild, ViewChildren, ViewContainerRef, } from '@angular/core';
3
3
  import { FormArray, NG_VALUE_ACCESSOR, UntypedFormArray, UntypedFormControl, } from '@angular/forms';
4
4
  import { assertNever, notNullOrUndefined } from '@vendure/common/lib/shared-utils';
5
5
  import { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';
@@ -16,38 +16,42 @@ import * as i5 from "@ngx-translate/core";
16
16
  * A host component which delegates to an instance or list of FormInputComponent components.
17
17
  */
18
18
  export class DynamicFormInputComponent {
19
- constructor(componentRegistryService, componentFactoryResolver, changeDetectorRef, injector) {
19
+ constructor(componentRegistryService, changeDetectorRef, injector) {
20
20
  this.componentRegistryService = componentRegistryService;
21
- this.componentFactoryResolver = componentFactoryResolver;
22
21
  this.changeDetectorRef = changeDetectorRef;
23
22
  this.injector = injector;
24
23
  this.renderAsList = false;
25
24
  this.listItems = [];
26
25
  this.listId = 1;
27
26
  this.listFormArray = new FormArray([]);
27
+ this.componentProviders = [];
28
28
  this.renderList$ = new Subject();
29
29
  this.destroy$ = new Subject();
30
30
  }
31
31
  ngOnInit() {
32
32
  const componentId = this.getInputComponentConfig(this.def).component;
33
- const componentType = this.componentRegistryService.getInputComponent(componentId);
34
- if (componentType) {
35
- this.componentType = componentType;
33
+ const component = this.componentRegistryService.getInputComponent(componentId);
34
+ if (component) {
35
+ this.componentType = component.type;
36
+ this.componentProviders = component.providers;
36
37
  }
37
38
  else {
38
39
  // eslint-disable-next-line no-console
39
40
  console.error(`No form input component registered with the id "${componentId}". Using the default input instead.`);
40
41
  const defaultComponentType = this.componentRegistryService.getInputComponent(this.getInputComponentConfig({ ...this.def, ui: undefined }).component);
41
42
  if (defaultComponentType) {
42
- this.componentType = defaultComponentType;
43
+ this.componentType = defaultComponentType.type;
43
44
  }
44
45
  }
45
46
  }
46
47
  ngAfterViewInit() {
47
48
  if (this.componentType) {
48
- const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);
49
+ const injector = Injector.create({
50
+ providers: this.componentProviders,
51
+ parent: this.injector,
52
+ });
49
53
  // create a temp instance to check the value of `isListInput`
50
- const cmpRef = factory.create(this.injector);
54
+ const cmpRef = this.singleViewContainer.createComponent(this.componentType, { injector });
51
55
  const isListInputComponent = cmpRef.instance.isListInput ?? false;
52
56
  cmpRef.destroy();
53
57
  if (this.def.list === false && isListInputComponent) {
@@ -55,7 +59,7 @@ export class DynamicFormInputComponent {
55
59
  }
56
60
  this.renderAsList = this.def.list && !isListInputComponent;
57
61
  if (!this.renderAsList) {
58
- this.singleComponentRef = this.renderInputComponent(factory, this.singleViewContainer, this.control);
62
+ this.singleComponentRef = this.renderInputComponent(injector, this.singleViewContainer, this.control);
59
63
  }
60
64
  else {
61
65
  let formArraySub;
@@ -70,7 +74,7 @@ export class DynamicFormInputComponent {
70
74
  const listItem = this.listItems?.[i];
71
75
  if (listItem) {
72
76
  this.listFormArray.push(listItem.control);
73
- listItem.componentRef = this.renderInputComponent(factory, ref, listItem.control);
77
+ listItem.componentRef = this.renderInputComponent(injector, ref, listItem.control);
74
78
  }
75
79
  });
76
80
  formArraySub = this.listFormArray.valueChanges
@@ -154,8 +158,8 @@ export class DynamicFormInputComponent {
154
158
  this.renderList$.next();
155
159
  }
156
160
  }
157
- renderInputComponent(factory, viewContainerRef, formControl) {
158
- const componentRef = viewContainerRef.createComponent(factory);
161
+ renderInputComponent(injector, viewContainerRef, formControl) {
162
+ const componentRef = viewContainerRef.createComponent(this.componentType, { injector });
159
163
  const { instance } = componentRef;
160
164
  instance.config = simpleDeepClone(this.def);
161
165
  instance.formControl = formControl;
@@ -233,7 +237,7 @@ export class DynamicFormInputComponent {
233
237
  hasUiConfig(def) {
234
238
  return typeof def === 'object' && typeof def?.ui?.component === 'string';
235
239
  }
236
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DynamicFormInputComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DynamicFormInputComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
237
241
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DynamicFormInputComponent, selector: "vdr-dynamic-form-input", inputs: { def: "def", readonly: "readonly", control: "control" }, providers: [
238
242
  {
239
243
  provide: NG_VALUE_ACCESSOR,
@@ -251,7 +255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
251
255
  multi: true,
252
256
  },
253
257
  ], template: "<ng-container *ngIf=\"!renderAsList; else list\">\r\n <ng-container #single></ng-container>\r\n</ng-container>\r\n<ng-template #list>\r\n <div class=\"list-container\" cdkDropList (cdkDropListDropped)=\"moveListItem($event)\">\r\n <div\r\n class=\"list-item-row\"\r\n *ngFor=\"let item of listItems; trackBy: trackById\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragLockAxis]=\"'y'\"\r\n >\r\n <div class=\"flex-spacer pr-2\">\r\n <ng-container #listItem></ng-container>\r\n </div>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"!readonly\"\r\n (click)=\"removeListItem(item)\"\r\n [title]=\"'common.remove-item-from-list' | translate\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <div class=\"drag-handle\" cdkDragHandle [class.hidden]=\"readonly\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n </div>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addListItem()\" *ngIf=\"!readonly\">\r\n <clr-icon shape=\"plus\"></clr-icon> {{ 'common.add-item-to-list' | translate }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1}.list-container{border:1px solid var(--color-component-border-200);border-radius:3px;padding:12px}.list-item-row{font-size:13px;display:flex;align-items:center;margin:3px 0}.drag-placeholder{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{font-size:13px;background-color:var(--color-component-bg-100);opacity:.8;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.drag-handle{cursor:move}.drag-handle.hidden{display:none}.cdk-drag-placeholder{opacity:.1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .list-item-row:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
254
- }], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, propDecorators: { def: [{
258
+ }], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, propDecorators: { def: [{
255
259
  type: Input
256
260
  }], readonly: [{
257
261
  type: Input
@@ -264,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
264
268
  type: ViewChildren,
265
269
  args: ['listItem', { read: ViewContainerRef }]
266
270
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2R5bmFtaWMtZm9ybS1pbnB1dHMvZHluYW1pYy1mb3JtLWlucHV0L2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9keW5hbWljLWZvcm0taW5wdXRzL2R5bmFtaWMtZm9ybS1pbnB1dC9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFLVCxLQUFLLEVBT0wsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7QUFTM0Y7O0dBRUc7QUFjSCxNQUFNLE9BQU8seUJBQXlCO0lBbUJsQyxZQUNZLHdCQUFrRCxFQUNsRCx3QkFBa0QsRUFDbEQsaUJB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIENvbXBvbmVudFJlZixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVHlwZSxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICAgIEZvcm1BcnJheSxcclxuICAgIEZvcm1Db250cm9sLFxyXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICBVbnR5cGVkRm9ybUFycmF5LFxyXG4gICAgVW50eXBlZEZvcm1Db250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3RyaW5nQ3VzdG9tRmllbGRDb25maWcgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IENvbmZpZ0FyZ1R5cGUsIEN1c3RvbUZpZWxkVHlwZSwgRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgc2ltcGxlRGVlcENsb25lIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaW1wbGUtZGVlcC1jbG9uZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xyXG5pbXBvcnQgeyBDb25maWdBcmdEZWZpbml0aW9uLCBDdXN0b21GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBnZXRDb25maWdBcmdWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsaXRpZXMvY29uZmlndXJhYmxlLW9wZXJhdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21wb25lbnQtcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5cclxudHlwZSBJbnB1dExpc3RJdGVtID0ge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+O1xyXG4gICAgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEEgaG9zdCBjb21wb25lbnQgd2hpY2ggZGVsZWdhdGVzIHRvIGFuIGluc3RhbmNlIG9yIGxpc3Qgb2YgRm9ybUlucHV0Q29tcG9uZW50IGNvbXBvbmVudHMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWR5bmFtaWMtZm9ybS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudCxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUlucHV0Q29tcG9uZW50XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbntcclxuICAgIEBJbnB1dCgpIGRlZjogQ29uZmlnQXJnRGVmaW5pdGlvbiB8IEN1c3RvbUZpZWxkQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICBAVmlld0NoaWxkKCdzaW5nbGUnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgc2luZ2xlVmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ2xpc3RJdGVtJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGxpc3RJdGVtQ29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG4gICAgcmVuZGVyQXNMaXN0ID0gZmFsc2U7XHJcbiAgICBsaXN0SXRlbXM6IElucHV0TGlzdEl0ZW1bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBzaW5nbGVDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+O1xyXG4gICAgcHJpdmF0ZSBsaXN0SWQgPSAxO1xyXG4gICAgcHJpdmF0ZSBsaXN0Rm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheShbXSBhcyBBcnJheTxGb3JtQ29udHJvbDxhbnk+Pik7XHJcbiAgICBwcml2YXRlIGNvbXBvbmVudFR5cGU6IFR5cGU8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgcmVuZGVyTGlzdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZWdpc3RyeVNlcnZpY2U6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudElkID0gdGhpcy5nZXRJbnB1dENvbXBvbmVudENvbmZpZyh0aGlzLmRlZikuY29tcG9uZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZS5nZXRJbnB1dENvbXBvbmVudChjb21wb25lbnRJZCk7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gY29tcG9uZW50VHlwZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYE5vIGZvcm0gaW5wdXQgY29tcG9uZW50IHJlZ2lzdGVyZWQgd2l0aCB0aGUgaWQgXCIke2NvbXBvbmVudElkfVwiLiBVc2luZyB0aGUgZGVmYXVsdCBpbnB1dCBpbnN0ZWFkLmAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb21wb25lbnRUeXBlID0gdGhpcy5jb21wb25lbnRSZWdpc3RyeVNlcnZpY2UuZ2V0SW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldElucHV0Q29tcG9uZW50Q29uZmlnKHsgLi4udGhpcy5kZWYsIHVpOiB1bmRlZmluZWQgfSBhcyBhbnkpLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGRlZmF1bHRDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBkZWZhdWx0Q29tcG9uZW50VHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRUeXBlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRlbXAgaW5zdGFuY2UgdG8gY2hlY2sgdGhlIHZhbHVlIG9mIGBpc0xpc3RJbnB1dGBcclxuICAgICAgICAgICAgY29uc3QgY21wUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdElucHV0Q29tcG9uZW50ID0gY21wUmVmLmluc3RhbmNlLmlzTGlzdElucHV0ID8/IGZhbHNlO1xyXG4gICAgICAgICAgICBjbXBSZWYuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmLmxpc3QgPT09IGZhbHNlICYmIGlzTGlzdElucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3RoaXMuY29tcG9uZW50VHlwZS5uYW1lfSBjb21wb25lbnQgaXMgYSBsaXN0IGlucHV0LCBidXQgdGhlIGRlZmluaXRpb24gZm9yICR7dGhpcy5kZWYubmFtZX0gZG9lcyBub3QgZXhwZWN0IGEgbGlzdGAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQXNMaXN0ID0gdGhpcy5kZWYubGlzdCAmJiAhaXNMaXN0SW5wdXRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJBc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmID0gdGhpcy5yZW5kZXJJbnB1dENvbXBvbmVudChcclxuICAgICAgICAgICAgICAgICAgICBmYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlVmlld0NvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1BcnJheVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyTGlzdElucHV0cyA9ICh2aWV3Q29udGFpbmVyUmVmczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdDb250YWluZXJSZWZzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUFycmF5U3ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RGb3JtQXJyYXkgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zLmZvckVhY2goaSA9PiBpLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZnMuZm9yRWFjaCgocmVmLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMubGlzdEl0ZW1zPy5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RGb3JtQXJyYXkucHVzaChsaXN0SXRlbS5jb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0SXRlbS5jb21wb25lbnRSZWYgPSB0aGlzLnJlbmRlcklucHV0Q29tcG9uZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtLmNvbnRyb2wsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlTdWIgPSB0aGlzLmxpc3RGb3JtQXJyYXkudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cnV0aHlWYWx1ZXMgPSB2YWwuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0cnV0aHlWYWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKHRydXRoeVZhbHVlcywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBpbml0aWFsIHJlbmRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbUNvbnRhaW5lcnMuY2hhbmdlc1xyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh2YWwgPT4gcmVuZGVyTGlzdElucHV0cyh0aGlzLmxpc3RJdGVtQ29udGFpbmVycykpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIHJlbmRlciBvbiBjaGFuZ2VzIHRvIHRoZSBsaXN0XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckxpc3QkXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxpc3RJdGVtQ29udGFpbmVycy5jaGFuZ2VzLnBpcGUodGFrZSgxKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMaXN0SW5wdXRzKHRoaXMubGlzdEl0ZW1Db250YWluZXJzKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5jb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJpbmRpbmdzKGNoYW5nZXMsIGl0ZW0uY29tcG9uZW50UmVmKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVDb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVCaW5kaW5ncyhjaGFuZ2VzLCB0aGlzLnNpbmdsZUNvbXBvbmVudFJlZik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUJpbmRpbmdzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMsIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEZvcm1JbnB1dENvbXBvbmVudD4pIHtcclxuICAgICAgICBpZiAoJ2RlZicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29uZmlnID0gc2ltcGxlRGVlcENsb25lKHRoaXMuZGVmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCdyZWFkb25seScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21wb25lbnRSZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SWQoaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogbnVtYmVyIH0pIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRMaXN0SXRlbSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGlzdEl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICBpZDogdGhpcy5saXN0SWQrKyxcclxuICAgICAgICAgICAgY29udHJvbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgodGhpcy5kZWYgYXMgQ29uZmlnQXJnRGVmaW5pdGlvbikuZGVmYXVsdFZhbHVlID8/IG51bGwpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG1vdmVMaXN0SXRlbShldmVudDogQ2RrRHJhZ0Ryb3A8SW5wdXRMaXN0SXRlbT4pIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMubGlzdEl0ZW1zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RGb3JtQXJyYXkucmVtb3ZlQXQoZXZlbnQucHJldmlvdXNJbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5pbnNlcnQoZXZlbnQuY3VycmVudEluZGV4LCBldmVudC5pdGVtLmRhdGEuY29udHJvbCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVMaXN0SXRlbShpdGVtOiBJbnB1dExpc3RJdGVtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5saXN0SXRlbXMuZmluZEluZGV4KGkgPT4gaSA9PT0gaXRlbSk7XHJcbiAgICAgICAgICAgIGl0ZW0uY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gdGhpcy5saXN0SXRlbXMuZmlsdGVyKGkgPT4gaSAhPT0gaXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlcklucHV0Q29tcG9uZW50KFxyXG4gICAgICAgIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybUlucHV0Q29tcG9uZW50PixcclxuICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgICAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICAgICAgaW5zdGFuY2UuY29uZmlnID0gc2ltcGxlRGVlcENsb25lKHRoaXMuZGVmKTtcclxuICAgICAgICBpbnN0YW5jZS5mb3JtQ29udHJvbCA9IGZvcm1Db250cm9sO1xyXG4gICAgICAgIGluc3RhbmNlLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgICAgICAgaWYgKG9iai5sZW5ndGggPT09IHRoaXMubGlzdEl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxpc3RJdGVtc1tpbmRleF0/LmNvbnRyb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKGdldENvbmZpZ0FyZ1ZhbHVlKHZhbHVlKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IG9iai5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmxpc3RJZCsrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChnZXRDb25maWdBcmdWYWx1ZSh2YWx1ZSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGFzIElucHV0TGlzdEl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJbnB1dENvbXBvbmVudENvbmZpZyhhcmdEZWY6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCBDdXN0b21GaWVsZENvbmZpZyk6IHtcclxuICAgICAgICBjb21wb25lbnQ6IERlZmF1bHRGb3JtQ29tcG9uZW50SWQ7XHJcbiAgICB9IHtcclxuICAgICAgICBpZiAodGhpcy5oYXNVaUNvbmZpZyhhcmdEZWYpICYmIGFyZ0RlZi51aS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZ0RlZi51aTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IGFyZ0RlZj8udHlwZSBhcyBDb25maWdBcmdUeXBlIHwgQ3VzdG9tRmllbGRUeXBlO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNPcHRpb25zID1cclxuICAgICAgICAgICAgICAgICAgICAhISh0aGlzLmlzQ29uZmlnQXJnRGVmKGFyZ0RlZikgJiYgYXJnRGVmLnVpPy5vcHRpb25zKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICEhKGFyZ0RlZiBhcyBTdHJpbmdDdXN0b21GaWVsZENvbmZpZykub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChoYXNPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnc2VsZWN0LWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHRhcmVhLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnaW50JzpcclxuICAgICAgICAgICAgY2FzZSAnZmxvYXQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnbnVtYmVyLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnYm9vbGVhbi1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdkYXRlLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ0lEJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAncmVsYXRpb24nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAncmVsYXRpb24tZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQ29uZmlnQXJnRGVmKGRlZjogQ29uZmlnQXJnRGVmaW5pdGlvbiB8IEN1c3RvbUZpZWxkQ29uZmlnKTogZGVmIGlzIENvbmZpZ0FyZ0RlZmluaXRpb24ge1xyXG4gICAgICAgIHJldHVybiAoZGVmIGFzIENvbmZpZ0FyZ0RlZmluaXRpb24pPy5fX3R5cGVuYW1lID09PSAnQ29uZmlnQXJnRGVmaW5pdGlvbic7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNVaUNvbmZpZyhkZWY6IHVua25vd24pOiBkZWYgaXMgeyB1aTogeyBjb21wb25lbnQ6IHN0cmluZyB9IH0ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgZGVmID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgKGRlZiBhcyBhbnkpPy51aT8uY29tcG9uZW50ID09PSAnc3RyaW5nJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlbmRlckFzTGlzdDsgZWxzZSBsaXN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICNzaW5nbGU+PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2xpc3Q+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVMaXN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbS1yb3dcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0SXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlJZFwiXHJcbiAgICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cIid5J1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXIgcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjbGlzdEl0ZW0+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTGlzdEl0ZW0oaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24ucmVtb3ZlLWl0ZW0tZnJvbS1saXN0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGUgW2NsYXNzLmhpZGRlbl09XCJyZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZHJhZy1oYW5kbGVcIiBzaXplPVwiMjRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtXCIgKGNsaWNrKT1cImFkZExpc3RJdGVtKClcIiAqbmdJZj1cIiFyZWFkb25seVwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj4ge3sgJ2NvbW1vbi5hZGQtaXRlbS10by1saXN0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2R5bmFtaWMtZm9ybS1pbnB1dHMvZHluYW1pYy1mb3JtLWlucHV0L2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9keW5hbWljLWZvcm0taW5wdXRzL2R5bmFtaWMtZm9ybS1pbnB1dC9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxRQUFRLEVBQ1IsS0FBSyxFQVFMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7O0FBUzNGOztHQUVHO0FBY0gsTUFBTSxPQUFPLHlCQUF5QjtJQW9CbEMsWUFDWSx3QkFBa0QsRUFDbEQsaUJBQW9D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SztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzJDLG1CQUFtQjtzQkFBbkUsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ08sa0JBQWtCO3NCQUF2RSxZQUFZO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29tcG9uZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFByb3ZpZGVyLFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFR5cGUsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q2hpbGRyZW4sXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgICBGb3JtQXJyYXksXHJcbiAgICBGb3JtQ29udHJvbCxcclxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgVW50eXBlZEZvcm1BcnJheSxcclxuICAgIFVudHlwZWRGb3JtQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBDb25maWdBcmdUeXBlLCBDdXN0b21GaWVsZFR5cGUsIERlZmF1bHRGb3JtQ29tcG9uZW50SWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyLCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IHNpbXBsZURlZXBDbG9uZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2ltcGxlLWRlZXAtY2xvbmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgQ29uZmlnQXJnRGVmaW5pdGlvbiwgQ3VzdG9tRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgZ2V0Q29uZmlnQXJnVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbGl0aWVzL2NvbmZpZ3VyYWJsZS1vcGVyYXRpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tcG9uZW50LXJlZ2lzdHJ5L2NvbXBvbmVudC1yZWdpc3RyeS5zZXJ2aWNlJztcclxuXHJcbnR5cGUgSW5wdXRMaXN0SXRlbSA9IHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuICAgIGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIGhvc3QgY29tcG9uZW50IHdoaWNoIGRlbGVnYXRlcyB0byBhbiBpbnN0YW5jZSBvciBsaXN0IG9mIEZvcm1JbnB1dENvbXBvbmVudCBjb21wb25lbnRzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1keW5hbWljLWZvcm0taW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG57XHJcbiAgICBASW5wdXQoKSBkZWY6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCBDdXN0b21GaWVsZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgQFZpZXdDaGlsZCgnc2luZ2xlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHNpbmdsZVZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkcmVuKCdsaXN0SXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBsaXN0SXRlbUNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuICAgIHJlbmRlckFzTGlzdCA9IGZhbHNlO1xyXG4gICAgbGlzdEl0ZW1zOiBJbnB1dExpc3RJdGVtW10gPSBbXTtcclxuICAgIHByaXZhdGUgc2luZ2xlQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuICAgIHByaXZhdGUgbGlzdElkID0gMTtcclxuICAgIHByaXZhdGUgbGlzdEZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXkoW10gYXMgQXJyYXk8Rm9ybUNvbnRyb2w8YW55Pj4pO1xyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRUeXBlOiBUeXBlPEZvcm1JbnB1dENvbXBvbmVudD47XHJcbiAgICBwcml2YXRlIGNvbXBvbmVudFByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbDogYW55KSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSByZW5kZXJMaXN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZTogQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudElkID0gdGhpcy5nZXRJbnB1dENvbXBvbmVudENvbmZpZyh0aGlzLmRlZikuY29tcG9uZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLmdldElucHV0Q29tcG9uZW50KGNvbXBvbmVudElkKTtcclxuICAgICAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50VHlwZSA9IGNvbXBvbmVudC50eXBlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFByb3ZpZGVycyA9IGNvbXBvbmVudC5wcm92aWRlcnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgICAgIGBObyBmb3JtIGlucHV0IGNvbXBvbmVudCByZWdpc3RlcmVkIHdpdGggdGhlIGlkIFwiJHtjb21wb25lbnRJZH1cIi4gVXNpbmcgdGhlIGRlZmF1bHQgaW5wdXQgaW5zdGVhZC5gLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Q29tcG9uZW50VHlwZSA9IHRoaXMuY29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLmdldElucHV0Q29tcG9uZW50KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRJbnB1dENvbXBvbmVudENvbmZpZyh7IC4uLnRoaXMuZGVmLCB1aTogdW5kZWZpbmVkIH0gYXMgYW55KS5jb21wb25lbnQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChkZWZhdWx0Q29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gZGVmYXVsdENvbXBvbmVudFR5cGUudHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IHRoaXMuY29tcG9uZW50UHJvdmlkZXJzLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRlbXAgaW5zdGFuY2UgdG8gY2hlY2sgdGhlIHZhbHVlIG9mIGBpc0xpc3RJbnB1dGBcclxuICAgICAgICAgICAgY29uc3QgY21wUmVmID0gdGhpcy5zaW5nbGVWaWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbXBvbmVudFR5cGUsIHsgaW5qZWN0b3IgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdElucHV0Q29tcG9uZW50ID0gY21wUmVmLmluc3RhbmNlLmlzTGlzdElucHV0ID8/IGZhbHNlO1xyXG4gICAgICAgICAgICBjbXBSZWYuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmLmxpc3QgPT09IGZhbHNlICYmIGlzTGlzdElucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3RoaXMuY29tcG9uZW50VHlwZS5uYW1lfSBjb21wb25lbnQgaXMgYSBsaXN0IGlucHV0LCBidXQgdGhlIGRlZmluaXRpb24gZm9yICR7dGhpcy5kZWYubmFtZX0gZG9lcyBub3QgZXhwZWN0IGEgbGlzdGAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQXNMaXN0ID0gdGhpcy5kZWYubGlzdCAmJiAhaXNMaXN0SW5wdXRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJBc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmID0gdGhpcy5yZW5kZXJJbnB1dENvbXBvbmVudChcclxuICAgICAgICAgICAgICAgICAgICBpbmplY3RvcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpbmdsZVZpZXdDb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxldCBmb3JtQXJyYXlTdWI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlckxpc3RJbnB1dHMgPSAodmlld0NvbnRhaW5lclJlZnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3Q29udGFpbmVyUmVmcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1BcnJheVN1Yikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUFycmF5U3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5ID0gbmV3IFVudHlwZWRGb3JtQXJyYXkoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcy5mb3JFYWNoKGkgPT4gaS5jb21wb25lbnRSZWY/LmRlc3Ryb3koKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWZzLmZvckVhY2goKHJlZiwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW0gPSB0aGlzLmxpc3RJdGVtcz8uW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5LnB1c2gobGlzdEl0ZW0uY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEl0ZW0uY29tcG9uZW50UmVmID0gdGhpcy5yZW5kZXJJbnB1dENvbXBvbmVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEl0ZW0uY29udHJvbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheVN1YiA9IHRoaXMubGlzdEZvcm1BcnJheS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRydXRoeVZhbHVlcyA9IHZhbC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRydXRoeVZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUodHJ1dGh5VmFsdWVzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGluaXRpYWwgcmVuZGVyXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtQ29udGFpbmVycy5jaGFuZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZhbCA9PiByZW5kZXJMaXN0SW5wdXRzKHRoaXMubGlzdEl0ZW1Db250YWluZXJzKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gcmVuZGVyIG9uIGNoYW5nZXMgdG8gdGhlIGxpc3RcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCRcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdEl0ZW1Db250YWluZXJzLmNoYW5nZXMucGlwZSh0YWtlKDEpKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxpc3RJbnB1dHModGhpcy5saXN0SXRlbUNvbnRhaW5lcnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNvbXBvbmVudFJlZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQmluZGluZ3MoY2hhbmdlcywgaXRlbS5jb21wb25lbnRSZWYpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUNvbXBvbmVudFJlZikge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJpbmRpbmdzKGNoYW5nZXMsIHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQmluZGluZ3MoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Rm9ybUlucHV0Q29tcG9uZW50Pikge1xyXG4gICAgICAgIGlmICgnZGVmJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb25maWcgPSBzaW1wbGVEZWVwQ2xvbmUodGhpcy5kZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ3JlYWRvbmx5JyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBpdGVtOiB7IGlkOiBudW1iZXIgfSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZExpc3RJdGVtKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5saXN0SXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmxpc3RJZCsrLFxyXG4gICAgICAgICAgICBjb250cm9sOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCh0aGlzLmRlZiBhcyBDb25maWdBcmdEZWZpbml0aW9uKS5kZWZhdWx0VmFsdWUgPz8gbnVsbCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZUxpc3RJdGVtKGV2ZW50OiBDZGtEcmFnRHJvcDxJbnB1dExpc3RJdGVtPikge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5saXN0SXRlbXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5yZW1vdmVBdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5Lmluc2VydChldmVudC5jdXJyZW50SW5kZXgsIGV2ZW50Lml0ZW0uZGF0YS5jb250cm9sKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUxpc3RJdGVtKGl0ZW06IElucHV0TGlzdEl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3RJdGVtcy5maW5kSW5kZXgoaSA9PiBpID09PSBpdGVtKTtcclxuICAgICAgICAgICAgaXRlbS5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5maWx0ZXIoaSA9PiBpICE9PSBpdGVtKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVySW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCxcclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50VHlwZSwgeyBpbmplY3RvciB9KTtcclxuICAgICAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICAgICAgaW5zdGFuY2UuY29uZmlnID0gc2ltcGxlRGVlcENsb25lKHRoaXMuZGVmKTtcclxuICAgICAgICBpbnN0YW5jZS5mb3JtQ29udHJvbCA9IGZvcm1Db250cm9sO1xyXG4gICAgICAgIGluc3RhbmNlLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seTtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgICAgICAgaWYgKG9iai5sZW5ndGggPT09IHRoaXMubGlzdEl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxpc3RJdGVtc1tpbmRleF0/LmNvbnRyb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKGdldENvbmZpZ0FyZ1ZhbHVlKHZhbHVlKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IG9iai5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmxpc3RJZCsrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChnZXRDb25maWdBcmdWYWx1ZSh2YWx1ZSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGFzIElucHV0TGlzdEl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJbnB1dENvbXBvbmVudENvbmZpZyhhcmdEZWY6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCBDdXN0b21GaWVsZENvbmZpZyk6IHtcclxuICAgICAgICBjb21wb25lbnQ6IERlZmF1bHRGb3JtQ29tcG9uZW50SWQ7XHJcbiAgICB9IHtcclxuICAgICAgICBpZiAodGhpcy5oYXNVaUNvbmZpZyhhcmdEZWYpICYmIGFyZ0RlZi51aS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZ0RlZi51aTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IGFyZ0RlZj8udHlwZSBhcyBDb25maWdBcmdUeXBlIHwgQ3VzdG9tRmllbGRUeXBlO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNPcHRpb25zID1cclxuICAgICAgICAgICAgICAgICAgICAhISh0aGlzLmlzQ29uZmlnQXJnRGVmKGFyZ0RlZikgJiYgYXJnRGVmLnVpPy5vcHRpb25zKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICEhKGFyZ0RlZiBhcyBTdHJpbmdDdXN0b21GaWVsZENvbmZpZykub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChoYXNPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnc2VsZWN0LWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHRhcmVhLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnaW50JzpcclxuICAgICAgICAgICAgY2FzZSAnZmxvYXQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnbnVtYmVyLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnYm9vbGVhbi1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdkYXRlLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ0lEJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAncmVsYXRpb24nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAncmVsYXRpb24tZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQ29uZmlnQXJnRGVmKGRlZjogQ29uZmlnQXJnRGVmaW5pdGlvbiB8IEN1c3RvbUZpZWxkQ29uZmlnKTogZGVmIGlzIENvbmZpZ0FyZ0RlZmluaXRpb24ge1xyXG4gICAgICAgIHJldHVybiAoZGVmIGFzIENvbmZpZ0FyZ0RlZmluaXRpb24pPy5fX3R5cGVuYW1lID09PSAnQ29uZmlnQXJnRGVmaW5pdGlvbic7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNVaUNvbmZpZyhkZWY6IHVua25vd24pOiBkZWYgaXMgeyB1aTogeyBjb21wb25lbnQ6IHN0cmluZyB9IH0ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgZGVmID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgKGRlZiBhcyBhbnkpPy51aT8uY29tcG9uZW50ID09PSAnc3RyaW5nJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlbmRlckFzTGlzdDsgZWxzZSBsaXN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICNzaW5nbGU+PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2xpc3Q+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVMaXN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbS1yb3dcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0SXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlJZFwiXHJcbiAgICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cIid5J1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXIgcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjbGlzdEl0ZW0+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTGlzdEl0ZW0oaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24ucmVtb3ZlLWl0ZW0tZnJvbS1saXN0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGUgW2NsYXNzLmhpZGRlbl09XCJyZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZHJhZy1oYW5kbGVcIiBzaXplPVwiMjRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtXCIgKGNsaWNrKT1cImFkZExpc3RJdGVtKClcIiAqbmdJZj1cIiFyZWFkb25seVwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj4ge3sgJ2NvbW1vbi5hZGQtaXRlbS10by1saXN0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -303,6 +303,9 @@ const DECLARATIONS = [
303
303
  AssignToChannelDialogComponent,
304
304
  CurrencyCodeSelectorComponent,
305
305
  LanguageCodeSelectorComponent,
306
+ DataTableFilterPresetsComponent,
307
+ AddFilterPresetButtonComponent,
308
+ RenameFilterPresetDialogComponent,
306
309
  ];
307
310
  const DYNAMIC_FORM_INPUTS = [
308
311
  TextFormInputComponent,
@@ -458,7 +461,10 @@ export class SharedModule {
458
461
  ChartComponent,
459
462
  AssignToChannelDialogComponent,
460
463
  CurrencyCodeSelectorComponent,
461
- LanguageCodeSelectorComponent, TextFormInputComponent,
464
+ LanguageCodeSelectorComponent,
465
+ DataTableFilterPresetsComponent,
466
+ AddFilterPresetButtonComponent,
467
+ RenameFilterPresetDialogComponent, TextFormInputComponent,
462
468
  PasswordFormInputComponent,
463
469
  NumberFormInputComponent,
464
470
  DateFormInputComponent,
@@ -481,9 +487,7 @@ export class SharedModule {
481
487
  JsonEditorFormInputComponent,
482
488
  HtmlEditorFormInputComponent,
483
489
  ProductMultiSelectorFormInputComponent,
484
- CombinationModeFormInputComponent, DataTableFilterPresetsComponent,
485
- AddFilterPresetButtonComponent,
486
- RenameFilterPresetDialogComponent], imports: [ClarityModule,
490
+ CombinationModeFormInputComponent], imports: [ClarityModule,
487
491
  CommonModule,
488
492
  FormsModule,
489
493
  ReactiveFormsModule,
@@ -629,7 +633,10 @@ export class SharedModule {
629
633
  ChartComponent,
630
634
  AssignToChannelDialogComponent,
631
635
  CurrencyCodeSelectorComponent,
632
- LanguageCodeSelectorComponent, TextFormInputComponent,
636
+ LanguageCodeSelectorComponent,
637
+ DataTableFilterPresetsComponent,
638
+ AddFilterPresetButtonComponent,
639
+ RenameFilterPresetDialogComponent, TextFormInputComponent,
633
640
  PasswordFormInputComponent,
634
641
  NumberFormInputComponent,
635
642
  DateFormInputComponent,
@@ -677,13 +684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
677
684
  args: [{
678
685
  imports: [IMPORTS],
679
686
  exports: [...IMPORTS, ...DECLARATIONS, ...DYNAMIC_FORM_INPUTS],
680
- declarations: [
681
- ...DECLARATIONS,
682
- ...DYNAMIC_FORM_INPUTS,
683
- DataTableFilterPresetsComponent,
684
- AddFilterPresetButtonComponent,
685
- RenameFilterPresetDialogComponent,
686
- ],
687
+ declarations: [...DECLARATIONS, ...DYNAMIC_FORM_INPUTS],
687
688
  providers: [
688
689
  // This needs to be shared, since lazy-loaded
689
690
  // modules have their own entryComponents which
@@ -695,4 +696,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
695
696
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
696
697
  }]
697
698
  }] });
698
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDMUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxr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QUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDbGFyaXR5TW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCAnQGNsci9pY29ucyc7XG5pbXBvcnQgJ0BjbHIvaWNvbnMvc2hhcGVzL2FsbC1zaGFwZXMnO1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCAnQHdlYmNvbXBvbmVudHMvY3VzdG9tLWVsZW1lbnRzL2N1c3RvbS1lbGVtZW50cy5taW4uanMnO1xuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcblxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBY3Rpb25CYXJJdGVtc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24tYmFyLWl0ZW1zL2FjdGlvbi1iYXItaXRlbXMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgQWN0aW9uQmFyQ29tcG9uZW50LFxuICAgIEFjdGlvbkJhckxlZnRDb21wb25lbnQsXG4gICAgQWN0aW9uQmFyUmlnaHRDb21wb25lbnQsXG59IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZHJlc3NGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkZHJlc3MtZm9ybS9hZGRyZXNzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFmZml4ZWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZmZpeGVkLWlucHV0L2FmZml4ZWQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcmNlbnRhZ2VTdWZmaXhJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZmZpeGVkLWlucHV0L3BlcmNlbnRhZ2Utc3VmZml4LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1maWxlLWlucHV0L2Fzc2V0LWZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0R2FsbGVyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1nYWxsZXJ5L2Fzc2V0LWdhbGxlcnkuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0UGlja2VyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzZXRQcmV2aWV3RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldFByZXZpZXdMaW5rc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1wcmV2aWV3LWxpbmtzL2Fzc2V0LXByZXZpZXctbGlua3MuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0UHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1wcmV2aWV3L2Fzc2V0LXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtc2VhcmNoLWlucHV0L2Fzc2V0LXNlYXJjaC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzaWduVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2lnbi10by1jaGFubmVsLWRpYWxvZy9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1bGtBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWN0aW9uLW1lbnUvYnVsay1hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbm5lbEFzc2lnbm1lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtYXNzaWdubWVudC1jb250cm9sL2NoYW5uZWwtYXNzaWdubWVudC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFubmVsQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1iYWRnZS9jaGFubmVsLWJhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoaXAvY2hpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLWlucHV0L2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXJyZW5jeS1pbnB1dC9jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRGV0YWlsQ29tcG9uZW50SG9zdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC1ob3N0L2N1c3RvbS1kZXRhaWwtY29tcG9uZW50LWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZmllbGQtY29udHJvbC9jdXN0b20tZmllbGQtY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tZXJMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b21lci1sYWJlbC9jdXN0b21lci1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlMkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUN1c3RvbUZpZWxkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlLWN1c3RvbS1maWVsZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZTJTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS0yL2RhdGEtdGFibGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGUyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlMi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtY29sdW1uLXBpY2tlci9kYXRhLXRhYmxlLWNvbHVtbi1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlckxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLWxhYmVsL2RhdGEtdGFibGUtZmlsdGVyLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21GaWx0ZXJDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXJzL2N1c3RvbS1maWx0ZXItY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXRhVGFibGVGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVycy9kYXRhLXRhYmxlLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdE5vdGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1ub3RlLWRpYWxvZy9lZGl0LW5vdGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtcHR5LXBsYWNlaG9sZGVyL2VtcHR5LXBsYWNlaG9sZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnRpdHlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VudGl0eS1pbmZvL2VudGl0eS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHRlbnNpb25Ib3N0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2V4dGVuc2lvbi1ob3N0L2V4dGVuc2lvbi1ob3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWNldFZhbHVlQ2hpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC12YWx1ZS1jaGlwL2ZhY2V0LXZhbHVlLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZhY2V0VmFsdWVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC12YWx1ZS1zZWxlY3Rvci9mYWNldC12YWx1ZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9jYWxQb2ludENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9jYWwtcG9pbnQtY29udHJvbC9mb2NhbC1wb2ludC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWl0ZW0vZm9ybS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm1hdHRlZC1hZGRyZXNzL2Zvcm1hdHRlZC1hZGRyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWxwVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWxwLXRvb2x0aXAvaGVscC10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaXN0b3J5RW50cnlEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGlzdG9yeS1lbnRyeS1kZXRhaWwvaGlzdG9yeS1lbnRyeS1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1zUGVyUGFnZUNvbnRyb2xzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2l0ZW1zLXBlci1wYWdlLWNvbnRyb2xzL2l0ZW1zLXBlci1wYWdlLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYWJlbGVkRGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYWJlbGVkLWRhdGEvbGFiZWxlZC1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NhbGl6ZWRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsaXplZC10ZXh0L2xvY2FsaXplZC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS10YWdzLWRpYWxvZy9tYW5hZ2UtdGFncy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0J1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtZGlhbG9nL2RpYWxvZy1idXR0b25zLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnRPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtZGlhbG9nL2RpYWxvZy1jb21wb25lbnQtb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1kaWFsb2cvZGlhbG9nLXRpdGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1kaWFsb2cvbW9kYWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYmplY3RUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC10cmVlL29iamVjdC10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmRlclN0YXRlTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3JkZXItc3RhdGUtbGFiZWwvb3JkZXItc3RhdGUtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWJsb2NrL3BhZ2UtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtYm9keS9wYWdlLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VEZXRhaWxMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1kZXRhaWwtbGF5b3V0L3BhZ2UtZGV0YWlsLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZURldGFpbFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1kZXRhaWwtbGF5b3V0L3BhZ2UtZGV0YWlsLXNpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VFbnRpdHlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtZW50aXR5LWluZm8vcGFnZS1lbnRpdHktaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUhlYWRlckRlc2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyLWRlc2NyaXB0aW9uL3BhZ2UtaGVhZGVyLWRlc2NyaXB0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlSGVhZGVyVGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWhlYWRlci10YWJzL3BhZ2UtaGVhZGVyLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29udHJvbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnaW5hdGlvbi1jb250cm9scy9wYWdpbmF0aW9uLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TXVsdGlTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtc2VhcmNoLWlucHV0L3Byb2R1Y3Qtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1zZWxlY3Rvci9wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ2FyZEZpZWxkc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvLWNhcmQvcmFkaW8tY2FyZC1maWVsZHNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvLWNhcmQvcmFkaW8tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL2V4dGVybmFsLWltYWdlLWRpYWxvZy9leHRlcm5hbC1pbWFnZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9saW5rLWRpYWxvZy9saW5rLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYXdIdG1sRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvcmF3LWh0bWwtZGlhbG9nL3Jhdy1odG1sLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0LXRvZ2dsZS9zZWxlY3QtdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2ltcGxlLWRpYWxvZy9zaW1wbGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGxpdFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcGxpdC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIFNwbGl0Vmlld0xlZnREaXJlY3RpdmUsXG4gICAgU3BsaXRWaWV3UmlnaHREaXJlY3RpdmUsXG59IGZyb20gJy4vY29tcG9uZW50cy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0YXR1c0JhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0YXR1cy1iYWRnZS9zdGF0dXMtYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmJlZEN1c3RvbUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJiZWQtY3VzdG9tLWZpZWxkcy90YWJiZWQtY3VzdG9tLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVSb3dBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbi90YWJsZS1yb3ctYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWctc2VsZWN0b3IvdGFnLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lbGluZUVudHJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lLWVudHJ5L3RpbWVsaW5lLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpdGxlLWlucHV0L3RpdGxlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUV4dGVuc2lvblBvaW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VpLWV4dGVuc2lvbi1wb2ludC91aS1leHRlbnNpb24tcG9pbnQuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZkRlZmF1bHRDaGFubmVsQWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLWRlZmF1bHQtY2hhbm5lbC1hY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElmTXVsdGljaGFubmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLW11bHRpY2hhbm5lbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWZQZXJtaXNzaW9uc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pZi1wZXJtaXNzaW9ucy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm9vbGVhbkZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9ib29sZWFuLWZvcm0taW5wdXQvYm9vbGVhbi1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdG1sRWRpdG9yRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL2NvZGUtZWRpdG9yLWZvcm0taW5wdXQvaHRtbC1lZGl0b3ItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSnNvbkVkaXRvckZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9jb2RlLWVkaXRvci1mb3JtLWlucHV0L2pzb24tZWRpdG9yLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbWJpbmF0aW9uTW9kZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9jb21iaW5hdGlvbi1tb2RlLWZvcm0taW5wdXQvY29tYmluYXRpb24tbW9kZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXJyZW5jeUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9jdXJyZW5jeS1mb3JtLWlucHV0L2N1cnJlbmN5LWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWVyR3JvdXBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvY3VzdG9tZXItZ3JvdXAtZm9ybS1pbnB1dC9jdXN0b21lci1ncm91cC1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL2RhdGUtZm9ybS1pbnB1dC9kYXRlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvZHluYW1pYy1mb3JtLWlucHV0L2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFjZXRWYWx1ZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9mYWNldC12YWx1ZS1mb3JtLWlucHV0L2ZhY2V0LXZhbHVlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE51bWJlckZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9udW1iZXItZm9ybS1pbnB1dC9udW1iZXItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFzc3dvcmRGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcGFzc3dvcmQtZm9ybS1pbnB1dC9wYXNzd29yZC1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TXVsdGlTZWxlY3RvckZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWZvcm0taW5wdXQvcHJvZHVjdC1tdWx0aS1zZWxlY3Rvci1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0U2VsZWN0b3JGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcHJvZHVjdC1zZWxlY3Rvci1mb3JtLWlucHV0L3Byb2R1Y3Qtc2VsZWN0b3ItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVsYXRpb25Bc3NldElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3JlbGF0aW9uLWZvcm0taW5wdXQvYXNzZXQvcmVsYXRpb24tYXNzZXQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlbGF0aW9uQ3VzdG9tZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L2N1c3RvbWVyL3JlbGF0aW9uLWN1c3RvbWVyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWxhdGlvbkdlbmVyaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L2dlbmVyaWMvcmVsYXRpb24tZ2VuZXJpYy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVsYXRpb25Qcm9kdWN0VmFyaWFudElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3JlbGF0aW9uLWZvcm0taW5wdXQvcHJvZHVjdC12YXJpYW50L3JlbGF0aW9uLXByb2R1Y3QtdmFyaWFudC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVsYXRpb25Qcm9kdWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmVsYXRpb24tZm9ybS1pbnB1dC9wcm9kdWN0L3JlbGF0aW9uLXByb2R1Y3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgUmVsYXRpb25DYXJkQ29tcG9uZW50LFxuICAgIFJlbGF0aW9uQ2FyZERldGFpbERpcmVjdGl2ZSxcbiAgICBSZWxhdGlvbkNhcmRQcmV2aWV3RGlyZWN0aXZlLFxufSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmVsYXRpb24tZm9ybS1pbnB1dC9yZWxhdGlvbi1jYXJkL3JlbGF0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlbGF0aW9uRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3JlbGF0aW9uLWZvcm0taW5wdXQvcmVsYXRpb24tZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVsYXRpb25TZWxlY3RvckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L3JlbGF0aW9uLXNlbGVjdG9yLWRpYWxvZy9yZWxhdGlvbi1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFJpY2hUZXh0Rm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3JpY2gtdGV4dC1mb3JtLWlucHV0L3JpY2gtdGV4dC1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvc2VsZWN0LWZvcm0taW5wdXQvc2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvdGV4dC1mb3JtLWlucHV0L3RleHQtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvdGV4dGFyZWEtZm9ybS1pbnB1dC90ZXh0YXJlYS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldFByZXZpZXdQaXBlIH0gZnJvbSAnLi9waXBlcy9hc3NldC1wcmV2aWV3LnBpcGUnO1xuaW1wb3J0IHsgQ2hhbm5lbExhYmVsUGlwZSB9IGZyb20gJy4vcGlwZXMvY2hhbm5lbC1sYWJlbC5waXBlJztcbmltcG9ydCB7IEN1c3RvbUZpZWxkRGVzY3JpcHRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9jdXN0b20tZmllbGQtZGVzY3JpcHRpb24ucGlwZSc7XG5pbXBvcnQgeyBDdXN0b21GaWVsZExhYmVsUGlwZSB9IGZyb20gJy4vcGlwZXMvY3VzdG9tLWZpZWxkLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHsgRHVyYXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7IEZpbGVTaXplUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgSGFzUGVybWlzc2lvblBpcGUgfSBmcm9tICcuL3BpcGVzL2hhcy1wZXJtaXNzaW9uLnBpcGUnO1xuaW1wb3J0IHsgTG9jYWxlQ3VycmVuY3lOYW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxlLWN1cnJlbmN5LW5hbWUucGlwZSc7XG5pbXBvcnQgeyBMb2NhbGVDdXJyZW5jeVBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsZS1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7IExvY2FsZURhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7IExvY2FsZUxhbmd1YWdlTmFtZVBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsZS1sYW5ndWFnZS1uYW1lLnBpcGUnO1xuaW1wb3J0IHsgTG9jYWxlUmVnaW9uTmFtZVBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsZS1yZWdpb24tbmFtZS5waXBlJztcbmltcG9ydCB7IFNlbnRlbmNlQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NlbnRlbmNlLWNhc2UucGlwZSc7XG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcbmltcG9ydCB7IFN0YXRlSTE4blRva2VuUGlwZSB9IGZyb20gJy4vcGlwZXMvc3RhdGUtaTE4bi10b2tlbi5waXBlJztcbmltcG9ydCB7IFN0cmluZ1RvQ29sb3JQaXBlIH0gZnJvbSAnLi9waXBlcy9zdHJpbmctdG8tY29sb3IucGlwZSc7XG5pbXBvcnQgeyBUaW1lQWdvUGlwZSB9IGZyb20gJy4vcGlwZXMvdGltZS1hZ28ucGlwZSc7XG5pbXBvcnQgeyBDYW5EZWFjdGl2YXRlRGV0YWlsR3VhcmQgfSBmcm9tICcuL3Byb3ZpZGVycy9yb3V0aW5nL2Nhbi1kZWFjdGl2YXRlLWRldGFpbC1ndWFyZCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50LCBDYXJkQ29udHJvbHNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBab25lU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1zZWxlY3Rvci96b25lLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lDb2RlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VycmVuY3ktY29kZS1zZWxlY3Rvci9jdXJyZW5jeS1jb2RlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZUNvZGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYW5ndWFnZS1jb2RlLXNlbGVjdG9yL2xhbmd1YWdlLWNvZGUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlclByZXNldHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRGaWx0ZXJQcmVzZXRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy9hZGQtZmlsdGVyLXByZXNldC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL3JlbmFtZS1maWx0ZXItcHJlc2V0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5jb25zdCBJTVBPUlRTID0gW1xuICAgIENsYXJpdHlNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbl07XG5cbmNvbnN0IERFQ0xBUkFUSU9OUyA9IFtcbiAgICBBY3Rpb25CYXJDb21wb25lbnQsXG4gICAgQWN0aW9uQmFyTGVmdENvbXBvbmVudCxcbiAgICBBY3Rpb25CYXJSaWdodENvbXBvbmVudCxcbiAgICBBc3NldFByZXZpZXdDb21wb25lbnQsXG4gICAgQXNzZXRQcmV2aWV3RGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQsXG4gICAgQWZmaXhlZElucHV0Q29tcG9uZW50LFxuICAgIENoaXBDb21wb25lbnQsXG4gICAgQ3VycmVuY3lJbnB1dENvbXBvbmVudCxcbiAgICBMb2NhbGVDdXJyZW5jeU5hbWVQaXBlLFxuICAgIEN1c3RvbWVyTGFiZWxDb21wb25lbnQsXG4gICAgQ3VzdG9tRmllbGRDb250cm9sQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgRmFjZXRWYWx1ZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIEl0ZW1zUGVyUGFnZUNvbnRyb2xzQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Db250cm9sc0NvbXBvbmVudCxcbiAgICBUYWJsZVJvd0FjdGlvbkNvbXBvbmVudCxcbiAgICBGYWNldFZhbHVlQ2hpcENvbXBvbmVudCxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbnRyb2xEaXJlY3RpdmUsXG4gICAgRm9ybUl0ZW1Db21wb25lbnQsXG4gICAgTW9kYWxEaWFsb2dDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZVN1ZmZpeElucHV0Q29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudE91dGxldENvbXBvbmVudCxcbiAgICBEaWFsb2dCdXR0b25zRGlyZWN0aXZlLFxuICAgIERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxuICAgIFNlbGVjdFRvZ2dsZUNvbXBvbmVudCxcbiAgICBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIFNpbXBsZURpYWxvZ0NvbXBvbmVudCxcbiAgICBUaXRsZUlucHV0Q29tcG9uZW50LFxuICAgIFNlbnRlbmNlQ2FzZVBpcGUsXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgIFNvcnRQaXBlLFxuICAgIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICBEcm9wZG93bkl0ZW1EaXJlY3RpdmUsXG4gICAgT3JkZXJTdGF0ZUxhYmVsQ29tcG9uZW50LFxuICAgIEZvcm1hdHRlZEFkZHJlc3NDb21wb25lbnQsXG4gICAgTGFiZWxlZERhdGFDb21wb25lbnQsXG4gICAgU3RyaW5nVG9Db2xvclBpcGUsXG4gICAgT2JqZWN0VHJlZUNvbXBvbmVudCxcbiAgICBJZlBlcm1pc3Npb25zRGlyZWN0aXZlLFxuICAgIElmTXVsdGljaGFubmVsRGlyZWN0aXZlLFxuICAgIEhhc1Blcm1pc3Npb25QaXBlLFxuICAgIEFjdGlvbkJhckl0ZW1zQ29tcG9uZW50LFxuICAgIERpc2FibGVkRGlyZWN0aXZlLFxuICAgIEFzc2V0RmlsZUlucHV0Q29tcG9uZW50LFxuICAgIEFzc2V0R2FsbGVyeUNvbXBvbmVudCxcbiAgICBBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCxcbiAgICBFbnRpdHlJbmZvQ29tcG9uZW50LFxuICAgIERhdGV0aW1lUGlja2VyQ29tcG9uZW50LFxuICAgIENoYW5uZWxCYWRnZUNvbXBvbmVudCxcbiAgICBDaGFubmVsQXNzaWdubWVudENvbnRyb2xDb21wb25lbnQsXG4gICAgQ2hhbm5lbExhYmVsUGlwZSxcbiAgICBJZkRlZmF1bHRDaGFubmVsQWN0aXZlRGlyZWN0aXZlLFxuICAgIEV4dGVuc2lvbkhvc3RDb21wb25lbnQsXG4gICAgQ3VzdG9tRmllbGRMYWJlbFBpcGUsXG4gICAgQ3VzdG9tRmllbGREZXNjcmlwdGlvblBpcGUsXG4gICAgRm9jYWxQb2ludENvbnRyb2xDb21wb25lbnQsXG4gICAgQXNzZXRQcmV2aWV3UGlwZSxcbiAgICBMaW5rRGlhbG9nQ29tcG9uZW50LFxuICAgIEV4dGVybmFsSW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgVGltZUFnb1BpcGUsXG4gICAgRHVyYXRpb25QaXBlLFxuICAgIEVtcHR5UGxhY2Vob2xkZXJDb21wb25lbnQsXG4gICAgVGltZWxpbmVFbnRyeUNvbXBvbmVudCxcbiAgICBIaXN0b3J5RW50cnlEZXRhaWxDb21wb25lbnQsXG4gICAgRWRpdE5vdGVEaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdFNlbGVjdG9yRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIFN0YXRlSTE4blRva2VuUGlwZSxcbiAgICBQcm9kdWN0VmFyaWFudFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIEhlbHBUb29sdGlwQ29tcG9uZW50LFxuICAgIEN1c3RvbWVyR3JvdXBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgQWRkcmVzc0Zvcm1Db21wb25lbnQsXG4gICAgTG9jYWxlRGF0ZVBpcGUsXG4gICAgTG9jYWxlQ3VycmVuY3lQaXBlLFxuICAgIExvY2FsZUxhbmd1YWdlTmFtZVBpcGUsXG4gICAgTG9jYWxlUmVnaW9uTmFtZVBpcGUsXG4gICAgVGFnU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWFuYWdlVGFnc0RpYWxvZ0NvbXBvbmVudCxcbiAgICBSZWxhdGlvblNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxuICAgIFJlbGF0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBTdGF0dXNCYWRnZUNvbXBvbmVudCxcbiAgICBUYWJiZWRDdXN0b21GaWVsZHNDb21wb25lbnQsXG4gICAgVWlFeHRlbnNpb25Qb2ludENvbXBvbmVudCxcbiAgICBDdXN0b21EZXRhaWxDb21wb25lbnRIb3N0Q29tcG9uZW50LFxuICAgIEFzc2V0UHJldmlld0xpbmtzQ29tcG9uZW50LFxuICAgIFByb2R1Y3RNdWx0aVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxuICAgIFByb2R1Y3RTZWFyY2hJbnB1dENvbXBvbmVudCxcbiAgICBDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBSYXdIdG1sRGlhbG9nQ29tcG9uZW50LFxuICAgIEJ1bGtBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIFJhZGlvQ2FyZENvbXBvbmVudCxcbiAgICBSYWRpb0NhcmRGaWVsZHNldENvbXBvbmVudCxcbiAgICBEYXRhVGFibGUyQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZTJDb2x1bW5Db21wb25lbnQsXG4gICAgRGF0YVRhYmxlRmlsdGVyc0NvbXBvbmVudCxcbiAgICBEYXRhVGFibGVGaWx0ZXJMYWJlbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb2x1bW5QaWNrZXJDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlMlNlYXJjaENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDdXN0b21GaWVsZENvbHVtbkNvbXBvbmVudCxcbiAgICBTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU3BsaXRWaWV3TGVmdERpcmVjdGl2ZSxcbiAgICBTcGxpdFZpZXdSaWdodERpcmVjdGl2ZSxcbiAgICBQYWdlQ29tcG9uZW50LFxuICAgIEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyRGVzY3JpcHRpb25Db21wb25lbnQsXG4gICAgUGFnZUhlYWRlclRhYnNDb21wb25lbnQsXG4gICAgUGFnZUJvZHlDb21wb25lbnQsXG4gICAgUGFnZUJsb2NrQ29tcG9uZW50LFxuICAgIFBhZ2VFbnRpdHlJbmZvQ29tcG9uZW50LFxuICAgIExvY2FsaXplZFRleHRDb21wb25lbnQsXG4gICAgUGFnZURldGFpbExheW91dENvbXBvbmVudCxcbiAgICBQYWdlRGV0YWlsU2lkZWJhckNvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIENhcmRDb250cm9sc0RpcmVjdGl2ZSxcbiAgICBab25lU2VsZWN0b3JDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgQXNzaWduVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxuICAgIEN1cnJlbmN5Q29kZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIExhbmd1YWdlQ29kZVNlbGVjdG9yQ29tcG9uZW50LFxuXTtcblxuY29uc3QgRFlOQU1JQ19GT1JNX0lOUFVUUyA9IFtcbiAgICBUZXh0Rm9ybUlucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIE51bWJlckZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBEYXRlRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEN1cnJlbmN5Rm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEJvb2xlYW5Gb3JtSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0Rm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZhY2V0VmFsdWVGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudCxcbiAgICBSZWxhdGlvbkZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBSZWxhdGlvbkFzc2V0SW5wdXRDb21wb25lbnQsXG4gICAgUmVsYXRpb25Qcm9kdWN0SW5wdXRDb21wb25lbnQsXG4gICAgUmVsYXRpb25Qcm9kdWN0VmFyaWFudElucHV0Q29tcG9uZW50LFxuICAgIFJlbGF0aW9uQ3VzdG9tZXJJbnB1dENvbXBvbmVudCxcbiAgICBSZWxhdGlvbkNhcmRQcmV2aWV3RGlyZWN0aXZlLFxuICAgIFJlbGF0aW9uQ2FyZERldGFpbERpcmVjdGl2ZSxcbiAgICBSZWxhdGlvblNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxuICAgIFJlbGF0aW9uR2VuZXJpY0lucHV0Q29tcG9uZW50LFxuICAgIFRleHRhcmVhRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIFJpY2hUZXh0Rm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEpzb25FZGl0b3JGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgSHRtbEVkaXRvckZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBQcm9kdWN0TXVsdGlTZWxlY3RvckZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBDb21iaW5hdGlvbk1vZGVGb3JtSW5wdXRDb21wb25lbnQsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtJTVBPUlRTXSxcbiAgICBleHBvcnRzOiBbLi4uSU1QT1JUUywgLi4uREVDTEFSQVRJT05TLCAuLi5EWU5BTUlDX0ZPUk1fSU5QVVRTXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgLi4uREVDTEFSQVRJT05TLFxuICAgICAgICAuLi5EWU5BTUlDX0ZPUk1fSU5QVVRTLFxuICAgICAgICBEYXRhVGFibGVGaWx0ZXJQcmVzZXRzQ29tcG9uZW50LFxuICAgICAgICBBZGRGaWx0ZXJQcmVzZXRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUaGlzIG5lZWRzIHRvIGJlIHNoYXJlZCwgc2luY2UgbGF6eS1sb2FkZWRcbiAgICAgICAgLy8gbW9kdWxlcyBoYXZlIHRoZWlyIG93biBlbnRyeUNvbXBvbmVudHMgd2hpY2hcbiAgICAgICAgLy8gYXJlIHVua25vd24gdG8gdGhlIENvcmVNb2R1bGUgaW5zdGFuY2Ugb2YgTW9kYWxTZXJ2aWNlLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTQzMjQjaXNzdWVjb21tZW50LTMwNTY1MDc2M1xuICAgICAgICBNb2RhbFNlcnZpY2UsXG4gICAgICAgIENhbkRlYWN0aXZhdGVEZXRhaWxHdWFyZCxcbiAgICBdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHt9XG4iXX0=
699
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDMUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxr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O29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDbGFyaXR5TW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcclxuaW1wb3J0ICdAY2xyL2ljb25zJztcclxuaW1wb3J0ICdAY2xyL2ljb25zL3NoYXBlcy9hbGwtc2hhcGVzJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgJ0B3ZWJjb21wb25lbnRzL2N1c3RvbS1lbGVtZW50cy9jdXN0b20tZWxlbWVudHMubWluLmpzJztcclxuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcclxuXHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbkJhckl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjdGlvbi1iYXItaXRlbXMvYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gICAgQWN0aW9uQmFyQ29tcG9uZW50LFxyXG4gICAgQWN0aW9uQmFyTGVmdENvbXBvbmVudCxcclxuICAgIEFjdGlvbkJhclJpZ2h0Q29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkcmVzc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRkcmVzcy1mb3JtL2FkZHJlc3MtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZmZpeGVkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWZmaXhlZC1pbnB1dC9hZmZpeGVkLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBlcmNlbnRhZ2VTdWZmaXhJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZmZpeGVkLWlucHV0L3BlcmNlbnRhZ2Utc3VmZml4LWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0RmlsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWZpbGUtaW5wdXQvYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldEdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0UGlja2VyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldFByZXZpZXdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtcHJldmlldy1kaWFsb2cvYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRQcmV2aWV3TGlua3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtcHJldmlldy1saW5rcy9hc3NldC1wcmV2aWV3LWxpbmtzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0UHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1wcmV2aWV3L2Fzc2V0LXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRTZWFyY2hJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1zZWFyY2gtaW5wdXQvYXNzZXQtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2lnblRvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1bGtBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWN0aW9uLW1lbnUvYnVsay1hY3Rpb24tbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFubmVsQXNzaWdubWVudENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2wvY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hhbm5lbEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtYmFkZ2UvY2hhbm5lbC1iYWRnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoaXAvY2hpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maWd1cmFibGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maWd1cmFibGUtaW5wdXQvY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tRGV0YWlsQ29tcG9uZW50SG9zdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC1ob3N0L2N1c3RvbS1kZXRhaWwtY29tcG9uZW50LWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS1maWVsZC1jb250cm9sL2N1c3RvbS1maWVsZC1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbWVyTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tZXItbGFiZWwvY3VzdG9tZXItbGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlMkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ3VzdG9tRmllbGRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS0yL2RhdGEtdGFibGUtY3VzdG9tLWZpZWxkLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGUyU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGUyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlMi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5QaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1jb2x1bW4tcGlja2VyL2RhdGEtdGFibGUtY29sdW1uLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVGaWx0ZXJMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1sYWJlbC9kYXRhLXRhYmxlLWZpbHRlci1sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWx0ZXJDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXJzL2N1c3RvbS1maWx0ZXItY29tcG9uZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXJzL2RhdGEtdGFibGUtZmlsdGVycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGV0aW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWl0ZW0uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdE5vdGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1ub3RlLWRpYWxvZy9lZGl0LW5vdGUtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtcHR5UGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktcGxhY2Vob2xkZXIvZW1wdHktcGxhY2Vob2xkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktaW5mby9lbnRpdHktaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25Ib3N0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2V4dGVuc2lvbi1ob3N0L2V4dGVuc2lvbi1ob3N0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhY2V0VmFsdWVDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LXZhbHVlLWNoaXAvZmFjZXQtdmFsdWUtY2hpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWNldFZhbHVlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtdmFsdWUtc2VsZWN0b3IvZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9jYWxQb2ludENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9jYWwtcG9pbnQtY29udHJvbC9mb2NhbC1wb2ludC1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnRyb2wuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWl0ZW0vZm9ybS1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1hdHRlZEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybWF0dGVkLWFkZHJlc3MvZm9ybWF0dGVkLWFkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGVscFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVscC10b29sdGlwL2hlbHAtdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaXN0b3J5RW50cnlEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGlzdG9yeS1lbnRyeS1kZXRhaWwvaGlzdG9yeS1lbnRyeS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSXRlbXNQZXJQYWdlQ29udHJvbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaXRlbXMtcGVyLXBhZ2UtY29udHJvbHMvaXRlbXMtcGVyLXBhZ2UtY29udHJvbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFiZWxlZERhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGFiZWxlZC1kYXRhL2xhYmVsZWQtZGF0YS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvY2FsaXplZFRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxpemVkLXRleHQvbG9jYWxpemVkLXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFuYWdlVGFnc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdGFncy1kaWFsb2cvbWFuYWdlLXRhZ3MtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0J1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtZGlhbG9nL2RpYWxvZy1idXR0b25zLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudE91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1kaWFsb2cvZGlhbG9nLWNvbXBvbmVudC1vdXRsZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtZGlhbG9nL2RpYWxvZy10aXRsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1kaWFsb2cvbW9kYWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9iamVjdFRyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LXRyZWUvb2JqZWN0LXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3JkZXJTdGF0ZUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29yZGVyLXN0YXRlLWxhYmVsL29yZGVyLXN0YXRlLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWJsb2NrL3BhZ2UtYmxvY2suY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1ib2R5L3BhZ2UtYm9keS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlRGV0YWlsTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtZGV0YWlsLWxheW91dC9wYWdlLWRldGFpbC1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZURldGFpbFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1kZXRhaWwtbGF5b3V0L3BhZ2UtZGV0YWlsLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUVudGl0eUluZm9Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1lbnRpdHktaW5mby9wYWdlLWVudGl0eS1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VIZWFkZXJEZXNjcmlwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWhlYWRlci1kZXNjcmlwdGlvbi9wYWdlLWhlYWRlci1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlSGVhZGVyVGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWhlYWRlci10YWJzL3BhZ2UtaGVhZGVyLXRhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS10aXRsZS9wYWdlLXRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db250cm9sc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdpbmF0aW9uLWNvbnRyb2xzL3BhZ2luYXRpb24tY29udHJvbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdE11bHRpU2VsZWN0b3JEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1tdWx0aS1zZWxlY3Rvci1kaWFsb2cvcHJvZHVjdC1tdWx0aS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtc2VhcmNoLWlucHV0L3Byb2R1Y3Qtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LXNlbGVjdG9yL3Byb2R1Y3QtdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYWRpb0NhcmRGaWVsZHNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yYWRpby1jYXJkL3JhZGlvLWNhcmQtZmllbGRzZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvLWNhcmQvcmFkaW8tY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHRlcm5hbEltYWdlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nL2V4dGVybmFsLWltYWdlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaW5rRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvbGluay1kaWFsb2cvbGluay1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhd0h0bWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9yYXctaHRtbC1kaWFsb2cvcmF3LWh0bWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0LXRvZ2dsZS9zZWxlY3QtdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpbXBsZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaW1wbGUtZGlhbG9nL3NpbXBsZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BsaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gICAgU3BsaXRWaWV3TGVmdERpcmVjdGl2ZSxcclxuICAgIFNwbGl0Vmlld1JpZ2h0RGlyZWN0aXZlLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3RhdHVzQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdHVzLWJhZGdlL3N0YXR1cy1iYWRnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJiZWRDdXN0b21GaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiYmVkLWN1c3RvbS1maWVsZHMvdGFiYmVkLWN1c3RvbS1maWVsZHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVSb3dBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbi90YWJsZS1yb3ctYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhZy1zZWxlY3Rvci90YWctc2VsZWN0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZWxpbmVFbnRyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS1lbnRyeS90aW1lbGluZS1lbnRyeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaXRsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpdGxlLWlucHV0L3RpdGxlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpRXh0ZW5zaW9uUG9pbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdWktZXh0ZW5zaW9uLXBvaW50L3VpLWV4dGVuc2lvbi1wb2ludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJZkRlZmF1bHRDaGFubmVsQWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLWRlZmF1bHQtY2hhbm5lbC1hY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWZNdWx0aWNoYW5uZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtbXVsdGljaGFubmVsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElmUGVybWlzc2lvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtcGVybWlzc2lvbnMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9vbGVhbkZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9ib29sZWFuLWZvcm0taW5wdXQvYm9vbGVhbi1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0bWxFZGl0b3JGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvY29kZS1lZGl0b3ItZm9ybS1pbnB1dC9odG1sLWVkaXRvci1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEpzb25FZGl0b3JGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvY29kZS1lZGl0b3ItZm9ybS1pbnB1dC9qc29uLWVkaXRvci1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbWJpbmF0aW9uTW9kZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9jb21iaW5hdGlvbi1tb2RlLWZvcm0taW5wdXQvY29tYmluYXRpb24tbW9kZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5Rm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL2N1cnJlbmN5LWZvcm0taW5wdXQvY3VycmVuY3ktZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21lckdyb3VwRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL2N1c3RvbWVyLWdyb3VwLWZvcm0taW5wdXQvY3VzdG9tZXItZ3JvdXAtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL2RhdGUtZm9ybS1pbnB1dC9kYXRlLWZvcm0taW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9keW5hbWljLWZvcm0taW5wdXQvZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhY2V0VmFsdWVGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC9mYWNldC12YWx1ZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWJlckZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9udW1iZXItZm9ybS1pbnB1dC9udW1iZXItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYXNzd29yZEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9wYXNzd29yZC1mb3JtLWlucHV0L3Bhc3N3b3JkLWZvcm0taW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdE11bHRpU2VsZWN0b3JGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcHJvZHVjdC1tdWx0aS1zZWxlY3Rvci1mb3JtLWlucHV0L3Byb2R1Y3QtbXVsdGktc2VsZWN0b3ItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0U2VsZWN0b3JGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcHJvZHVjdC1zZWxlY3Rvci1mb3JtLWlucHV0L3Byb2R1Y3Qtc2VsZWN0b3ItZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWxhdGlvbkFzc2V0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmVsYXRpb24tZm9ybS1pbnB1dC9hc3NldC9yZWxhdGlvbi1hc3NldC1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWxhdGlvbkN1c3RvbWVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmVsYXRpb24tZm9ybS1pbnB1dC9jdXN0b21lci9yZWxhdGlvbi1jdXN0b21lci1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWxhdGlvbkdlbmVyaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L2dlbmVyaWMvcmVsYXRpb24tZ2VuZXJpYy1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWxhdGlvblByb2R1Y3RWYXJpYW50SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmVsYXRpb24tZm9ybS1pbnB1dC9wcm9kdWN0LXZhcmlhbnQvcmVsYXRpb24tcHJvZHVjdC12YXJpYW50LWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlbGF0aW9uUHJvZHVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3JlbGF0aW9uLWZvcm0taW5wdXQvcHJvZHVjdC9yZWxhdGlvbi1wcm9kdWN0LWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBSZWxhdGlvbkNhcmRDb21wb25lbnQsXHJcbiAgICBSZWxhdGlvbkNhcmREZXRhaWxEaXJlY3RpdmUsXHJcbiAgICBSZWxhdGlvbkNhcmRQcmV2aWV3RGlyZWN0aXZlLFxyXG59IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L3JlbGF0aW9uLWNhcmQvcmVsYXRpb24tY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWxhdGlvbkZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L3JlbGF0aW9uLWZvcm0taW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVsYXRpb25TZWxlY3RvckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy9yZWxhdGlvbi1mb3JtLWlucHV0L3JlbGF0aW9uLXNlbGVjdG9yLWRpYWxvZy9yZWxhdGlvbi1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmljaFRleHRGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvcmljaC10ZXh0LWZvcm0taW5wdXQvcmljaC10ZXh0LWZvcm0taW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Rm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZvcm0taW5wdXRzL3NlbGVjdC1mb3JtLWlucHV0L3NlbGVjdC1mb3JtLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1pbnB1dHMvdGV4dC1mb3JtLWlucHV0L3RleHQtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWlucHV0cy90ZXh0YXJlYS1mb3JtLWlucHV0L3RleHRhcmVhLWZvcm0taW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRQcmV2aWV3UGlwZSB9IGZyb20gJy4vcGlwZXMvYXNzZXQtcHJldmlldy5waXBlJztcclxuaW1wb3J0IHsgQ2hhbm5lbExhYmVsUGlwZSB9IGZyb20gJy4vcGlwZXMvY2hhbm5lbC1sYWJlbC5waXBlJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGREZXNjcmlwdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2N1c3RvbS1maWVsZC1kZXNjcmlwdGlvbi5waXBlJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRMYWJlbFBpcGUgfSBmcm9tICcuL3BpcGVzL2N1c3RvbS1maWVsZC1sYWJlbC5waXBlJztcclxuaW1wb3J0IHsgRHVyYXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9kdXJhdGlvbi5waXBlJztcclxuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XHJcbmltcG9ydCB7IEhhc1Blcm1pc3Npb25QaXBlIH0gZnJvbSAnLi9waXBlcy9oYXMtcGVybWlzc2lvbi5waXBlJztcclxuaW1wb3J0IHsgTG9jYWxlQ3VycmVuY3lOYW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxlLWN1cnJlbmN5LW5hbWUucGlwZSc7XHJcbmltcG9ydCB7IExvY2FsZUN1cnJlbmN5UGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxlLWN1cnJlbmN5LnBpcGUnO1xyXG5pbXBvcnQgeyBMb2NhbGVEYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxlLWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IExvY2FsZUxhbmd1YWdlTmFtZVBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsZS1sYW5ndWFnZS1uYW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBMb2NhbGVSZWdpb25OYW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxlLXJlZ2lvbi1uYW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBTZW50ZW5jZUNhc2VQaXBlIH0gZnJvbSAnLi9waXBlcy9zZW50ZW5jZS1jYXNlLnBpcGUnO1xyXG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcclxuaW1wb3J0IHsgU3RhdGVJMThuVG9rZW5QaXBlIH0gZnJvbSAnLi9waXBlcy9zdGF0ZS1pMThuLXRva2VuLnBpcGUnO1xyXG5pbXBvcnQgeyBTdHJpbmdUb0NvbG9yUGlwZSB9IGZyb20gJy4vcGlwZXMvc3RyaW5nLXRvLWNvbG9yLnBpcGUnO1xyXG5pbXBvcnQgeyBUaW1lQWdvUGlwZSB9IGZyb20gJy4vcGlwZXMvdGltZS1hZ28ucGlwZSc7XHJcbmltcG9ydCB7IENhbkRlYWN0aXZhdGVEZXRhaWxHdWFyZCB9IGZyb20gJy4vcHJvdmlkZXJzL3JvdXRpbmcvY2FuLWRlYWN0aXZhdGUtZGV0YWlsLWd1YXJkJztcclxuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCwgQ2FyZENvbnRyb2xzRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBab25lU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1zZWxlY3Rvci96b25lLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5Q29kZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1cnJlbmN5LWNvZGUtc2VsZWN0b3IvY3VycmVuY3ktY29kZS1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYW5ndWFnZS1jb2RlLXNlbGVjdG9yL2xhbmd1YWdlLWNvZGUtc2VsZWN0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlRmlsdGVyUHJlc2V0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRmlsdGVyUHJlc2V0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvYWRkLWZpbHRlci1wcmVzZXQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL3JlbmFtZS1maWx0ZXItcHJlc2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgSU1QT1JUUyA9IFtcclxuICAgIENsYXJpdHlNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBBMTF5TW9kdWxlLFxyXG5dO1xyXG5cclxuY29uc3QgREVDTEFSQVRJT05TID0gW1xyXG4gICAgQWN0aW9uQmFyQ29tcG9uZW50LFxyXG4gICAgQWN0aW9uQmFyTGVmdENvbXBvbmVudCxcclxuICAgIEFjdGlvbkJhclJpZ2h0Q29tcG9uZW50LFxyXG4gICAgQXNzZXRQcmV2aWV3Q29tcG9uZW50LFxyXG4gICAgQXNzZXRQcmV2aWV3RGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXRTZWFyY2hJbnB1dENvbXBvbmVudCxcclxuICAgIENvbmZpZ3VyYWJsZUlucHV0Q29tcG9uZW50LFxyXG4gICAgQWZmaXhlZElucHV0Q29tcG9uZW50LFxyXG4gICAgQ2hpcENvbXBvbmVudCxcclxuICAgIEN1cnJlbmN5SW5wdXRDb21wb25lbnQsXHJcbiAgICBMb2NhbGVDdXJyZW5jeU5hbWVQaXBlLFxyXG4gICAgQ3VzdG9tZXJMYWJlbENvbXBvbmVudCxcclxuICAgIEN1c3RvbUZpZWxkQ29udHJvbENvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIEZhY2V0VmFsdWVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIEl0ZW1zUGVyUGFnZUNvbnRyb2xzQ29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbnRyb2xzQ29tcG9uZW50LFxyXG4gICAgVGFibGVSb3dBY3Rpb25Db21wb25lbnQsXHJcbiAgICBGYWNldFZhbHVlQ2hpcENvbXBvbmVudCxcclxuICAgIEZpbGVTaXplUGlwZSxcclxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIEZvcm1GaWVsZENvbnRyb2xEaXJlY3RpdmUsXHJcbiAgICBGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUGVyY2VudGFnZVN1ZmZpeElucHV0Q29tcG9uZW50LFxyXG4gICAgRGlhbG9nQ29tcG9uZW50T3V0bGV0Q29tcG9uZW50LFxyXG4gICAgRGlhbG9nQnV0dG9uc0RpcmVjdGl2ZSxcclxuICAgIERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxyXG4gICAgU2VsZWN0VG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgU2ltcGxlRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgVGl0bGVJbnB1dENvbXBvbmVudCxcclxuICAgIFNlbnRlbmNlQ2FzZVBpcGUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTWVudUNvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlLFxyXG4gICAgRHJvcGRvd25JdGVtRGlyZWN0aXZlLFxyXG4gICAgT3JkZXJTdGF0ZUxhYmVsQ29tcG9uZW50LFxyXG4gICAgRm9ybWF0dGVkQWRkcmVzc0NvbXBvbmVudCxcclxuICAgIExhYmVsZWREYXRhQ29tcG9uZW50LFxyXG4gICAgU3RyaW5nVG9Db2xvclBpcGUsXHJcbiAgICBPYmplY3RUcmVlQ29tcG9uZW50LFxyXG4gICAgSWZQZXJtaXNzaW9uc0RpcmVjdGl2ZSxcclxuICAgIElmTXVsdGljaGFubmVsRGlyZWN0aXZlLFxyXG4gICAgSGFzUGVybWlzc2lvblBpcGUsXHJcbiAgICBBY3Rpb25CYXJJdGVtc0NvbXBvbmVudCxcclxuICAgIERpc2FibGVkRGlyZWN0aXZlLFxyXG4gICAgQXNzZXRGaWxlSW5wdXRDb21wb25lbnQsXHJcbiAgICBBc3NldEdhbGxlcnlDb21wb25lbnQsXHJcbiAgICBBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIEVudGl0eUluZm9Db21wb25lbnQsXHJcbiAgICBEYXRldGltZVBpY2tlckNvbXBvbmVudCxcclxuICAgIENoYW5uZWxCYWRnZUNvbXBvbmVudCxcclxuICAgIENoYW5uZWxBc3NpZ25tZW50Q29udHJvbENvbXBvbmVudCxcclxuICAgIENoYW5uZWxMYWJlbFBpcGUsXHJcbiAgICBJZkRlZmF1bHRDaGFubmVsQWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgRXh0ZW5zaW9uSG9zdENvbXBvbmVudCxcclxuICAgIEN1c3RvbUZpZWxkTGFiZWxQaXBlLFxyXG4gICAgQ3VzdG9tRmllbGREZXNjcmlwdGlvblBpcGUsXHJcbiAgICBGb2NhbFBvaW50Q29udHJvbENvbXBvbmVudCxcclxuICAgIEFzc2V0UHJldmlld1BpcGUsXHJcbiAgICBMaW5rRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCxcclxuICAgIFRpbWVBZ29QaXBlLFxyXG4gICAgRHVyYXRpb25QaXBlLFxyXG4gICAgRW1wdHlQbGFjZWhvbGRlckNvbXBvbmVudCxcclxuICAgIFRpbWVsaW5lRW50cnlDb21wb25lbnQsXHJcbiAgICBIaXN0b3J5RW50cnlEZXRhaWxDb21wb25lbnQsXHJcbiAgICBFZGl0Tm90ZURpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RTZWxlY3RvckZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIFN0YXRlSTE4blRva2VuUGlwZSxcclxuICAgIFByb2R1Y3RWYXJpYW50U2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBIZWxwVG9vbHRpcENvbXBvbmVudCxcclxuICAgIEN1c3RvbWVyR3JvdXBGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICBBZGRyZXNzRm9ybUNvbXBvbmVudCxcclxuICAgIExvY2FsZURhdGVQaXBlLFxyXG4gICAgTG9jYWxlQ3VycmVuY3lQaXBlLFxyXG4gICAgTG9jYWxlTGFuZ3VhZ2VOYW1lUGlwZSxcclxuICAgIExvY2FsZVJlZ2lvbk5hbWVQaXBlLFxyXG4gICAgVGFnU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpb25TZWxlY3RvckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFJlbGF0aW9uQ2FyZENvbXBvbmVudCxcclxuICAgIFN0YXR1c0JhZGdlQ29tcG9uZW50LFxyXG4gICAgVGFiYmVkQ3VzdG9tRmllbGRzQ29tcG9uZW50LFxyXG4gICAgVWlFeHRlbnNpb25Qb2ludENvbXBvbmVudCxcclxuICAgIEN1c3RvbURldGFpbENvbXBvbmVudEhvc3RDb21wb25lbnQsXHJcbiAgICBBc3NldFByZXZpZXdMaW5rc0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RNdWx0aVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50LFxyXG4gICAgQ29udGV4dE1lbnVDb21wb25lbnQsXHJcbiAgICBSYXdIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQnVsa0FjdGlvbk1lbnVDb21wb25lbnQsXHJcbiAgICBSYWRpb0NhcmRDb21wb25lbnQsXHJcbiAgICBSYWRpb0NhcmRGaWVsZHNldENvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZTJDb21wb25lbnQsXHJcbiAgICBEYXRhVGFibGUyQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyc0NvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUZpbHRlckxhYmVsQ29tcG9uZW50LFxyXG4gICAgRGF0YVRhYmxlQ29sdW1uUGlja2VyQ29tcG9uZW50LFxyXG4gICAgRGF0YVRhYmxlMlNlYXJjaENvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUN1c3RvbUZpZWxkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgU3BsaXRWaWV3Q29tcG9uZW50LFxyXG4gICAgU3BsaXRWaWV3TGVmdERpcmVjdGl2ZSxcclxuICAgIFNwbGl0Vmlld1JpZ2h0RGlyZWN0aXZlLFxyXG4gICAgUGFnZUNvbXBvbmVudCxcclxuICAgIEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSxcclxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyRGVzY3JpcHRpb25Db21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyVGFic0NvbXBvbmVudCxcclxuICAgIFBhZ2VCb2R5Q29tcG9uZW50LFxyXG4gICAgUGFnZUJsb2NrQ29tcG9uZW50LFxyXG4gICAgUGFnZUVudGl0eUluZm9Db21wb25lbnQsXHJcbiAgICBMb2NhbGl6ZWRUZXh0Q29tcG9uZW50LFxyXG4gICAgUGFnZURldGFpbExheW91dENvbXBvbmVudCxcclxuICAgIFBhZ2VEZXRhaWxTaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgQ2FyZENvbXBvbmVudCxcclxuICAgIENhcmRDb250cm9sc0RpcmVjdGl2ZSxcclxuICAgIFpvbmVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIENoYXJ0Q29tcG9uZW50LFxyXG4gICAgQXNzaWduVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQ3VycmVuY3lDb2RlU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBMYW5ndWFnZUNvZGVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUZpbHRlclByZXNldHNDb21wb25lbnQsXHJcbiAgICBBZGRGaWx0ZXJQcmVzZXRCdXR0b25Db21wb25lbnQsXHJcbiAgICBSZW5hbWVGaWx0ZXJQcmVzZXREaWFsb2dDb21wb25lbnQsXHJcbl07XHJcblxyXG5jb25zdCBEWU5BTUlDX0ZPUk1fSU5QVVRTID0gW1xyXG4gICAgVGV4dEZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIFBhc3N3b3JkRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgTnVtYmVyRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgRGF0ZUZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIEN1cnJlbmN5Rm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgQm9vbGVhbkZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIFNlbGVjdEZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIEZhY2V0VmFsdWVGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgUmVsYXRpb25Gb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICBSZWxhdGlvbkFzc2V0SW5wdXRDb21wb25lbnQsXHJcbiAgICBSZWxhdGlvblByb2R1Y3RJbnB1dENvbXBvbmVudCxcclxuICAgIFJlbGF0aW9uUHJvZHVjdFZhcmlhbnRJbnB1dENvbXBvbmVudCxcclxuICAgIFJlbGF0aW9uQ3VzdG9tZXJJbnB1dENvbXBvbmVudCxcclxuICAgIFJlbGF0aW9uQ2FyZFByZXZpZXdEaXJlY3RpdmUsXHJcbiAgICBSZWxhdGlvbkNhcmREZXRhaWxEaXJlY3RpdmUsXHJcbiAgICBSZWxhdGlvblNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpb25HZW5lcmljSW5wdXRDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIFJpY2hUZXh0Rm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgSnNvbkVkaXRvckZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIEh0bWxFZGl0b3JGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0TXVsdGlTZWxlY3RvckZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIENvbWJpbmF0aW9uTW9kZUZvcm1JbnB1dENvbXBvbmVudCxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbSU1QT1JUU10sXHJcbiAgICBleHBvcnRzOiBbLi4uSU1QT1JUUywgLi4uREVDTEFSQVRJT05TLCAuLi5EWU5BTUlDX0ZPUk1fSU5QVVRTXSxcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkRFQ0xBUkFUSU9OUywgLi4uRFlOQU1JQ19GT1JNX0lOUFVUU10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAvLyBUaGlzIG5lZWRzIHRvIGJlIHNoYXJlZCwgc2luY2UgbGF6eS1sb2FkZWRcclxuICAgICAgICAvLyBtb2R1bGVzIGhhdmUgdGhlaXIgb3duIGVudHJ5Q29tcG9uZW50cyB3aGljaFxyXG4gICAgICAgIC8vIGFyZSB1bmtub3duIHRvIHRoZSBDb3JlTW9kdWxlIGluc3RhbmNlIG9mIE1vZGFsU2VydmljZS5cclxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTQzMjQjaXNzdWVjb21tZW50LTMwNTY1MDc2M1xyXG4gICAgICAgIE1vZGFsU2VydmljZSxcclxuICAgICAgICBDYW5EZWFjdGl2YXRlRGV0YWlsR3VhcmQsXHJcbiAgICBdLFxyXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHt9XHJcbiJdfQ==