@provoly/dashboard 0.22.4 → 0.22.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dataset/style/_o-pry-dataset-card.scss +24 -2
  2. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
  3. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
  4. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
  5. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
  6. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
  7. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
  10. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
  11. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
  12. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
  13. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
  14. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
  15. package/esm2022/components/checkbox/checkbox.component.mjs +3 -3
  16. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
  17. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
  18. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  20. package/esm2022/dataset/components/dataset.component.mjs +3 -3
  21. package/esm2022/dataset/style/css.component.mjs +2 -2
  22. package/esm2022/filters/autocomplete/autocomplete.component.mjs +1 -1
  23. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  24. package/esm2022/import/components/import.component.mjs +1 -1
  25. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  26. package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +3 -3
  27. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +8 -4
  28. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
  29. package/esm2022/lib/core/components/select/select.component.mjs +19 -8
  30. package/esm2022/lib/core/components/share/share.component.mjs +1 -1
  31. package/esm2022/lib/core/i18n/en.translations.mjs +7 -2
  32. package/esm2022/lib/core/i18n/fr.translations.mjs +7 -2
  33. package/esm2022/lib/core/store/image/image.service.mjs +4 -3
  34. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
  35. package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
  36. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  37. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  38. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  39. package/esm2022/notification/store/notification.service.mjs +1 -1
  40. package/esm2022/notification/style/css.component.mjs +2 -2
  41. package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -3
  42. package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
  43. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
  44. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
  45. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
  46. package/esm2022/presentation/components/presentation.component.mjs +4 -3
  47. package/esm2022/presentation/style/css.component.mjs +2 -2
  48. package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
  49. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  50. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
  51. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  52. package/esm2022/restitution/style/css.component.mjs +2 -2
  53. package/esm2022/search/search-home/search-home.component.mjs +2 -2
  54. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
  55. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
  56. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
  57. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
  58. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  59. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  60. package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
  61. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  62. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +20 -8
  63. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  64. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  65. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  66. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  67. package/esm2022/toolbox/components/share/share.component.mjs +4 -3
  68. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
  69. package/esm2022/toolbox/components/toolbox.component.mjs +13 -3
  70. package/esm2022/toolbox/style/css.component.mjs +2 -2
  71. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
  72. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  73. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
  74. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -7
  75. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +3 -2
  76. package/esm2022/widgets/widget-map/style/css.component.mjs +3 -3
  77. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +5 -1
  78. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  79. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  80. package/fesm2022/provoly-dashboard-admin.mjs +14 -14
  81. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  82. package/fesm2022/provoly-dashboard-components-checkbox.mjs +2 -2
  83. package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
  84. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
  85. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  86. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
  87. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  88. package/fesm2022/provoly-dashboard-dataset.mjs +8 -8
  89. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  90. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
  91. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  92. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  93. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  94. package/fesm2022/provoly-dashboard-import.mjs +1 -1
  95. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  96. package/fesm2022/provoly-dashboard-notification.mjs +2 -2
  97. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  98. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
  99. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  100. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
  101. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  102. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
  103. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  104. package/fesm2022/provoly-dashboard-pipeline.mjs +2 -2
  105. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  106. package/fesm2022/provoly-dashboard-presentation.mjs +6 -5
  107. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  108. package/fesm2022/provoly-dashboard-restitution.mjs +10 -10
  109. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  110. package/fesm2022/provoly-dashboard-search.mjs +5 -5
  111. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  112. package/fesm2022/provoly-dashboard-toolbox.mjs +54 -31
  113. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  114. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  115. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  116. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  117. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  118. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  119. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  120. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +13 -8
  121. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  122. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  123. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  124. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  125. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  126. package/fesm2022/provoly-dashboard.mjs +57 -31
  127. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  128. package/lib/core/components/overlay/dialog-confirm.component.d.ts +1 -1
  129. package/lib/core/components/select/select.component.d.ts +2 -1
  130. package/lib/core/i18n/en.translations.d.ts +5 -0
  131. package/lib/core/i18n/fr.translations.d.ts +5 -0
  132. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +1 -1
  133. package/notification/style/_m-notifications.scss +4 -10
  134. package/package.json +19 -19
  135. package/presentation/style/_o-pry-new-presentation.scss +0 -4
  136. package/presentation/style/_o-pry-presentation.scss +6 -1
  137. package/restitution/style/_o-restitution-list.scss +1 -1
  138. package/styles/abstracts/_mixins.scss +13 -0
  139. package/styles/components/_a-btn.scss +8 -26
  140. package/styles/components/_a-chip.scss +13 -0
  141. package/styles/components/_m-info-icon.scss +2 -3
  142. package/styles/components/{_o-datasources.scss → _o-chips-selector.scss} +3 -4
  143. package/styles/components/_o-dashboard.scss +41 -7
  144. package/styles/components/_o-modal.scss +1 -1
  145. package/styles/components/_o-widget.scss +5 -5
  146. package/styles/layout/_o-manifest-layout.scss +4 -0
  147. package/styles/libs/_reset-lib-ol.scss +9 -5
  148. package/styles/main.scss +7 -7
  149. package/styles-theme/abstracts-theme/_abstracts-overlays.theme.scss +6 -0
  150. package/styles-theme/abstracts-theme/variables/_variables-colors.scss +18 -25
  151. package/styles-theme/abstracts-theme/variables/_variables-decoration.scss +2 -2
  152. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +2 -2
  153. package/styles-theme/components-theme/_a-btn.theme.scss +45 -72
  154. package/styles-theme/components-theme/_a-checkbox.theme.scss +3 -45
  155. package/styles-theme/components-theme/_a-chip.theme.scss +32 -0
  156. package/styles-theme/components-theme/_a-form-field.theme.scss +1 -1
  157. package/styles-theme/components-theme/_a-pry-select.theme.scss +11 -3
  158. package/styles-theme/components-theme/_a-toggle.theme.scss +7 -8
  159. package/styles-theme/components-theme/_m-filter.theme.scss +4 -13
  160. package/styles-theme/components-theme/_m-form-radio-group.theme.scss +17 -0
  161. package/styles-theme/components-theme/_m-info-icon.theme.scss +11 -0
  162. package/styles-theme/components-theme/_m-minus-plus.theme.scss +2 -2
  163. package/styles-theme/components-theme/_m-notifications.theme.scss +8 -4
  164. package/styles-theme/components-theme/_m-time-picker.theme.scss +1 -1
  165. package/styles-theme/components-theme/_o-catalog.theme.scss +1 -1
  166. package/styles-theme/components-theme/_o-date-picker.theme.scss +2 -2
  167. package/styles-theme/components-theme/_o-draggable-menu.theme.scss +2 -2
  168. package/styles-theme/components-theme/_o-multi-class-field-selection.theme.scss +1 -1
  169. package/styles-theme/components-theme/_o-object-panel.theme.scss +1 -1
  170. package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +0 -9
  171. package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +8 -0
  172. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +12 -14
  173. package/styles-theme/components-theme/_o-pry-search-tools.theme.scss +2 -13
  174. package/styles-theme/components-theme/_o-pry-stepper.theme.scss +6 -8
  175. package/styles-theme/components-theme/_o-restitution-list.theme.scss +1 -1
  176. package/styles-theme/components-theme/_o-search-fulltext.theme.scss +2 -2
  177. package/styles-theme/components-theme/_o-search-multi-class.theme.scss +0 -5
  178. package/styles-theme/components-theme/_o-settings.theme.scss +1 -1
  179. package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
  180. package/styles-theme/components-theme/_o-widget-iframe.theme.scss +2 -2
  181. package/styles-theme/components-theme/_o-widget.theme.scss +31 -2
  182. package/styles-theme/components-theme/_overlay.theme.scss +3 -3
  183. package/styles-theme/layout-theme/_o-base-layout.theme.scss +3 -3
  184. package/styles-theme/layout-theme/_o-manifest-layout.theme.scss +8 -2
  185. package/styles-theme/libs-theme/_reset-lib-ol.theme.scss +12 -3
  186. package/styles-theme/main-theme.scss +5 -4
  187. package/toolbox/components/filter-settings/filter-settings.component.d.ts +3 -2
  188. package/toolbox/components/toolbox.component.d.ts +3 -1
  189. package/toolbox/style/_o-filter-settings.scss +0 -4
  190. package/toolbox/style/_o-toolbox.scss +2 -26
  191. package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +1 -1
  192. package/widgets/widget-map/style/{_o-layer-legend.scss → _m-layer-legend.scss} +7 -8
  193. package/widgets/widget-map/style/_o-widget-map.scss +2 -2
  194. package/styles/components/_a-chips.scss +0 -15
  195. package/styles-theme/components-theme/_o-datasources.theme.scss +0 -41
@@ -161,7 +161,8 @@ export const frTranslations = {
161
161
  switchEdit: 'Modifier',
162
162
  switchEditContent: 'Modifier la composition',
163
163
  share: 'Partager',
164
- delete: 'Supprimer'
164
+ delete: 'Supprimer',
165
+ notInDsAttr: 'Attribut indisponible'
165
166
  },
166
167
  manifest: {
167
168
  name: 'Nom',
@@ -380,7 +381,11 @@ export const frTranslations = {
380
381
  },
381
382
  geoAuth: {
382
383
  failure: 'Erreur geoserver'
384
+ },
385
+ grid: {
386
+ rows: 'Lignes',
387
+ columns: 'Colonnes'
383
388
  }
384
389
  }
385
390
  };
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsR0FBRyxFQUFFLGFBQWE7WUFDbEIsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsU0FBUyxFQUFFLHFCQUFxQjtTQUNqQztRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLDhCQUE4QjtTQUN0RDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx1Q0FBdUM7WUFDL0MsWUFBWSxFQUFFLDhDQUE4QztZQUM1RCxXQUFXLEVBQUUsc0RBQXNEO1lBQ25FLGFBQWEsRUFBRSwwREFBMEQ7WUFDekUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxhQUFhO2dCQUNwQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixnQkFBZ0IsRUFBRSx5QkFBeUI7YUFDNUM7WUFDRCxhQUFhLEVBQUUsc0NBQXNDO1lBQ3JELFlBQVksRUFBRSw4QkFBOEI7WUFDNUMsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx3Q0FBd0M7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLFlBQVksRUFBRSw2QkFBNkI7Z0JBQzNDLGFBQWEsRUFBRSxzQkFBc0I7Z0JBQ3JDLFVBQVUsRUFBRSx1QkFBdUI7Z0JBQ25DLFFBQVEsRUFBRSx5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O2dCQUNyQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsVUFBVSxFQUFFLFdBQVc7Z0JBQ3ZCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsU0FBUyxFQUFFLGdCQUFnQjthQUM1QjtZQUNELFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsWUFBWTtnQkFDeEIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsUUFBUSxFQUFFLFdBQVc7YUFDdEI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFlBQVksRUFBRSx1QkFBdUI7YUFDdEM7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxrQkFBa0I7U0FDNUI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHNlbGVjdDoge1xuICAgICAgbGFiZWw6ICdMaXN0ZSBkZXMgY2hvaXgnLFxuICAgICAgbG9hZGluZzogJ0NoYXJnZW1lbnQgZW4gY291cnMnXG4gICAgfSxcbiAgICBhYm91dDoge1xuICAgICAgZnJvbnQ6ICdMaWJyYWlyaWUgZnJvbnQnLFxuICAgICAgcmVmOiAnUsOpZsOpcmVudGllbCcsXG4gICAgICBkYXRhOiAnRG9ubsOpZXMnLFxuICAgICAgcmVwbGF5OiAnUmVqZXUnLFxuICAgICAgZXhlYzogJ0V4w6ljdXRpb24nLFxuICAgICAgdHJhbnNmbzogJ1RyYW5zZm9ybWF0aW9uJyxcbiAgICAgIG5vVmVyc2lvbjogJ1ZlcnNpb24gbm9uIHRyb3V2w6llJ1xuICAgIH0sXG4gICAgaGVhZGVyOiB7XG4gICAgICBub0N1cnJlbnRQcmVzZW50YXRpb246ICdQcsOpc2VudGF0aW9uIG5vbiBzYXV2ZWdhcmTDqWUnXG4gICAgfSxcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5vRGF0YTogJ0F1Y3VuZSBzb3VyY2UgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWUnLFxuICAgICAgdW5yZWNvZ25pemVkOiAnTGEgcmVzdGl0dXRpb24gZGUgdHlwZSB7e3R5cGV9fSBlc3QgaW5jb25udS4nLFxuICAgICAgYWRkZWRJblZpZXc6ICdMYSByZXN0aXR1dGlvbiBhIMOpdMOpIGFqb3V0w6llIHN1ciBsYSBwYWdlIG7CsHt7aW5kZXh9fScsXG4gICAgICB1cGRhdGVkSW5WaWV3OiAnTGEgcmVzdGl0dXRpb24gYSDDqXTDqSBtaXNlIMOgIGpvdXIgc3VyIGxhIHBhZ2UgbsKwe3tpbmRleH19JyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHRpdGxlOiAnUGFyYW3DqXRyYWdlJyxcbiAgICAgICAgY2hhbmdlVGl0bGU6ICdUaXRyZSBkdSB3aWRnZXQnLFxuICAgICAgICB2YWxpZGF0ZVVwZGF0aW5nOiAnVmFsaWRlciBsYSBtb2RpZmljYXRpb24nXG4gICAgICB9LFxuICAgICAgZGVmaW5lQ2F0YWxvZzogJ0TDqWZpbmlzc2V6IHZvdHJlIGVudHLDqWUgZGUgY2F0YWxvZ3VlJyxcbiAgICAgIGJ1dHRvbkNob2ljZTogJ1PDqWxlY3Rpb25uZXIgdW5lIHJlc3RpdHV0aW9uJyxcbiAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgcGFyYW1zOiAnUGFyYW3DqXRyZXIgbGEgdnVlIGRlIHZvdHJlIHJlc3RpdHV0aW9uJyxcbiAgICAgICAgcmVhZFNlYXJjaDogJ0Nob2lzaXIgbGVzIGRvbm7DqWVzJyxcbiAgICAgICAgZGVsZXRlV2lkZ2V0OiAnU3VwcHJpbWVyIHZvdHJlIHJlc3RpdHV0aW9uJyxcbiAgICAgICAgY2F0YWxvZ1dpZGdldDogJ0Fqb3V0ZXIgYXUgY2F0YWxvZ3VlJyxcbiAgICAgICAgY2hhbmdlU3BvdDogXCJDaGFuZ2VyIGQnZW1wbGFjZW1lbnRcIixcbiAgICAgICAgc3BvdE5hbWU6ICdFbXBsYWNlbWVudCBuwrB7e3BsYWNlfX0nXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIG5ldzogJ091dnJpciBkYW5zIHVuZSBub3V2ZWxsZSBwYWdlJyxcbiAgICAgICAgZXhpc3Rpbmc6ICdPdXZyaXIgZGFucyBsYSBwYWdlIG7CsHt7dGFyZ2V0SW5kZXh9fScsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICAgIG1heGltaXplOiAnTWF4aW1pc2VyJyxcbiAgICAgICAgbm9uZV9hdXRvOiAnSW5zw6lyZXogaWNpIHZvcyByZXN0aXR1dGlvbnMnLFxuICAgICAgICBub25lX21hbnVhbDogJ0dsaXNzZXIgLSBEw6lwb3NlcicsXG4gICAgICAgIGxvYWRpbmc6ICdDaGFyZ2VtZW50J1xuICAgICAgfSxcbiAgICAgIG5hbWVkUXVlcnk6IHtcbiAgICAgICAgZGVmYXVsdFJzOiAnUmVjaGVyY2hlIGNvdXJhbnRlJyxcbiAgICAgICAgcmVzdWx0c0FjY3VyYXRlOiAne3t0b3RhbH19JyxcbiAgICAgICAgcmVzdWx0c05vbkFjY3VyYXRlOiAne3tkaXNwbGF5ZWR9fSBzdXIgZW52aXJvbiB7e3RvdGFsfX0nXG4gICAgICB9LFxuICAgICAgbW9kYWxUaXRsZTogJ1ZvdWxlei12b3VzIGNvbmZpcm1lciA/JyxcbiAgICAgIGl0ZW1JZDogJ0lkJyxcbiAgICAgIGNsYXNzOiAnQ2xhc3NlJyxcbiAgICAgIGNvbG9yU2NoZW1lOiAnU2Now6ltYSBkZSBjb3VsZXVyJyxcbiAgICAgIGN1c3RvbTogJ1BlcnNvbmFsaXPDqSBuwrB7e2lkfX0nLFxuICAgICAgYWRkQ29sb3I6ICdBam91dGVyIHVuZSBjb3VsZXVyJyxcbiAgICAgIHJlbW92ZUNvbG9yOiAnU3VwcHJpbWVyIHVuZSBjb3VsZXVyJ1xuICAgIH0sXG4gICAgdmlldzoge1xuICAgICAgbmFtZTogJ1BhZ2UgbsKwe3tyYW5rfX0nXG4gICAgfSxcbiAgICB0b29sYm94OiB7XG4gICAgICBkZWZhdWx0U2l6ZTogJ1RhaWxsZSBkZSByZXN0aXR1dGlvbicsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICBuYW1lOiAnTm9tIGRlIGxhIHByw6lzZW50YXRpb24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIGRlIGxhIHByw6lzZW50YXRpb24nLFxuICAgICAgICBzYXZlZDogJ1Byw6lzZW50YXRpb24ge3t2aWV3SWR9fSBzYXV2ZWdhcmTDqWUnLFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ0VycmV1ciBpbmNvbm51ZScsXG4gICAgICAgICAgRk9SQklEREVOOiBcIlZvdXMgbifDqnRlcyBwYXMgbGUgcHJvcHJpw6l0YWlyZSBkZSBjZXR0ZSBwcsOpc2VudGF0aW9uIFwiLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnVW5lIHByw6lzZW50YXRpb24gYXZlYyBsZSBub20gXCJ7e25hbWV9fVwiIGV4aXN0ZSBkw6lqw6AsIHZldWlsbGV6IHPDqWxlY3Rpb25uZXIgdW4gYXV0cmUgbm9tLicsXG4gICAgICAgICAgU0FWRV9NRVRBREFUQTogJ1ZldWlsbGV6IHNhdXZlZ2FyZGVyIGxhIHByZXNlbnRhdGlvbiBhdmFudCBkZSBjaG9pc2lyIHVuZSB0aMOpbWF0aXF1ZS4nXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRlZDogJ1Byw6lzZW50YXRpb24ge3t2aWV3SWR9fSBtYXJxdcOpZSBwYXIgZMOpZmF1dCcsXG4gICAgICAgIHVuZGVmYXVsdGVkOiBcIkxhIHByw6lzZW50YXRpb24ge3t2aWV3SWR9fSBuJ2VzdCBwbHVzIG1hcnF1w6llIHBhciBkw6lmYXV0XCIsXG4gICAgICAgIHZhbGlkYXRlZDogJ1ZhbGlkZXInLFxuICAgICAgICBjaGVjazogJ0VucmVnaXN0cmVyJyxcbiAgICAgICAgY2xvc2U6ICdBbm51bGVyJyxcbiAgICAgICAgdmFsaWRhdGU6ICdWYWxpZGVyJ1xuICAgICAgfSxcbiAgICAgIGNhdGFsb2c6IHtcbiAgICAgICAgdGl0bGU6ICdQZXJzb25uYWxpc8OpcycsXG4gICAgICAgIGxhYmVsOiAnTm9tJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGljb246ICdJbWFnZScsXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lciBjZSBmaWx0cmUnLFxuICAgICAgICAgIHR5cGU6ICdGaWx0cmVyIHBhciB0eXBlJyxcbiAgICAgICAgICBuYW1lOiAnRmlsdHJlciBwYXIgbm9tJ1xuICAgICAgICB9LFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ0VycmV1ciBpbmNvbm51ZScsXG4gICAgICAgICAgTkFNRV9BTFJFQURZX1VTRUQ6ICdVbmUgcmVzdGl0dXRpb24gYXZlYyBsZSBub20gXCJ7e25hbWV9fVwiIGV4aXN0ZSBkw6lqw6AsIHZldWlsbGV6IHPDqWxlY3Rpb25uZXIgdW4gYXV0cmUgbm9tLidcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZWQ6ICdQcsOpc2VudGF0aW9uIHt7dmlld0lkfX0gc2F1dmVnYXJkw6llJ1xuICAgICAgfSxcbiAgICAgIGVkaXQ6ICdNb2RpZmllciBsYSBkaXNwb3NpdGlvbicsXG4gICAgICBlZGl0T2ZmOiAnVmlzdWFsaXNlciBsYSBkaXNwb3NpdGlvbicsXG4gICAgICBsYXVuY2g6ICdOb3V2ZWxsZSBwYWdlJyxcbiAgICAgIGxhdW5jaEluZGljYXRpb246ICdPdXZyaXIgY2V0dGUgcGFnZSBkYW5zIHVuJyxcbiAgICAgIGNob29zZUdyaWQ6ICdDaGFuZ2VyIGxhIGdyaWxsZScsXG4gICAgICBjbGVhcjogXCJWaWRlciBsJ2FmZmljaGFnZVwiLFxuICAgICAgcmVmcmVzaDogJ1JhZnJhaWNoaXIgbGVzIGRvbm7DqWVzJyxcbiAgICAgIGF1dG9tYXRlUmVmcmVzaDogXCJBdXRvbWF0aXNlciBsJ2FjdHVhbGlzYXRpb25cIixcbiAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICAgIGZpbHRlcjogJ0ZpbHRyZXInLFxuICAgICAgaGVhdG1hcDogJ0Zyw6lxdWVudGF0aW9uJyxcbiAgICAgIGJ1YmJsZW1hcDogJ0J1bGxlcycsXG4gICAgICBtYXJrZXJtYXA6ICdNYXJxdWV1cnMnLFxuICAgICAgc2ltcGxlbWFwOiAnQ2FydGUnLFxuICAgICAgbWFwOiAnQ2FydGUnLFxuICAgICAgdGFibGU6ICdUYWJsZWF1JyxcbiAgICAgIGRldGFpbDogJ0TDqXRhaWwnLFxuICAgICAgY2hhcnQ6ICdHcmFwaGlxdWUnLFxuICAgICAgcmVzdWx0U2V0OiAnUmVjaGVyY2hlcyBub21tw6llcycsXG4gICAgICByZW5hbWU6ICdFbnJlZ2lzdHJlciBzb3VzJyxcbiAgICAgIHJlc3RvcmU6ICdSZXN0YXVyZXIgbGVzIHBhZ2VzJyxcbiAgICAgIHNhdmU6ICdFbnJlZ2lzdHJlcicsXG4gICAgICBkcmFnOiAnUmVzdGl0dXRpb24uLi4nLFxuICAgICAgZHJhZ0luZGljYXRpb246ICdJbnPDqXJlciB1bicsXG4gICAgICBiYXJjaGFydDogJ0JhcnJlcycsXG4gICAgICBoaXN0b2dyYW06ICdIaXN0b2dyYW1tZScsXG4gICAgICBsaW5lY2hhcnQ6ICdDb3VyYmUnLFxuICAgICAgcG9pbnRjaGFydDogJ1BvaW50cycsXG4gICAgICBhcmVhY2hhcnQ6ICdBaXJlJyxcbiAgICAgIGFyY2NoYXJ0OiAnQ2lyY3VsYWlyZScsXG4gICAgICByYWRhcmNoYXJ0OiAnUmFkYXInLFxuICAgICAgY2lyY2xlY2hhcnQ6ICdQYXF1ZXRzIGRlIGNlcmNsZXMnLFxuICAgICAgaWZyYW1lOiAnQXBwbGljYXRpb24gZXh0ZXJuZScsXG4gICAgICB2ZWdhOiAnR3JhcGhpcXVlIGF2YW5jw6knLFxuICAgICAgZ3JhcGg6ICdSZWxhdGlvbnMnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgc3ViOiB7XG4gICAgICAgIG1hcDogJ0NhcnRvZ3JhcGhpZScsXG4gICAgICAgIGNoYXJ0OiAnR3JhcGhpcXVlJyxcbiAgICAgICAgb3RoZXI6ICdBdXRyZSdcbiAgICAgIH0sXG4gICAgICB0aWxlOiAnVHVpbGVzJyxcbiAgICAgIHRlbXBsYXRlOiAnVGVtcGxhdGUgSFRNTCcsXG4gICAgICBub3c6IFwiQXVqb3VyZCdodWlcIixcbiAgICAgIHNpbmNlX2RheTogJ0lsIHkgYSB7e2RheX19IGpvdXJ7e3BsdXJhbH19JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICAnMCc6ICdDb21wb3NpdGlvbiBsaWJyZScsXG4gICAgICAgICcwX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZW4gbW9kZSBsaWJyZSwgbGEgdGFpbGxlIGV0IGxlIHBvc2l0aW9ubmVtZW50IGRlcyByZXN0aXR1dGlvbnMgc29udCBlbnRpw6hyZW1lbnQgcGFyYW3DqXRyYWJsZXMgcGFyIGwndXRpbGlzYXRldXIuXCIsXG4gICAgICAgICcxJzogJ1BsZWluIMOpY3JhbicsXG4gICAgICAgICcxX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZOKAmXVuZSBzZXVsZSByZXN0aXR1dGlvbiBzdXIgbCdlbnNlbWJsZSBkZSBsJ8OpY3JhbiwgbGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8ydic6ICcxLzIgw6ljcmFuIHZlcnRpY2FsJyxcbiAgICAgICAgJzEvMnZfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAyIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBsJ8OpY3JhbiBkw6ljb3Vww6kgZW4gZGV1eCB6b25lcyB2ZXJ0aWNhbGVzLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvMmgnOiAnMS8yIMOpY3JhbiBob3Jpem9udGFsJyxcbiAgICAgICAgJzEvMmhfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAyIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiBkZXV4IHpvbmVzIGhvcml6b250YWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzN2JzogJzEvMyDDqWNyYW4gdmVydGljYWwnLFxuICAgICAgICAnMS8zdl9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDMgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIHRyb2lzIHpvbmVzIHZlcnRpY2FsZXMsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8zaCc6ICcxLzMgw6ljcmFuIGhvcml6b250YWwnLFxuICAgICAgICAnMS8zaF9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDMgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIHRyb2lzIHpvbmVzIGhvcml6b250YWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzQnOiAnMS80IMOpY3JhbicsXG4gICAgICAgICcxLzRfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSA0IHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiBxdWF0cmUgem9uZXMgLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIlxuICAgICAgfSxcbiAgICAgIHN3aXRjaEVkaXQ6ICdNb2RpZmllcicsXG4gICAgICBzd2l0Y2hFZGl0Q29udGVudDogJ01vZGlmaWVyIGxhIGNvbXBvc2l0aW9uJyxcbiAgICAgIHNoYXJlOiAnUGFydGFnZXInLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJ1xuICAgIH0sXG4gICAgbWFuaWZlc3Q6IHtcbiAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBjcmVhdGlvbjogJ0RhdGUgZGUgY3LDqWF0aW9uJyxcbiAgICAgIG1vZGlmaWNhdGlvbjogJ0RhdGUgZGUgbW9kaWZpY2F0aW9uJyxcbiAgICAgIGFjdGlvbnM6ICdBY3Rpb25zJyxcbiAgICAgIGltcG9ydDogJ0ltcG9ydGVyJyxcbiAgICAgIGltcG9ydEFsdDogJ0ltcG9ydGVyIHVuZSBwcsOpc2VudGF0aW9uJyxcbiAgICAgIHRpdGxlOiAnUHLDqXNlbnRhdGlvbnMnLFxuICAgICAgZ2V0OiB7XG4gICAgICAgIGVycm9yRnJvbnQ6ICdFcnJldXIgY2xpZW50IDoge3ttc2d9fScsXG4gICAgICAgIGVycm9yQmFjazogJ0VycmV1ciBzZXJ2ZXVyIGRlIGNvZGUgW3t7Y29kZX19XSdcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiAnRMOpZmluaXIgcGFyIGTDqWZhdXQnLFxuICAgICAgZG93bmxvYWQ6ICdUw6lsw6ljaGFyZ2VyJyxcbiAgICAgIGxvYWQ6ICdDaGFyZ2VyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICBkZWxldGVFcnJvcjpcbiAgICAgICAgXCJSZWNoZXJjaGUgdXRpbGlzw6llIGRhbnMgdW5lIG91IHBsdXNpZXVycyByZXN0aXR1dGlvbihzKSwgdmV1aWxsZXogc3VwcHJpbWVyIGxlcyB1dGlsaXNhdGlvbnMgZCdhYm9yZFwiXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGRhdGU6ICdkZC9NTS95eXl5JyxcbiAgICAgIGRhdGV0aW1lOiAnZGQvTU0veXl5eSBISDptbTpzcycsXG4gICAgICBkZWNpbWFsOiAnLCcsXG4gICAgICB0aG91c2FuZHM6ICcgJ1xuICAgIH0sXG4gICAgY29udGV4dDoge1xuICAgICAgYWRkOiAnQWpvdXRlciDDoCBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIHJlbW92ZTogJ0VubGV2ZXIgZGUgbGEgc8OpbGVjdGlvbicsXG4gICAgICBsaW5rOiAnTGllciDDoCBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIGludmVydDogJ0ludmVyc2VyIGxhIHPDqWxlY3Rpb24nLFxuICAgICAgcHJveGltaXR5OiAnUmVjaGVyY2hlciBsZXMgb2JqZXRzIGxpw6lzJyxcbiAgICAgIGV4cGxvcmU6ICdPdXZyaXIgbGEgcmVzdGl0dXRpb24gUmVsYXRpb25zJyxcbiAgICAgIGRldGFpbDogJ091dnJpciBsYSByZXN0aXR1dGlvbiBEw6l0YWlsJyxcbiAgICAgIGZseWluZ0RldGFpbDogXCJDb25zdWx0ZXIgbCdvYmpldFwiLFxuICAgICAgYWRkcmVzc0Zyb21Mb2M6IFwiT2J0ZW5pciBsJ2FkcmVzc2VcIixcbiAgICAgIGVycm9yU2VhcmNoQWRkcmVzczogJ0FkcmVzc2UgaW50cm91dmFibGUnLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBjcmVhdGU6ICdDcsOpZXInLFxuICAgICAgY3JlYXRlT2JqZWN0OiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgb2JqZWN0OiAnQ3LDqWVyIHVuIG9iamV0JyxcbiAgICAgICAgICBsaW5rOiAnQ3LDqWVyIHVuZSByZWxhdGlvbicsXG4gICAgICAgICAgaW52ZXJzaW9uOiAnSW52ZXJzZXIgbGEgcmVsYXRpb24nLFxuICAgICAgICAgIGxpbmtlZE9iamVjdDogJ0Nyw6llciB1biBvYmpldCBsacOpJ1xuICAgICAgICB9LFxuICAgICAgICBjbGFzczogXCJDbGFzc2UgZGUgbCdvYmpldFwiLFxuICAgICAgICBsaW5rOiAnUmVsYXRpb24gYXZlYyBsZSBub3V2ZWwgb2JqZXQnLFxuICAgICAgICBjcmVhdGVkOiBcIkwnb2JqZXQgYSDDqXTDqSBjcsOpw6lcIixcbiAgICAgICAgZGV0YWlsczogJ1ZvaXIgbGUgZMOpdGFpbCcsXG4gICAgICAgIGFkZE11bHRpRmllbGQ6ICdBam91dGVyIHVuZSB2YWxldXIgZGUge3tuYW1lfX0nXG4gICAgICB9XG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICAgIGNsb3NlUGFuZWw6ICdGZXJtZXIgbGUgcGFubmVhdScsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgZWRpdDogJ0VkaXRlcicsXG4gICAgICBlZGl0UHJvZmlsOiAnRWRpdGVyIGxlIHByb2ZpbCcsXG4gICAgICBjaG9pY2U6ICdDaG9pc2lyIHVuIC4uLi4nLFxuICAgICAgY2hvaWNlSW5MaXN0OiAnQ2hvaXNpciB1biDDqWzDqW1lbnQgZGFucyBsYSBsaXN0ZScsXG4gICAgICB0ZXh0OiAnUmVtcGxpc3NlciBsZSBjaGFtcCcsXG4gICAgICBzb3J0YWJsZUNvbHVtbkhlYWRlcjogXCJVdGlsaXNleiBsZXMgYm91dG9ucyBkJ2VuLXTDqnRlIGRlIGNvbG9ubmUgcG91ciB0cmllci5cIixcbiAgICAgIHZpZXdEZXRhaWxzOiAnVm9pciBsZXMgZMOpdGFpbHMnLFxuICAgICAgc2VsZWN0RGF0ZTogJ0Nob2lzaXIgdW5lIGRhdGUnLFxuICAgICAgb3BlbnNJbk5ld1RhYjogXCJTJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlXCIsXG4gICAgICBza2lwTGluazogJ0FsbGVyIGF1IGNvbnRlbnUnLFxuICAgICAgc2VsZWN0UGljdHVyZTogJ1PDqWxlY3Rpb25uZXIgdW5lIGltYWdlJyxcbiAgICAgIG1vdmVEb3duOiAnRMOpcGxhY2VyIHZlcnMgbGUgYmFzJyxcbiAgICAgIG1vdmVVcDogJ0TDqXBsYWNlciB2ZXJzIGxlIGhhdXQnLFxuICAgICAgZXhwb3J0QXNGb3JtYXQ6ICdFeHBvcnRlciBhdSBmb3JtYXQnLFxuICAgICAgb3Blbk1lbnVXaWRnZXQ6ICdNZW51IGRlIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXInLFxuICAgICAgdXBsb2FkOiAnQWpvdXRlciB1bmUgaW1hZ2UnLFxuICAgICAgbmV4dDogJ1N1aXZhbnQnLFxuICAgICAgYmFjazogJ1JldG91cicsXG4gICAgICBmaWx0ZXJCeVR5cGU6ICdGaWx0cmVyIHBhciB0eXBlJyxcbiAgICAgIGVkaXRNZXRhZGF0YTogJ01vZGlmaWVyIGxhIG3DqXRhZG9ubsOpZScsXG4gICAgICBhZGRNZXRhZGF0YTogJ0Fqb3V0ZXIgbGEgbcOpdGFkb25uw6llJ1xuICAgIH0sXG4gICAgc25hY2s6IHtcbiAgICAgIGRlZmF1bHQ6ICdWZWdhIGEgcmVuY29udHLDqSB1bmUgZXJyZXVyIGVuIHV0aWxpc2FudCB2b3MgZG9ubsOpZXMgZXQgcGFyYW3DqXRyYWdlLicsXG4gICAgICBtaXNzaW5nUGFyZW50OiBcIlVuIG5vZXVkIGVzdCBtYW5xdWFudCBkYW5zIGwnYXJicmUgZGUgcmVwcsOpc2VudGF0aW9uLiBNZXJjaSBkZSBjb3JyaWdlciB2b3MgZG9ubsOpZXMuXCIsXG4gICAgICBtaXNzaW5nVmFsdWU6IFwiVW4gaXRlbSDDoCBhZmZpY2hlciBuZSBwb3Nzw6hkZSBwYXMgbCdhdHRyaWJ1dCDDoCBhZmZpY2hlci4gTWVyY2kgZGUgY29ycmlnZXIgdm9zIGRvbm7DqWVzLlwiLFxuICAgICAgZW1wdHlWYWx1ZXM6IFwiTGVzIHZhbGV1cnMgZGUgbCdhdHRyaWJ1dCDDoCBhZmZpY2hlciBuZSBwZXV2ZW50IMOqdHJlIHRvdXRlcyBudWxsZXMuIE1lcmNpIGRlIGNvcnJpZ2VyIHZvcyBkb25uw6llcy5cIixcbiAgICAgIHBhZ2VzQ2hhbmdlZDogJ0F0dGVudGlvbiwgbGUgbm9tYnJlIGRlIHBhZ2VzIGRlIHZvdHJlIHByw6lzZW50YXRpb24gYSBjaGFuZ8OpLCBxdWUgc291aGFpdGV6LXZvdXMgZmFpcmUgPycsXG4gICAgICBpbWFnZU5hbWVBbHJlYWR5VXNlZDogJ0xlIG5vbSBkZSBjZXR0ZSBpbWFnZSBlc3QgZMOpasOgIHV0aWxpc8OpJ1xuICAgIH0sXG4gICAgdGhlbWU6IHtcbiAgICAgIGVkaXRJbnB1dDoge1xuICAgICAgICB0b2dnbGU6ICdFZGl0ZXInXG4gICAgICB9LFxuICAgICAgcHJldmlvdXNNb250aDogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICAgbmV4dE1vbnRoOiAnTW9pcyBzdWl2YW50JyxcbiAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgIDA6ICdMdW5kaScsXG4gICAgICAgIDE6ICdNYXJkaScsXG4gICAgICAgIDI6ICdNZXJjcmVkaScsXG4gICAgICAgIDM6ICdKZXVkaScsXG4gICAgICAgIDQ6ICdWZW5kcmVkaScsXG4gICAgICAgIDU6ICdTYW1lZGknLFxuICAgICAgICA2OiAnRGltYW5jaGUnXG4gICAgICB9LFxuICAgICAgc2hvcnRXZWVrZGF5czoge1xuICAgICAgICAwOiAnTHUnLFxuICAgICAgICAxOiAnTWEnLFxuICAgICAgICAyOiAnTWUnLFxuICAgICAgICAzOiAnSmUnLFxuICAgICAgICA0OiAnVmUnLFxuICAgICAgICA1OiAnU2EnLFxuICAgICAgICA2OiAnRGknXG4gICAgICB9LFxuICAgICAgbW9udGhzOiB7XG4gICAgICAgIDA6ICdKYW52aWVyJyxcbiAgICAgICAgMTogJ0bDqXZyaWVyJyxcbiAgICAgICAgMjogJ01hcnMnLFxuICAgICAgICAzOiAnQXZyaWwnLFxuICAgICAgICA0OiAnTWFpJyxcbiAgICAgICAgNTogJ0p1aW4nLFxuICAgICAgICA2OiAnSnVpbGxldCcsXG4gICAgICAgIDc6ICdBb8O7dCcsXG4gICAgICAgIDg6ICdTZXB0ZW1icmUnLFxuICAgICAgICA5OiAnT2N0b2JyZScsXG4gICAgICAgIDEwOiAnTm92ZW1icmUnLFxuICAgICAgICAxMTogJ0TDqWNlbWJyZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIHNoYXJlOiB7XG4gICAgICBwcml2YXRlOiAnUHJpdsOpJyxcbiAgICAgIHB1YmxpYzogJ1B1YmxpYycsXG4gICAgICByZXN0cmljdGVkOiAnUmVzdHJlaW50JyxcbiAgICAgIHR5cGU6ICdWaXNpYmlsaXTDqScsXG4gICAgICB1c2VyczogJ1V0aWxpc2F0ZXVycyBhdXRvcmlzw6lzJ1xuICAgIH0sXG4gICAgaG9tZXBhZ2U6IHtcbiAgICAgIG1lbnU6IHtcbiAgICAgICAgbW9kZWw6ICdNb2TDqGxlIGRlIGRvbm7DqWVzJyxcbiAgICAgICAgZGF0YTogJ0FjY8OocyBhdXggZG9ubsOpZXMnXG4gICAgICB9XG4gICAgfSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgdmlldzogJ0NvbnN1bHRlciBsZXMgbWV0YWRvbm7DqWVzJ1xuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgc2VhcmNoRGF0YTogJ1JlY2hlcmNoZXogdW5lIGRvbm7DqWUnLFxuICAgICAgY2hpcHNTZWxlY3Rvcjoge1xuICAgICAgICBkYXRhc291cmNlOiB7XG4gICAgICAgICAgc2VsZWN0OiAnU8OpbGVjdGlvbm5lciB1bmUgb3UgcGx1c2lldXJzIHNvdXJjZShzKSBkZSBkb25uw6llcyA6JyxcbiAgICAgICAgICBzZWxlY3Rpb246ICdTb3VyY2UocykgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWVzOicsXG4gICAgICAgICAgc2VsZWN0SXRlbTogJ1PDqWxlY3Rpb25uZXIgbGEgc291cmNlIGRlIGRvbm7DqWVzJyxcbiAgICAgICAgICB1bnNlbGVjdEl0ZW06ICdEw6lzw6lsZWN0aW9ubmVyIGxhIHNvdXJjZSBkZSBkb25uw6llcycsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdBdWN1bmUgc291cmNlIGRlIGRvbm7DqWVzIHPDqWxlY3Rpb25uw6llJ1xuICAgICAgICB9LFxuICAgICAgICBzaGFyZToge1xuICAgICAgICAgIHNlbGVjdDogXCJTw6lsZWN0aW9ubmVyIHVuIG91IHBsdXNpZXVycyBncm91cGUocykgZCd1dGlsaXNhdGV1cnMgOlwiLFxuICAgICAgICAgIHNlbGVjdGlvbjogXCJHcm91cGUocykgZCd1dGlsaXNhdGV1cnMgc8OpbGVjdGlvbm7DqXM6XCIsXG4gICAgICAgICAgc2VsZWN0SXRlbTogXCJTw6lsZWN0aW9ubmVyIGxlIGdyb3VwZSBkJ3V0aWxpc2F0ZXVyc1wiLFxuICAgICAgICAgIHVuc2VsZWN0SXRlbTogXCJEw6lzw6lsZWN0aW9ubmVyIGxlIGdyb3VwZSBkJ3V0aWxpc2F0ZXVyc1wiLFxuICAgICAgICAgIG5vSXRlbVNlbGVjdGVkOiBcIkF1Y3VuIGdyb3VwZSBkJ3V0aWxpc2F0ZXVycyBzw6lsZWN0aW9ubsOpXCIsXG4gICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICBBTEw6ICdQdWJsaXF1ZScsXG4gICAgICAgICAgICBBVVRIRU5USUNBVEVEOiAnTGVzIHV0aWxpc2F0ZXVycyBjb25uZWN0w6lzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3JzOiB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuIFZldWlsbGV6IHbDqXJpZmlleiBsZXMgaW5mb3JtYXRpb25zIG91IGNvbnRhY3RlciB2b3RyZSBhZG1pbmlzdHJhdGV1ciBzaSBsZSBwcm9ibMOobWUgcGVyc2lzdGUnLFxuICAgICAgY29kZXM6IHtcbiAgICAgICAgMDogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGF1IG5pdmVhdSBuYXZpZ2F0ZXVyLiBDZWxhIHBldXQtw6p0cmUgdW5lIGVycmV1ciBDT1JTLCBkZSByw6lzZWF1IC4uLiBMYSByZXNzb3VyY2UgbmUgcGV1dCBwYXMgw6p0cmUgcsOpY3Vww6lyw6llLicsXG4gICAgICAgIDQwMDogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlLicsXG4gICAgICAgIDQwMTogJ1ZvdHJlIHNlc3Npb24gZXN0IGludmFsaWRlLiBFc3NheWV6IGRlIHZvdXMgcmVjb25uZWN0ZXIgIScsXG4gICAgICAgIDQwMzogXCJWb3VzIG4nYXZleiBwYXMgbGVzIGRyb2l0cyBwb3VyIGNvbnN1bHRlciBjZXR0ZSByZXNzb3VyY2VcIixcbiAgICAgICAgNDA0OiBcIkxhIHJlc3NvdXJjZSBkZW1hbmTDqWUgbidleGlzdGUgcGFzXCIsXG4gICAgICAgIDQwOTogJ1VuZSByZXNzb3VyY2Ugc2ltaWxhaXJlIGV4aXN0ZSBkw6lqw6AnLFxuICAgICAgICA1MDA6ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4nLFxuICAgICAgICA1MDM6ICdMZSBzZXJ2aWNlIGVzdCBhY3R1ZWxsZW1lbnQgaW5kaXNwb25pYmxlLiBSw6llc3NheWVyIHVsdMOpcmlldXJlbWVudCAhJ1xuICAgICAgfVxuICAgIH0sXG4gICAgZmlsdGVyczoge1xuICAgICAgbGFiZWw6ICdQYXJhbcOpdHJlciBsZXMgZmlsdHJlcycsXG4gICAgICBub0F0dHJpYnV0ZXM6IFwiTGEgcHLDqXNlbnRhdGlvbiBlbiBjb3VycyBuZSBkaXNwb3NlIGQnYXVjdW5lIGF0dHJpYnV0IHN1ciBsZXF1ZWwgZmlsdHJlclwiLFxuICAgICAgbm9GaWx0ZXJzOiBcIlZvdXMgbidhdmV6IHBhcyBlbmNvcmUgcGFyYW3DqXRyw6kgZGUgZmlsdHJlLlwiLFxuICAgICAgY2xlYXI6ICdFZmZhY2VyJyxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0czogJyxcbiAgICAgICAgYWRkOiAnQ3LDqWVyIHVuIGZpbHRyZScsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICAgIG1vZGlmeTogJ01vZGlmaWVyJ1xuICAgICAgfSxcbiAgICAgIGNyZWF0aW9uOiB7XG4gICAgICAgIGNyZWF0ZTogJ0Nyw6llciB1biBmaWx0cmUnLFxuICAgICAgICB1cGRhdGU6ICdNb2RpZmllciB1biBmaWx0cmUnLFxuICAgICAgICBuYW1lOiAnTm9tIGR1IGZpbHRyZScsXG4gICAgICAgIHR5cGU6ICdUeXBlIGR1IGZpbHRyZScsXG4gICAgICAgIGZpbHRlcjogJ0ZpbHRyZScsXG4gICAgICAgIGF0dHJpYnV0ZXM6ICdBdHRyaWJ1dHMnLFxuICAgICAgICB2YWx1ZTogJ1ZhbGV1cicsXG4gICAgICAgIHZhbHVlczogJ1ZhbGV1cnMnLFxuICAgICAgICB2YWxpZGF0ZTogJ1ZhbGlkZXInLFxuICAgICAgICBsaW1pdDogJ05vbWJyZSBkZSBzdWdnZXN0aW9ucycsXG4gICAgICAgIGRhdGVSYW5nZTogJ1BsYWdlIGRlIGRhdGVzJ1xuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZGF0YXNvdXJjZTogJ0RhdGFzb3VyY2UnLFxuICAgICAgICBjbGFzczogJ0NsYXNzZScsXG4gICAgICAgIG9wZXJhdG9yOiAnT3DDqXJhdGV1cidcbiAgICAgIH0sXG4gICAgICB0eXBlczoge1xuICAgICAgICB0ZXh0OiAnVGV4dGUnLFxuICAgICAgICBkYXRlOiAnRGF0ZScsXG4gICAgICAgIGxpc3Q6ICdMaXN0ZScsXG4gICAgICAgIG51bWJlcjogJ051bcOpcmlxdWUnLFxuICAgICAgICBhdXRvY29tcGxldGU6ICdMaXN0ZSBhdmVjIHN1Z2dlc3Rpb24nXG4gICAgICB9XG4gICAgfSxcbiAgICBnZW9BdXRoOiB7XG4gICAgICBmYWlsdXJlOiAnRXJyZXVyIGdlb3NlcnZlcidcbiAgICB9XG4gIH1cbn07XG4iXX0=
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsR0FBRyxFQUFFLGFBQWE7WUFDbEIsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsU0FBUyxFQUFFLHFCQUFxQjtTQUNqQztRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLDhCQUE4QjtTQUN0RDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx1Q0FBdUM7WUFDL0MsWUFBWSxFQUFFLDhDQUE4QztZQUM1RCxXQUFXLEVBQUUsc0RBQXNEO1lBQ25FLGFBQWEsRUFBRSwwREFBMEQ7WUFDekUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxhQUFhO2dCQUNwQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixnQkFBZ0IsRUFBRSx5QkFBeUI7YUFDNUM7WUFDRCxhQUFhLEVBQUUsc0NBQXNDO1lBQ3JELFlBQVksRUFBRSw4QkFBOEI7WUFDNUMsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSx3Q0FBd0M7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLFlBQVksRUFBRSw2QkFBNkI7Z0JBQzNDLGFBQWEsRUFBRSxzQkFBc0I7Z0JBQ3JDLFVBQVUsRUFBRSx1QkFBdUI7Z0JBQ25DLFFBQVEsRUFBRSx5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QjtnQkFDNUIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixVQUFVLEVBQUUsV0FBVztnQkFDdkIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixTQUFTLEVBQUUsZ0JBQWdCO2FBQzVCO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixLQUFLLEVBQUUsUUFBUTtnQkFDZixRQUFRLEVBQUUsV0FBVzthQUN0QjtZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUUsV0FBVztnQkFDbkIsWUFBWSxFQUFFLHVCQUF1QjthQUN0QztTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLGtCQUFrQjtTQUM1QjtRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLFVBQVU7U0FDcEI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHNlbGVjdDoge1xuICAgICAgbGFiZWw6ICdMaXN0ZSBkZXMgY2hvaXgnLFxuICAgICAgbG9hZGluZzogJ0NoYXJnZW1lbnQgZW4gY291cnMnXG4gICAgfSxcbiAgICBhYm91dDoge1xuICAgICAgZnJvbnQ6ICdMaWJyYWlyaWUgZnJvbnQnLFxuICAgICAgcmVmOiAnUsOpZsOpcmVudGllbCcsXG4gICAgICBkYXRhOiAnRG9ubsOpZXMnLFxuICAgICAgcmVwbGF5OiAnUmVqZXUnLFxuICAgICAgZXhlYzogJ0V4w6ljdXRpb24nLFxuICAgICAgdHJhbnNmbzogJ1RyYW5zZm9ybWF0aW9uJyxcbiAgICAgIG5vVmVyc2lvbjogJ1ZlcnNpb24gbm9uIHRyb3V2w6llJ1xuICAgIH0sXG4gICAgaGVhZGVyOiB7XG4gICAgICBub0N1cnJlbnRQcmVzZW50YXRpb246ICdQcsOpc2VudGF0aW9uIG5vbiBzYXV2ZWdhcmTDqWUnXG4gICAgfSxcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5vRGF0YTogJ0F1Y3VuZSBzb3VyY2UgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWUnLFxuICAgICAgdW5yZWNvZ25pemVkOiAnTGEgcmVzdGl0dXRpb24gZGUgdHlwZSB7e3R5cGV9fSBlc3QgaW5jb25udS4nLFxuICAgICAgYWRkZWRJblZpZXc6ICdMYSByZXN0aXR1dGlvbiBhIMOpdMOpIGFqb3V0w6llIHN1ciBsYSBwYWdlIG7CsHt7aW5kZXh9fScsXG4gICAgICB1cGRhdGVkSW5WaWV3OiAnTGEgcmVzdGl0dXRpb24gYSDDqXTDqSBtaXNlIMOgIGpvdXIgc3VyIGxhIHBhZ2UgbsKwe3tpbmRleH19JyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHRpdGxlOiAnUGFyYW3DqXRyYWdlJyxcbiAgICAgICAgY2hhbmdlVGl0bGU6ICdUaXRyZSBkdSB3aWRnZXQnLFxuICAgICAgICB2YWxpZGF0ZVVwZGF0aW5nOiAnVmFsaWRlciBsYSBtb2RpZmljYXRpb24nXG4gICAgICB9LFxuICAgICAgZGVmaW5lQ2F0YWxvZzogJ0TDqWZpbmlzc2V6IHZvdHJlIGVudHLDqWUgZGUgY2F0YWxvZ3VlJyxcbiAgICAgIGJ1dHRvbkNob2ljZTogJ1PDqWxlY3Rpb25uZXIgdW5lIHJlc3RpdHV0aW9uJyxcbiAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgcGFyYW1zOiAnUGFyYW3DqXRyZXIgbGEgdnVlIGRlIHZvdHJlIHJlc3RpdHV0aW9uJyxcbiAgICAgICAgcmVhZFNlYXJjaDogJ0Nob2lzaXIgbGVzIGRvbm7DqWVzJyxcbiAgICAgICAgZGVsZXRlV2lkZ2V0OiAnU3VwcHJpbWVyIHZvdHJlIHJlc3RpdHV0aW9uJyxcbiAgICAgICAgY2F0YWxvZ1dpZGdldDogJ0Fqb3V0ZXIgYXUgY2F0YWxvZ3VlJyxcbiAgICAgICAgY2hhbmdlU3BvdDogXCJDaGFuZ2VyIGQnZW1wbGFjZW1lbnRcIixcbiAgICAgICAgc3BvdE5hbWU6ICdFbXBsYWNlbWVudCBuwrB7e3BsYWNlfX0nXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIG5ldzogJ091dnJpciBkYW5zIHVuZSBub3V2ZWxsZSBwYWdlJyxcbiAgICAgICAgZXhpc3Rpbmc6ICdPdXZyaXIgZGFucyBsYSBwYWdlIG7CsHt7dGFyZ2V0SW5kZXh9fScsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICAgIG1heGltaXplOiAnTWF4aW1pc2VyJyxcbiAgICAgICAgbm9uZV9hdXRvOiAnSW5zw6lyZXogaWNpIHZvcyByZXN0aXR1dGlvbnMnLFxuICAgICAgICBub25lX21hbnVhbDogJ0dsaXNzZXIgLSBEw6lwb3NlcicsXG4gICAgICAgIGxvYWRpbmc6ICdDaGFyZ2VtZW50J1xuICAgICAgfSxcbiAgICAgIG5hbWVkUXVlcnk6IHtcbiAgICAgICAgZGVmYXVsdFJzOiAnUmVjaGVyY2hlIGNvdXJhbnRlJyxcbiAgICAgICAgcmVzdWx0c0FjY3VyYXRlOiAne3t0b3RhbH19JyxcbiAgICAgICAgcmVzdWx0c05vbkFjY3VyYXRlOiAne3tkaXNwbGF5ZWR9fSBzdXIgZW52aXJvbiB7e3RvdGFsfX0nXG4gICAgICB9LFxuICAgICAgbW9kYWxUaXRsZTogJ1ZvdWxlei12b3VzIGNvbmZpcm1lciA/JyxcbiAgICAgIGl0ZW1JZDogJ0lkJyxcbiAgICAgIGNsYXNzOiAnQ2xhc3NlJyxcbiAgICAgIGNvbG9yU2NoZW1lOiAnU2Now6ltYSBkZSBjb3VsZXVyJyxcbiAgICAgIGN1c3RvbTogJ1BlcnNvbmFsaXPDqSBuwrB7e2lkfX0nLFxuICAgICAgYWRkQ29sb3I6ICdBam91dGVyIHVuZSBjb3VsZXVyJyxcbiAgICAgIHJlbW92ZUNvbG9yOiAnU3VwcHJpbWVyIHVuZSBjb3VsZXVyJ1xuICAgIH0sXG4gICAgdmlldzoge1xuICAgICAgbmFtZTogJ1BhZ2UgbsKwe3tyYW5rfX0nXG4gICAgfSxcbiAgICB0b29sYm94OiB7XG4gICAgICBkZWZhdWx0U2l6ZTogJ1RhaWxsZSBkZSByZXN0aXR1dGlvbicsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICBuYW1lOiAnTm9tIGRlIGxhIHByw6lzZW50YXRpb24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIGRlIGxhIHByw6lzZW50YXRpb24nLFxuICAgICAgICBzYXZlZDogJ1Byw6lzZW50YXRpb24ge3t2aWV3SWR9fSBzYXV2ZWdhcmTDqWUnLFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ0VycmV1ciBpbmNvbm51ZScsXG4gICAgICAgICAgRk9SQklEREVOOiBcIlZvdXMgbifDqnRlcyBwYXMgbGUgcHJvcHJpw6l0YWlyZSBkZSBjZXR0ZSBwcsOpc2VudGF0aW9uIFwiLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnVW5lIHByw6lzZW50YXRpb24gYXZlYyBsZSBub20gXCJ7e25hbWV9fVwiIGV4aXN0ZSBkw6lqw6AsIHZldWlsbGV6IHPDqWxlY3Rpb25uZXIgdW4gYXV0cmUgbm9tLicsXG4gICAgICAgICAgU0FWRV9NRVRBREFUQTogJ1ZldWlsbGV6IHNhdXZlZ2FyZGVyIGxhIHByZXNlbnRhdGlvbiBhdmFudCBkZSBjaG9pc2lyIHVuZSB0aMOpbWF0aXF1ZS4nXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRlZDogJ1Byw6lzZW50YXRpb24ge3t2aWV3SWR9fSBtYXJxdcOpZSBwYXIgZMOpZmF1dCcsXG4gICAgICAgIHVuZGVmYXVsdGVkOiBcIkxhIHByw6lzZW50YXRpb24ge3t2aWV3SWR9fSBuJ2VzdCBwbHVzIG1hcnF1w6llIHBhciBkw6lmYXV0XCIsXG4gICAgICAgIHZhbGlkYXRlZDogJ1ZhbGlkZXInLFxuICAgICAgICBjaGVjazogJ0VucmVnaXN0cmVyJyxcbiAgICAgICAgY2xvc2U6ICdBbm51bGVyJyxcbiAgICAgICAgdmFsaWRhdGU6ICdWYWxpZGVyJ1xuICAgICAgfSxcbiAgICAgIGNhdGFsb2c6IHtcbiAgICAgICAgdGl0bGU6ICdQZXJzb25uYWxpc8OpcycsXG4gICAgICAgIGxhYmVsOiAnTm9tJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGljb246ICdJbWFnZScsXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lciBjZSBmaWx0cmUnLFxuICAgICAgICAgIHR5cGU6ICdGaWx0cmVyIHBhciB0eXBlJyxcbiAgICAgICAgICBuYW1lOiAnRmlsdHJlciBwYXIgbm9tJ1xuICAgICAgICB9LFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ0VycmV1ciBpbmNvbm51ZScsXG4gICAgICAgICAgTkFNRV9BTFJFQURZX1VTRUQ6ICdVbmUgcmVzdGl0dXRpb24gYXZlYyBsZSBub20gXCJ7e25hbWV9fVwiIGV4aXN0ZSBkw6lqw6AsIHZldWlsbGV6IHPDqWxlY3Rpb25uZXIgdW4gYXV0cmUgbm9tLidcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZWQ6ICdQcsOpc2VudGF0aW9uIHt7dmlld0lkfX0gc2F1dmVnYXJkw6llJ1xuICAgICAgfSxcbiAgICAgIGVkaXQ6ICdNb2RpZmllciBsYSBkaXNwb3NpdGlvbicsXG4gICAgICBlZGl0T2ZmOiAnVmlzdWFsaXNlciBsYSBkaXNwb3NpdGlvbicsXG4gICAgICBsYXVuY2g6ICdOb3V2ZWxsZSBwYWdlJyxcbiAgICAgIGxhdW5jaEluZGljYXRpb246ICdPdXZyaXIgY2V0dGUgcGFnZSBkYW5zIHVuJyxcbiAgICAgIGNob29zZUdyaWQ6ICdDaGFuZ2VyIGxhIGdyaWxsZScsXG4gICAgICBjbGVhcjogXCJWaWRlciBsJ2FmZmljaGFnZVwiLFxuICAgICAgcmVmcmVzaDogJ1JhZnJhaWNoaXIgbGVzIGRvbm7DqWVzJyxcbiAgICAgIGF1dG9tYXRlUmVmcmVzaDogXCJBdXRvbWF0aXNlciBsJ2FjdHVhbGlzYXRpb25cIixcbiAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICAgIGZpbHRlcjogJ0ZpbHRyZXInLFxuICAgICAgaGVhdG1hcDogJ0Zyw6lxdWVudGF0aW9uJyxcbiAgICAgIGJ1YmJsZW1hcDogJ0J1bGxlcycsXG4gICAgICBtYXJrZXJtYXA6ICdNYXJxdWV1cnMnLFxuICAgICAgc2ltcGxlbWFwOiAnQ2FydGUnLFxuICAgICAgbWFwOiAnQ2FydGUnLFxuICAgICAgdGFibGU6ICdUYWJsZWF1JyxcbiAgICAgIGRldGFpbDogJ0TDqXRhaWwnLFxuICAgICAgY2hhcnQ6ICdHcmFwaGlxdWUnLFxuICAgICAgcmVzdWx0U2V0OiAnUmVjaGVyY2hlcyBub21tw6llcycsXG4gICAgICByZW5hbWU6ICdFbnJlZ2lzdHJlciBzb3VzJyxcbiAgICAgIHJlc3RvcmU6ICdSZXN0YXVyZXIgbGVzIHBhZ2VzJyxcbiAgICAgIHNhdmU6ICdFbnJlZ2lzdHJlcicsXG4gICAgICBkcmFnOiAnUmVzdGl0dXRpb24uLi4nLFxuICAgICAgZHJhZ0luZGljYXRpb246ICdJbnPDqXJlciB1bicsXG4gICAgICBiYXJjaGFydDogJ0JhcnJlcycsXG4gICAgICBoaXN0b2dyYW06ICdIaXN0b2dyYW1tZScsXG4gICAgICBsaW5lY2hhcnQ6ICdDb3VyYmUnLFxuICAgICAgcG9pbnRjaGFydDogJ1BvaW50cycsXG4gICAgICBhcmVhY2hhcnQ6ICdBaXJlJyxcbiAgICAgIGFyY2NoYXJ0OiAnQ2lyY3VsYWlyZScsXG4gICAgICByYWRhcmNoYXJ0OiAnUmFkYXInLFxuICAgICAgY2lyY2xlY2hhcnQ6ICdQYXF1ZXRzIGRlIGNlcmNsZXMnLFxuICAgICAgaWZyYW1lOiAnQXBwbGljYXRpb24gZXh0ZXJuZScsXG4gICAgICB2ZWdhOiAnR3JhcGhpcXVlIGF2YW5jw6knLFxuICAgICAgZ3JhcGg6ICdSZWxhdGlvbnMnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgc3ViOiB7XG4gICAgICAgIG1hcDogJ0NhcnRvZ3JhcGhpZScsXG4gICAgICAgIGNoYXJ0OiAnR3JhcGhpcXVlJyxcbiAgICAgICAgb3RoZXI6ICdBdXRyZSdcbiAgICAgIH0sXG4gICAgICB0aWxlOiAnVHVpbGVzJyxcbiAgICAgIHRlbXBsYXRlOiAnVGVtcGxhdGUgSFRNTCcsXG4gICAgICBub3c6IFwiQXVqb3VyZCdodWlcIixcbiAgICAgIHNpbmNlX2RheTogJ0lsIHkgYSB7e2RheX19IGpvdXJ7e3BsdXJhbH19JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICAnMCc6ICdDb21wb3NpdGlvbiBsaWJyZScsXG4gICAgICAgICcwX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZW4gbW9kZSBsaWJyZSwgbGEgdGFpbGxlIGV0IGxlIHBvc2l0aW9ubmVtZW50IGRlcyByZXN0aXR1dGlvbnMgc29udCBlbnRpw6hyZW1lbnQgcGFyYW3DqXRyYWJsZXMgcGFyIGwndXRpbGlzYXRldXIuXCIsXG4gICAgICAgICcxJzogJ1BsZWluIMOpY3JhbicsXG4gICAgICAgICcxX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZOKAmXVuZSBzZXVsZSByZXN0aXR1dGlvbiBzdXIgbCdlbnNlbWJsZSBkZSBsJ8OpY3JhbiwgbGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8ydic6ICcxLzIgw6ljcmFuIHZlcnRpY2FsJyxcbiAgICAgICAgJzEvMnZfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAyIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBsJ8OpY3JhbiBkw6ljb3Vww6kgZW4gZGV1eCB6b25lcyB2ZXJ0aWNhbGVzLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvMmgnOiAnMS8yIMOpY3JhbiBob3Jpem9udGFsJyxcbiAgICAgICAgJzEvMmhfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAyIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiBkZXV4IHpvbmVzIGhvcml6b250YWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzN2JzogJzEvMyDDqWNyYW4gdmVydGljYWwnLFxuICAgICAgICAnMS8zdl9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDMgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIHRyb2lzIHpvbmVzIHZlcnRpY2FsZXMsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8zaCc6ICcxLzMgw6ljcmFuIGhvcml6b250YWwnLFxuICAgICAgICAnMS8zaF9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDMgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIHRyb2lzIHpvbmVzIGhvcml6b250YWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzQnOiAnMS80IMOpY3JhbicsXG4gICAgICAgICcxLzRfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSA0IHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiBxdWF0cmUgem9uZXMgLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIlxuICAgICAgfSxcbiAgICAgIHN3aXRjaEVkaXQ6ICdNb2RpZmllcicsXG4gICAgICBzd2l0Y2hFZGl0Q29udGVudDogJ01vZGlmaWVyIGxhIGNvbXBvc2l0aW9uJyxcbiAgICAgIHNoYXJlOiAnUGFydGFnZXInLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgIG5vdEluRHNBdHRyOiAnQXR0cmlidXQgaW5kaXNwb25pYmxlJ1xuICAgIH0sXG4gICAgbWFuaWZlc3Q6IHtcbiAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBjcmVhdGlvbjogJ0RhdGUgZGUgY3LDqWF0aW9uJyxcbiAgICAgIG1vZGlmaWNhdGlvbjogJ0RhdGUgZGUgbW9kaWZpY2F0aW9uJyxcbiAgICAgIGFjdGlvbnM6ICdBY3Rpb25zJyxcbiAgICAgIGltcG9ydDogJ0ltcG9ydGVyJyxcbiAgICAgIGltcG9ydEFsdDogJ0ltcG9ydGVyIHVuZSBwcsOpc2VudGF0aW9uJyxcbiAgICAgIHRpdGxlOiAnUHLDqXNlbnRhdGlvbnMnLFxuICAgICAgZ2V0OiB7XG4gICAgICAgIGVycm9yRnJvbnQ6ICdFcnJldXIgY2xpZW50IDoge3ttc2d9fScsXG4gICAgICAgIGVycm9yQmFjazogJ0VycmV1ciBzZXJ2ZXVyIGRlIGNvZGUgW3t7Y29kZX19XSdcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiAnRMOpZmluaXIgcGFyIGTDqWZhdXQnLFxuICAgICAgZG93bmxvYWQ6ICdUw6lsw6ljaGFyZ2VyJyxcbiAgICAgIGxvYWQ6ICdDaGFyZ2VyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICBkZWxldGVFcnJvcjpcbiAgICAgICAgXCJSZWNoZXJjaGUgdXRpbGlzw6llIGRhbnMgdW5lIG91IHBsdXNpZXVycyByZXN0aXR1dGlvbihzKSwgdmV1aWxsZXogc3VwcHJpbWVyIGxlcyB1dGlsaXNhdGlvbnMgZCdhYm9yZFwiXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGRhdGU6ICdkZC9NTS95eXl5JyxcbiAgICAgIGRhdGV0aW1lOiAnZGQvTU0veXl5eSBISDptbTpzcycsXG4gICAgICBkZWNpbWFsOiAnLCcsXG4gICAgICB0aG91c2FuZHM6ICcgJ1xuICAgIH0sXG4gICAgY29udGV4dDoge1xuICAgICAgYWRkOiAnQWpvdXRlciDDoCBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIHJlbW92ZTogJ0VubGV2ZXIgZGUgbGEgc8OpbGVjdGlvbicsXG4gICAgICBsaW5rOiAnTGllciDDoCBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIGludmVydDogJ0ludmVyc2VyIGxhIHPDqWxlY3Rpb24nLFxuICAgICAgcHJveGltaXR5OiAnUmVjaGVyY2hlciBsZXMgb2JqZXRzIGxpw6lzJyxcbiAgICAgIGV4cGxvcmU6ICdPdXZyaXIgbGEgcmVzdGl0dXRpb24gUmVsYXRpb25zJyxcbiAgICAgIGRldGFpbDogJ091dnJpciBsYSByZXN0aXR1dGlvbiBEw6l0YWlsJyxcbiAgICAgIGZseWluZ0RldGFpbDogXCJDb25zdWx0ZXIgbCdvYmpldFwiLFxuICAgICAgYWRkcmVzc0Zyb21Mb2M6IFwiT2J0ZW5pciBsJ2FkcmVzc2VcIixcbiAgICAgIGVycm9yU2VhcmNoQWRkcmVzczogJ0FkcmVzc2UgaW50cm91dmFibGUnLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBjcmVhdGU6ICdDcsOpZXInLFxuICAgICAgY3JlYXRlT2JqZWN0OiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgb2JqZWN0OiAnQ3LDqWVyIHVuIG9iamV0JyxcbiAgICAgICAgICBsaW5rOiAnQ3LDqWVyIHVuZSByZWxhdGlvbicsXG4gICAgICAgICAgaW52ZXJzaW9uOiAnSW52ZXJzZXIgbGEgcmVsYXRpb24nLFxuICAgICAgICAgIGxpbmtlZE9iamVjdDogJ0Nyw6llciB1biBvYmpldCBsacOpJ1xuICAgICAgICB9LFxuICAgICAgICBjbGFzczogXCJDbGFzc2UgZGUgbCdvYmpldFwiLFxuICAgICAgICBsaW5rOiAnUmVsYXRpb24gYXZlYyBsZSBub3V2ZWwgb2JqZXQnLFxuICAgICAgICBjcmVhdGVkOiBcIkwnb2JqZXQgYSDDqXTDqSBjcsOpw6lcIixcbiAgICAgICAgZGV0YWlsczogJ1ZvaXIgbGUgZMOpdGFpbCcsXG4gICAgICAgIGFkZE11bHRpRmllbGQ6ICdBam91dGVyIHVuZSB2YWxldXIgZGUge3tuYW1lfX0nXG4gICAgICB9XG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICAgIGNsb3NlUGFuZWw6ICdGZXJtZXIgbGUgcGFubmVhdScsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgZWRpdDogJ0VkaXRlcicsXG4gICAgICBlZGl0UHJvZmlsOiAnRWRpdGVyIGxlIHByb2ZpbCcsXG4gICAgICBjaG9pY2U6ICdDaG9pc2lyIHVuIC4uLi4nLFxuICAgICAgY2hvaWNlSW5MaXN0OiAnQ2hvaXNpciB1biDDqWzDqW1lbnQgZGFucyBsYSBsaXN0ZScsXG4gICAgICB0ZXh0OiAnUmVtcGxpc3NlciBsZSBjaGFtcCcsXG4gICAgICBzb3J0YWJsZUNvbHVtbkhlYWRlcjogXCJVdGlsaXNleiBsZXMgYm91dG9ucyBkJ2VuLXTDqnRlIGRlIGNvbG9ubmUgcG91ciB0cmllci5cIixcbiAgICAgIHZpZXdEZXRhaWxzOiAnVm9pciBsZXMgZMOpdGFpbHMnLFxuICAgICAgc2VsZWN0RGF0ZTogJ0Nob2lzaXIgdW5lIGRhdGUnLFxuICAgICAgb3BlbnNJbk5ld1RhYjogXCJTJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlXCIsXG4gICAgICBza2lwTGluazogJ0FsbGVyIGF1IGNvbnRlbnUnLFxuICAgICAgc2VsZWN0UGljdHVyZTogJ1PDqWxlY3Rpb25uZXIgdW5lIGltYWdlJyxcbiAgICAgIG1vdmVEb3duOiAnRMOpcGxhY2VyIHZlcnMgbGUgYmFzJyxcbiAgICAgIG1vdmVVcDogJ0TDqXBsYWNlciB2ZXJzIGxlIGhhdXQnLFxuICAgICAgZXhwb3J0QXNGb3JtYXQ6ICdFeHBvcnRlciBhdSBmb3JtYXQnLFxuICAgICAgb3Blbk1lbnVXaWRnZXQ6ICdNZW51IGRlIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXInLFxuICAgICAgdXBsb2FkOiAnQWpvdXRlciB1bmUgaW1hZ2UnLFxuICAgICAgbmV4dDogJ1N1aXZhbnQnLFxuICAgICAgYmFjazogJ1JldG91cicsXG4gICAgICBmaWx0ZXJCeVR5cGU6ICdGaWx0cmVyIHBhciB0eXBlJyxcbiAgICAgIGVkaXRNZXRhZGF0YTogJ01vZGlmaWVyIGxhIG3DqXRhZG9ubsOpZScsXG4gICAgICBhZGRNZXRhZGF0YTogJ0Fqb3V0ZXIgbGEgbcOpdGFkb25uw6llJ1xuICAgIH0sXG4gICAgc25hY2s6IHtcbiAgICAgIGRlZmF1bHQ6ICdWZWdhIGEgcmVuY29udHLDqSB1bmUgZXJyZXVyIGVuIHV0aWxpc2FudCB2b3MgZG9ubsOpZXMgZXQgcGFyYW3DqXRyYWdlLicsXG4gICAgICBtaXNzaW5nUGFyZW50OiBcIlVuIG5vZXVkIGVzdCBtYW5xdWFudCBkYW5zIGwnYXJicmUgZGUgcmVwcsOpc2VudGF0aW9uLiBNZXJjaSBkZSBjb3JyaWdlciB2b3MgZG9ubsOpZXMuXCIsXG4gICAgICBtaXNzaW5nVmFsdWU6IFwiVW4gaXRlbSDDoCBhZmZpY2hlciBuZSBwb3Nzw6hkZSBwYXMgbCdhdHRyaWJ1dCDDoCBhZmZpY2hlci4gTWVyY2kgZGUgY29ycmlnZXIgdm9zIGRvbm7DqWVzLlwiLFxuICAgICAgZW1wdHlWYWx1ZXM6IFwiTGVzIHZhbGV1cnMgZGUgbCdhdHRyaWJ1dCDDoCBhZmZpY2hlciBuZSBwZXV2ZW50IMOqdHJlIHRvdXRlcyBudWxsZXMuIE1lcmNpIGRlIGNvcnJpZ2VyIHZvcyBkb25uw6llcy5cIixcbiAgICAgIHBhZ2VzQ2hhbmdlZDogJ0F0dGVudGlvbiwgbGUgbm9tYnJlIGRlIHBhZ2VzIGRlIHZvdHJlIHByw6lzZW50YXRpb24gYSBjaGFuZ8OpLCBxdWUgc291aGFpdGV6LXZvdXMgZmFpcmUgPycsXG4gICAgICBpbWFnZU5hbWVBbHJlYWR5VXNlZDogJ0xlIG5vbSBkZSBjZXR0ZSBpbWFnZSBlc3QgZMOpasOgIHV0aWxpc8OpJ1xuICAgIH0sXG4gICAgdGhlbWU6IHtcbiAgICAgIGVkaXRJbnB1dDoge1xuICAgICAgICB0b2dnbGU6ICdFZGl0ZXInXG4gICAgICB9LFxuICAgICAgcHJldmlvdXNNb250aDogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICAgbmV4dE1vbnRoOiAnTW9pcyBzdWl2YW50JyxcbiAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgIDA6ICdMdW5kaScsXG4gICAgICAgIDE6ICdNYXJkaScsXG4gICAgICAgIDI6ICdNZXJjcmVkaScsXG4gICAgICAgIDM6ICdKZXVkaScsXG4gICAgICAgIDQ6ICdWZW5kcmVkaScsXG4gICAgICAgIDU6ICdTYW1lZGknLFxuICAgICAgICA2OiAnRGltYW5jaGUnXG4gICAgICB9LFxuICAgICAgc2hvcnRXZWVrZGF5czoge1xuICAgICAgICAwOiAnTHUnLFxuICAgICAgICAxOiAnTWEnLFxuICAgICAgICAyOiAnTWUnLFxuICAgICAgICAzOiAnSmUnLFxuICAgICAgICA0OiAnVmUnLFxuICAgICAgICA1OiAnU2EnLFxuICAgICAgICA2OiAnRGknXG4gICAgICB9LFxuICAgICAgbW9udGhzOiB7XG4gICAgICAgIDA6ICdKYW52aWVyJyxcbiAgICAgICAgMTogJ0bDqXZyaWVyJyxcbiAgICAgICAgMjogJ01hcnMnLFxuICAgICAgICAzOiAnQXZyaWwnLFxuICAgICAgICA0OiAnTWFpJyxcbiAgICAgICAgNTogJ0p1aW4nLFxuICAgICAgICA2OiAnSnVpbGxldCcsXG4gICAgICAgIDc6ICdBb8O7dCcsXG4gICAgICAgIDg6ICdTZXB0ZW1icmUnLFxuICAgICAgICA5OiAnT2N0b2JyZScsXG4gICAgICAgIDEwOiAnTm92ZW1icmUnLFxuICAgICAgICAxMTogJ0TDqWNlbWJyZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIHNoYXJlOiB7XG4gICAgICBwcml2YXRlOiAnUHJpdsOpJyxcbiAgICAgIHB1YmxpYzogJ1B1YmxpYycsXG4gICAgICByZXN0cmljdGVkOiAnUmVzdHJlaW50JyxcbiAgICAgIHR5cGU6ICdWaXNpYmlsaXTDqScsXG4gICAgICB1c2VyczogJ1V0aWxpc2F0ZXVycyBhdXRvcmlzw6lzJ1xuICAgIH0sXG4gICAgaG9tZXBhZ2U6IHtcbiAgICAgIG1lbnU6IHtcbiAgICAgICAgbW9kZWw6ICdNb2TDqGxlIGRlIGRvbm7DqWVzJyxcbiAgICAgICAgZGF0YTogJ0FjY8OocyBhdXggZG9ubsOpZXMnXG4gICAgICB9XG4gICAgfSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgdmlldzogJ0NvbnN1bHRlciBsZXMgbWV0YWRvbm7DqWVzJ1xuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgc2VhcmNoRGF0YTogJ1JlY2hlcmNoZXogdW5lIGRvbm7DqWUnLFxuICAgICAgY2hpcHNTZWxlY3Rvcjoge1xuICAgICAgICBkYXRhc291cmNlOiB7XG4gICAgICAgICAgc2VsZWN0OiAnU8OpbGVjdGlvbm5lciB1bmUgb3UgcGx1c2lldXJzIHNvdXJjZShzKSBkZSBkb25uw6llcyA6JyxcbiAgICAgICAgICBzZWxlY3Rpb246ICdTb3VyY2UocykgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWVzOicsXG4gICAgICAgICAgc2VsZWN0SXRlbTogJ1PDqWxlY3Rpb25uZXIgbGEgc291cmNlIGRlIGRvbm7DqWVzJyxcbiAgICAgICAgICB1bnNlbGVjdEl0ZW06ICdEw6lzw6lsZWN0aW9ubmVyIGxhIHNvdXJjZSBkZSBkb25uw6llcycsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdBdWN1bmUgc291cmNlIGRlIGRvbm7DqWVzIHPDqWxlY3Rpb25uw6llJ1xuICAgICAgICB9LFxuICAgICAgICBzaGFyZToge1xuICAgICAgICAgIHNlbGVjdDogXCJTw6lsZWN0aW9ubmVyIHVuIG91IHBsdXNpZXVycyBncm91cGUocykgZCd1dGlsaXNhdGV1cnMgOlwiLFxuICAgICAgICAgIHNlbGVjdGlvbjogXCJHcm91cGUocykgZCd1dGlsaXNhdGV1cnMgc8OpbGVjdGlvbm7DqXM6XCIsXG4gICAgICAgICAgc2VsZWN0SXRlbTogXCJTw6lsZWN0aW9ubmVyIGxlIGdyb3VwZSBkJ3V0aWxpc2F0ZXVyc1wiLFxuICAgICAgICAgIHVuc2VsZWN0SXRlbTogXCJEw6lzw6lsZWN0aW9ubmVyIGxlIGdyb3VwZSBkJ3V0aWxpc2F0ZXVyc1wiLFxuICAgICAgICAgIG5vSXRlbVNlbGVjdGVkOiBcIkF1Y3VuIGdyb3VwZSBkJ3V0aWxpc2F0ZXVycyBzw6lsZWN0aW9ubsOpXCIsXG4gICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICBBTEw6ICdQdWJsaXF1ZScsXG4gICAgICAgICAgICBBVVRIRU5USUNBVEVEOiAnTGVzIHV0aWxpc2F0ZXVycyBjb25uZWN0w6lzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3JzOiB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuIFZldWlsbGV6IHbDqXJpZmlleiBsZXMgaW5mb3JtYXRpb25zIG91IGNvbnRhY3RlciB2b3RyZSBhZG1pbmlzdHJhdGV1ciBzaSBsZSBwcm9ibMOobWUgcGVyc2lzdGUnLFxuICAgICAgY29kZXM6IHtcbiAgICAgICAgMDogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGF1IG5pdmVhdSBuYXZpZ2F0ZXVyLiBDZWxhIHBldXQtw6p0cmUgdW5lIGVycmV1ciBDT1JTLCBkZSByw6lzZWF1IC4uLiBMYSByZXNzb3VyY2UgbmUgcGV1dCBwYXMgw6p0cmUgcsOpY3Vww6lyw6llLicsXG4gICAgICAgIDQwMDogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlLicsXG4gICAgICAgIDQwMTogJ1ZvdHJlIHNlc3Npb24gZXN0IGludmFsaWRlLiBFc3NheWV6IGRlIHZvdXMgcmVjb25uZWN0ZXIgIScsXG4gICAgICAgIDQwMzogXCJWb3VzIG4nYXZleiBwYXMgbGVzIGRyb2l0cyBwb3VyIGNvbnN1bHRlciBjZXR0ZSByZXNzb3VyY2VcIixcbiAgICAgICAgNDA0OiBcIkxhIHJlc3NvdXJjZSBkZW1hbmTDqWUgbidleGlzdGUgcGFzXCIsXG4gICAgICAgIDQwOTogJ1VuZSByZXNzb3VyY2Ugc2ltaWxhaXJlIGV4aXN0ZSBkw6lqw6AnLFxuICAgICAgICA1MDA6ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4nLFxuICAgICAgICA1MDM6ICdMZSBzZXJ2aWNlIGVzdCBhY3R1ZWxsZW1lbnQgaW5kaXNwb25pYmxlLiBSw6llc3NheWVyIHVsdMOpcmlldXJlbWVudCAhJ1xuICAgICAgfVxuICAgIH0sXG4gICAgZmlsdGVyczoge1xuICAgICAgbGFiZWw6ICdQYXJhbcOpdHJlciBsZXMgZmlsdHJlcycsXG4gICAgICBub0F0dHJpYnV0ZXM6IFwiTGEgcHLDqXNlbnRhdGlvbiBlbiBjb3VycyBuZSBkaXNwb3NlIGQnYXVjdW5lIGF0dHJpYnV0IHN1ciBsZXF1ZWwgZmlsdHJlclwiLFxuICAgICAgbm9GaWx0ZXJzOiBcIlZvdXMgbidhdmV6IHBhcyBlbmNvcmUgcGFyYW3DqXRyw6kgZGUgZmlsdHJlLlwiLFxuICAgICAgY2xlYXI6ICdFZmZhY2VyJyxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0czogJyxcbiAgICAgICAgYWRkOiAnQ3LDqWVyIHVuIGZpbHRyZScsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICAgIG1vZGlmeTogJ01vZGlmaWVyJ1xuICAgICAgfSxcbiAgICAgIGNyZWF0aW9uOiB7XG4gICAgICAgIGNyZWF0ZTogJ0Nyw6llciB1biBmaWx0cmUnLFxuICAgICAgICB1cGRhdGU6ICdNb2RpZmllciB1biBmaWx0cmUnLFxuICAgICAgICBuYW1lOiAnTm9tIGR1IGZpbHRyZScsXG4gICAgICAgIHR5cGU6ICdUeXBlIGR1IGZpbHRyZScsXG4gICAgICAgIGZpbHRlcjogJ0ZpbHRyZScsXG4gICAgICAgIGF0dHJpYnV0ZXM6ICdBdHRyaWJ1dHMnLFxuICAgICAgICB2YWx1ZTogJ1ZhbGV1cicsXG4gICAgICAgIHZhbHVlczogJ1ZhbGV1cnMnLFxuICAgICAgICB2YWxpZGF0ZTogJ1ZhbGlkZXInLFxuICAgICAgICBsaW1pdDogJ05vbWJyZSBkZSBzdWdnZXN0aW9ucycsXG4gICAgICAgIGRhdGVSYW5nZTogJ1BsYWdlIGRlIGRhdGVzJ1xuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZGF0YXNvdXJjZTogJ0RhdGFzb3VyY2UnLFxuICAgICAgICBjbGFzczogJ0NsYXNzZScsXG4gICAgICAgIG9wZXJhdG9yOiAnT3DDqXJhdGV1cidcbiAgICAgIH0sXG4gICAgICB0eXBlczoge1xuICAgICAgICB0ZXh0OiAnVGV4dGUnLFxuICAgICAgICBkYXRlOiAnRGF0ZScsXG4gICAgICAgIGxpc3Q6ICdMaXN0ZScsXG4gICAgICAgIG51bWJlcjogJ051bcOpcmlxdWUnLFxuICAgICAgICBhdXRvY29tcGxldGU6ICdMaXN0ZSBhdmVjIHN1Z2dlc3Rpb24nXG4gICAgICB9XG4gICAgfSxcbiAgICBnZW9BdXRoOiB7XG4gICAgICBmYWlsdXJlOiAnRXJyZXVyIGdlb3NlcnZlcidcbiAgICB9LFxuICAgIGdyaWQ6IHtcbiAgICAgIHJvd3M6ICdMaWduZXMnLFxuICAgICAgY29sdW1uczogJ0NvbG9ubmVzJ1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
@@ -30,8 +30,9 @@ export class ImageService {
30
30
  }
31
31
  getImage(path, externalUrl = false) {
32
32
  return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => {
33
+ const calculatedPath = externalUrl ? path : `${url}/file/icons/${path}`;
33
34
  return this.httpClient
34
- .get(encodeURI(externalUrl ? path : `${url}/file/icons/${path}`), {
35
+ .get(encodeURI(calculatedPath), {
35
36
  observe: 'response',
36
37
  responseType: 'blob'
37
38
  })
@@ -43,7 +44,7 @@ export class ImageService {
43
44
  url: this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(response.body))
44
45
  };
45
46
  }
46
- throw { type: 'unknown', error: 'unknown doc type' };
47
+ throw new Error(`Getting ${header} when asked for an image on url ${calculatedPath}`);
47
48
  }));
48
49
  }));
49
50
  }
@@ -69,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69
70
  providedIn: 'root'
70
71
  }]
71
72
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Store }, { type: i3.DomSanitizer }, { type: i4.PrySnackbarService }, { type: i5.PryI18nService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2ltYWdlL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRzdELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFdBQVcsQ0FBQztBQUUxRCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLDZDQUE2QixDQUFBO0lBQzdCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLFFBQTRCLEVBQzVCLGdCQUFnQztRQUpoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtJQUN2QyxDQUFDO0lBRUosU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEQsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcs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dCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICcuL2ltYWdlLmFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgSU5URVJOQUxMWV9TVE9SRURfSU1BR0VfUFJFRklYID0gJ2ludGVybmFsOic7XG5cbmV4cG9ydCBlbnVtIExpYnJhcnlUeXBlcyB7XG4gIElMTFVTVFJBVElPTiA9ICdpbGx1c3RyYXRpb24nLFxuICBJQ09OID0gJ2ljb24nXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldEltYWdlcygpOiBPYnNlcnZhYmxlPEltYWdlW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZ2V0PEltYWdlW10+KGVuY29kZVVSSShgJHt1cmx9L2ZpbGUvaWNvbnNgKSkpLFxuICAgICAgbWFwKChpbWFnZXMpID0+XG4gICAgICAgIGltYWdlcy5tYXAoKGltYWdlKSA9PiAoe1xuICAgICAgICAgIGltYWdlOiBgJHtJTlRFUk5BTExZX1NUT1JFRF9JTUFHRV9QUkVGSVh9JHtpbWFnZS5pbWFnZX1gLFxuICAgICAgICAgIHR5cGU6IGltYWdlLnR5cGVcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGdldEltYWdlKHBhdGg6IHN0cmluZywgZXh0ZXJuYWxVcmwgPSBmYWxzZSk6IE9ic2VydmFibGU8eyB0eXBlOiBzdHJpbmc7IHVybDogU2FmZVVybCB9PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgLmdldChlbmNvZGVVUkkoZXh0ZXJuYWxVcmwgPyBwYXRoIDogYCR7dXJsfS9maWxlL2ljb25zLyR7cGF0aH1gKSwge1xuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgICAgICAgfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgaWYgKGhlYWRlci5pbmNsdWRlcygndmlkZW8nKSB8fCBoZWFkZXIuaW5jbHVkZXMoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgdHlwZTogaGVhZGVyLFxuICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UuYm9keSBhcyBCbG9iKSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRocm93IHsgdHlwZTogJ3Vua25vd24nLCBlcnJvcjogJ3Vua25vd24gZG9jIHR5cGUnIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1cGxvYWQoZmlsZTogYW55LCBtZWRpYVR5cGU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndHlwZScsIHR5cGUpO1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuZGF0YVVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICdmaWxlJyxcbiAgICAgICAgICBuZXcgRmlsZShbZmlsZV0sIERhdGUubm93KCkgKyBmaWxlLm5hbWUsIHtcbiAgICAgICAgICAgIHR5cGU6IG1lZGlhVHlwZSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxzdHJpbmc+KGAke3VybH0vZmlsZS9pY29uc2AsIGZvcm1EYXRhLCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0ZpbGUtQ29udGVudC1UeXBlJzogbWVkaWFUeXBlIH0pXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2ltYWdlL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRzdELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFdBQVcsQ0FBQztBQUUxRCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLDZDQUE2QixDQUFBO0lBQzdCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLFFBQTRCLEVBQzVCLGdCQUFnQztRQUpoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtJQUN2QyxDQUFDO0lBRUosU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEQsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcs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ZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByeVNuYWNrYmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAnLi9pbWFnZS5hY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IElOVEVSTkFMTFlfU1RPUkVEX0lNQUdFX1BSRUZJWCA9ICdpbnRlcm5hbDonO1xuXG5leHBvcnQgZW51bSBMaWJyYXJ5VHlwZXMge1xuICBJTExVU1RSQVRJT04gPSAnaWxsdXN0cmF0aW9uJyxcbiAgSUNPTiA9ICdpY29uJ1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge31cblxuICBnZXRJbWFnZXMoKTogT2JzZXJ2YWJsZTxJbWFnZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4gdGhpcy5odHRwQ2xpZW50LmdldDxJbWFnZVtdPihlbmNvZGVVUkkoYCR7dXJsfS9maWxlL2ljb25zYCkpKSxcbiAgICAgIG1hcCgoaW1hZ2VzKSA9PlxuICAgICAgICBpbWFnZXMubWFwKChpbWFnZSkgPT4gKHtcbiAgICAgICAgICBpbWFnZTogYCR7SU5URVJOQUxMWV9TVE9SRURfSU1BR0VfUFJFRklYfSR7aW1hZ2UuaW1hZ2V9YCxcbiAgICAgICAgICB0eXBlOiBpbWFnZS50eXBlXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXRJbWFnZShwYXRoOiBzdHJpbmcsIGV4dGVybmFsVXJsID0gZmFsc2UpOiBPYnNlcnZhYmxlPHsgdHlwZTogc3RyaW5nOyB1cmw6IFNhZmVVcmwgfT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuZGF0YVVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlZFBhdGggPSBleHRlcm5hbFVybCA/IHBhdGggOiBgJHt1cmx9L2ZpbGUvaWNvbnMvJHtwYXRofWA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAuZ2V0KGVuY29kZVVSSShjYWxjdWxhdGVkUGF0aCksIHtcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgIGlmIChoZWFkZXIuaW5jbHVkZXMoJ3ZpZGVvJykgfHwgaGVhZGVyLmluY2x1ZGVzKCdpbWFnZScpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IGhlYWRlcixcbiAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKHJlc3BvbnNlLmJvZHkgYXMgQmxvYikpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdldHRpbmcgJHtoZWFkZXJ9IHdoZW4gYXNrZWQgZm9yIGFuIGltYWdlIG9uIHVybCAke2NhbGN1bGF0ZWRQYXRofWApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBsb2FkKGZpbGU6IGFueSwgbWVkaWFUeXBlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3R5cGUnLCB0eXBlKTtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAnZmlsZScsXG4gICAgICAgICAgbmV3IEZpbGUoW2ZpbGVdLCBEYXRlLm5vdygpICsgZmlsZS5uYW1lLCB7XG4gICAgICAgICAgICB0eXBlOiBtZWRpYVR5cGUsXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IERhdGUubm93KClcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8c3RyaW5nPihgJHt1cmx9L2ZpbGUvaWNvbnNgLCBmb3JtRGF0YSwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdGaWxlLUNvbnRlbnQtVHlwZSc6IG1lZGlhVHlwZSB9KVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -247,11 +247,11 @@ export class PryObjectEditionComponent extends SubscriptionnerDirective {
247
247
  this.inversion = !this.inversion;
248
248
  }
249
249
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Component }); }
250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i9.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.I18nPipe, name: "i18n" }] }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i9.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.I18nPipe, name: "i18n" }] }); }
251
251
  }
252
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
253
253
  type: Component,
254
- args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
254
+ args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
255
255
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.Store }]; }, propDecorators: { link: [{
256
256
  type: Input
257
257
  }], object: [{
@@ -264,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
264
264
  }], closed: [{
265
265
  type: Output
266
266
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWVkaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9vYmplY3QtZWRpdGlvbi9vYmplY3QtZWRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29udGV4dC1tZW51L29iamVjdC1lZGl0aW9uL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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QUMsU0FBb0IsRUFBRSxNQUFXLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQzVHO2FBQU07WUFDTCxhQUFhO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3RHO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOytHQTVQVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixxT0FNTCxXQUFXLG9EQ2pDNUMsa3lRQTRMQTs7NEZEakthLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxxQkFBcUI7aUpBSXRCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUd3QyxRQUFRO3NCQUFyRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT2xDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEl0ZW1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9pdGVtL2l0ZW0uYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBJdGVtVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9pdGVtLXV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBIVFRQX09SSUdJTl9NRVRBREFUQSA9ICdfaHR0cF9vcmlnaW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktb2JqZWN0LWNyZWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlPYmplY3RFZGl0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1JZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZnJvbSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBjb29yZGluYXRlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gIHRtcE9iamVjdDogSXRlbSA9IHRoaXMubmV3T2JqZWN0KCk7XG4gIGZyb206IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIHJlbGF0aW9ucyQ6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXT47XG4gIHJlbGF0aW9uITogeyB0eXBlSWQ6IHN0cmluZzsgaXRlbUlkOiBzdHJpbmcgfTtcbiAgc2VsZWN0ZWRJdGVtc0lkcyE6IHN0cmluZ1tdO1xuICBVUExPQURfTUVUSE9EID0gJ3VwbG9hZCc7XG4gIEhUVFBfT1JJR0lOX01FVEhPRCA9ICdtZXRhZGF0YSc7XG4gIEhUVFBfT1JJR0lOX01FVEFEQVRBID0gSFRUUF9PUklHSU5fTUVUQURBVEE7XG4gIHJhd01ldGhvZHMgPSBbXG4gICAgeyBpZDogdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QsIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLmh0dHAnIH0sXG4gICAge1xuICAgICAgaWQ6IHRoaXMuVVBMT0FEX01FVEhPRCxcbiAgICAgIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLnVwbG9hZCdcbiAgICB9XG4gIF07XG4gIG1ldGhvZCA9IHRoaXMuVVBMT0FEX01FVEhPRDtcbiAgc2VsZWN0ZWREYXRlUGlja2VyOiBzdHJpbmcgPSAnJztcbiAgaW52ZXJzaW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1JZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5pdGVtSWQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5jb29yZGluYXRlcykuc3Vic2NyaWJlKChjb29yZGluYXRlcykgPT4gKHRoaXMuY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuaXRlbUlkJC5zdWJzY3JpYmUoKGl0ZW1JZCkgPT4gKHRoaXMuaXRlbUlkID0gaXRlbUlkKSkpO1xuICAgIHRoaXMuZnJvbSQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5mcm9tKTtcbiAgICB0aGlzLnJlbGF0aW9ucyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KFJlbGF0aW9uVHlwZXNTZWxlY3RvcnMucmVsYXRpb25zVHlwZXMpXG4gICAgICAucGlwZShtYXAoKHJlbGF0aW9ucykgPT4gKHJlbGF0aW9ucyB8fCBbXSkubWFwKChyZWwpID0+ICh7IGlkOiByZWwuaWQsIGxhYmVsOiByZWwubmFtZSB9KSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mcm9tJCwgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyldKVxuICAgICAgICAucGlwZShtYXAoKFtmcm9tLCBjbGFzc2VzXSkgPT4gY2xhc3Nlcy5maWx0ZXIoKGNsYXp6KSA9PiBmcm9tICE9PSAnbWFwJyB8fCBJdGVtVXRpbHMuaGFzTG9jYXRpb24oY2xhenopKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsYXNzZXMpID0+ICh0aGlzLmNsYXNzZXMgPSBjbGFzc2VzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4gKHRoaXMuZmllbGRzID0gZmllbGRzKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5mcm9tJC5zdWJzY3JpYmUoKGZyb20pID0+ICh0aGlzLmZyb20gPSBmcm9tKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKS5zdWJzY3JpYmUoKGl0ZW1JZHMpID0+ICh0aGlzLnNlbGVjdGVkSXRlbXNJZHMgPSBpdGVtSWRzKSlcbiAgICApO1xuICB9XG5cbiAgb3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmVsYXRpb24gPSB7IHR5cGVJZDogJycsIGl0ZW1JZDogdGhpcy5pdGVtSWQgPz8gJycgfTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudScsICdjcmVhdGUtb2JqZWN0LXBhbmVsJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUoKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBuZXdPYmplY3QoKSB7XG4gICAgcmV0dXJuIHsgaWQ6IHV1aWR2NCgpLCBvQ2xhc3M6ICcnLCBhdHRyaWJ1dGVzOiB7fSwgbWV0YWRhdGE6IHt9IH07XG4gIH1cblxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5vYmplY3QgfHwgSXRlbVV0aWxzLmlzVmFsaWRPYmplY3QodGhpcy50bXBPYmplY3QpKSAmJiAoIXRoaXMubGluayB8fCAodGhpcy5yZWxhdGlvbj8udHlwZUlkID8/IGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0cygpIHtcbiAgICBsZXQgcmVsYXRpb24gPSB7XG4gICAgICBmcm9tOiB0aGlzLnNlbGVjdGVkSXRlbXNJZHMsXG4gICAgICB0bzogdGhpcy5yZWxhdGlvbj8uaXRlbUlkID8/ICcnLFxuICAgICAgdHlwZUlkOiB0aGlzLnJlbGF0aW9uPy50eXBlSWQgPz8gJycsXG4gICAgICBpbnZlcnNpb246IHRoaXMuaW52ZXJzaW9uXG4gICAgfTtcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0ID0gSXRlbVV0aWxzLmVuc3VyZUl0ZW1JZEhhc0NvcnJlY3RGb3JtYXQodGhpcy50bXBPYmplY3QpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChJdGVtQWN0aW9ucy5jcmVhdGUoeyBpdGVtOiB0aGlzLnRtcE9iamVjdCB9KSk7XG4gICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgIHJlbGF0aW9uLmZyb20gPSBbdGhpcy50bXBPYmplY3QuaWRdO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uKHJlbGF0aW9uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb24ocmVsYXRpb24pKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSB0aGlzLnRtcE9iamVjdC5vQ2xhc3MpPy5hdHRyaWJ1dGVzID8/IFtdO1xuICB9XG5cbiAgZmllbGRUeXBlKGF0dHJpYnV0ZTogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBhdHRyaWJ1dGUuZmllbGQgPT09IGZpZWxkLmlkKT8udHlwZTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIHRoaXMuZmllbGRUeXBlKGF0dHJpYnV0ZSkgPT09IEZpZWxkVHlwZS5JTlNUQU5UICYmICRldmVudCAhPT0gJycgPyBuZXcgRGF0ZSgkZXZlbnQpLmdldFRpbWUoKSA6ICRldmVudDtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSA9IHsgdHlwZTogJ1ZBTFVFJywgbWV0YWRhdGE6IHt9LCB2YWx1ZSwgdmlzaWJsZTogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdmFsdWUoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk/LnZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnID8gRGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAoKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKSA/PyB7fSkudmFsdWU7XG4gIH1cblxuICB0b2dnbGVEYXRlUGlja2VyKCRldmVudDogRXZlbnQsIGlkOiBzdHJpbmcpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID09PSBpZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSBpZDtcbiAgICB9XG4gIH1cblxuICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jb250YWlucygoJGV2ZW50IGFzIE1vdXNlRXZlbnQpLnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID0gJyc7XG4gICAgfVxuICB9XG5cbiAgbXVsdGlWYWx1ZXMoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gKCh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSA/PyB7IHZhbHVlczogW10gfSkudmFsdWVzO1xuICB9XG5cbiAgcmVtb3ZlTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMuc3BsaWNlKGksIDEpO1xuICB9XG5cbiAgYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSA9IHsgdHlwZTogJ01VTFRJJywgdmFsdWVzOiBbXSB9O1xuICAgIH1cbiAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSkudmFsdWVzLnB1c2goe1xuICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICB2aXNpYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHZhbHVlTXVsdGkoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm11bHRpVmFsdWVzKGF0dHJpYnV0ZSlbaV0udmFsdWU7XG4gIH1cblxuICBhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCA/IG5ldyBEYXRlKCRldmVudCkuZ2V0VGltZSgpIDogJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID0geyB0eXBlOiAnTVVMVEknLCB2YWx1ZXM6IFtdIH07XG4gICAgfVxuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSA9IHtcbiAgICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNsYXNzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy50bXBPYmplY3QgPSB0aGlzLm5ld09iamVjdCgpO1xuICAgIHRoaXMudG1wT2JqZWN0Lm9DbGFzcyA9ICRldmVudDtcbiAgICBpZiAodGhpcy5mcm9tID09PSAnbWFwJykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBpZiAoWydsYXRpdHVkZScsICdsYXQnXS5pbmRleE9mKGF0dHJpYnV0ZS50ZWNobmljYWxOYW1lKSA+PSAwKSB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5hZGRNdWx0aVZhbHVlZChhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdLCBpZHgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFsnbG9uZ2l0dWRlJywgJ2xvbmcnLCAnbG9uJywgJ2xuZyddLmluZGV4T2YoYXR0cmlidXRlLnRlY2huaWNhbE5hbWUpID49IDApIHtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmFkZE11bHRpVmFsdWVkKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0sIGlkeCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduVmFsdWUoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmF3TWV0aG9kKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWV0aG9kID0gJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiAnVkFMVUUnLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCRldmVudCA9PT0gdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QpIHtcbiAgICAgIHRoaXMuYXNzaWduTWV0YWRhdGEoYXR0cmlidXRlLCAnJywgSFRUUF9PUklHSU5fTUVUQURBVEEpO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50ID09PSB0aGlzLlVQTE9BRF9NRVRIT0QpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGRlbGV0ZSAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLm1ldGFkYXRhW0hUVFBfT1JJR0lOX01FVEFEQVRBXTtcbiAgICB9XG4gIH1cblxuICB2YWx1ZU1ldGFkYXRhKGF0dHJpYnV0ZTogQXR0cmlidXRlLCB0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKCgodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpID8/IHt9KS5tZXRhZGF0YSA/PyB7fSlbdHlwZV07XG4gIH1cblxuICBhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGU6IEF0dHJpYnV0ZSwgJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSA9IHsgW3R5cGVdOiAkZXZlbnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YVt0eXBlXSA9ICRldmVudDtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVJbnZlcnNpb24oKSB7XG4gICAgdGhpcy5pbnZlcnNpb24gPSAhdGhpcy5pbnZlcnNpb247XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0UGFuZWwoJGV2ZW50KVwiICpuZ0lmPVwibWVudVwiPlxuICB7eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS4nICsgKGxpbmsgJiYgb2JqZWN0ID8gJ2xpbmtlZE9iamVjdCcgOiBsaW5rID8gJ2xpbmsnIDogJ29iamVjdCcpIHwgaTE4biB9fVxuPC9idXR0b24+XG48YnV0dG9uXG4gIGlkPVwib2JqZWN0X2NyZWF0b3JfbGlua1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwib3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudClcIlxuICAqbmdJZj1cIiFtZW51XCJcbiAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tZ2hvc3QgLWNpcmNsZSB1LWZsb2F0aW5nIHUtZmxvYXRpbmctLWJvdHRvbS1yaWdodFwiXG4gIFt0aXRsZV09XCInQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4blwiXG4+XG4gIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5vYmplY3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRfY29sdW1uXCIgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvcHJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlua1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNyZWF0ZW9iamVjdF9saW5rXCI+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUubGluaycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWxhdGlvbi50eXBlSWRcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInJlbGF0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBpZD1cImNyZWF0ZW9iamVjdF9saW5rXCJcbiAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJjcmVhdGVvYmplY3RfaW52ZXJzaW9uXCI+e3tcbiAgICAgICAgICAgICdAcHJ5LmNvbnRleHQuY3JlYXRlT2JqZWN0LnRpdGxlLmludmVyc2lvbicgfCBpMThuXG4gICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2ludmVyc2lvblwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJpbnZlcnNpb25cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlSW52ZXJzaW9uKClcIlxuICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm8tb2JqZWN0LXBhbmVsXCIgKm5nSWY9XCJvYmplY3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJjcmVhdGVvYmplY3RfY2xhc3NcIj57eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC5jbGFzcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgW25nTW9kZWxdPVwidG1wT2JqZWN0Lm9DbGFzc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDbGFzcygkZXZlbnQpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjbGFzc2VzXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgaWQ9XCJjcmVhdGVvYmplY3RfY2xhc3NcIlxuICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzXCIgW2NsYXNzLm11bHRpLXZhbHVlXT1cImF0dHJpYnV0ZS5tdWx0aVZhbHVlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIj57eyBhdHRyaWJ1dGUubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWF0dHJpYnV0ZS5tdWx0aVZhbHVlZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZFR5cGUoYXR0cmlidXRlKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5JTlNUQU5UXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS1kYXRlLWlucHV0XCIgdGFiaW5kZXg9XCItMVwiIChibHVyKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhLW9wZW4tZGF0ZS1waWNrZXJcIiAobW91c2Vkb3duKT1cInRvZ2dsZURhdGVQaWNrZXIoJGV2ZW50LCBhdHRyaWJ1dGUuaWQpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1jb250YWluZXJcIiAqbmdJZj1cInNlbGVjdGVkRGF0ZVBpY2tlciA9PT0gYXR0cmlidXRlLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHByeS1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWUoYXR0cmlidXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdW5kU2VsZWN0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpbWVQaWNrZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5ERUNJTUFMXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5URUdFUlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuUkFXXCI+XG4gICAgICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRSYXdNZXRob2QoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInJhd01ldGhvZHNcIlxuICAgICAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXRob2QgPT09IEhUVFBfT1JJR0lOX01FVEhPRFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTWV0YWRhdGEoYXR0cmlidXRlLCBIVFRQX09SSUdJTl9NRVRBREFUQSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGUsICRldmVudCwgSFRUUF9PUklHSU5fTUVUQURBVEEpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWV0aG9kID09PSBVUExPQURfTUVUSE9EXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktdXBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgbW9kZT1cImRvY1wiXG4gICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKix2aWRlby8qXCJcbiAgICAgICAgICAgICAgICAgICAgICAodXBsb2FkZWQpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LXVwbG9hZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpLXZhbHVlLWNvbnRhaW5lclwiICpuZ0lmPVwiYXR0cmlidXRlLm11bHRpVmFsdWVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWFkZCBhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IGEtYnRuLS1pY29uLXRleHQgLXNpemUtc21cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QuYWRkTXVsdGlGaWVsZCcgfCBpMThuIDogeyBuYW1lOiBhdHRyaWJ1dGUubmFtZSB9IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGktdmFsdWVcIiAqbmdGb3I9XCJsZXQgbXVsdGlWYWx1ZSBvZiBtdWx0aVZhbHVlcyhhdHRyaWJ1dGUpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpZWxkVHlwZShhdHRyaWJ1dGUpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLklOU1RBTlRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU11bHRpKGF0dHJpYnV0ZSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiYXNzaWduVmFsdWVNdWx0aShhdHRyaWJ1dGUsICRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuREVDSU1BTFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVNdWx0aShhdHRyaWJ1dGUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWVNdWx0aShhdHRyaWJ1dGUsICRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5URUdFUlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU11bHRpKGF0dHJpYnV0ZSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlTXVsdGlWYWx1ZWQoYXR0cmlidXRlLCBpKVwiPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkZWxldGVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImhpZGUoKVwiPlxuICAgICAgICB7eyAnQHByeS5jb250ZXh0LmNhbmNlbCcgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiY3JlYXRlT2JqZWN0cygpXCIgW2Rpc2FibGVkXT1cIiF2YWxpZFwiPlxuICAgICAgICB7eyAnQHByeS5jb250ZXh0LmNyZWF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWVkaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9vYmplY3QtZWRpdGlvbi9vYmplY3QtZWRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29udGV4dC1tZW51L29iamVjdC1lZGl0aW9uL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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QUMsU0FBb0IsRUFBRSxNQUFXLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLEVBQUU7WUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQzVHO2FBQU07WUFDTCxhQUFhO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBMEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3RHO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOytHQTVQVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixxT0FNTCxXQUFXLG9EQ2pDNUMsc3lRQTRMQTs7NEZEakthLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxxQkFBcUI7aUpBSXRCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUd3QyxRQUFRO3NCQUFyRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT2xDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEl0ZW1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9pdGVtL2l0ZW0uYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBSZWxhdGlvblR5cGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBJdGVtVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9pdGVtLXV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBIVFRQX09SSUdJTl9NRVRBREFUQSA9ICdfaHR0cF9vcmlnaW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktb2JqZWN0LWNyZWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1lZGl0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlPYmplY3RFZGl0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvYmplY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1JZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZnJvbSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBjb29yZGluYXRlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gIHRtcE9iamVjdDogSXRlbSA9IHRoaXMubmV3T2JqZWN0KCk7XG4gIGZyb206IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIHJlbGF0aW9ucyQ6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXT47XG4gIHJlbGF0aW9uITogeyB0eXBlSWQ6IHN0cmluZzsgaXRlbUlkOiBzdHJpbmcgfTtcbiAgc2VsZWN0ZWRJdGVtc0lkcyE6IHN0cmluZ1tdO1xuICBVUExPQURfTUVUSE9EID0gJ3VwbG9hZCc7XG4gIEhUVFBfT1JJR0lOX01FVEhPRCA9ICdtZXRhZGF0YSc7XG4gIEhUVFBfT1JJR0lOX01FVEFEQVRBID0gSFRUUF9PUklHSU5fTUVUQURBVEE7XG4gIHJhd01ldGhvZHMgPSBbXG4gICAgeyBpZDogdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QsIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLmh0dHAnIH0sXG4gICAge1xuICAgICAgaWQ6IHRoaXMuVVBMT0FEX01FVEhPRCxcbiAgICAgIG5hbWU6ICdAcHJ5LmFkbWluLmZpZWxkcy5yYXdNZXRob2RzLnVwbG9hZCdcbiAgICB9XG4gIF07XG4gIG1ldGhvZCA9IHRoaXMuVVBMT0FEX01FVEhPRDtcbiAgc2VsZWN0ZWREYXRlUGlja2VyOiBzdHJpbmcgPSAnJztcbiAgaW52ZXJzaW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1JZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5pdGVtSWQpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5jb29yZGluYXRlcykuc3Vic2NyaWJlKChjb29yZGluYXRlcykgPT4gKHRoaXMuY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuaXRlbUlkJC5zdWJzY3JpYmUoKGl0ZW1JZCkgPT4gKHRoaXMuaXRlbUlkID0gaXRlbUlkKSkpO1xuICAgIHRoaXMuZnJvbSQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5mcm9tKTtcbiAgICB0aGlzLnJlbGF0aW9ucyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KFJlbGF0aW9uVHlwZXNTZWxlY3RvcnMucmVsYXRpb25zVHlwZXMpXG4gICAgICAucGlwZShtYXAoKHJlbGF0aW9ucykgPT4gKHJlbGF0aW9ucyB8fCBbXSkubWFwKChyZWwpID0+ICh7IGlkOiByZWwuaWQsIGxhYmVsOiByZWwubmFtZSB9KSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mcm9tJCwgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyldKVxuICAgICAgICAucGlwZShtYXAoKFtmcm9tLCBjbGFzc2VzXSkgPT4gY2xhc3Nlcy5maWx0ZXIoKGNsYXp6KSA9PiBmcm9tICE9PSAnbWFwJyB8fCBJdGVtVXRpbHMuaGFzTG9jYXRpb24oY2xhenopKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNsYXNzZXMpID0+ICh0aGlzLmNsYXNzZXMgPSBjbGFzc2VzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4gKHRoaXMuZmllbGRzID0gZmllbGRzKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5mcm9tJC5zdWJzY3JpYmUoKGZyb20pID0+ICh0aGlzLmZyb20gPSBmcm9tKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKS5zdWJzY3JpYmUoKGl0ZW1JZHMpID0+ICh0aGlzLnNlbGVjdGVkSXRlbXNJZHMgPSBpdGVtSWRzKSlcbiAgICApO1xuICB9XG5cbiAgb3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmVsYXRpb24gPSB7IHR5cGVJZDogJycsIGl0ZW1JZDogdGhpcy5pdGVtSWQgPz8gJycgfTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudScsICdjcmVhdGUtb2JqZWN0LXBhbmVsJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUoKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBuZXdPYmplY3QoKSB7XG4gICAgcmV0dXJuIHsgaWQ6IHV1aWR2NCgpLCBvQ2xhc3M6ICcnLCBhdHRyaWJ1dGVzOiB7fSwgbWV0YWRhdGE6IHt9IH07XG4gIH1cblxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5vYmplY3QgfHwgSXRlbVV0aWxzLmlzVmFsaWRPYmplY3QodGhpcy50bXBPYmplY3QpKSAmJiAoIXRoaXMubGluayB8fCAodGhpcy5yZWxhdGlvbj8udHlwZUlkID8/IGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0cygpIHtcbiAgICBsZXQgcmVsYXRpb24gPSB7XG4gICAgICBmcm9tOiB0aGlzLnNlbGVjdGVkSXRlbXNJZHMsXG4gICAgICB0bzogdGhpcy5yZWxhdGlvbj8uaXRlbUlkID8/ICcnLFxuICAgICAgdHlwZUlkOiB0aGlzLnJlbGF0aW9uPy50eXBlSWQgPz8gJycsXG4gICAgICBpbnZlcnNpb246IHRoaXMuaW52ZXJzaW9uXG4gICAgfTtcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0ID0gSXRlbVV0aWxzLmVuc3VyZUl0ZW1JZEhhc0NvcnJlY3RGb3JtYXQodGhpcy50bXBPYmplY3QpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChJdGVtQWN0aW9ucy5jcmVhdGUoeyBpdGVtOiB0aGlzLnRtcE9iamVjdCB9KSk7XG4gICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgIHJlbGF0aW9uLmZyb20gPSBbdGhpcy50bXBPYmplY3QuaWRdO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uKHJlbGF0aW9uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb24ocmVsYXRpb24pKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSB0aGlzLnRtcE9iamVjdC5vQ2xhc3MpPy5hdHRyaWJ1dGVzID8/IFtdO1xuICB9XG5cbiAgZmllbGRUeXBlKGF0dHJpYnV0ZTogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBhdHRyaWJ1dGUuZmllbGQgPT09IGZpZWxkLmlkKT8udHlwZTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIHRoaXMuZmllbGRUeXBlKGF0dHJpYnV0ZSkgPT09IEZpZWxkVHlwZS5JTlNUQU5UICYmICRldmVudCAhPT0gJycgPyBuZXcgRGF0ZSgkZXZlbnQpLmdldFRpbWUoKSA6ICRldmVudDtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSA9IHsgdHlwZTogJ1ZBTFVFJywgbWV0YWRhdGE6IHt9LCB2YWx1ZSwgdmlzaWJsZTogdHJ1ZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdmFsdWUoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk/LnZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnID8gRGF0ZVV0aWxzLmZvcm1hdERhdGUobmV3IERhdGUodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAoKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKSA/PyB7fSkudmFsdWU7XG4gIH1cblxuICB0b2dnbGVEYXRlUGlja2VyKCRldmVudDogRXZlbnQsIGlkOiBzdHJpbmcpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID09PSBpZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGVQaWNrZXIgPSBpZDtcbiAgICB9XG4gIH1cblxuICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghKCRldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jb250YWlucygoJGV2ZW50IGFzIE1vdXNlRXZlbnQpLnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUGlja2VyID0gJyc7XG4gICAgfVxuICB9XG5cbiAgbXVsdGlWYWx1ZXMoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gKCh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSA/PyB7IHZhbHVlczogW10gfSkudmFsdWVzO1xuICB9XG5cbiAgcmVtb3ZlTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMuc3BsaWNlKGksIDEpO1xuICB9XG5cbiAgYWRkTXVsdGlWYWx1ZWQoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICBpZiAoIXRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdKSB7XG4gICAgICB0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSA9IHsgdHlwZTogJ01VTFRJJywgdmFsdWVzOiBbXSB9O1xuICAgIH1cbiAgICAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSkudmFsdWVzLnB1c2goe1xuICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICB2aXNpYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuICh0aGlzLnRtcE9iamVjdC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKS52YWx1ZXMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHZhbHVlTXVsdGkoYXR0cmlidXRlOiBBdHRyaWJ1dGUsIGk6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm11bHRpVmFsdWVzKGF0dHJpYnV0ZSlbaV0udmFsdWU7XG4gIH1cblxuICBhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpZWxkVHlwZShhdHRyaWJ1dGUpID09PSBGaWVsZFR5cGUuSU5TVEFOVCA/IG5ldyBEYXRlKCRldmVudCkuZ2V0VGltZSgpIDogJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID0geyB0eXBlOiAnTVVMVEknLCB2YWx1ZXM6IFtdIH07XG4gICAgfVxuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXSA9IHtcbiAgICAgICAgdHlwZTogJ1ZBTFVFJyxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpLnZhbHVlc1tpXS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUNsYXNzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy50bXBPYmplY3QgPSB0aGlzLm5ld09iamVjdCgpO1xuICAgIHRoaXMudG1wT2JqZWN0Lm9DbGFzcyA9ICRldmVudDtcbiAgICBpZiAodGhpcy5mcm9tID09PSAnbWFwJykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBpZiAoWydsYXRpdHVkZScsICdsYXQnXS5pbmRleE9mKGF0dHJpYnV0ZS50ZWNobmljYWxOYW1lKSA+PSAwKSB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5hZGRNdWx0aVZhbHVlZChhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdLCBpZHgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgKHRoaXMuY29vcmRpbmF0ZXMgPz8gW10pWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFsnbG9uZ2l0dWRlJywgJ2xvbmcnLCAnbG9uJywgJ2xuZyddLmluZGV4T2YoYXR0cmlidXRlLnRlY2huaWNhbE5hbWUpID49IDApIHtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmFkZE11bHRpVmFsdWVkKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICB0aGlzLmFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0sIGlkeCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduVmFsdWUoYXR0cmlidXRlLCAodGhpcy5jb29yZGluYXRlcyA/PyBbXSlbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmF3TWV0aG9kKGF0dHJpYnV0ZTogQXR0cmlidXRlLCAkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWV0aG9kID0gJGV2ZW50O1xuICAgIGlmICghdGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0pIHtcbiAgICAgIHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiAnVkFMVUUnLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCRldmVudCA9PT0gdGhpcy5IVFRQX09SSUdJTl9NRVRIT0QpIHtcbiAgICAgIHRoaXMuYXNzaWduTWV0YWRhdGEoYXR0cmlidXRlLCAnJywgSFRUUF9PUklHSU5fTUVUQURBVEEpO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50ID09PSB0aGlzLlVQTE9BRF9NRVRIT0QpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGRlbGV0ZSAodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLm1ldGFkYXRhW0hUVFBfT1JJR0lOX01FVEFEQVRBXTtcbiAgICB9XG4gIH1cblxuICB2YWx1ZU1ldGFkYXRhKGF0dHJpYnV0ZTogQXR0cmlidXRlLCB0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKCgodGhpcy50bXBPYmplY3QuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpID8/IHt9KS5tZXRhZGF0YSA/PyB7fSlbdHlwZV07XG4gIH1cblxuICBhc3NpZ25NZXRhZGF0YShhdHRyaWJ1dGU6IEF0dHJpYnV0ZSwgJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGlmICghKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSkge1xuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YSA9IHsgW3R5cGVdOiAkZXZlbnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgKHRoaXMudG1wT2JqZWN0LmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS5tZXRhZGF0YVt0eXBlXSA9ICRldmVudDtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVJbnZlcnNpb24oKSB7XG4gICAgdGhpcy5pbnZlcnNpb24gPSAhdGhpcy5pbnZlcnNpb247XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0UGFuZWwoJGV2ZW50KVwiICpuZ0lmPVwibWVudVwiPlxuICB7eyAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS4nICsgKGxpbmsgJiYgb2JqZWN0ID8gJ2xpbmtlZE9iamVjdCcgOiBsaW5rID8gJ2xpbmsnIDogJ29iamVjdCcpIHwgaTE4biB9fVxuPC9idXR0b24+XG48YnV0dG9uXG4gIGlkPVwib2JqZWN0X2NyZWF0b3JfbGlua1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwib3BlbkNyZWF0ZU9iamVjdFBhbmVsKCRldmVudClcIlxuICAqbmdJZj1cIiFtZW51XCJcbiAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1jaXJjbGUgdS1mbG9hdGluZyB1LWZsb2F0aW5nLS1ib3R0b20tcmlnaHRcIlxuICBbdGl0bGVdPVwiJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUub2JqZWN0JyB8IGkxOG5cIlxuPlxuICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QudGl0bGUub2JqZWN0JyB8IGkxOG4gfX08L3NwYW4+XG4gIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkX2NvbHVtblwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3ByeS1pY29uPlxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19wb3B1cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19wb3B1cF9fY29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJjcmVhdGVvYmplY3RfbGlua1wiPnt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlT2JqZWN0LnRpdGxlLmxpbmsnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVsYXRpb24udHlwZUlkXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJyZWxhdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgaWQ9XCJjcmVhdGVvYmplY3RfbGlua1wiXG4gICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY3JlYXRlb2JqZWN0X2ludmVyc2lvblwiPnt7XG4gICAgICAgICAgICAnQHByeS5jb250ZXh0LmNyZWF0ZU9iamVjdC50aXRsZS5pbnZlcnNpb24nIHwgaTE4blxuICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICBpZD1cImNyZWF0ZW9iamVjdF9pbnZlcnNpb25cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiaW52ZXJzaW9uXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZUludmVyc2lvbigpXCJcbiAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW9iamVjdC1wYW5lbFwiICpuZ0lmPVwib2JqZWN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY3JlYXRlb2JqZWN0X2NsYXNzXCI+e3sgJ0BwcnkuY29udGV4dC5jcmVhdGVPYmplY3QuY2xhc3MnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInRtcE9iamVjdC5vQ2xhc3NcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ2xhc3MoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiY2xhc3Nlc1wiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgIGlkPVwiY3JlYXRlb2JqZWN0X2NsYXNzXCJcbiAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlc1wiIFtjbGFzcy5tdWx0aS12YWx1ZV09XCJhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCI+e3sgYXR0cmlidXRlLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhdHRyaWJ1dGUubXVsdGlWYWx1ZWRcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGRUeXBlKGF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuSU5TVEFOVFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImEtZGF0ZS1pbnB1dFwiIHRhYmluZGV4PVwiLTFcIiAoYmx1cik9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZShhdHRyaWJ1dGUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS1vcGVuLWRhdGUtcGlja2VyXCIgKG1vdXNlZG93bik9XCJ0b2dnbGVEYXRlUGlja2VyKCRldmVudCwgYXR0cmlidXRlLmlkKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCIgKm5nSWY9XCJzZWxlY3RlZERhdGVQaWNrZXIgPT09IGF0dHJpYnV0ZS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwcnktZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZFNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aW1lUGlja2VyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3ByeS1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuREVDSU1BTFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLklOVEVHRVJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZShhdHRyaWJ1dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWUoYXR0cmlidXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLlJBV1wiPlxuICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibWV0aG9kXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UmF3TWV0aG9kKGF0dHJpYnV0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJyYXdNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWV0aG9kID09PSBIVFRQX09SSUdJTl9NRVRIT0RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU1ldGFkYXRhKGF0dHJpYnV0ZSwgSFRUUF9PUklHSU5fTUVUQURBVEEpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduTWV0YWRhdGEoYXR0cmlidXRlLCAkZXZlbnQsIEhUVFBfT1JJR0lOX01FVEFEQVRBKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZCA9PT0gVVBMT0FEX01FVEhPRFwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LXVwbG9hZFxuICAgICAgICAgICAgICAgICAgICAgIG1vZGU9XCJkb2NcIlxuICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlLyosdmlkZW8vKlwiXG4gICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZGVkKT1cImFzc2lnblZhbHVlKGF0dHJpYnV0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3ByeS11cGxvYWQ+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aS12YWx1ZS1jb250YWluZXJcIiAqbmdJZj1cImF0dHJpYnV0ZS5tdWx0aVZhbHVlZFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1hZGQgYS1idG4gYS1idG4tLXNlY29uZGFyeSBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZE11bHRpVmFsdWVkKGF0dHJpYnV0ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LmNvbnRleHQuY3JlYXRlT2JqZWN0LmFkZE11bHRpRmllbGQnIHwgaTE4biA6IHsgbmFtZTogYXR0cmlidXRlLm5hbWUgfSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpLXZhbHVlXCIgKm5nRm9yPVwibGV0IG11bHRpVmFsdWUgb2YgbXVsdGlWYWx1ZXMoYXR0cmlidXRlKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZFR5cGUoYXR0cmlidXRlKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5JTlNUQU5UXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVNdWx0aShhdHRyaWJ1dGUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLkRFQ0lNQUxcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgc3RlcD1cImFueVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlTXVsdGkoYXR0cmlidXRlLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFzc2lnblZhbHVlTXVsdGkoYXR0cmlidXRlLCAkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLklOVEVHRVJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVNdWx0aShhdHRyaWJ1dGUsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiYXNzaWduVmFsdWVNdWx0aShhdHRyaWJ1dGUsICRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZU11bHRpKGF0dHJpYnV0ZSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhc3NpZ25WYWx1ZU11bHRpKGF0dHJpYnV0ZSwgJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZU11bHRpVmFsdWVkKGF0dHJpYnV0ZSwgaSlcIj5cbiAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZGVsZXRlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJoaWRlKClcIj5cbiAgICAgICAge3sgJ0BwcnkuY29udGV4dC5jYW5jZWwnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImNyZWF0ZU9iamVjdHMoKVwiIFtkaXNhYmxlZF09XCIhdmFsaWRcIj5cbiAgICAgICAge3sgJ0BwcnkuY29udGV4dC5jcmVhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==