ngx-sp-infra 3.22.2 → 3.22.6

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 (127) hide show
  1. package/esm2022/lib/components/footer/footer.component.mjs +4 -4
  2. package/esm2022/lib/components/lib-config-senha/lib-config-senha.component.mjs +13 -13
  3. package/esm2022/lib/components/page-not-authorized/page-not-authorized.component.mjs +3 -3
  4. package/esm2022/lib/directives/click-outside.directive.mjs +6 -3
  5. package/esm2022/lib/directives/copy-clipboard.directive.mjs +4 -3
  6. package/esm2022/lib/directives/disable-control.directive.mjs +4 -3
  7. package/esm2022/lib/directives/highlight.directive.mjs +4 -3
  8. package/esm2022/lib/directives/loading-btn.directive.mjs +4 -3
  9. package/esm2022/lib/directives/required.directive.mjs +4 -3
  10. package/esm2022/lib/directives/text-truncate.directive.mjs +4 -3
  11. package/esm2022/lib/infra.module.mjs +57 -42
  12. package/esm2022/lib/message/alert/alert.component.mjs +3 -3
  13. package/esm2022/lib/message/confirm/confirm.component.mjs +3 -3
  14. package/esm2022/lib/message/confirm-modal/confirm-modal.component.mjs +4 -4
  15. package/esm2022/lib/message/save/save.component.mjs +6 -5
  16. package/esm2022/lib/pipes/cpf-cnpj.pipe.mjs +4 -3
  17. package/esm2022/lib/pipes/decimal-comma.pipe.mjs +4 -3
  18. package/esm2022/lib/pipes/filter-multiple-choice.pipe.mjs +4 -3
  19. package/esm2022/lib/pipes/format-by-type.pipe.mjs +4 -3
  20. package/esm2022/lib/pipes/order-sort.pipe.mjs +4 -3
  21. package/esm2022/lib/pipes/phone-format.pipe.mjs +4 -3
  22. package/esm2022/lib/pipes/text-filter.pipe.mjs +4 -3
  23. package/esm2022/lib/pipes/title-case-pipe.pipe.mjs +4 -3
  24. package/esm2022/lib/pipes/to-url.pipe.mjs +6 -3
  25. package/esm2022/lib/widgets/applied-filters/applied-filters.component.mjs +7 -7
  26. package/esm2022/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.mjs +3 -3
  27. package/esm2022/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.mjs +3 -3
  28. package/esm2022/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.mjs +3 -3
  29. package/esm2022/lib/widgets/combobox/combobox.component.mjs +9 -10
  30. package/esm2022/lib/widgets/combobox/pipes/filter-by.pipe.mjs +4 -3
  31. package/esm2022/lib/widgets/combobox/pipes/limit-to.pipe.mjs +4 -3
  32. package/esm2022/lib/widgets/combobox-multiple-choice/combobox-multiple-choice.component.mjs +7 -7
  33. package/esm2022/lib/widgets/content-container/content-container.component.mjs +7 -7
  34. package/esm2022/lib/widgets/custom-acordion/custom-acordion.component.mjs +11 -6
  35. package/esm2022/lib/widgets/dropdown-options/dropdown-options.component.mjs +4 -3
  36. package/esm2022/lib/widgets/dynamic-input/dynamic-input.component.mjs +8 -7
  37. package/esm2022/lib/widgets/field-contador-message/field-contador-message.component.mjs +3 -3
  38. package/esm2022/lib/widgets/field-control-error/field-control-error.component.mjs +4 -4
  39. package/esm2022/lib/widgets/field-error-message/field-error-message.component.mjs +3 -3
  40. package/esm2022/lib/widgets/generic-modal/generic-modal.component.mjs +3 -3
  41. package/esm2022/lib/widgets/input-trim/input-trim.component.mjs +6 -6
  42. package/esm2022/lib/widgets/lib-combobox/lib-combobox.component.mjs +10 -10
  43. package/esm2022/lib/widgets/lib-header/lib-header.component.mjs +5 -5
  44. package/esm2022/lib/widgets/lib-icons/lib-icons.component.mjs +3 -3
  45. package/esm2022/lib/widgets/lib-nav-produtos/lib-nav-produtos.component.mjs +3 -3
  46. package/esm2022/lib/widgets/lib-transfer-list/inner-list/inner-list.component.mjs +11 -10
  47. package/esm2022/lib/widgets/lib-transfer-list/lib-transfer-list.component.mjs +7 -7
  48. package/esm2022/lib/widgets/loading/loading.component.mjs +3 -3
  49. package/esm2022/lib/widgets/loading-button/loading-button.component.mjs +5 -5
  50. package/esm2022/lib/widgets/nav-produtos/nav-produtos.component.mjs +7 -6
  51. package/esm2022/lib/widgets/ordering/ordering.component.mjs +6 -6
  52. package/esm2022/lib/widgets/pagination/pagination.component.mjs +8 -6
  53. package/esm2022/lib/widgets/password-policy/password-policy.component.mjs +5 -5
  54. package/esm2022/lib/widgets/search-combobox/search-combobox.component.mjs +9 -9
  55. package/esm2022/lib/widgets/search-filters/search-filters.component.mjs +7 -6
  56. package/esm2022/lib/widgets/search-input/search-input.component.mjs +4 -3
  57. package/esm2022/lib/widgets/side-tabs-generic/side-tabs-generic.component.mjs +6 -6
  58. package/esm2022/lib/widgets/simple-search/simple-search.component.mjs +4 -4
  59. package/esm2022/lib/widgets/spinner/spinner.component.mjs +3 -3
  60. package/esm2022/lib/widgets/table/table.component.mjs +11 -9
  61. package/esm2022/lib/widgets/tree/pipes/search-tree.pipe.mjs +3 -2
  62. package/esm2022/lib/widgets/tree/tree.component.mjs +8 -7
  63. package/fesm2022/ngx-sp-infra.mjs +4985 -4946
  64. package/fesm2022/ngx-sp-infra.mjs.map +1 -1
  65. package/lib/components/footer/footer.component.d.ts +1 -1
  66. package/lib/components/lib-config-senha/lib-config-senha.component.d.ts +1 -1
  67. package/lib/components/page-not-authorized/page-not-authorized.component.d.ts +1 -1
  68. package/lib/directives/click-outside.directive.d.ts +1 -1
  69. package/lib/directives/copy-clipboard.directive.d.ts +1 -1
  70. package/lib/directives/disable-control.directive.d.ts +1 -1
  71. package/lib/directives/highlight.directive.d.ts +1 -1
  72. package/lib/directives/loading-btn.directive.d.ts +1 -1
  73. package/lib/directives/required.directive.d.ts +1 -1
  74. package/lib/directives/text-truncate.directive.d.ts +1 -1
  75. package/lib/infra.module.d.ts +71 -71
  76. package/lib/message/alert/alert.component.d.ts +1 -1
  77. package/lib/message/confirm/confirm.component.d.ts +1 -1
  78. package/lib/message/confirm-modal/confirm-modal.component.d.ts +1 -1
  79. package/lib/message/save/save.component.d.ts +1 -1
  80. package/lib/pipes/cpf-cnpj.pipe.d.ts +1 -1
  81. package/lib/pipes/decimal-comma.pipe.d.ts +1 -1
  82. package/lib/pipes/filter-multiple-choice.pipe.d.ts +1 -1
  83. package/lib/pipes/format-by-type.pipe.d.ts +1 -1
  84. package/lib/pipes/order-sort.pipe.d.ts +1 -1
  85. package/lib/pipes/phone-format.pipe.d.ts +1 -1
  86. package/lib/pipes/text-filter.pipe.d.ts +1 -1
  87. package/lib/pipes/title-case-pipe.pipe.d.ts +1 -1
  88. package/lib/pipes/to-url.pipe.d.ts +1 -1
  89. package/lib/widgets/applied-filters/applied-filters.component.d.ts +1 -1
  90. package/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.d.ts +1 -1
  91. package/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.d.ts +1 -1
  92. package/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.d.ts +1 -1
  93. package/lib/widgets/combobox/combobox.component.d.ts +1 -1
  94. package/lib/widgets/combobox/pipes/filter-by.pipe.d.ts +1 -1
  95. package/lib/widgets/combobox/pipes/limit-to.pipe.d.ts +1 -1
  96. package/lib/widgets/combobox-multiple-choice/combobox-multiple-choice.component.d.ts +1 -1
  97. package/lib/widgets/content-container/content-container.component.d.ts +1 -1
  98. package/lib/widgets/custom-acordion/custom-acordion.component.d.ts +1 -1
  99. package/lib/widgets/dropdown-options/dropdown-options.component.d.ts +1 -1
  100. package/lib/widgets/dynamic-input/dynamic-input.component.d.ts +1 -1
  101. package/lib/widgets/field-contador-message/field-contador-message.component.d.ts +1 -1
  102. package/lib/widgets/field-control-error/field-control-error.component.d.ts +1 -1
  103. package/lib/widgets/field-error-message/field-error-message.component.d.ts +1 -1
  104. package/lib/widgets/generic-modal/generic-modal.component.d.ts +1 -1
  105. package/lib/widgets/input-trim/input-trim.component.d.ts +1 -1
  106. package/lib/widgets/lib-combobox/lib-combobox.component.d.ts +1 -1
  107. package/lib/widgets/lib-header/lib-header.component.d.ts +1 -1
  108. package/lib/widgets/lib-icons/lib-icons.component.d.ts +1 -1
  109. package/lib/widgets/lib-nav-produtos/lib-nav-produtos.component.d.ts +1 -1
  110. package/lib/widgets/lib-transfer-list/inner-list/inner-list.component.d.ts +1 -1
  111. package/lib/widgets/lib-transfer-list/lib-transfer-list.component.d.ts +1 -1
  112. package/lib/widgets/loading/loading.component.d.ts +1 -1
  113. package/lib/widgets/loading-button/loading-button.component.d.ts +1 -1
  114. package/lib/widgets/nav-produtos/nav-produtos.component.d.ts +1 -1
  115. package/lib/widgets/ordering/ordering.component.d.ts +1 -1
  116. package/lib/widgets/pagination/pagination.component.d.ts +1 -1
  117. package/lib/widgets/password-policy/password-policy.component.d.ts +1 -1
  118. package/lib/widgets/search-combobox/search-combobox.component.d.ts +1 -1
  119. package/lib/widgets/search-filters/search-filters.component.d.ts +1 -1
  120. package/lib/widgets/search-input/search-input.component.d.ts +1 -1
  121. package/lib/widgets/side-tabs-generic/side-tabs-generic.component.d.ts +1 -1
  122. package/lib/widgets/simple-search/simple-search.component.d.ts +1 -1
  123. package/lib/widgets/spinner/spinner.component.d.ts +1 -1
  124. package/lib/widgets/table/table.component.d.ts +1 -1
  125. package/lib/widgets/tree/pipes/search-tree.pipe.d.ts +1 -1
  126. package/lib/widgets/tree/tree.component.d.ts +1 -1
  127. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Component } from '@angular/core';
2
+ import { LibIconsComponent } from '../../widgets/lib-icons/lib-icons.component';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "../../widgets/lib-icons/lib-icons.component";
4
4
  export class FooterComponent {
5
5
  constructor(el) {
6
6
  this.el = el;
@@ -16,10 +16,10 @@ export class FooterComponent {
16
16
  htmlEl.style.backgroundColor = "#eee"; // [!]
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterComponent, selector: "[app-footer], app-footer, lib-footer", ngImport: i0, template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"], dependencies: [{ kind: "component", type: i1.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }] }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterComponent, isStandalone: true, selector: "[app-footer], app-footer, lib-footer", ngImport: i0, template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"], dependencies: [{ kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }] }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: '[app-footer], app-footer, lib-footer', template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"] }]
23
+ args: [{ selector: '[app-footer], app-footer, lib-footer', standalone: true, imports: [LibIconsComponent], template: " <!-- #region FOOTER -->\n\n<div class=\"footer-position d-flex align-items-end justify-content-center position-relative\">\n <footer>\n <p class=\"footer-text d-flex justify-content-center\">\n Desenvolvido por <a href=\"https://www.sispro.com.br/\" target=\"_blank\" class=\"sispro text-decoration-none fw-bold text-primary\"> SISPRO </a> - Servi\u00E7os e Tecnologia da informa\u00E7\u00E3o LTDA \u00A9 {{ year }} Todos os direitos reservados\n </p>\n\n <div class=\"icons d-flex align-items-center justify-content-center mt-3\">\n <a href=\"https://pt-br.facebook.com/SisproERP/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"facebook\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://www.instagram.com/accounts/login/?next=/sispro_software/\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"instagram\" iconSize=\"medium-small\"/>\n </a>\n\n <a href=\"https://br.linkedin.com/company/sispro\" target=\"_blank\" class=\"icon-item\">\n <lib-icon class=\"text-primary\" iconName=\"linkedin\" iconSize=\"medium-small\"/>\n </a>\n </div>\n </footer>\n</div>\n <!-- #endregion FOOTER -->\n", styles: [".footer-position{margin:1.5rem 0;font-size:.875rem;color:#2847a0;white-space:nowrap}.footer-position .sispro{margin:0 5px}.footer-position .icons .icon-item{margin:0 10px}\n"] }]
24
24
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7OztBQU85RCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUVsQyxnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDeEIsU0FBSSxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFIUixDQUFDO0lBS3ZDLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBSSxVQUFVO0lBQ3RELENBQUM7K0dBYlUsZUFBZTttR0FBZixlQUFlLDRFQ1A1QixndUNBd0JBOzs0RkRqQmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbYXBwLWZvb3Rlcl0sIGFwcC1mb290ZXIsIGxpYi1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9vdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XG5cbiAgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpXG4gIHllYXI6IG51bWJlciA9IHRoaXMuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBodG1sRWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGh0bWxFbC5zdHlsZS5oZWlnaHQgPSBcIjEwMCVcIjtcbiAgICBodG1sRWwuc3R5bGUuZGlzcGxheSA9IFwiZmxleFwiO1xuICAgIGh0bWxFbC5zdHlsZS5hbGlnbkl0ZW1zID0gXCJmbGV4LWVuZFwiO1xuICAgIGh0bWxFbC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiY2VudGVyXCI7XG4gICAgaHRtbEVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFwiI2VlZVwiOyAgICAvLyBbIV0gICAgXG4gIH1cblxufVxuIiwiICA8IS0tICNyZWdpb24gRk9PVEVSIC0tPlxuXG48ZGl2IGNsYXNzPVwiZm9vdGVyLXBvc2l0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1lbmQganVzdGlmeS1jb250ZW50LWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICA8Zm9vdGVyPlxuICAgIDxwIGNsYXNzPVwiZm9vdGVyLXRleHQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIERlc2Vudm9sdmlkbyBwb3IgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNpc3Byby5jb20uYnIvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJzaXNwcm8gdGV4dC1kZWNvcmF0aW9uLW5vbmUgZnctYm9sZCB0ZXh0LXByaW1hcnlcIj4gU0lTUFJPIDwvYT4gLSBTZXJ2acOnb3MgZSBUZWNub2xvZ2lhIGRhIGluZm9ybWHDp8OjbyBMVERBIMKpIHt7IHllYXIgfX0gVG9kb3Mgb3MgZGlyZWl0b3MgcmVzZXJ2YWRvc1xuICAgIDwvcD5cblxuICAgIDxkaXYgY2xhc3M9XCJpY29ucyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtM1wiPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vcHQtYnIuZmFjZWJvb2suY29tL1Npc3Byb0VSUC9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImljb24taXRlbVwiPlxuICAgICAgICA8bGliLWljb24gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiBpY29uTmFtZT1cImZhY2Vib29rXCIgaWNvblNpemU9XCJtZWRpdW0tc21hbGxcIi8+XG4gICAgICA8L2E+XG5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2FjY291bnRzL2xvZ2luLz9uZXh0PS9zaXNwcm9fc29mdHdhcmUvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJpY29uLWl0ZW1cIj5cbiAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgaWNvbk5hbWU9XCJpbnN0YWdyYW1cIiBpY29uU2l6ZT1cIm1lZGl1bS1zbWFsbFwiLz5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYnIubGlua2VkaW4uY29tL2NvbXBhbnkvc2lzcHJvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJpY29uLWl0ZW1cIj5cbiAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgaWNvbk5hbWU9XCJsaW5rZWRpblwiIGljb25TaXplPVwibWVkaXVtLXNtYWxsXCIvPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Zvb3Rlcj5cbjwvZGl2PlxuICA8IS0tICNlbmRyZWdpb24gRk9PVEVSIC0tPlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBU2hGLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUN4QixTQUFJLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUhSLENBQUM7SUFLdkMsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQTRCLENBQUM7UUFDakUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDckMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFJLFVBQVU7SUFDdEQsQ0FBQzsrR0FiVSxlQUFlO21HQUFmLGVBQWUsZ0dDVjVCLGd1Q0F3QkEsdU9EaEJlLGlCQUFpQjs7NEZBRW5CLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0ksc0NBQXNDLGNBR3BDLElBQUksV0FDUCxDQUFFLGlCQUFpQixDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYkljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2FwcC1mb290ZXJdLCBhcHAtZm9vdGVyLCBsaWItZm9vdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFsgTGliSWNvbnNDb21wb25lbnQgXVxufSlcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cblxuICBjdXJyZW50VGltZSA9IG5ldyBEYXRlKClcbiAgeWVhcjogbnVtYmVyID0gdGhpcy5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGh0bWxFbDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaHRtbEVsLnN0eWxlLmhlaWdodCA9IFwiMTAwJVwiO1xuICAgIGh0bWxFbC5zdHlsZS5kaXNwbGF5ID0gXCJmbGV4XCI7XG4gICAgaHRtbEVsLnN0eWxlLmFsaWduSXRlbXMgPSBcImZsZXgtZW5kXCI7XG4gICAgaHRtbEVsLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gXCJjZW50ZXJcIjtcbiAgICBodG1sRWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCIjZWVlXCI7ICAgIC8vIFshXSAgICBcbiAgfVxuXG59XG4iLCIgIDwhLS0gI3JlZ2lvbiBGT09URVIgLS0+XG5cbjxkaXYgY2xhc3M9XCJmb290ZXItcG9zaXRpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gIDxmb290ZXI+XG4gICAgPHAgY2xhc3M9XCJmb290ZXItdGV4dCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgRGVzZW52b2x2aWRvIHBvciA8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2lzcHJvLmNvbS5ici9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInNpc3BybyB0ZXh0LWRlY29yYXRpb24tbm9uZSBmdy1ib2xkIHRleHQtcHJpbWFyeVwiPiBTSVNQUk8gPC9hPiAtIFNlcnZpw6dvcyBlIFRlY25vbG9naWEgZGEgaW5mb3JtYcOnw6NvIExUREEgwqkge3sgeWVhciB9fSBUb2RvcyBvcyBkaXJlaXRvcyByZXNlcnZhZG9zXG4gICAgPC9wPlxuXG4gICAgPGRpdiBjbGFzcz1cImljb25zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC0zXCI+XG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly9wdC1ici5mYWNlYm9vay5jb20vU2lzcHJvRVJQL1wiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiaWNvbi1pdGVtXCI+XG4gICAgICAgIDxsaWItaWNvbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiIGljb25OYW1lPVwiZmFjZWJvb2tcIiBpY29uU2l6ZT1cIm1lZGl1bS1zbWFsbFwiLz5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vYWNjb3VudHMvbG9naW4vP25leHQ9L3Npc3Byb19zb2Z0d2FyZS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImljb24taXRlbVwiPlxuICAgICAgICA8bGliLWljb24gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiBpY29uTmFtZT1cImluc3RhZ3JhbVwiIGljb25TaXplPVwibWVkaXVtLXNtYWxsXCIvPlxuICAgICAgPC9hPlxuXG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly9ici5saW5rZWRpbi5jb20vY29tcGFueS9zaXNwcm9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImljb24taXRlbVwiPlxuICAgICAgICA8bGliLWljb24gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiBpY29uTmFtZT1cImxpbmtlZGluXCIgaWNvblNpemU9XCJtZWRpdW0tc21hbGxcIi8+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZm9vdGVyPlxuPC9kaXY+XG4gIDwhLS0gI2VuZHJlZ2lvbiBGT09URVIgLS0+XG4iXX0=
@@ -1,21 +1,21 @@
1
1
  import { Component } from '@angular/core';
2
- import { FormControl, FormGroup, Validators } from '@angular/forms';
2
+ import { FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { FormUtils } from '../../utils/form-utils';
4
4
  import { InfraSegConfig } from '../../models/config-senha/7Db/InfraSegConfig.record';
5
+ import { LibHeaderComponent } from '../../widgets/lib-header/lib-header.component';
6
+ import { ContentContainerComponent } from '../../widgets/content-container/content-container.component';
7
+ import { NgIf, NgClass } from '@angular/common';
8
+ import { LibIconsComponent } from '../../widgets/lib-icons/lib-icons.component';
9
+ import { TooltipDirective } from 'ngx-bootstrap/tooltip';
10
+ import { RequiredDirective } from '../../directives/required.directive';
11
+ import { FieldErrorMessageComponent } from '../../widgets/field-error-message/field-error-message.component';
12
+ import { LibSpinnerComponent } from '../../widgets/spinner/spinner.component';
5
13
  import * as i0 from "@angular/core";
6
14
  import * as i1 from "../../service/configuracao-senha.service";
7
15
  import * as i2 from "../../message/message.service";
8
16
  import * as i3 from "../../service/tenant.service";
9
17
  import * as i4 from "@angular/platform-browser";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "ngx-bootstrap/tooltip";
12
- import * as i7 from "@angular/forms";
13
- import * as i8 from "../../widgets/field-error-message/field-error-message.component";
14
- import * as i9 from "../../directives/required.directive";
15
- import * as i10 from "../../widgets/lib-header/lib-header.component";
16
- import * as i11 from "../../widgets/lib-icons/lib-icons.component";
17
- import * as i12 from "../../widgets/content-container/content-container.component";
18
- import * as i13 from "../../widgets/spinner/spinner.component";
18
+ import * as i5 from "@angular/forms";
19
19
  export class LibConfigSenhaComponent {
20
20
  // #endregion PUBLIC
21
21
  // #endregion ==========> PROPERTIES <==========
@@ -183,10 +183,10 @@ export class LibConfigSenhaComponent {
183
183
  }
184
184
  }
185
185
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibConfigSenhaComponent, deps: [{ token: i1.ConfiguracaoSenhaService }, { token: i2.MessageService }, { token: i3.TenantService }, { token: i4.Title }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibConfigSenhaComponent, selector: "lib-config-senha", ngImport: i0, template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.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: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.FieldErrorMessageComponent, selector: "app-field-error-message, lib-error-message", inputs: ["customMessage", "control", "label"] }, { kind: "directive", type: i9.RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "requiredID"] }, { kind: "component", type: i10.LibHeaderComponent, selector: "lib-header", inputs: ["breadcrumbList", "pageTitle", "mode", "hideButtons", "formGroup", "showSpinner"], outputs: ["onReturn", "return", "onCreate", "create", "onUpdate", "update"] }, { kind: "component", type: i11.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "component", type: i12.ContentContainerComponent, selector: "lib-container", inputs: ["documentation", "tabs", "advancedTabs", "containerTitle", "currentTab"], outputs: ["onChangeTab"] }, { kind: "component", type: i13.LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "text"] }] }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibConfigSenhaComponent, isStandalone: true, selector: "lib-config-senha", ngImport: i0, template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n", styles: [""], dependencies: [{ kind: "component", type: LibHeaderComponent, selector: "lib-header", inputs: ["breadcrumbList", "pageTitle", "mode", "hideButtons", "formGroup", "showSpinner"], outputs: ["onReturn", "return", "onCreate", "create", "onUpdate", "update"] }, { kind: "component", type: ContentContainerComponent, selector: "lib-container", inputs: ["documentation", "tabs", "advancedTabs", "containerTitle", "currentTab"], outputs: ["onChangeTab"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "requiredID"] }, { kind: "component", type: FieldErrorMessageComponent, selector: "app-field-error-message, lib-error-message", inputs: ["customMessage", "control", "label"] }, { kind: "component", type: LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "text"] }] }); }
187
187
  }
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibConfigSenhaComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'lib-config-senha', template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n" }]
190
+ args: [{ selector: 'lib-config-senha', standalone: true, imports: [LibHeaderComponent, ContentContainerComponent, NgIf, FormsModule, ReactiveFormsModule, NgClass, LibIconsComponent, TooltipDirective, RequiredDirective, FieldErrorMessageComponent, LibSpinnerComponent], template: "<lib-header [breadcrumbList]=\"[ 'Infra', 'Configura\u00E7\u00E3o de Senha' ]\" pageTitle=\"Configura\u00E7\u00E3o de Senha\"\n mode=\"edit\" [hideButtons]=\"[ 'Cancelar' ]\" (create)=\"onSubmit()\" (update)=\"onSubmit()\" />\n\n\n<!-- #region BODY -->\n<lib-container>\n\n <div innerContent1>\n <form *ngIf=\"$infraSegConfigRecord; else loading\" [formGroup]=\"form\">\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"mb-3\">\n <h2 class=\"fs-5\">Atualmente seu n\u00EDvel de seguran\u00E7a \u00E9 \n <span class=\"rounded text-white p-1 px-2 fw-bold\"\n [ngClass]=\"{\n 'bg-danger': initialLevel === 1,\n 'bg-warning': initialLevel === 2,\n 'bg-success': initialLevel === 3,\n 'bg-primary': initialLevel === 4,\n }\" >\n\n @switch (initialLevel) {\n @case (1) { Baixo }\n @case (2) { M\u00E9dio }\n @case (3) { Alto }\n @case (4) { Personalizado }\n }\n\n <!-- <strong *ngIf=\"initialLevel === 1\"> Baixo </strong>\n <strong class=\"text-dark\" *ngIf=\"initialLevel === 2\"> M\u00E9dio </strong>\n <strong *ngIf=\"initialLevel === 3\"> Alto </strong>\n <strong *ngIf=\"initialLevel === 4\"> Personalizado </strong> -->\n </span>\n </h2>\n </div>\n </div>\n <div class=\"border rounded mb-4\">\n <div class=\"card-body\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Selecione um n\u00EDvel de seguran\u00E7a abaixo:</h3>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option1\" autocomplete=\"off\" [value]=\"1\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-danger]=\"Level === 1\" [class.bg-danger]=\"Level === 1\" class=\"btn btn-secondary m-2\" for=\"option1\"><lib-icon iconName=\"cadeado-aberto-outline\"/> Baixo </label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option2\" autocomplete=\"off\" [value]=\"2\" (change)=\"onSelectLevel(Level)\" >\n <label [class.bg-warning]=\"Level === 2\" [class.btn-outline-warning]=\"Level === 2\" class=\" btn btn-secondary text-light m-2\" for=\"option2\"><lib-icon iconName=\"cadeado-semiaberto-outline\"/> M\u00E9dio</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option3\" autocomplete=\"off\" [value]=\"3\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-success]=\"Level === 3\" [class.bg-success]=\"Level === 3\" class=\"btn btn-secondary m-2\" for=\"option3\"><lib-icon iconName=\"cadeado-outline\"/> Alto</label>\n\n <input formControlName=\"Level\" type=\"radio\" class=\"btn-check\" name=\"Level\" id=\"option4\" autocomplete=\"off\" [value]=\"4\" (change)=\"onSelectLevel(Level)\" >\n <label [class.btn-outline-primary]=\"Level === 4\" [class.bg-primary]=\"Level === 4\" class=\"btn btn-secondary m-2\" for=\"option4\"><lib-icon iconName=\"chave\"/> Personalizado</label>\n </div>\n </div>\n\n <div class=\"border rounded p-3 mb-4\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">A senha deve conter:</h3>\n\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"numeros\"> N\u00FAmero </label>\n <input formControlName=\"Is_Numeros\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"numeros\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"letraMaiuscula\"> Letra Mai\u00FAscula </label>\n <input formControlName=\"Is_LetrasMaiusculas\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"letraMaiuscula\">\n </div>\n <div class=\"form-check form-switch\">\n <label class=\"form-check-label\" for=\"caracteresEspeciais\">Caractere especial</label>\n <input formControlName=\"Is_CaracteresEspeciais\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"caracteresEspeciais\">\n <lib-icon class=\"ms-1\" iconName=\"info\" iconColor=\"blue\" iconSize=\"small\" tooltip=\"Caracteres sugeridos: ! @ # $ % & * ( ) _ + = [ ] { } | ?\" />\n </div>\n </div>\n\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnTrocaSenhaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" />\n Validade em dias\n </label>\n <input formControlName=\"QtnTrocaSenha\" type=\"number\" class=\"form-control form-input\" id=\"qtnTrocaSenhaInput\" tooltip=\"Informe a quantidade em dias que a senha ser\u00E1 v\u00E1lida, ap\u00F3s este per\u00EDodo a senha dever\u00E1 ser trocada pelo usu\u00E1rio.\" >\n <app-field-error-message [control]=\"form.get('QtnTrocaSenha')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnMinimaInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\" />\n Tamanho m\u00EDnimo\n </label>\n <input formControlName=\"QtnMinima\" type=\"number\" class=\"form-control form-input\" id=\"qtnMinimaInput\" tooltip=\"Informe a quantidade m\u00EDnima de caracteres que a senha deve ter.\">\n <app-field-error-message [control]=\"form.get('QtnMinima')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"qtnRepeticaoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\" />\n Repeti\u00E7\u00E3o\n </label>\n <input formControlName=\"QtnRepeticao\" type=\"number\" class=\"form-control form-input\" id=\"qtnRepeticaoInput\" tooltip=\"Informe quantas senhas diferentes o usu\u00E1rio dever\u00E1 usar antes que possa repetir alguma j\u00E1 utilizada.\">\n <app-field-error-message [control]=\"form.get('QtnRepeticao')\"></app-field-error-message>\n </div>\n \n <!-- <div class=\"container col row\">\n \n </div> -->\n </div>\n </div>\n\n <div class=\"border rounded p-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Bloqueios:</h3>\n\n <div class=\"row\">\n <!-- <div class=\"col-2 form-check form-switch\">\n <label class=\"form-check-label\" for=\"isDropSessionCheck\"> Derrubar multiplas sess\u00F5es</label>\n <input class=\"form-check-input\" id=\"isDropSessionCheck\" formControlName=\"Is_DropSession\" type=\"checkbox\" role=\"switch\">\n </div> -->\n \n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"diasInatividadeInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\" />\n Dias de Inatividade\n </label>\n <input id=\"diasInatividadeInput\" formControlName=\"QtnInatividade\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe quantos dias um usu\u00E1rio poder\u00E1 ficar sem entrar no sistema, ao exceder este n\u00FAmero o usu\u00E1rio ser\u00E1 desativado perdendo o acesso ao sistema, e somente os Administradores poder\u00E3o ativ\u00E1-lo novamente.\">\n <app-field-error-message [control]=\"form.get('QtnInatividade')\"></app-field-error-message>\n </div>\n <div class=\"col-3\">\n <label libRequired class=\"form-label form-control-sm\" for=\"tentativasDeAcessoInput\">\n <lib-icon iconName=\"info\" iconSize=\"small\" iconColor=\"blue\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\" />\n Tentativas de acesso\n </label>\n <input id=\"tentativasDeAcessoInput\" formControlName=\"QtnTentativa\" type=\"number\" class=\"form-control form-input\" tooltip=\"Informe a quantidade de tentativas consecutivas de acesso ao sistema sem sucesso antes de bloquear o usu\u00E1rio, exigindo que ele fa\u00E7a uma recupera\u00E7\u00E3o de senha.\">\n <app-field-error-message [control]=\"form.get('QtnTentativa')\"></app-field-error-message>\n </div>\n\n <!-- <div class=\"container col-6 row\">\n\n </div> -->\n </div>\n </div>\n\n <!-- Palavras do Guilherme: \"oculteia eles\", \"um dia implementamos\" -->\n <!-- #region MARK: LINKS OCULTADOS -->\n <!-- <div class=\"card p-3 mt-3\">\n <h3 class=\"card-subtitle mb-2 text-muted fs-6\">Redefini\u00E7\u00E3o de senha:</h3>\n <a href=\"#\" class=\"link-primary\">Obrigar todos os usu\u00E1rios a trocarem sua senha no pr\u00F3ximo login</a>\n <a href=\"#\" class=\"link-primary\">Selecionar usu\u00E1rios para trocarem sua senha no pr\u00F3ximo login</a>\n </div> -->\n <!-- #endregion LINKS OCULTADOS -->\n\n\n <!-- <div class=\"border rounded\">\n <div class=\"card-body\">\n \n\n </div>\n </div> -->\n\n </form>\n </div>\n\n</lib-container>\n<!-- #endregion BODY -->\n\n<!-- #region SPINNER -->\n<ng-template #loading>\n <div class=\"w-100 text-center\">\n <!-- <div class=\"spinner-border\" style=\"width: 3rem; height: 3rem;\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div> -->\n <lib-spinner />\n </div>\n</ng-template>\n\n<ng-template #loadingIsAtivo>\n <div class=\"spinner-border spinner-border-sm me-2\" role=\"status\"> <span class=\"visually-hidden\">Carregando...</span> </div>\n</ng-template>\n<!-- #endregion SPINNER -->\n" }]
191
191
  }], ctorParameters: () => [{ type: i1.ConfiguracaoSenhaService }, { type: i2.MessageService }, { type: i3.TenantService }, { type: i4.Title }] });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVVyRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLG9CQUFvQjtJQUVwQixnREFBZ0Q7SUFHaEQsK0NBQStDO0lBQy9DLElBQVcsU0FBUyxLQUF1QixPQUFPLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFrQjdELElBQVcsRUFBRSxLQUFhLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUM3RCxJQUFXLEtBQUssS0FBYSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFDbkUseUJBQXlCO0lBRXpCLGtEQUFrRDtJQUdsRCxpREFBaUQ7SUFDakQsWUFDVSx5QkFBbUQsRUFDbkQsZUFBK0IsRUFDL0IsUUFBdUIsRUFD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QUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0E5TlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsd0RDaEJwQyxtNFZBNEtBOzs0RkQ1SmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtLXV0aWxzJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBJbmZyYVNlZ0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWctc2VuaGEvN0RiL0luZnJhU2VnQ29uZmlnLnJlY29yZCc7XG5pbXBvcnQgeyBDb25maWd1cmFjYW9TZW5oYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NvbmZpZ3VyYWNhby1zZW5oYS5zZXJ2aWNlJztcbmltcG9ydCB7IFRlbmFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RlbmFudC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25maWctc2VuaGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgTGliQ29uZmlnU2VuaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG4gIC8vICNyZWdpb24gUFJJVkFURVxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJfYXV0aF92NiA9IGxvY2FsU3RvcmFnZVtcInVzZXJfYXV0aF92NlwiXSA/PyBcInt9XCI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX190b2tlblBheWxvYWQgPSBKU09OLnBhcnNlKHRoaXMudXNlcl9hdXRoX3Y2KS5fX3Rva2VuUGF5bG9hZCA/PyB7IHRlbmFudElkOiAxNTc5IH07XG5cbiAgcHJpdmF0ZSBfbG9jYWxUZW5hbnRJZCA9IHRoaXMuX190b2tlblBheWxvYWQudGVuYW50SWQgPz8gMDtcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXG5cbiAgLy8gI3JlZ2lvbiBQVUJMSUNcbiAgcHVibGljIG1lbnVHcm91cCE6IHN0cmluZztcbiAgcHVibGljICRpbmZyYVNlZ0NvbmZpZ1JlY29yZD86IEluZnJhU2VnQ29uZmlnO1xuICBwdWJsaWMgaW5pdGlhbExldmVsITogbnVtYmVyO1xuICAvLyAjZW5kcmVnaW9uIFBVQkxJQ1xuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHMgfVxuXG4gIC8vICNyZWdpb24gRk9STSBGSUVMRFNcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIFRlbmFudF9JZDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMCksXG4gICAgSWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDApLFxuICAgIFF0bk1pbmltYTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19OdW1lcm9zOiBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UpLFxuICAgIElzX0xldHJhc01haXVzY3VsYXM6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSksXG4gICAgSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpczogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBRdG5Ucm9jYVNlbmhhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigtMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBRdG5JbmF0aXZpZGFkZTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oLTEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgUXRuVGVudGF0aXZhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigxLCBWYWxpZGF0b3JzLm1pbigtMSkpLFxuICAgIFF0blJlcGV0aWNhbzogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19Ecm9wU2Vzc2lvbjogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBMZXZlbDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSlcbiAgfSk7XG5cbiAgcHVibGljIGdldCBJZCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnSWQnKT8udmFsdWUgfVxuICBwdWJsaWMgZ2V0IExldmVsKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdMZXZlbCcpPy52YWx1ZSB9XG4gIC8vICNlbmRyZWdpb24gRk9STSBGSUVMRFNcblxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb25maWd1cmFjYW9TZW5oYVNlcnZpY2U6IENvbmZpZ3VyYWNhb1NlbmhhU2VydmljZSxcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZG9taW5pbzogVGVuYW50U2VydmljZSxcbiAgICBwcml2YXRlIF90aXRsZTogVGl0bGVcbiAgICBcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0VXRpbHNlcnZpY2U6IFByb2plY3RVdGlsc2VydmljZSxcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBfYXV0aFN0b3JhZ2U6IEF1dGhTdG9yYWdlU2VydmljZSxcbiAgKSB7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RpdGxlLnNldFRpdGxlKFwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIik7XG4gICAgXG4gICAgdGhpcy5fZG9taW5pby52YWxpZGF0ZVRlbmFudCh0aGlzLl9sb2NhbFRlbmFudElkKTtcbiAgICB0aGlzLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIEdFVFxuICBwcml2YXRlIGdldEluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5nZXRJbmZyYVNlZ0NvbmZpZygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuJGluZnJhU2VnQ29uZmlnUmVjb3JkID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWc7XG5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAuLi5yZXNwb25zZS5JbmZyYVNlZ0NvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWcuTGV2ZWwgfHwgMTtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydUZW5hbnRfSWQnXS5zZXRWYWx1ZSh0aGlzLl9sb2NhbFRlbmFudElkKTtcblxuICAgICAgICB0aGlzLm9uU2VsZWN0TGV2ZWwodGhpcy5MZXZlbCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgLy8gdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpXG4gICAgICAgIHRoaXMub25TZWxlY3RMZXZlbCh0aGlzLkxldmVsKTtcbiAgICAgICAgdGhpcy4kaW5mcmFTZWdDb25maWdSZWNvcmQgPSBuZXcgSW5mcmFTZWdDb25maWcoKTtcblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8vICNlbmRyZWdpb24gR0VUXG5cbiAgLy8gI3JlZ2lvbiBQT1NUXG4gIHB1YmxpYyBjcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5jcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gdGhpcy5MZXZlbDtcblxuICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydFN1Y2Nlc3MoYENvbmZpZ3VyYcOnw6NvIGRlIHNlbmhhICR7dGhpcy5JZCAhPSAwID8gJ2FsdGVyYWRhJyA6ICdjcmlhZGEnfSBjb20gc3VjZXNzbyFgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBpZiAodGhpcy5JRCAhPSAwKSB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBhbHRlcmFkYSBjb20gc3VjZXNzbyEnKTtcbiAgICAgICAgICAvLyBlbHNlICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBjcmlhZGEgY29tIHN1Y2Vzc28hJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgdGhpcy5fY29uZmlndXJhY2FvU2VuaGFTZXJ2aWNlLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gICAgICAgICAgdGhpcy5nZXRJbmZyYVNlZ0NvbmZpZygpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgIC8vIHRoaXMuX3Byb2plY3RVdGlsc2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfVxuICAgIGVsc2UgeyBGb3JtVXRpbHMudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtKSB9XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiBQT1NUXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cbiAgb25TZWxlY3RMZXZlbCgkdmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgIHN3aXRjaCAoJHZhbHVlKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoNik7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uZGlzYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoOCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKDEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5SZXBldGljYW8nKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5zZXRWYWx1ZSg1KTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoMTApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5zZXRWYWx1ZSgzKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoMyk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LmVuYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQgPSAoKTogdm9pZCA9PiB7IHRoaXMuY3JlYXRlT3JVcGRhdGVJbmZyYVNlZ0NvbmZpZygpIH07XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cblxufVxuIiwiPGxpYi1oZWFkZXIgW2JyZWFkY3J1bWJMaXN0XT1cIlsgJ0luZnJhJywgJ0NvbmZpZ3VyYcOnw6NvIGRlIFNlbmhhJyBdXCIgcGFnZVRpdGxlPVwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIlxuICBtb2RlPVwiZWRpdFwiIFtoaWRlQnV0dG9uc109XCJbICdDYW5jZWxhcicgXVwiIChjcmVhdGUpPVwib25TdWJtaXQoKVwiICh1cGRhdGUpPVwib25TdWJtaXQoKVwiICAvPlxuXG5cbjwhLS0gI3JlZ2lvbiBCT0RZIC0tPlxuPGxpYi1jb250YWluZXI+XG5cbiAgPGRpdiBpbm5lckNvbnRlbnQxPlxuICAgIDxmb3JtICpuZ0lmPVwiJGluZnJhU2VnQ29uZmlnUmVjb3JkOyBlbHNlIGxvYWRpbmdcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZnMtNVwiPkF0dWFsbWVudGUgc2V1IG7DrXZlbCBkZSBzZWd1cmFuw6dhIMOpIFxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdW5kZWQgdGV4dC13aGl0ZSBwLTEgcHgtMiBmdy1ib2xkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnYmctZGFuZ2VyJzogaW5pdGlhbExldmVsID09PSAxLFxuICAgICAgICAgICAgICAgICAgJ2JnLXdhcm5pbmcnOiBpbml0aWFsTGV2ZWwgPT09IDIsXG4gICAgICAgICAgICAgICAgICAnYmctc3VjY2Vzcyc6IGluaXRpYWxMZXZlbCA9PT0gMyxcbiAgICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5JzogaW5pdGlhbExldmVsID09PSA0LFxuICAgICAgICAgICAgICAgIH1cIiA+XG5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChpbml0aWFsTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICgxKSB7IEJhaXhvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgyKSB7IE3DqWRpbyB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoMykgeyBBbHRvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICg0KSB7IFBlcnNvbmFsaXphZG8gfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gPHN0cm9uZyAqbmdJZj1cImluaXRpYWxMZXZlbCA9PT0gMVwiPiBCYWl4byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidGV4dC1kYXJrXCIgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDJcIj4gTcOpZGlvIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDNcIj4gQWx0byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiaW5pdGlhbExldmVsID09PSA0XCI+IFBlcnNvbmFsaXphZG8gPC9zdHJvbmc+IC0tPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1iLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC1zdWJ0aXRsZSBtYi0yIHRleHQtbXV0ZWQgZnMtNlwiPlNlbGVjaW9uZSB1bSBuw612ZWwgZGUgc2VndXJhbsOnYSBhYmFpeG86PC9oMz5cblxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIkxldmVsXCIgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuYW1lPVwiTGV2ZWxcIiBpZD1cIm9wdGlvbjFcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbdmFsdWVdPVwiMVwiIChjaGFuZ2UpPVwib25TZWxlY3RMZXZlbChMZXZlbClcIiA+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLmJ0bi1vdXRsaW5lLWRhbmdlcl09XCJMZXZlbCA9PT0gMVwiIFtjbGFzcy5iZy1kYW5nZXJdPVwiTGV2ZWwgPT09IDFcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjFcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLWFiZXJ0by1vdXRsaW5lXCIvPiBCYWl4byA8L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCIyXCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYmctd2FybmluZ109XCJMZXZlbCA9PT0gMlwiIFtjbGFzcy5idG4tb3V0bGluZS13YXJuaW5nXT1cIkxldmVsID09PSAyXCIgY2xhc3M9XCIgYnRuIGJ0bi1zZWNvbmRhcnkgdGV4dC1saWdodCBtLTJcIiBmb3I9XCJvcHRpb24yXCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2FkZWFkby1zZW1pYWJlcnRvLW91dGxpbmVcIi8+IE3DqWRpbzwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJMZXZlbFwiIHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmFtZT1cIkxldmVsXCIgaWQ9XCJvcHRpb24zXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3ZhbHVlXT1cIjNcIiAoY2hhbmdlKT1cIm9uU2VsZWN0TGV2ZWwoTGV2ZWwpXCIgPlxuICAgICAgICAgICAgPGxhYmVsIFtjbGFzcy5idG4tb3V0bGluZS1zdWNjZXNzXT1cIkxldmVsID09PSAzXCIgW2NsYXNzLmJnLXN1Y2Nlc3NdPVwiTGV2ZWwgPT09IDNcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjNcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLW91dGxpbmVcIi8+IEFsdG88L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uNFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCI0XCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYnRuLW91dGxpbmUtcHJpbWFyeV09XCJMZXZlbCA9PT0gNFwiIFtjbGFzcy5iZy1wcmltYXJ5XT1cIkxldmVsID09PSA0XCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTJcIiBmb3I9XCJvcHRpb240XCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2hhdmVcIi8+IFBlcnNvbmFsaXphZG88L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBwLTMgbWItNFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QSBzZW5oYSBkZXZlIGNvbnRlcjo8L2gzPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJudW1lcm9zXCI+IE7Dum1lcm8gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX051bWVyb3NcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJudW1lcm9zXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImxldHJhTWFpdXNjdWxhXCI+IExldHJhIE1hacO6c2N1bGEgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0xldHJhc01haXVzY3VsYXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJsZXRyYU1haXVzY3VsYVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+Q2FyYWN0ZXJlIGVzcGVjaWFsPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0NhcmFjdGVyZXNFc3BlY2lhaXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBjbGFzcz1cIm1zLTFcIiBpY29uTmFtZT1cImluZm9cIiBpY29uQ29sb3I9XCJibHVlXCIgaWNvblNpemU9XCJzbWFsbFwiIHRvb2x0aXA9XCJDYXJhY3RlcmVzIHN1Z2VyaWRvczogISBAICMgJCAlICYgKiAoICkgXyArID0gWyBdIHsgfSB8ID9cIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBsaWJSZXF1aXJlZCBjbGFzcz1cImZvcm0tbGFiZWwgZm9ybS1jb250cm9sLXNtXCIgZm9yPVwicXRuVHJvY2FTZW5oYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBlbSBkaWFzIHF1ZSBhIHNlbmhhIHNlcsOhIHbDoWxpZGEsIGFww7NzIGVzdGUgcGVyw61vZG8gYSBzZW5oYSBkZXZlcsOhIHNlciB0cm9jYWRhIHBlbG8gdXN1w6FyaW8uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhZGUgZW0gZGlhc1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIlF0blRyb2NhU2VuaGFcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuVHJvY2FTZW5oYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGVtIGRpYXMgcXVlIGEgc2VuaGEgc2Vyw6EgdsOhbGlkYSwgYXDDs3MgZXN0ZSBwZXLDrW9kbyBhIHNlbmhhIGRldmVyw6Egc2VyIHRyb2NhZGEgcGVsbyB1c3XDoXJpby5cIiA+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInF0bk1pbmltYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBtw61uaW1hIGRlIGNhcmFjdGVyZXMgcXVlIGEgc2VuaGEgZGV2ZSB0ZXIuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVGFtYW5obyBtw61uaW1vXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiUXRuTWluaW1hXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cInF0bk1pbmltYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIG3DrW5pbWEgZGUgY2FyYWN0ZXJlcyBxdWUgYSBzZW5oYSBkZXZlIHRlci5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bk1pbmltYScpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJxdG5SZXBldGljYW9JbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiaW5mb1wiIGljb25TaXplPVwic21hbGxcIiBpY29uQ29sb3I9XCJibHVlXCIgdG9vbHRpcD1cIkluZm9ybWUgcXVhbnRhcyBzZW5oYXMgZGlmZXJlbnRlcyBvIHVzdcOhcmlvIGRldmVyw6EgdXNhciBhbnRlcyBxdWUgcG9zc2EgcmVwZXRpciBhbGd1bWEgasOhIHV0aWxpemFkYS5cIiAvPlxuICAgICAgICAgICAgICAgICAgUmVwZXRpw6fDo29cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJRdG5SZXBldGljYW9cIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuUmVwZXRpY2FvSW5wdXRcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudGFzIHNlbmhhcyBkaWZlcmVudGVzIG8gdXN1w6FyaW8gZGV2ZXLDoSB1c2FyIGFudGVzIHF1ZSBwb3NzYSByZXBldGlyIGFsZ3VtYSBqw6EgdXRpbGl6YWRhLlwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnUXRuUmVwZXRpY2FvJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb2wgcm93XCI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIHAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QmxvcXVlaW9zOjwvaDM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLTIgZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIj4gRGVycnViYXIgbXVsdGlwbGFzIHNlc3PDtWVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgaWQ9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIiBmb3JtQ29udHJvbE5hbWU9XCJJc19Ecm9wU2Vzc2lvblwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJkaWFzSW5hdGl2aWRhZGVJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudG9zIGRpYXMgdW0gdXN1w6FyaW8gcG9kZXLDoSBmaWNhciBzZW0gZW50cmFyIG5vIHNpc3RlbWEsIGFvIGV4Y2VkZXIgZXN0ZSBuw7ptZXJvIG8gdXN1w6FyaW8gc2Vyw6EgZGVzYXRpdmFkbyBwZXJkZW5kbyBvIGFjZXNzbyBhbyBzaXN0ZW1hLCBlIHNvbWVudGUgb3MgQWRtaW5pc3RyYWRvcmVzIHBvZGVyw6NvIGF0aXbDoS1sbyBub3ZhbWVudGUuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgRGlhcyBkZSBJbmF0aXZpZGFkZVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0ICBpZD1cImRpYXNJbmF0aXZpZGFkZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwiUXRuSW5hdGl2aWRhZGVcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIHF1YW50b3MgZGlhcyB1bSB1c3XDoXJpbyBwb2RlcsOhIGZpY2FyIHNlbSBlbnRyYXIgbm8gc2lzdGVtYSwgYW8gZXhjZWRlciBlc3RlIG7Dum1lcm8gbyB1c3XDoXJpbyBzZXLDoSBkZXNhdGl2YWRvIHBlcmRlbmRvIG8gYWNlc3NvIGFvIHNpc3RlbWEsIGUgc29tZW50ZSBvcyBBZG1pbmlzdHJhZG9yZXMgcG9kZXLDo28gYXRpdsOhLWxvIG5vdmFtZW50ZS5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInRlbnRhdGl2YXNEZUFjZXNzb0lucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBkZSB0ZW50YXRpdmFzIGNvbnNlY3V0aXZhcyBkZSBhY2Vzc28gYW8gc2lzdGVtYSBzZW0gc3VjZXNzbyBhbnRlcyBkZSBibG9xdWVhciBvIHVzdcOhcmlvLCBleGlnaW5kbyBxdWUgZWxlIGZhw6dhIHVtYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFRlbnRhdGl2YXMgZGUgYWNlc3NvXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0ZW50YXRpdmFzRGVBY2Vzc29JbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cIlF0blRlbnRhdGl2YVwiIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGRlIHRlbnRhdGl2YXMgY29uc2VjdXRpdmFzIGRlIGFjZXNzbyBhbyBzaXN0ZW1hIHNlbSBzdWNlc3NvIGFudGVzIGRlIGJsb3F1ZWFyIG8gdXN1w6FyaW8sIGV4aWdpbmRvIHF1ZSBlbGUgZmHDp2EgdW1hIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEuXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKVwiPjwvYXBwLWZpZWxkLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbC02IHJvd1wiPlxuXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQYWxhdnJhcyBkbyBHdWlsaGVybWU6IFwib2N1bHRlaWEgZWxlc1wiLCBcInVtIGRpYSBpbXBsZW1lbnRhbW9zXCIgLS0+XG4gICAgPCEtLSAjcmVnaW9uIE1BUks6IExJTktTIE9DVUxUQURPUyAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkIHAtMyBtdC0zXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtc3VidGl0bGUgbWItMiB0ZXh0LW11dGVkIGZzLTZcIj5SZWRlZmluacOnw6NvIGRlIHNlbmhhOjwvaDM+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJsaW5rLXByaW1hcnlcIj5PYnJpZ2FyIHRvZG9zIG9zIHVzdcOhcmlvcyBhIHRyb2NhcmVtIHN1YSBzZW5oYSBubyBwcsOzeGltbyBsb2dpbjwvYT5cbiAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpbmstcHJpbWFyeVwiPlNlbGVjaW9uYXIgdXN1w6FyaW9zIHBhcmEgdHJvY2FyZW0gc3VhIHNlbmhhIG5vIHByw7N4aW1vIGxvZ2luPC9hPlxuICAgIDwvZGl2PiAtLT5cbiAgICA8IS0tICNlbmRyZWdpb24gTElOS1MgT0NVTFRBRE9TIC0tPlxuXG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICBcblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuXG48L2xpYi1jb250YWluZXI+XG48IS0tICNlbmRyZWdpb24gQk9EWSAtLT5cblxuPCEtLSAjcmVnaW9uIFNQSU5ORVIgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgc3R5bGU9XCJ3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtO1wiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj4gLS0+XG4gICAgICAgIDxsaWItc3Bpbm5lciAvPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nSXNBdGl2bz5cbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48IS0tICNlbmRyZWdpb24gU1BJTk5FUiAtLT5cbiJdfQ==
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2xpYi1jb25maWctc2VuaGEvbGliLWNvbmZpZy1zZW5oYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBSXJGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7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LElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBOU5VLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRFQzFCcEMsbTRWQTRLQSwwRERwSmMsa0JBQWtCLGdPQUFFLHlCQUF5Qix1S0FBRSxJQUFJLDRGQUFFLFdBQVcsaXNDQUFFLG1CQUFtQixnVkFBRSxPQUFPLG9GQUFFLGlCQUFpQixnSEFBRSxnQkFBZ0IsZ2hCQUFFLGlCQUFpQix5SUFBRSwwQkFBMEIsc0lBQUUsbUJBQW1COzs0RkFFeE0sdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRm9ybVV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybS11dGlscyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSW5mcmFTZWdDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uZmlnLXNlbmhhLzdEYi9JbmZyYVNlZ0NvbmZpZy5yZWNvcmQnO1xuaW1wb3J0IHsgQ29uZmlndXJhY2FvU2VuaGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9jb25maWd1cmFjYW8tc2VuaGEuc2VydmljZSc7XG5pbXBvcnQgeyBUZW5hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS90ZW5hbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTGliSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9saWItaGVhZGVyL2xpYi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExpYkljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IFJlcXVpcmVkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzL2ZpZWxkLWVycm9yLW1lc3NhZ2UvZmllbGQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWNvbmZpZy1zZW5oYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpYi1jb25maWctc2VuaGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogYGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTGliSGVhZGVyQ29tcG9uZW50LCBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50LCBOZ0lmLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmdDbGFzcywgTGliSWNvbnNDb21wb25lbnQsIFRvb2x0aXBEaXJlY3RpdmUsIFJlcXVpcmVkRGlyZWN0aXZlLCBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCwgTGliU3Bpbm5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTGliQ29uZmlnU2VuaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG4gIC8vICNyZWdpb24gUFJJVkFURVxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJfYXV0aF92NiA9IGxvY2FsU3RvcmFnZVtcInVzZXJfYXV0aF92NlwiXSA/PyBcInt9XCI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX190b2tlblBheWxvYWQgPSBKU09OLnBhcnNlKHRoaXMudXNlcl9hdXRoX3Y2KS5fX3Rva2VuUGF5bG9hZCA/PyB7IHRlbmFudElkOiAxNTc5IH07XG5cbiAgcHJpdmF0ZSBfbG9jYWxUZW5hbnRJZCA9IHRoaXMuX190b2tlblBheWxvYWQudGVuYW50SWQgPz8gMDtcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXG5cbiAgLy8gI3JlZ2lvbiBQVUJMSUNcbiAgcHVibGljIG1lbnVHcm91cCE6IHN0cmluZztcbiAgcHVibGljICRpbmZyYVNlZ0NvbmZpZ1JlY29yZD86IEluZnJhU2VnQ29uZmlnO1xuICBwdWJsaWMgaW5pdGlhbExldmVsITogbnVtYmVyO1xuICAvLyAjZW5kcmVnaW9uIFBVQkxJQ1xuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHMgfVxuXG4gIC8vICNyZWdpb24gRk9STSBGSUVMRFNcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIFRlbmFudF9JZDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMCksXG4gICAgSWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDApLFxuICAgIFF0bk1pbmltYTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19OdW1lcm9zOiBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UpLFxuICAgIElzX0xldHJhc01haXVzY3VsYXM6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSksXG4gICAgSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpczogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBRdG5Ucm9jYVNlbmhhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigtMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBRdG5JbmF0aXZpZGFkZTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oLTEsIFZhbGlkYXRvcnMubWluKC0xKSksXG4gICAgUXRuVGVudGF0aXZhOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigxLCBWYWxpZGF0b3JzLm1pbigtMSkpLFxuICAgIFF0blJlcGV0aWNhbzogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSwgVmFsaWRhdG9ycy5taW4oLTEpKSxcbiAgICBJc19Ecm9wU2Vzc2lvbjogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlKSxcbiAgICBMZXZlbDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSlcbiAgfSk7XG5cbiAgcHVibGljIGdldCBJZCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnSWQnKT8udmFsdWUgfVxuICBwdWJsaWMgZ2V0IExldmVsKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdMZXZlbCcpPy52YWx1ZSB9XG4gIC8vICNlbmRyZWdpb24gRk9STSBGSUVMRFNcblxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb25maWd1cmFjYW9TZW5oYVNlcnZpY2U6IENvbmZpZ3VyYWNhb1NlbmhhU2VydmljZSxcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZG9taW5pbzogVGVuYW50U2VydmljZSxcbiAgICBwcml2YXRlIF90aXRsZTogVGl0bGVcbiAgICBcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0VXRpbHNlcnZpY2U6IFByb2plY3RVdGlsc2VydmljZSxcbiAgICAvLyBwcml2YXRlIF9wcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBfYXV0aFN0b3JhZ2U6IEF1dGhTdG9yYWdlU2VydmljZSxcbiAgKSB7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RpdGxlLnNldFRpdGxlKFwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIik7XG4gICAgXG4gICAgdGhpcy5fZG9taW5pby52YWxpZGF0ZVRlbmFudCh0aGlzLl9sb2NhbFRlbmFudElkKTtcbiAgICB0aGlzLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBJTklUSUFMSVpBVElPTiA8PT09PT09PT09PVxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuICAvLyAjcmVnaW9uIEdFVFxuICBwcml2YXRlIGdldEluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5nZXRJbmZyYVNlZ0NvbmZpZygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuJGluZnJhU2VnQ29uZmlnUmVjb3JkID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWc7XG5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAuLi5yZXNwb25zZS5JbmZyYVNlZ0NvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gcmVzcG9uc2UuSW5mcmFTZWdDb25maWcuTGV2ZWwgfHwgMTtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydUZW5hbnRfSWQnXS5zZXRWYWx1ZSh0aGlzLl9sb2NhbFRlbmFudElkKTtcblxuICAgICAgICB0aGlzLm9uU2VsZWN0TGV2ZWwodGhpcy5MZXZlbCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgLy8gdGhpcy5fcHJvamVjdFV0aWxzZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpXG4gICAgICAgIHRoaXMub25TZWxlY3RMZXZlbCh0aGlzLkxldmVsKTtcbiAgICAgICAgdGhpcy4kaW5mcmFTZWdDb25maWdSZWNvcmQgPSBuZXcgSW5mcmFTZWdDb25maWcoKTtcblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8vICNlbmRyZWdpb24gR0VUXG5cbiAgLy8gI3JlZ2lvbiBQT1NUXG4gIHB1YmxpYyBjcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYWNhb1NlbmhhU2VydmljZS5jcmVhdGVPclVwZGF0ZUluZnJhU2VnQ29uZmlnKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdGlhbExldmVsID0gdGhpcy5MZXZlbDtcblxuICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydFN1Y2Nlc3MoYENvbmZpZ3VyYcOnw6NvIGRlIHNlbmhhICR7dGhpcy5JZCAhPSAwID8gJ2FsdGVyYWRhJyA6ICdjcmlhZGEnfSBjb20gc3VjZXNzbyFgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBpZiAodGhpcy5JRCAhPSAwKSB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBhbHRlcmFkYSBjb20gc3VjZXNzbyEnKTtcbiAgICAgICAgICAvLyBlbHNlICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdDb25maWd1cmHDp8OjbyBkZSBzZW5oYSBjcmlhZGEgY29tIHN1Y2Vzc28hJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgdGhpcy5fY29uZmlndXJhY2FvU2VuaGFTZXJ2aWNlLmdldEluZnJhU2VnQ29uZmlnKCk7XG4gICAgICAgICAgdGhpcy5nZXRJbmZyYVNlZ0NvbmZpZygpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgIC8vIHRoaXMuX3Byb2plY3RVdGlsc2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfVxuICAgIGVsc2UgeyBGb3JtVXRpbHMudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtKSB9XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiBQT1NUXG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFIE1FVEhPRFMgPD09PT09PT09PT1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cbiAgb25TZWxlY3RMZXZlbCgkdmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgIHN3aXRjaCAoJHZhbHVlKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfTGV0cmFzTWFpdXNjdWxhcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoNik7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoLTEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LnNldFZhbHVlKC0xKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uZGlzYWJsZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19OdW1lcm9zJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LnNldFZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19MZXRyYXNNYWl1c2N1bGFzJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdJc19DYXJhY3RlcmVzRXNwZWNpYWlzJyk/LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnSXNfQ2FyYWN0ZXJlc0VzcGVjaWFpcycpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVHJvY2FTZW5oYScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoOCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LnNldFZhbHVlKDEpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5SZXBldGljYW8nKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5zZXRWYWx1ZSg1KTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuVGVudGF0aXZhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5zZXRWYWx1ZSgxMjApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uc2V0VmFsdWUoMTApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5NaW5pbWEnKT8uZGlzYWJsZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blJlcGV0aWNhbycpPy5zZXRWYWx1ZSgzKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uc2V0VmFsdWUoMyk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRlbnRhdGl2YScpPy5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuSW5hdGl2aWRhZGUnKT8uc2V0VmFsdWUoMzApO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5JbmF0aXZpZGFkZScpPy5kaXNhYmxlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX051bWVyb3MnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0xldHJhc01haXVzY3VsYXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ0lzX0NhcmFjdGVyZXNFc3BlY2lhaXMnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0blRyb2NhU2VuaGEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bk1pbmltYScpPy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnUXRuUmVwZXRpY2FvJyk/LmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKT8uZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJyk/LmVuYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQgPSAoKTogdm9pZCA9PiB7IHRoaXMuY3JlYXRlT3JVcGRhdGVJbmZyYVNlZ0NvbmZpZygpIH07XG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cblxufVxuIiwiPGxpYi1oZWFkZXIgW2JyZWFkY3J1bWJMaXN0XT1cIlsgJ0luZnJhJywgJ0NvbmZpZ3VyYcOnw6NvIGRlIFNlbmhhJyBdXCIgcGFnZVRpdGxlPVwiQ29uZmlndXJhw6fDo28gZGUgU2VuaGFcIlxuICBtb2RlPVwiZWRpdFwiIFtoaWRlQnV0dG9uc109XCJbICdDYW5jZWxhcicgXVwiIChjcmVhdGUpPVwib25TdWJtaXQoKVwiICh1cGRhdGUpPVwib25TdWJtaXQoKVwiICAvPlxuXG5cbjwhLS0gI3JlZ2lvbiBCT0RZIC0tPlxuPGxpYi1jb250YWluZXI+XG5cbiAgPGRpdiBpbm5lckNvbnRlbnQxPlxuICAgIDxmb3JtICpuZ0lmPVwiJGluZnJhU2VnQ29uZmlnUmVjb3JkOyBlbHNlIGxvYWRpbmdcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZnMtNVwiPkF0dWFsbWVudGUgc2V1IG7DrXZlbCBkZSBzZWd1cmFuw6dhIMOpIFxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdW5kZWQgdGV4dC13aGl0ZSBwLTEgcHgtMiBmdy1ib2xkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnYmctZGFuZ2VyJzogaW5pdGlhbExldmVsID09PSAxLFxuICAgICAgICAgICAgICAgICAgJ2JnLXdhcm5pbmcnOiBpbml0aWFsTGV2ZWwgPT09IDIsXG4gICAgICAgICAgICAgICAgICAnYmctc3VjY2Vzcyc6IGluaXRpYWxMZXZlbCA9PT0gMyxcbiAgICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5JzogaW5pdGlhbExldmVsID09PSA0LFxuICAgICAgICAgICAgICAgIH1cIiA+XG5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChpbml0aWFsTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICgxKSB7IEJhaXhvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgyKSB7IE3DqWRpbyB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoMykgeyBBbHRvIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICg0KSB7IFBlcnNvbmFsaXphZG8gfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gPHN0cm9uZyAqbmdJZj1cImluaXRpYWxMZXZlbCA9PT0gMVwiPiBCYWl4byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidGV4dC1kYXJrXCIgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDJcIj4gTcOpZGlvIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJpbml0aWFsTGV2ZWwgPT09IDNcIj4gQWx0byA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiaW5pdGlhbExldmVsID09PSA0XCI+IFBlcnNvbmFsaXphZG8gPC9zdHJvbmc+IC0tPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1iLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC1zdWJ0aXRsZSBtYi0yIHRleHQtbXV0ZWQgZnMtNlwiPlNlbGVjaW9uZSB1bSBuw612ZWwgZGUgc2VndXJhbsOnYSBhYmFpeG86PC9oMz5cblxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIkxldmVsXCIgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuYW1lPVwiTGV2ZWxcIiBpZD1cIm9wdGlvbjFcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbdmFsdWVdPVwiMVwiIChjaGFuZ2UpPVwib25TZWxlY3RMZXZlbChMZXZlbClcIiA+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLmJ0bi1vdXRsaW5lLWRhbmdlcl09XCJMZXZlbCA9PT0gMVwiIFtjbGFzcy5iZy1kYW5nZXJdPVwiTGV2ZWwgPT09IDFcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjFcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLWFiZXJ0by1vdXRsaW5lXCIvPiBCYWl4byA8L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCIyXCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYmctd2FybmluZ109XCJMZXZlbCA9PT0gMlwiIFtjbGFzcy5idG4tb3V0bGluZS13YXJuaW5nXT1cIkxldmVsID09PSAyXCIgY2xhc3M9XCIgYnRuIGJ0bi1zZWNvbmRhcnkgdGV4dC1saWdodCBtLTJcIiBmb3I9XCJvcHRpb24yXCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2FkZWFkby1zZW1pYWJlcnRvLW91dGxpbmVcIi8+IE3DqWRpbzwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJMZXZlbFwiIHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmFtZT1cIkxldmVsXCIgaWQ9XCJvcHRpb24zXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3ZhbHVlXT1cIjNcIiAoY2hhbmdlKT1cIm9uU2VsZWN0TGV2ZWwoTGV2ZWwpXCIgPlxuICAgICAgICAgICAgPGxhYmVsIFtjbGFzcy5idG4tb3V0bGluZS1zdWNjZXNzXT1cIkxldmVsID09PSAzXCIgW2NsYXNzLmJnLXN1Y2Nlc3NdPVwiTGV2ZWwgPT09IDNcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IG0tMlwiIGZvcj1cIm9wdGlvbjNcIj48bGliLWljb24gaWNvbk5hbWU9XCJjYWRlYWRvLW91dGxpbmVcIi8+IEFsdG88L2xhYmVsPlxuXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiTGV2ZWxcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImJ0bi1jaGVja1wiIG5hbWU9XCJMZXZlbFwiIGlkPVwib3B0aW9uNFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFt2YWx1ZV09XCI0XCIgKGNoYW5nZSk9XCJvblNlbGVjdExldmVsKExldmVsKVwiID5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MuYnRuLW91dGxpbmUtcHJpbWFyeV09XCJMZXZlbCA9PT0gNFwiIFtjbGFzcy5iZy1wcmltYXJ5XT1cIkxldmVsID09PSA0XCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTJcIiBmb3I9XCJvcHRpb240XCI+PGxpYi1pY29uIGljb25OYW1lPVwiY2hhdmVcIi8+IFBlcnNvbmFsaXphZG88L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBwLTMgbWItNFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QSBzZW5oYSBkZXZlIGNvbnRlcjo8L2gzPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJudW1lcm9zXCI+IE7Dum1lcm8gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX051bWVyb3NcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJudW1lcm9zXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImxldHJhTWFpdXNjdWxhXCI+IExldHJhIE1hacO6c2N1bGEgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0xldHJhc01haXVzY3VsYXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJsZXRyYU1haXVzY3VsYVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+Q2FyYWN0ZXJlIGVzcGVjaWFsPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIklzX0NhcmFjdGVyZXNFc3BlY2lhaXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJjYXJhY3RlcmVzRXNwZWNpYWlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBjbGFzcz1cIm1zLTFcIiBpY29uTmFtZT1cImluZm9cIiBpY29uQ29sb3I9XCJibHVlXCIgaWNvblNpemU9XCJzbWFsbFwiIHRvb2x0aXA9XCJDYXJhY3RlcmVzIHN1Z2VyaWRvczogISBAICMgJCAlICYgKiAoICkgXyArID0gWyBdIHsgfSB8ID9cIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBsaWJSZXF1aXJlZCBjbGFzcz1cImZvcm0tbGFiZWwgZm9ybS1jb250cm9sLXNtXCIgZm9yPVwicXRuVHJvY2FTZW5oYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBlbSBkaWFzIHF1ZSBhIHNlbmhhIHNlcsOhIHbDoWxpZGEsIGFww7NzIGVzdGUgcGVyw61vZG8gYSBzZW5oYSBkZXZlcsOhIHNlciB0cm9jYWRhIHBlbG8gdXN1w6FyaW8uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhZGUgZW0gZGlhc1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIlF0blRyb2NhU2VuaGFcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuVHJvY2FTZW5oYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGVtIGRpYXMgcXVlIGEgc2VuaGEgc2Vyw6EgdsOhbGlkYSwgYXDDs3MgZXN0ZSBwZXLDrW9kbyBhIHNlbmhhIGRldmVyw6Egc2VyIHRyb2NhZGEgcGVsbyB1c3XDoXJpby5cIiA+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5Ucm9jYVNlbmhhJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInF0bk1pbmltYUlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBtw61uaW1hIGRlIGNhcmFjdGVyZXMgcXVlIGEgc2VuaGEgZGV2ZSB0ZXIuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVGFtYW5obyBtw61uaW1vXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiUXRuTWluaW1hXCIgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cInF0bk1pbmltYUlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIG3DrW5pbWEgZGUgY2FyYWN0ZXJlcyBxdWUgYSBzZW5oYSBkZXZlIHRlci5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bk1pbmltYScpXCI+PC9hcHAtZmllbGQtZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJxdG5SZXBldGljYW9JbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiaW5mb1wiIGljb25TaXplPVwic21hbGxcIiBpY29uQ29sb3I9XCJibHVlXCIgdG9vbHRpcD1cIkluZm9ybWUgcXVhbnRhcyBzZW5oYXMgZGlmZXJlbnRlcyBvIHVzdcOhcmlvIGRldmVyw6EgdXNhciBhbnRlcyBxdWUgcG9zc2EgcmVwZXRpciBhbGd1bWEgasOhIHV0aWxpemFkYS5cIiAvPlxuICAgICAgICAgICAgICAgICAgUmVwZXRpw6fDo29cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJRdG5SZXBldGljYW9cIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwicXRuUmVwZXRpY2FvSW5wdXRcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudGFzIHNlbmhhcyBkaWZlcmVudGVzIG8gdXN1w6FyaW8gZGV2ZXLDoSB1c2FyIGFudGVzIHF1ZSBwb3NzYSByZXBldGlyIGFsZ3VtYSBqw6EgdXRpbGl6YWRhLlwiPlxuICAgICAgICAgICAgICAgIDxhcHAtZmllbGQtZXJyb3ItbWVzc2FnZSBbY29udHJvbF09XCJmb3JtLmdldCgnUXRuUmVwZXRpY2FvJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb2wgcm93XCI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIHAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXN1YnRpdGxlIG1iLTIgdGV4dC1tdXRlZCBmcy02XCI+QmxvcXVlaW9zOjwvaDM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLTIgZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIj4gRGVycnViYXIgbXVsdGlwbGFzIHNlc3PDtWVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgaWQ9XCJpc0Ryb3BTZXNzaW9uQ2hlY2tcIiBmb3JtQ29udHJvbE5hbWU9XCJJc19Ecm9wU2Vzc2lvblwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGxpYlJlcXVpcmVkIGNsYXNzPVwiZm9ybS1sYWJlbCBmb3JtLWNvbnRyb2wtc21cIiBmb3I9XCJkaWFzSW5hdGl2aWRhZGVJbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJpbmZvXCIgaWNvblNpemU9XCJzbWFsbFwiIGljb25Db2xvcj1cImJsdWVcIiB0b29sdGlwPVwiSW5mb3JtZSBxdWFudG9zIGRpYXMgdW0gdXN1w6FyaW8gcG9kZXLDoSBmaWNhciBzZW0gZW50cmFyIG5vIHNpc3RlbWEsIGFvIGV4Y2VkZXIgZXN0ZSBuw7ptZXJvIG8gdXN1w6FyaW8gc2Vyw6EgZGVzYXRpdmFkbyBwZXJkZW5kbyBvIGFjZXNzbyBhbyBzaXN0ZW1hLCBlIHNvbWVudGUgb3MgQWRtaW5pc3RyYWRvcmVzIHBvZGVyw6NvIGF0aXbDoS1sbyBub3ZhbWVudGUuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgRGlhcyBkZSBJbmF0aXZpZGFkZVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0ICBpZD1cImRpYXNJbmF0aXZpZGFkZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwiUXRuSW5hdGl2aWRhZGVcIiB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIHRvb2x0aXA9XCJJbmZvcm1lIHF1YW50b3MgZGlhcyB1bSB1c3XDoXJpbyBwb2RlcsOhIGZpY2FyIHNlbSBlbnRyYXIgbm8gc2lzdGVtYSwgYW8gZXhjZWRlciBlc3RlIG7Dum1lcm8gbyB1c3XDoXJpbyBzZXLDoSBkZXNhdGl2YWRvIHBlcmRlbmRvIG8gYWNlc3NvIGFvIHNpc3RlbWEsIGUgc29tZW50ZSBvcyBBZG1pbmlzdHJhZG9yZXMgcG9kZXLDo28gYXRpdsOhLWxvIG5vdmFtZW50ZS5cIj5cbiAgICAgICAgICAgICAgICA8YXBwLWZpZWxkLWVycm9yLW1lc3NhZ2UgW2NvbnRyb2xdPVwiZm9ybS5nZXQoJ1F0bkluYXRpdmlkYWRlJylcIj48L2FwcC1maWVsZC1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgbGliUmVxdWlyZWQgY2xhc3M9XCJmb3JtLWxhYmVsIGZvcm0tY29udHJvbC1zbVwiIGZvcj1cInRlbnRhdGl2YXNEZUFjZXNzb0lucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiBpY29uTmFtZT1cImluZm9cIiBpY29uU2l6ZT1cInNtYWxsXCIgaWNvbkNvbG9yPVwiYmx1ZVwiIHRvb2x0aXA9XCJJbmZvcm1lIGEgcXVhbnRpZGFkZSBkZSB0ZW50YXRpdmFzIGNvbnNlY3V0aXZhcyBkZSBhY2Vzc28gYW8gc2lzdGVtYSBzZW0gc3VjZXNzbyBhbnRlcyBkZSBibG9xdWVhciBvIHVzdcOhcmlvLCBleGlnaW5kbyBxdWUgZWxlIGZhw6dhIHVtYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFRlbnRhdGl2YXMgZGUgYWNlc3NvXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0ZW50YXRpdmFzRGVBY2Vzc29JbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cIlF0blRlbnRhdGl2YVwiIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0XCIgdG9vbHRpcD1cIkluZm9ybWUgYSBxdWFudGlkYWRlIGRlIHRlbnRhdGl2YXMgY29uc2VjdXRpdmFzIGRlIGFjZXNzbyBhbyBzaXN0ZW1hIHNlbSBzdWNlc3NvIGFudGVzIGRlIGJsb3F1ZWFyIG8gdXN1w6FyaW8sIGV4aWdpbmRvIHF1ZSBlbGUgZmHDp2EgdW1hIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEuXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1maWVsZC1lcnJvci1tZXNzYWdlIFtjb250cm9sXT1cImZvcm0uZ2V0KCdRdG5UZW50YXRpdmEnKVwiPjwvYXBwLWZpZWxkLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbC02IHJvd1wiPlxuXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQYWxhdnJhcyBkbyBHdWlsaGVybWU6IFwib2N1bHRlaWEgZWxlc1wiLCBcInVtIGRpYSBpbXBsZW1lbnRhbW9zXCIgLS0+XG4gICAgPCEtLSAjcmVnaW9uIE1BUks6IExJTktTIE9DVUxUQURPUyAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkIHAtMyBtdC0zXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtc3VidGl0bGUgbWItMiB0ZXh0LW11dGVkIGZzLTZcIj5SZWRlZmluacOnw6NvIGRlIHNlbmhhOjwvaDM+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJsaW5rLXByaW1hcnlcIj5PYnJpZ2FyIHRvZG9zIG9zIHVzdcOhcmlvcyBhIHRyb2NhcmVtIHN1YSBzZW5oYSBubyBwcsOzeGltbyBsb2dpbjwvYT5cbiAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpbmstcHJpbWFyeVwiPlNlbGVjaW9uYXIgdXN1w6FyaW9zIHBhcmEgdHJvY2FyZW0gc3VhIHNlbmhhIG5vIHByw7N4aW1vIGxvZ2luPC9hPlxuICAgIDwvZGl2PiAtLT5cbiAgICA8IS0tICNlbmRyZWdpb24gTElOS1MgT0NVTFRBRE9TIC0tPlxuXG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICBcblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuXG48L2xpYi1jb250YWluZXI+XG48IS0tICNlbmRyZWdpb24gQk9EWSAtLT5cblxuPCEtLSAjcmVnaW9uIFNQSU5ORVIgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgc3R5bGU9XCJ3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtO1wiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj4gLS0+XG4gICAgICAgIDxsaWItc3Bpbm5lciAvPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nSXNBdGl2bz5cbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIj4gPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvLi4uPC9zcGFuPiA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48IS0tICNlbmRyZWdpb24gU1BJTk5FUiAtLT5cbiJdfQ==
@@ -7,10 +7,10 @@ export class PageNotAuthorizedComponent {
7
7
  }
8
8
  onHome() { this.router.navigate(["/home"]); }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageNotAuthorizedComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageNotAuthorizedComponent, selector: "app-page-not-authorized, page-not-authorized", ngImport: i0, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"], preserveWhitespaces: true }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageNotAuthorizedComponent, isStandalone: true, selector: "app-page-not-authorized, page-not-authorized", ngImport: i0, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"], preserveWhitespaces: true }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageNotAuthorizedComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'app-page-not-authorized, page-not-authorized', preserveWhitespaces: true, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"] }]
14
+ args: [{ selector: 'app-page-not-authorized, page-not-authorized', preserveWhitespaces: true, standalone: true, template: "<div class=\"content\">\n <div class=\"image mb-4\"> <img src=\"src/assets/icons/page-not-authorized.svg\" height=\"250\" width=\"250\" > </div>\n <h1 class=\"tittle\">Voc\u00EA n\u00E3o tem permiss\u00E3o para executar esta op\u00E7\u00E3o.</h1>\n <button class=\"btn button mt-3\" (click)=\"onHome()\"> Voltar para a tela inicial </button>\n</div>\n", styles: [".content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh}.image{text-align:center;display:block}.tittle{font-family:Open Sans;font-style:normal;font-weight:700;font-size:48px;line-height:65px;text-align:center;color:#212529}.sub-tittle{font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;width:600px;text-align:center;color:#212529}.button{background:#0d6efd;border-radius:4px;font-family:Open Sans;font-style:normal;font-weight:400;font-size:16px;line-height:22px;color:#fff}\n"] }]
15
15
  }], ctorParameters: () => [{ type: i1.Router }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTMUMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFdkMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7K0dBSGxDLDBCQUEwQjttR0FBMUIsMEJBQTBCLG9GQ1R2QyxvV0FLQTs7NEZESWEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLDhDQUE4Qyx1QkFHbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXBhZ2Utbm90LWF1dGhvcml6ZWQsIHBhZ2Utbm90LWF1dGhvcml6ZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2Utbm90LWF1dGhvcml6ZWQuY29tcG9uZW50LmNzcyddLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VOb3RBdXRob3JpemVkQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XG4gIFxuICBvbkhvbWUoKSB7IHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9ob21lXCJdKTsgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImltYWdlIG1iLTRcIj4gPGltZyBzcmM9XCJzcmMvYXNzZXRzL2ljb25zL3BhZ2Utbm90LWF1dGhvcml6ZWQuc3ZnXCIgaGVpZ2h0PVwiMjUwXCIgd2lkdGg9XCIyNTBcIiA+IDwvZGl2PlxuICA8aDEgY2xhc3M9XCJ0aXR0bGVcIj5Wb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZXhlY3V0YXIgZXN0YSBvcMOnw6NvLjwvaDE+XG4gIDxidXR0b24gY2xhc3M9XCJidG4gYnV0dG9uIG10LTNcIiAoY2xpY2spPVwib25Ib21lKClcIj4gVm9sdGFyIHBhcmEgYSB0ZWxhIGluaWNpYWwgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVMUMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFdkMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7K0dBSGxDLDBCQUEwQjttR0FBMUIsMEJBQTBCLHdHQ1Z2QyxvV0FLQTs7NEZES2EsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLDhDQUE4Qyx1QkFHbkMsSUFBSSxjQUNiLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBhZ2Utbm90LWF1dGhvcml6ZWQsIHBhZ2Utbm90LWF1dGhvcml6ZWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiB0cnVlLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cbiAgXG4gIG9uSG9tZSgpIHsgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL2hvbWVcIl0pOyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiaW1hZ2UgbWItNFwiPiA8aW1nIHNyYz1cInNyYy9hc3NldHMvaWNvbnMvcGFnZS1ub3QtYXV0aG9yaXplZC5zdmdcIiBoZWlnaHQ9XCIyNTBcIiB3aWR0aD1cIjI1MFwiID4gPC9kaXY+XG4gIDxoMSBjbGFzcz1cInRpdHRsZVwiPlZvY8OqIG7Do28gdGVtIHBlcm1pc3PDo28gcGFyYSBleGVjdXRhciBlc3RhIG9ww6fDo28uPC9oMT5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidXR0b24gbXQtM1wiIChjbGljayk9XCJvbkhvbWUoKVwiPiBWb2x0YXIgcGFyYSBhIHRlbGEgaW5pY2lhbCA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -140,11 +140,14 @@ export class ClickOutsideDirective {
140
140
  });
141
141
  }
142
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
143
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, usesOnChanges: true, ngImport: i0 }); }
143
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, usesOnChanges: true, ngImport: i0 }); }
144
144
  }
145
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClickOutsideDirective, decorators: [{
146
146
  type: Directive,
147
- args: [{ selector: '[clickOutside]' }]
147
+ args: [{
148
+ selector: '[clickOutside]',
149
+ standalone: true
150
+ }]
148
151
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Document, decorators: [{
149
152
  type: Inject,
150
153
  args: [DOCUMENT]
@@ -165,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
165
168
  }], clickOutside: [{
166
169
  type: Output
167
170
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsTUFBTSxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCakMsWUFDUyxHQUFlLEVBQ2YsT0FBZSxFQUNHLFFBQWtCO1FBRnBDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0csYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CcEMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWhFLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxZQUFPLEdBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENB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LENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQXBLVyxxQkFBcUIsa0VBb0J4QixRQUFRO21HQXBCTCxxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUM7OzBCQXFCcEMsTUFBTTsyQkFBQyxRQUFRO3lDQW5CUixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXSd9KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBjbGlja091dHNpZGVFbmFibGVkID0gdHJ1ZTtcbiAgICBcblx0QElucHV0KCkgYXR0YWNoT3V0c2lkZU9uQ2xpY2sgPSBmYWxzZTtcblx0QElucHV0KCkgZGVsYXlDbGlja091dHNpZGVJbml0ID0gZmFsc2U7XG5cdEBJbnB1dCgpIGVtaXRPbkJsdXIgPSBmYWxzZTtcblxuXHRASW5wdXQoKSBleGNsdWRlID0gJyc7XG5cdEBJbnB1dCgpIGV4Y2x1ZGVCZWZvcmVDbGljayA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpIGNsaWNrT3V0c2lkZUV2ZW50cyA9ICcnO1xuXG5cdEBPdXRwdXQoKSBjbGlja091dHNpZGU6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG5cdHByaXZhdGUgX25vZGVzRXhjbHVkZWQ6IEFycmF5PEhUTUxFbGVtZW50PiA9IFtdO1xuXHRwcml2YXRlIF9ldmVudHM6IEFycmF5PHN0cmluZz4gPSBbJ2NsaWNrJ107XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG5cdFx0cHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG5cdFx0QEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHtcblx0XHR0aGlzLl9pbml0T25DbGlja0JvZHkgPSB0aGlzLl9pbml0T25DbGlja0JvZHkuYmluZCh0aGlzKTtcblx0XHR0aGlzLl9vbkNsaWNrQm9keSA9IHRoaXMuX29uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fb25XaW5kb3dCbHVyID0gdGhpcy5fb25XaW5kb3dCbHVyLmJpbmQodGhpcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9pbml0KCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLl9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdHRoaXMuX3JlbW92ZUF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKTtcblx0XHR0aGlzLl9yZW1vdmVXaW5kb3dCbHVyTGlzdGVuZXIoKTtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlc1snYXR0YWNoT3V0c2lkZU9uQ2xpY2snXSB8fCBjaGFuZ2VzWydleGNsdWRlJ10gfHwgY2hhbmdlc1snZW1pdE9uQmx1ciddKSB7XG5cdFx0XHR0aGlzLl9pbml0KCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdCgpIHtcblx0XHRpZiAodGhpcy5jbGlja091dHNpZGVFdmVudHMgIT09ICcnKSB7XG5cdFx0XHR0aGlzLl9ldmVudHMgPSB0aGlzLmNsaWNrT3V0c2lkZUV2ZW50cy5zcGxpdCgnLCcpLm1hcChlID0+IGUudHJpbSgpKTtcblx0XHR9XG5cblx0XHR0aGlzLl9leGNsdWRlQ2hlY2soKTtcblxuXHRcdGlmICh0aGlzLmF0dGFjaE91dHNpZGVPbkNsaWNrKSB7XG5cdFx0XHR0aGlzLl9pbml0QXR0YWNoT3V0c2lkZU9uQ2xpY2tMaXN0ZW5lcigpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0T25DbGlja0JvZHkoKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5lbWl0T25CbHVyKSB7XG5cdFx0XHR0aGlzLl9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdE9uQ2xpY2tCb2R5KCkge1xuXHRcdGlmICh0aGlzLmRlbGF5Q2xpY2tPdXRzaWRlSW5pdCkge1xuXHRcdFx0c2V0VGltZW91dCh0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIuYmluZCh0aGlzKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2luaXRDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2V4Y2x1ZGVDaGVjaygpIHtcblx0XHRpZiAodGhpcy5leGNsdWRlKSB7XG5cdFx0XHR0cnkge1xuXHRcdGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5leGNsdWRlKSkgYXMgQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXHRcdGlmIChub2Rlcykge1xuXHRcdFx0dGhpcy5fbm9kZXNFeGNsdWRlZCA9IG5vZGVzO1xuXHRcdH1cblx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tuZy1jbGljay1vdXRzaWRlXSBDaGVjayB5b3VyIGV4Y2x1ZGUgc2VsZWN0b3Igc3ludGF4LicsIGVycik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfb25DbGlja0JvZHkoZXY6IEV2ZW50KSB7XG5cdFx0aWYgKCF0aGlzLmNsaWNrT3V0c2lkZUVuYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5leGNsdWRlQmVmb3JlQ2xpY2spIHtcblx0XHRcdHRoaXMuX2V4Y2x1ZGVDaGVjaygpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldi50YXJnZXQpICYmICF0aGlzLl9zaG91bGRFeGNsdWRlKGV2LnRhcmdldCkpIHtcblx0XHRcdHRoaXMuX2VtaXQoZXYpO1xuXG5cdFx0XHRpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdHRoaXMuX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlc29sdmVzIHByb2JsZW0gd2l0aCBvdXRzaWRlIGNsaWNrIG9uIGlmcmFtZVxuXHQgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmtvbi9uZy1jbGljay1vdXRzaWRlL2lzc3Vlcy8zMlxuXHQgKi9cblx0cHJpdmF0ZSBfb25XaW5kb3dCbHVyKGV2OiBFdmVudCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLmRvY3VtZW50LmhpZGRlbikge1xuXHRcdHRoaXMuX2VtaXQoZXYpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfZW1pdChldjogRXZlbnQpIHtcblx0XHRpZiAoIXRoaXMuY2xpY2tPdXRzaWRlRW5hYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5jbGlja091dHNpZGUuZW1pdChldikpO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblx0cHJpdmF0ZSBfc2hvdWxkRXhjbHVkZSh0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xuXHRcdGZvciAoY29uc3QgZXhjbHVkZWROb2RlIG9mIHRoaXMuX25vZGVzRXhjbHVkZWQpIHtcblx0XHRcdGlmIChleGNsdWRlZE5vZGUuY29udGFpbnModGFyZ2V0KSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRDbGlja091dHNpZGVMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSwgdGhpcy5fb25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9ldmVudHMuZm9yRWFjaChlID0+IHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCB0aGlzLl9vbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlQXR0YWNoT3V0c2lkZU9uQ2xpY2tMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdGhpcy5faW5pdE9uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX29uV2luZG93Qmx1cik7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVXaW5kb3dCbHVyTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5fb25XaW5kb3dCbHVyKTtcblx0XHR9KTtcblx0fVxuXG59XG4iXX0=
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsTUFBTSxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCakMsWUFDUyxHQUFlLEVBQ2YsT0FBZSxFQUNHLFFBQWtCO1FBRnBDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0csYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CcEMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWhFLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxZQUFPLEdBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENB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LENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQXBLVyxxQkFBcUIsa0VBb0J4QixRQUFRO21HQXBCTCxxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFxQkUsTUFBTTsyQkFBQyxRQUFRO3lDQW5CUixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0QElucHV0KCkgY2xpY2tPdXRzaWRlRW5hYmxlZCA9IHRydWU7XG4gICAgXG5cdEBJbnB1dCgpIGF0dGFjaE91dHNpZGVPbkNsaWNrID0gZmFsc2U7XG5cdEBJbnB1dCgpIGRlbGF5Q2xpY2tPdXRzaWRlSW5pdCA9IGZhbHNlO1xuXHRASW5wdXQoKSBlbWl0T25CbHVyID0gZmFsc2U7XG5cblx0QElucHV0KCkgZXhjbHVkZSA9ICcnO1xuXHRASW5wdXQoKSBleGNsdWRlQmVmb3JlQ2xpY2sgPSBmYWxzZTtcblxuXHRASW5wdXQoKSBjbGlja091dHNpZGVFdmVudHMgPSAnJztcblxuXHRAT3V0cHV0KCkgY2xpY2tPdXRzaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuXHRwcml2YXRlIF9ub2Rlc0V4Y2x1ZGVkOiBBcnJheTxIVE1MRWxlbWVudD4gPSBbXTtcblx0cHJpdmF0ZSBfZXZlbnRzOiBBcnJheTxzdHJpbmc+ID0gWydjbGljayddO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuXHRcdHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7XG5cdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5ID0gdGhpcy5faW5pdE9uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fb25DbGlja0JvZHkgPSB0aGlzLl9vbkNsaWNrQm9keS5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX29uV2luZG93Qmx1ciA9IHRoaXMuX29uV2luZG93Qmx1ci5iaW5kKHRoaXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5faW5pdCgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5fcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR0aGlzLl9yZW1vdmVBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCk7XG5cdFx0dGhpcy5fcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXNbJ2F0dGFjaE91dHNpZGVPbkNsaWNrJ10gfHwgY2hhbmdlc1snZXhjbHVkZSddIHx8IGNoYW5nZXNbJ2VtaXRPbkJsdXInXSkge1xuXHRcdFx0dGhpcy5faW5pdCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXQoKSB7XG5cdFx0aWYgKHRoaXMuY2xpY2tPdXRzaWRlRXZlbnRzICE9PSAnJykge1xuXHRcdFx0dGhpcy5fZXZlbnRzID0gdGhpcy5jbGlja091dHNpZGVFdmVudHMuc3BsaXQoJywnKS5tYXAoZSA9PiBlLnRyaW0oKSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZXhjbHVkZUNoZWNrKCk7XG5cblx0XHRpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdFx0dGhpcy5faW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5KCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW1pdE9uQmx1cikge1xuXHRcdFx0dGhpcy5faW5pdFdpbmRvd0JsdXJMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXRPbkNsaWNrQm9keSgpIHtcblx0XHRpZiAodGhpcy5kZWxheUNsaWNrT3V0c2lkZUluaXQpIHtcblx0XHRcdHNldFRpbWVvdXQodGhpcy5faW5pdENsaWNrT3V0c2lkZUxpc3RlbmVyLmJpbmQodGhpcykpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9leGNsdWRlQ2hlY2soKSB7XG5cdFx0aWYgKHRoaXMuZXhjbHVkZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRjb25zdCBub2RlcyA9IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuZXhjbHVkZSkpIGFzIEFycmF5PEhUTUxFbGVtZW50Pjtcblx0XHRpZiAobm9kZXMpIHtcblx0XHRcdHRoaXMuX25vZGVzRXhjbHVkZWQgPSBub2Rlcztcblx0XHR9XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRjb25zb2xlLmVycm9yKCdbbmctY2xpY2stb3V0c2lkZV0gQ2hlY2sgeW91ciBleGNsdWRlIHNlbGVjdG9yIHN5bnRheC4nLCBlcnIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX29uQ2xpY2tCb2R5KGV2OiBFdmVudCkge1xuXHRcdGlmICghdGhpcy5jbGlja091dHNpZGVFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZXhjbHVkZUJlZm9yZUNsaWNrKSB7XG5cdFx0XHR0aGlzLl9leGNsdWRlQ2hlY2soKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXYudGFyZ2V0KSAmJiAhdGhpcy5fc2hvdWxkRXhjbHVkZShldi50YXJnZXQpKSB7XG5cdFx0XHR0aGlzLl9lbWl0KGV2KTtcblxuXHRcdFx0aWYgKHRoaXMuYXR0YWNoT3V0c2lkZU9uQ2xpY2spIHtcblx0XHR0aGlzLl9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNvbHZlcyBwcm9ibGVtIHdpdGggb3V0c2lkZSBjbGljayBvbiBpZnJhbWVcblx0ICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXJrb24vbmctY2xpY2stb3V0c2lkZS9pc3N1ZXMvMzJcblx0ICovXG5cdHByaXZhdGUgX29uV2luZG93Qmx1cihldjogRXZlbnQpIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGlmICghdGhpcy5kb2N1bWVudC5oaWRkZW4pIHtcblx0XHR0aGlzLl9lbWl0KGV2KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2VtaXQoZXY6IEV2ZW50KSB7XG5cdFx0aWYgKCF0aGlzLmNsaWNrT3V0c2lkZUVuYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2xpY2tPdXRzaWRlLmVtaXQoZXYpKTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5cdHByaXZhdGUgX3Nob3VsZEV4Y2x1ZGUodGFyZ2V0OiBhbnkpOiBib29sZWFuIHtcblx0XHRmb3IgKGNvbnN0IGV4Y2x1ZGVkTm9kZSBvZiB0aGlzLl9ub2Rlc0V4Y2x1ZGVkKSB7XG5cdFx0XHRpZiAoZXhjbHVkZWROb2RlLmNvbnRhaW5zKHRhcmdldCkpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwcml2YXRlIF9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX29uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdGhpcy5fb25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9ldmVudHMuZm9yRWFjaChlID0+IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihlLCB0aGlzLl9pbml0T25DbGlja0JvZHkpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZUF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdFdpbmRvd0JsdXJMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9vbldpbmRvd0JsdXIpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX29uV2luZG93Qmx1cik7XG5cdFx0fSk7XG5cdH1cblxufVxuIl19
@@ -11,12 +11,13 @@ export class CopyClipboardDirective {
11
11
  navigator.clipboard.writeText(this.payload.toString());
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopyClipboardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CopyClipboardDirective, selector: "[copy-clipboard]", inputs: { payload: ["copy-clipboard", "payload"] }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CopyClipboardDirective, isStandalone: true, selector: "[copy-clipboard]", inputs: { payload: ["copy-clipboard", "payload"] }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopyClipboardDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
- selector: '[copy-clipboard]'
19
+ selector: '[copy-clipboard]',
20
+ standalone: true
20
21
  }]
21
22
  }], propDecorators: { payload: [{
22
23
  type: Input,
@@ -25,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25
26
  type: HostListener,
26
27
  args: ["click", ["$event"]]
27
28
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1jbGlwYm9hcmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvZGlyZWN0aXZlcy9jb3B5LWNsaXBib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFLckYsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQU1TLFlBQU8sR0FBVyxFQUFFLENBQUM7S0FZN0I7SUFUUSxPQUFPLENBQUMsS0FBaUI7UUFFOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNmLE9BQU87UUFFVCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FiVSxzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs4QkFJUSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUloQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY29weS1jbGlwYm9hcmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlIHtcblxuICBASW5wdXQoXCJjb3B5LWNsaXBib2FyZFwiKVxuICBwdWJsaWMgcGF5bG9hZDogc3RyaW5nID0gXCJcIjtcblxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxuICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIXRoaXMucGF5bG9hZClcbiAgICAgIHJldHVybjtcblxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGF5bG9hZC50b1N0cmluZygpKTtcbiAgfVxuXG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1jbGlwYm9hcmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvZGlyZWN0aXZlcy9jb3B5LWNsaXBib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFNckYsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQU9TLFlBQU8sR0FBVyxFQUFFLENBQUM7S0FZN0I7SUFUUSxPQUFPLENBQUMsS0FBaUI7UUFFOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNmLE9BQU87UUFFVCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FiVSxzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBSVEsT0FBTztzQkFEYixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY29weS1jbGlwYm9hcmRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIENvcHlDbGlwYm9hcmREaXJlY3RpdmUge1xuXG4gIEBJbnB1dChcImNvcHktY2xpcGJvYXJkXCIpXG4gIHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcgPSBcIlwiO1xuXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5wYXlsb2FkKVxuICAgICAgcmV0dXJuO1xuXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5wYXlsb2FkLnRvU3RyaW5nKCkpO1xuICB9XG5cbn1cbiJdfQ==