@posiwise/admin-module 0.0.83 → 0.0.84

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 (57) hide show
  1. package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +1 -1
  2. package/esm2022/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +1 -1
  3. package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +1 -1
  4. package/esm2022/lib/components/config/global-config-list/global-config-list.component.mjs +1 -1
  5. package/esm2022/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +1 -1
  6. package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +1 -1
  7. package/esm2022/lib/components/credentials/credentials-details/credentials-details.component.mjs +1 -1
  8. package/esm2022/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +1 -1
  9. package/esm2022/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +1 -1
  10. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +1 -1
  11. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +1 -1
  12. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +1 -1
  13. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +1 -1
  14. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +1 -1
  15. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +1 -1
  16. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +1 -1
  17. package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +1 -1
  18. package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +1 -1
  19. package/esm2022/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +1 -1
  20. package/esm2022/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +1 -1
  21. package/esm2022/lib/components/incidents/add-edit-incident/add-edit-incident.component.mjs +1 -1
  22. package/esm2022/lib/components/incidents/incidents-list/incidents-list.component.mjs +1 -1
  23. package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +1 -1
  24. package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +1 -1
  25. package/esm2022/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +1 -1
  26. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +1 -1
  27. package/esm2022/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +1 -1
  28. package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +1 -1
  29. package/esm2022/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +1 -1
  30. package/esm2022/lib/components/permissions/permissions-details/permissions-details.component.mjs +1 -1
  31. package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +1 -1
  32. package/esm2022/lib/components/permissions/role-details/role-details.component.mjs +1 -1
  33. package/esm2022/lib/components/permissions/roles-list/roles-list.component.mjs +1 -1
  34. package/esm2022/lib/components/products/product-details/product-details.component.mjs +1 -1
  35. package/esm2022/lib/components/products/products-list/products-list.component.mjs +1 -1
  36. package/esm2022/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +1 -1
  37. package/esm2022/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +1 -1
  38. package/esm2022/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +1 -1
  39. package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +1 -1
  40. package/esm2022/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +3 -3
  41. package/esm2022/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +1 -1
  42. package/esm2022/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +1 -1
  43. package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +1 -1
  44. package/esm2022/lib/components/tags/tags-category/tags-category.component.mjs +1 -1
  45. package/esm2022/lib/components/tags/tags-list/tags-list.component.mjs +1 -1
  46. package/esm2022/lib/components/tips/tip-detail/tip-detail.component.mjs +1 -1
  47. package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +1 -1
  48. package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +1 -1
  49. package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +1 -1
  50. package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +1 -1
  51. package/esm2022/lib/components/tracking/events/events.component.mjs +1 -1
  52. package/esm2022/lib/components/tracking/versions/versions.component.mjs +1 -1
  53. package/esm2022/lib/components/users/user-details/user-details.component.mjs +1 -1
  54. package/esm2022/lib/components/users/users-list/users-list.component.mjs +1 -1
  55. package/fesm2022/posiwise-admin-module.mjs +2 -2
  56. package/fesm2022/posiwise-admin-module.mjs.map +1 -1
  57. package/package.json +1 -1
@@ -17,7 +17,7 @@ import * as i8 from "primeng/progressspinner";
17
17
  import * as i9 from "@posiwise/shared-components";
18
18
  import * as i10 from "@posiwise/directives";
19
19
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
20
- import * as i12 from "@ngneat/transloco";
20
+ import * as i12 from "@jsverse/transloco";
21
21
  import * as i13 from "@posiwise/pipes";
22
22
  export class TermsOfServiceComponent extends AppBaseComponent {
23
23
  constructor(adminService, injector, cdr) {
@@ -12,7 +12,7 @@ import * as i3 from "@angular/forms";
12
12
  import * as i4 from "@angular/router";
13
13
  import * as i5 from "@posiwise/directives";
14
14
  import * as i6 from "ngx-quill";
15
- import * as i7 from "@ngneat/transloco";
15
+ import * as i7 from "@jsverse/transloco";
16
16
  export class TermsOfServiceDetailsComponent extends AppBaseComponent {
17
17
  constructor(adminService, injector) {
18
18
  super(injector);
@@ -9,7 +9,7 @@ import * as i3 from "@angular/forms";
9
9
  import * as i4 from "ngx-ui-switch";
10
10
  import * as i5 from "@posiwise/shared-components";
11
11
  import * as i6 from "@posiwise/directives";
12
- import * as i7 from "@ngneat/transloco";
12
+ import * as i7 from "@jsverse/transloco";
13
13
  export class GlobalConfigDetailsComponent extends AppBaseComponent {
14
14
  constructor(adminService, injector) {
15
15
  super(injector);
@@ -16,7 +16,7 @@ import * as i8 from "primeng/progressspinner";
16
16
  import * as i9 from "@posiwise/shared-components";
17
17
  import * as i10 from "@posiwise/directives";
18
18
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
19
- import * as i12 from "@ngneat/transloco";
19
+ import * as i12 from "@jsverse/transloco";
20
20
  export class GlobalConfigListComponent extends AppBaseComponent {
21
21
  constructor(adminService, injector, cdr) {
22
22
  super(injector);
@@ -15,7 +15,7 @@ import * as i6 from "@angular/forms";
15
15
  import * as i7 from "primeng/progressspinner";
16
16
  import * as i8 from "@posiwise/shared-components";
17
17
  import * as i9 from "@ng-bootstrap/ng-bootstrap";
18
- import * as i10 from "@ngneat/transloco";
18
+ import * as i10 from "@jsverse/transloco";
19
19
  import * as i11 from "@posiwise/pipes";
20
20
  export class ContactUsListComponent extends AppBaseComponent {
21
21
  constructor(injector, adminService, cdr) {
@@ -16,7 +16,7 @@ import * as i8 from "primeng/progressspinner";
16
16
  import * as i9 from "@posiwise/shared-components";
17
17
  import * as i10 from "@posiwise/directives";
18
18
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
19
- import * as i12 from "@ngneat/transloco";
19
+ import * as i12 from "@jsverse/transloco";
20
20
  export class CredentialsComponent extends AppBaseComponent {
21
21
  constructor(adminService, injector, cdr) {
22
22
  super(injector);
@@ -12,7 +12,7 @@ import * as i4 from "ngx-ui-switch";
12
12
  import * as i5 from "@angular/router";
13
13
  import * as i6 from "@posiwise/shared-components";
14
14
  import * as i7 from "@posiwise/directives";
15
- import * as i8 from "@ngneat/transloco";
15
+ import * as i8 from "@jsverse/transloco";
16
16
  export class CredentialsDetailsComponent extends AppBaseComponent {
17
17
  constructor(adminService, injector) {
18
18
  super(injector);
@@ -16,7 +16,7 @@ import * as i7 from "@angular/router";
16
16
  import * as i8 from "primeng/progressspinner";
17
17
  import * as i9 from "@posiwise/shared-components";
18
18
  import * as i10 from "@ng-bootstrap/ng-bootstrap";
19
- import * as i11 from "@ngneat/transloco";
19
+ import * as i11 from "@jsverse/transloco";
20
20
  export class SubscriptionCredentialsComponent extends AppBaseComponent {
21
21
  constructor(adminService, injector, cdr) {
22
22
  super(injector);
@@ -11,7 +11,7 @@ import * as i2 from "@angular/common";
11
11
  import * as i3 from "@angular/forms";
12
12
  import * as i4 from "@posiwise/shared-components";
13
13
  import * as i5 from "@posiwise/directives";
14
- import * as i6 from "@ngneat/transloco";
14
+ import * as i6 from "@jsverse/transloco";
15
15
  export class SubscriptionCredentialsDetailsComponent extends AppBaseComponent {
16
16
  constructor(adminService, injector) {
17
17
  super(injector);
@@ -21,7 +21,7 @@ import * as i7 from "@angular/forms";
21
21
  import * as i8 from "ngx-ui-switch";
22
22
  import * as i9 from "@posiwise/shared-components";
23
23
  import * as i10 from "primeng/progressspinner";
24
- import * as i11 from "@ngneat/transloco";
24
+ import * as i11 from "@jsverse/transloco";
25
25
  export class DomainConfigBuildComponent extends AppBaseComponent {
26
26
  constructor(injector, adminService, productService) {
27
27
  super(injector);
@@ -12,7 +12,7 @@ import * as i2 from "@angular/common";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "primeng/progressspinner";
14
14
  import * as i5 from "@posiwise/shared-components";
15
- import * as i6 from "@ngneat/transloco";
15
+ import * as i6 from "@jsverse/transloco";
16
16
  export class DomainConfigCoreComponent extends AppBaseComponent {
17
17
  constructor(injector, adminService) {
18
18
  super(injector);
@@ -12,7 +12,7 @@ import * as i2 from "@angular/common";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "primeng/progressspinner";
14
14
  import * as i5 from "@posiwise/shared-components";
15
- import * as i6 from "@ngneat/transloco";
15
+ import * as i6 from "@jsverse/transloco";
16
16
  export class DomainConfigIntegrationsComponent extends AppBaseComponent {
17
17
  constructor(injector, adminService) {
18
18
  super(injector);
@@ -13,7 +13,7 @@ import * as i2 from "@angular/common";
13
13
  import * as i3 from "@angular/forms";
14
14
  import * as i4 from "@posiwise/shared-components";
15
15
  import * as i5 from "primeng/progressspinner";
16
- import * as i6 from "@ngneat/transloco";
16
+ import * as i6 from "@jsverse/transloco";
17
17
  export class DomainConfigInterfaceComponent extends AppBaseComponent {
18
18
  constructor(injector, adminService) {
19
19
  super(injector);
@@ -12,7 +12,7 @@ import * as i2 from "@angular/common";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "primeng/progressspinner";
14
14
  import * as i5 from "@posiwise/shared-components";
15
- import * as i6 from "@ngneat/transloco";
15
+ import * as i6 from "@jsverse/transloco";
16
16
  export class DomainConfigOrganizationComponent extends AppBaseComponent {
17
17
  constructor(injector, adminService) {
18
18
  super(injector);
@@ -13,7 +13,7 @@ import * as i3 from "@angular/common";
13
13
  import * as i4 from "@angular/forms";
14
14
  import * as i5 from "primeng/progressspinner";
15
15
  import * as i6 from "@posiwise/shared-components";
16
- import * as i7 from "@ngneat/transloco";
16
+ import * as i7 from "@jsverse/transloco";
17
17
  export class DomainConfigSecurityComponent extends AppBaseComponent {
18
18
  constructor(injector, adminService) {
19
19
  super(injector);
@@ -12,7 +12,7 @@ import * as i2 from "@angular/common";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "primeng/progressspinner";
14
14
  import * as i5 from "@posiwise/shared-components";
15
- import * as i6 from "@ngneat/transloco";
15
+ import * as i6 from "@jsverse/transloco";
16
16
  export class DomainConfigSocialComponent extends AppBaseComponent {
17
17
  constructor(injector, adminService) {
18
18
  super(injector);
@@ -17,7 +17,7 @@ import * as i8 from "primeng/progressspinner";
17
17
  import * as i9 from "@posiwise/shared-components";
18
18
  import * as i10 from "@posiwise/directives";
19
19
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
20
- import * as i12 from "@ngneat/transloco";
20
+ import * as i12 from "@jsverse/transloco";
21
21
  export class DomainConfigListComponent extends AppBaseComponent {
22
22
  constructor(injector, adminService, cdr) {
23
23
  super(injector);
@@ -25,7 +25,7 @@ import * as i14 from "@posiwise/shared-components";
25
25
  import * as i15 from "@posiwise/directives";
26
26
  import * as i16 from "@ng-bootstrap/ng-bootstrap";
27
27
  import * as i17 from "ngx-quill";
28
- import * as i18 from "@ngneat/transloco";
28
+ import * as i18 from "@jsverse/transloco";
29
29
  import * as i19 from "@posiwise/pipes";
30
30
  export class FaqListComponent extends AppBaseComponent {
31
31
  constructor(commonService, adminService, productService, injector) {
@@ -11,7 +11,7 @@ import * as i1 from "@posiwise/admin-module-utils";
11
11
  import * as i2 from "@posiwise/common-services";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "@posiwise/shared-components";
14
- import * as i5 from "@ngneat/transloco";
14
+ import * as i5 from "@jsverse/transloco";
15
15
  export class FeedbackQuestionsDetailsComponent extends AppBaseComponent {
16
16
  constructor(injector, adminService, productService) {
17
17
  super(injector);
@@ -17,7 +17,7 @@ import * as i8 from "@angular/router";
17
17
  import * as i9 from "primeng/progressspinner";
18
18
  import * as i10 from "@posiwise/shared-components";
19
19
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
20
- import * as i12 from "@ngneat/transloco";
20
+ import * as i12 from "@jsverse/transloco";
21
21
  export class FeedbackQuestionsListComponent extends AppBaseComponent {
22
22
  constructor(injector, adminService, productService, cdr) {
23
23
  super(injector);
@@ -15,7 +15,7 @@ import * as i6 from "@angular/router";
15
15
  import * as i7 from "@posiwise/shared-components";
16
16
  import * as i8 from "@posiwise/directives";
17
17
  import * as i9 from "ngx-quill";
18
- import * as i10 from "@ngneat/transloco";
18
+ import * as i10 from "@jsverse/transloco";
19
19
  export class AddEditIncidentComponent extends AppBaseComponent {
20
20
  constructor(injector, commonService, sanitizer) {
21
21
  super(injector);
@@ -17,7 +17,7 @@ import * as i8 from "primeng/progressspinner";
17
17
  import * as i9 from "@posiwise/shared-components";
18
18
  import * as i10 from "@posiwise/directives";
19
19
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
20
- import * as i12 from "@ngneat/transloco";
20
+ import * as i12 from "@jsverse/transloco";
21
21
  import * as i13 from "@posiwise/pipes";
22
22
  export class IncidentListComponent extends AppBaseComponent {
23
23
  constructor(injector, commonService) {
@@ -16,7 +16,7 @@ import * as i6 from "@angular/forms";
16
16
  import * as i7 from "@angular/router";
17
17
  import * as i8 from "primeng/progressspinner";
18
18
  import * as i9 from "@posiwise/shared-components";
19
- import * as i10 from "@ngneat/transloco";
19
+ import * as i10 from "@jsverse/transloco";
20
20
  export class LoginNotificationDetailsComponent extends AppBaseComponent {
21
21
  constructor(injector, adminService, productService) {
22
22
  super(injector);
@@ -17,7 +17,7 @@ import * as i8 from "primeng/progressspinner";
17
17
  import * as i9 from "@posiwise/shared-components";
18
18
  import * as i10 from "@posiwise/directives";
19
19
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
20
- import * as i12 from "@ngneat/transloco";
20
+ import * as i12 from "@jsverse/transloco";
21
21
  import * as i13 from "@posiwise/pipes";
22
22
  export class LoginNotificationsListComponent extends AppBaseComponent {
23
23
  constructor(injector, adminService, cdr) {
@@ -13,7 +13,7 @@ import * as i3 from "@angular/forms";
13
13
  import * as i4 from "ngx-ui-switch";
14
14
  import * as i5 from "@angular/router";
15
15
  import * as i6 from "@posiwise/directives";
16
- import * as i7 from "@ngneat/transloco";
16
+ import * as i7 from "@jsverse/transloco";
17
17
  export class NewsletterDetailsComponent extends AppBaseComponent {
18
18
  constructor(adminService, injector) {
19
19
  super(injector);
@@ -26,7 +26,7 @@ import * as i12 from "@posiwise/shared-components";
26
26
  import * as i13 from "@angular-magic/ngx-gp-autocomplete";
27
27
  import * as i14 from "@posiwise/directives";
28
28
  import * as i15 from "ngx-quill";
29
- import * as i16 from "@ngneat/transloco";
29
+ import * as i16 from "@jsverse/transloco";
30
30
  export class NewsletterItemDetailsComponent extends AppBaseComponent {
31
31
  constructor(adminService, tagService, productService, injector) {
32
32
  super(injector);
@@ -14,7 +14,7 @@ import * as i6 from "@angular/forms";
14
14
  import * as i7 from "@angular/router";
15
15
  import * as i8 from "primeng/progressspinner";
16
16
  import * as i9 from "@posiwise/shared-components";
17
- import * as i10 from "@ngneat/transloco";
17
+ import * as i10 from "@jsverse/transloco";
18
18
  import * as i11 from "@posiwise/pipes";
19
19
  export class NewsletterUsersListComponent extends AppBaseComponent {
20
20
  constructor(injector, adminService, cdr) {
@@ -19,7 +19,7 @@ import * as i9 from "primeng/progressspinner";
19
19
  import * as i10 from "@posiwise/shared-components";
20
20
  import * as i11 from "@posiwise/directives";
21
21
  import * as i12 from "@ng-bootstrap/ng-bootstrap";
22
- import * as i13 from "@ngneat/transloco";
22
+ import * as i13 from "@jsverse/transloco";
23
23
  import * as i14 from "@posiwise/pipes";
24
24
  export class NewslettersItemsComponent extends AppBaseComponent {
25
25
  constructor(adminService, injector, cdr) {
@@ -18,7 +18,7 @@ import * as i8 from "primeng/progressspinner";
18
18
  import * as i9 from "@posiwise/shared-components";
19
19
  import * as i10 from "@posiwise/directives";
20
20
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
21
- import * as i12 from "@ngneat/transloco";
21
+ import * as i12 from "@jsverse/transloco";
22
22
  export class NewslettersListComponent extends AppBaseComponent {
23
23
  constructor(adminService, injector, cdr) {
24
24
  super(injector);
@@ -13,7 +13,7 @@ import * as i3 from "ngx-ui-switch";
13
13
  import * as i4 from "primeng/tabmenu";
14
14
  import * as i5 from "@angular/router";
15
15
  import * as i6 from "@posiwise/directives";
16
- import * as i7 from "@ngneat/transloco";
16
+ import * as i7 from "@jsverse/transloco";
17
17
  export class PermissionsDetailsComponent extends AppBaseComponent {
18
18
  constructor(adminService, injector) {
19
19
  super(injector);
@@ -16,7 +16,7 @@ import * as i8 from "primeng/progressspinner";
16
16
  import * as i9 from "@posiwise/shared-components";
17
17
  import * as i10 from "@posiwise/directives";
18
18
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
19
- import * as i12 from "@ngneat/transloco";
19
+ import * as i12 from "@jsverse/transloco";
20
20
  export class PermissionsListComponent extends AppBaseComponent {
21
21
  constructor(adminService, injector, cdr) {
22
22
  super(injector);
@@ -14,7 +14,7 @@ import * as i4 from "ngx-ui-switch";
14
14
  import * as i5 from "primeng/tabmenu";
15
15
  import * as i6 from "@posiwise/shared-components";
16
16
  import * as i7 from "@posiwise/directives";
17
- import * as i8 from "@ngneat/transloco";
17
+ import * as i8 from "@jsverse/transloco";
18
18
  export class RoleDetailsComponent extends AppBaseComponent {
19
19
  constructor(adminService, injector) {
20
20
  super(injector);
@@ -18,7 +18,7 @@ import * as i8 from "primeng/progressspinner";
18
18
  import * as i9 from "@posiwise/shared-components";
19
19
  import * as i10 from "@posiwise/directives";
20
20
  import * as i11 from "@ng-bootstrap/ng-bootstrap";
21
- import * as i12 from "@ngneat/transloco";
21
+ import * as i12 from "@jsverse/transloco";
22
22
  export class RolesListComponent extends AppBaseComponent {
23
23
  constructor(adminService, injector, cdr) {
24
24
  super(injector);
@@ -21,7 +21,7 @@ import * as i10 from "ngx-ui-switch";
21
21
  import * as i11 from "@posiwise/shared-components";
22
22
  import * as i12 from "@posiwise/directives";
23
23
  import * as i13 from "ngx-quill";
24
- import * as i14 from "@ngneat/transloco";
24
+ import * as i14 from "@jsverse/transloco";
25
25
  export class ProductDetailsComponent extends AppBaseComponent {
26
26
  constructor(injector, productService, modalService, adminService) {
27
27
  super(injector);
@@ -21,7 +21,7 @@ import * as i9 from "@angular/router";
21
21
  import * as i10 from "primeng/progressspinner";
22
22
  import * as i11 from "@posiwise/directives";
23
23
  import * as i12 from "@ng-bootstrap/ng-bootstrap";
24
- import * as i13 from "@ngneat/transloco";
24
+ import * as i13 from "@jsverse/transloco";
25
25
  export class ProductsListComponent extends AppBaseComponent {
26
26
  constructor(productService, injector, cdr) {
27
27
  super(injector);
@@ -12,7 +12,7 @@ import * as i6 from "@angular/forms";
12
12
  import * as i7 from "@angular/router";
13
13
  import * as i8 from "@posiwise/directives";
14
14
  import * as i9 from "@ng-bootstrap/ng-bootstrap";
15
- import * as i10 from "@ngneat/transloco";
15
+ import * as i10 from "@jsverse/transloco";
16
16
  import * as i11 from "@posiwise/pipes";
17
17
  export class UsersListForProductComponent extends AppBaseComponent {
18
18
  constructor(productService, injector) {
@@ -15,7 +15,7 @@ import * as i4 from "primeng/autocomplete";
15
15
  import * as i5 from "@angular/forms";
16
16
  import * as i6 from "@angular/router";
17
17
  import * as i7 from "@posiwise/directives";
18
- import * as i8 from "@ngneat/transloco";
18
+ import * as i8 from "@jsverse/transloco";
19
19
  export class AgentDetailsComponent extends AppBaseComponent {
20
20
  constructor(adminService, groupService, config, injector) {
21
21
  super(injector);
@@ -18,7 +18,7 @@ import * as i8 from "@angular/forms";
18
18
  import * as i9 from "@angular/router";
19
19
  import * as i10 from "primeng/progressspinner";
20
20
  import * as i11 from "@posiwise/shared-components";
21
- import * as i12 from "@ngneat/transloco";
21
+ import * as i12 from "@jsverse/transloco";
22
22
  import * as i13 from "@posiwise/pipes";
23
23
  export class SubscriptionAgentsListComponent extends AppBaseComponent {
24
24
  constructor(adminService, parserFormatter, injector) {
@@ -22,7 +22,7 @@ import * as i10 from "@ng-bootstrap/ng-bootstrap";
22
22
  import * as i11 from "../subscription-products/subscription-products.component";
23
23
  import * as i12 from "../subscription-users/subscription-users.component";
24
24
  import * as i13 from "../subscription-agents-list/subscription-agents-list.component";
25
- import * as i14 from "@ngneat/transloco";
25
+ import * as i14 from "@jsverse/transloco";
26
26
  export class SubscriptionDetailsComponent extends AppBaseComponent {
27
27
  constructor(subscriptionService, adminService, datePipe, commonService, dateFormatService, injector) {
28
28
  super(injector);
@@ -21,7 +21,7 @@ import * as i6 from "ngx-ui-switch";
21
21
  import * as i7 from "primeng/progressspinner";
22
22
  import * as i8 from "@posiwise/shared-components";
23
23
  import * as i9 from "@ng-bootstrap/ng-bootstrap";
24
- import * as i10 from "@ngneat/transloco";
24
+ import * as i10 from "@jsverse/transloco";
25
25
  export class SubscriptionProductDetailsComponent extends AppBaseComponent {
26
26
  constructor(injector, adminService, productService, dateFormatService, datePipe) {
27
27
  super(injector);
@@ -110,7 +110,7 @@ export class SubscriptionProductDetailsComponent extends AppBaseComponent {
110
110
  this.form.get('expires_at').patchValue(expDate);
111
111
  if (response?.product_id) {
112
112
  this.form.patchValue({
113
- new_product_id: this.productsList.find(x => x.value === this.data?.product_id)
113
+ new_product_id: this.productsList.find(x => x.id === this.data?.product_id)
114
114
  });
115
115
  }
116
116
  });
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
225
225
  type: ViewChild,
226
226
  args: ['refProduct']
227
227
  }], onSave: [] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLXByb2R1Y3QtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb24tcHJvZHVjdC1kZXRhaWxzL3N1YnNjcmlwdGlvbi1wcm9kdWN0LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3N1YnNjcmlwdGlvbnMvc3Vic2NyaXB0aW9uLXByb2R1Y3QtZGV0YWlscy9zdWJzY3JpcHRpb24tcHJvZHVjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FB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Uzt1QkFBQyxZQUFZO2dCQW1KdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGdyb3VwQnkgZnJvbSAnbG9kYXNoL2dyb3VwQnknO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBST1VURVJTIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3JvdXRlcnMvcm91dGVycyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ2JEYXRlQ3VzdG9tUGFyc2VyRm9ybWF0dGVyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZUZvcm0gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXN1YnNjcmlwdGlvbi1wcm9kdWN0LWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24tcHJvZHVjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Qcm9kdWN0RGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBhbnk7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBtaW5EYXRlID0gSGVscGVyU2VydmljZS5taW5EYXRlVG9kYXkoKTtcblxuICAgIHByaXZhdGUgaXNQdXJjaGFzZWRVbml0c0Rpc2FibGU6IGJvb2xlYW47XG5cbiAgICBmaWx0ZXJlZFByb2R1Y3RzID0gW107XG5cbiAgICBwcm9kdWN0c0xpc3QgPSBbXTtcblxuICAgIGRpc2FibGVFeHBpcmVzQXQgPSBmYWxzZTtcblxuICAgIGlzU3VwZXJBZG1pbiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNTdXBlckFkbWluKCk7XG5cbiAgICBAVmlld0NoaWxkKCdyZWZQcm9kdWN0JykgcmVmUHJvZHVjdDogQXV0b0NvbXBsZXRlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwcm9kdWN0U2VydmljZTogUHJvZHVjdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGF0ZUZvcm1hdFNlcnZpY2U6IE5nYkRhdGVDdXN0b21QYXJzZXJGb3JtYXR0ZXIsXG4gICAgICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uc3Vic2NyaXB0aW9uUHJvZHVjdEZvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hZGRWYWxpZGF0aW9uKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnc3Vic2NyaXB0aW9uX2lkJykpO1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3QoeyBzZWFyY2g6ICcnIH0sIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvZHVjdHMgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgdGhpcy5nZXRQcm9kdWN0TGlzdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBnZXRQcm9kdWN0TGlzdCgpIHtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZVxuICAgICAgICAgICAgLmdldFByb2R1Y3RMaXN0KHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUHJvZHVjdERldGFpbHMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblByb2R1Y3REZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldFN1YnNjcmlwdGlvblByb2R1Y3QodGhpcy5pZCwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQdXJjaGFzZWRVbml0c0Rpc2FibGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmlzU3VwZXJBZG1pbigpIHx8XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyQWRtaW4oKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXJlc3BvbnNlLnN0cmlwZV9zdWJzY3JpcHRpb25faWQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUHVyY2hhc2VkVW5pdHNEaXNhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3B1cmNoYXNlZF91bml0cycpLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCduZXdfcHJvZHVjdF9pZCcpLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdleHBpcmVzX2F0JykuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5nZXQoJ3NpZ25lZF91cF9hdCcpLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVFeHBpcmVzQXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwdXJjaGFzZWRfdW5pdHMnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ25ld19wcm9kdWN0X2lkJykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdleHBpcmVzX2F0JykuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm0uZ2V0KCdzaWduZWRfdXBfYXQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUV4cGlyZXNBdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsUGF5bWVudCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNTdXBlckFkbWluKCkgfHwgIXJlc3BvbnNlPy5zdHJpcGVfc3Vic2NyaXB0aW9uX2lkO1xuICAgICAgICAgICAgICAgIGlmIChleHRlcm5hbFBheW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnZXh0ZXJuYWxfcGF5bWVudCcpLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2V4dGVybmFsX3BheW1lbnQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmV4cGlyZXNfYXQgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShyZXNwb25zZS5leHBpcmVzX2F0LCAneXl5eS1NTS1kZCcpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZT8uc2lnbmVkX3VwX2F0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNpZ25lZF91cF9hdCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U/LnNpZ25lZF91cF9hdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICd5eXl5LU1NLWRkJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwRGF0ZSA9IHRoaXMuZGF0ZUZvcm1hdFNlcnZpY2UuZGF0ZUZvcm1hdEZvclBpY2tlcihyZXNwb25zZT8uZXhwaXJlc19hdCk7XG4gICAgICAgICAgICAgICAgbGV0IHNpZ25lZFVwRGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LnNpZ25lZF91cF9hdCkge1xuICAgICAgICAgICAgICAgICAgICBzaWduZWRVcERhdGUgPSB0aGlzLmRhdGVGb3JtYXRTZXJ2aWNlLmRhdGVGb3JtYXRGb3JQaWNrZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZT8uc2lnbmVkX3VwX2F0XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3NpZ25lZF91cF9hdCcpLnBhdGNoVmFsdWUoc2lnbmVkVXBEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnZXhwaXJlc19hdCcpLnBhdGNoVmFsdWUoZXhwRGF0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy5wcm9kdWN0X2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3RzTGlzdC5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPT4geC52YWx1ZSA9PT0gdGhpcy5kYXRhPy5wcm9kdWN0X2lkXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydE9iaihvYmopIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgc2VhcmNoUHJvZHVjdChldmVudCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3QoeyBzZWFyY2g6IGV2ZW50LnF1ZXJ5IH0sIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvZHVjdHMgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cFByb2R1Y3RzKHByb2R1Y3RzKSB7XG4gICAgICAgIGlmIChwcm9kdWN0cyAmJiBwcm9kdWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IHByb2R1Y3RzLmZpbHRlcih4ID0+IHguZGVwZW5kZW5jeV9wcm9kdWN0cz8ubGVuZ3RoIDwgMSAmJiB4LmFjdGl2ZSk7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IGdyb3VwQnkocHJvZHVjdHMsICdjdXJyZW5jeScpO1xuICAgICAgICAgICAgcHJvZHVjdHMgPSB0aGlzLnNvcnRPYmoocHJvZHVjdHMpO1xuICAgICAgICAgICAgbGV0IGdyb3VwZWRBcnJheSA9IFtdO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgaW4gcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2R1Y3RzW3BdLnNvcnQoXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PiBOdW1iZXIoYi5wcmljZV9wZXJfdW5pdCkgLSBOdW1iZXIoYS5wcmljZV9wZXJfdW5pdClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGdyb3VwZWRBcnJheS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyb3VwZWRBcnJheSA9IGdyb3VwZWRBcnJheS5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHguaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt4Lm5hbWV9IHwgJHt4LnJlZ2lvbn0gfCAke3guYmlsbGluZ19mcmVxdWVuY3l9IHwgJHt4Lm1pbl91bml0c30geCAkeyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHgucHJpY2VfcGVyX3VuaXQgLyAxMDBcbiAgICAgICAgICAgICAgICAgICAgKS50b0ZpeGVkKDIpfSB8ICR7eC5jdXJyZW5jeX1gXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBleHBEYXRlID0gdGhpcy5mb3JtLnZhbHVlLmV4cGlyZXNfYXQ7XG4gICAgICAgIGNvbnN0IHNpZ25lZFVwQXQgPSB0aGlzLmZvcm0udmFsdWUuc2lnbmVkX3VwX2F0O1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgcHJvZHVjdF9pZDogdGhpcy5kYXRhPy5wcm9kdWN0X2lkLFxuICAgICAgICAgICAgZXhwaXJlc19hdDogZXhwRGF0ZSA/IEhlbHBlclNlcnZpY2UuZGF0ZUZvcm1hdChleHBEYXRlKSA6IG51bGwsXG4gICAgICAgICAgICBzaWduZWRfdXBfYXQ6IHNpZ25lZFVwQXQgPyBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQoc2lnbmVkVXBBdCkgOiBudWxsLFxuICAgICAgICAgICAgZXh0ZXJuYWxfcGF5bWVudDogdGhpcy5mb3JtLnZhbHVlLmV4dGVybmFsX3BheW1lbnQsXG4gICAgICAgICAgICBzdHJpcGVfc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmZvcm0udmFsdWUuc3RyaXBlX3N1YnNjcmlwdGlvbl9pZCxcbiAgICAgICAgICAgIG1pbl91bml0czogdGhpcy5mb3JtLnZhbHVlLm1pbl91bml0c1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbHVlPy5uZXdfcHJvZHVjdF9pZCkge1xuICAgICAgICAgICAgZGF0YVsnbmV3X3Byb2R1Y3RfaWQnXSA9IHRoaXMuZm9ybS52YWx1ZT8ubmV3X3Byb2R1Y3RfaWQ/LmlkIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5wdXJjaGFzZWRfdW5pdHMpIHtcbiAgICAgICAgICAgIGRhdGFbJ3B1cmNoYXNlZF91bml0cyddID0gdGhpcy5mb3JtLnZhbHVlLnB1cmNoYXNlZF91bml0cztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVN1YnNjcmlwdGlvblByb2R1Y3QoZGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlN1YnNjcmlwdGlvbnMuVXBkYXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVmFsaWRhdGlvbigpIHtcbiAgICAgICAgLy8gc3RyaXBlIHN1YnNjcmlwdGlvbiBzaG91bGQgYmUgZGlzYWJsZSBpZiBub3Qgc3VwZXJhZG1pblxuICAgICAgICBpZiAoIXRoaXMuaXNTdXBlckFkbWluKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzaWduZWRfdXBfYXQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzdHJpcGVfc3Vic2NyaXB0aW9uX2lkJykuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnc2lnbmVkX3VwX2F0JykuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzdHJpcGVfc3Vic2NyaXB0aW9uX2lkJykuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXh0ZXJuYWwgcGF5bWVudFxuICAgICAgICAvLyB0aGlzLmZvcm0uZ2V0KCdleHRlcm5hbF9wYXltZW50JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAvLyAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3NpZ25lZF91cF9hdCddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3NpZ25lZF91cF9hdCddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICAgIHRoaXMuZm9ybS5jb250cm9sc1snc2lnbmVkX3VwX2F0J10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBvblByb2R1Y3RDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvZHVjdElkID0gTnVtYmVyKGV2ZW50Py52YWx1ZS5pZCk7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RPYmogPSB0aGlzLnByb2R1Y3RzTGlzdC5maW5kKHggPT4geC5pZCA9PT0gcHJvZHVjdElkKTtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgbmV3X3Byb2R1Y3RfaWQ6IHByb2R1Y3RPYmpcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02IG10LTRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmV2aW91c1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgICAgICAgIDxzcGFuPlN1YnNjcmlwdGlvbiBQcm9kdWN0PC9zcGFuPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICAgICAgICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInAtMiBtdC0zXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIFlvdSBjYW4gdXBkYXRlIHRoZSBQdXJjaGFzZWQgU2VhdHMsIFByb2R1Y3QsIGFuZCBQcm9kdWN0IEV4cGlyeSBkYXRlIGFzIGxvbmcgYXMgdGhlIHVzZXIgaGFzbid0IHN1YnNjcmliZWQgdXNpbmcgc3RyaXBlLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwibWItNVwiPlxuICAgICAgICAgIElmIHlvdSBzZXQgdGhlIHN1YnNjcmlwdGlvbiBhcyBFeHRlcm5hbCBQYXltZW50IHlvdSdsbCBoYXZlIHRvIG1hbnVhbGx5IG1hbmFnZSB0aGUgUHJvZHVjdCBFeHBpcnkgRGF0ZS5cbiAgICAgICAgPC9wPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtMyBjb2wtbGctMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5QdXJjaGFzZWRTZWF0cycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwicHVyY2hhc2VkX3VuaXRzXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5QdXJjaGFzZWRTZWF0cycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInB1cmNoYXNlZF91bml0c1wiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTMgY29sLWxnLTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm1pbl91bml0c1wiXG4gICAgICAgICAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5NaW5Vbml0cycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybS5nZXQoJ3B1cmNoYXNlZF91bml0cycpLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1pbl91bml0c1wiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIHByb2R1Y3QgZXhwaXJ5IGRhdGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuUHJvZHVjdEV4cGlyeURhdGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuUHJvZHVjdEV4cGlyeURhdGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZXhwaXJlc19hdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRXhwaXJ5IERhdGVcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJleHBpcmVzX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgW291dHNpZGVEYXlzXT1cIidoaWRkZW4nXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAjYz1cIm5nYkRhdGVwaWNrZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUV4cGlyZXNBdFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImMudG9nZ2xlKClcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNhbGVuZGFyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIHNpZ25lZCB1cCBhdC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC0zIGNvbC1sZy0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlNpZ25lZFVwQXQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuU2lnbmVkVXBBdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJzaWduZWRfdXBfYXRcIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLlNpZ25lZFVwQXQnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaWduZWQgVXAgQXRcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaWduZWRfdXBfYXRcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiIC8+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNTdXBlckFkbWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZC50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIHN0cmlwZSBzdWJzY3JpcHRpb24gaWQgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuU3RyaXBlU3Vic2NyaXB0aW9uSWQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic3RyaXBlX3N1YnNjcmlwdGlvbl9pZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLlN0cmlwZVN1YnNjcmlwdGlvbklkJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdHJpcGVfc3Vic2NyaXB0aW9uX2lkXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gZXh0ZXJuYWwgcGF5bWVudCB0b2dnbGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLkV4dGVybmFsUGF5bWVudCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJleHRlcm5hbF9wYXltZW50XCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLkV4dGVybmFsUGF5bWVudCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8dWktc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImV4dGVybmFsX3BheW1lbnRcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImV4dGVybmFsX3BheW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidMYWJlbC5Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm5ld19wcm9kdWN0X2lkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLlByb2R1Y3QnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPHAtYXV0b0NvbXBsZXRlICNyZWZQcm9kdWN0XG4gICAgICAgICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRQcm9kdWN0c1wiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuZXdfcHJvZHVjdF9pZFwiXG4gICAgICAgICAgICAgICAgICBkYXRhS2V5PVwiaWRcIlxuICAgICAgICAgICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbZGVsYXldPVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoUHJvZHVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJvblByb2R1Y3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgICBbaW5wdXRTdHlsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgnbmV3X3Byb2R1Y3RfaWQnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCduZXdfcHJvZHVjdF9pZCcpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBib3JkZXI6ICcxcHggc29saWQgZ3JheScgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICB7eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLXByb2R1Y3QtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb24tcHJvZHVjdC1kZXRhaWxzL3N1YnNjcmlwdGlvbi1wcm9kdWN0LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3N1YnNjcmlwdGlvbnMvc3Vic2NyaXB0aW9uLXByb2R1Y3QtZGV0YWlscy9zdWJzY3JpcHRpb24tcHJvZHVjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FB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O3VCQUFDLFlBQVk7Z0JBaUp2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZ3JvdXBCeSBmcm9tICdsb2Rhc2gvZ3JvdXBCeSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IE5nYkRhdGVDdXN0b21QYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctc3Vic2NyaXB0aW9uLXByb2R1Y3QtZGV0YWlscycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1wcm9kdWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblByb2R1Y3REZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIGRhdGE6IGFueTtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIG1pbkRhdGUgPSBIZWxwZXJTZXJ2aWNlLm1pbkRhdGVUb2RheSgpO1xuXG4gICAgcHJpdmF0ZSBpc1B1cmNoYXNlZFVuaXRzRGlzYWJsZTogYm9vbGVhbjtcblxuICAgIGZpbHRlcmVkUHJvZHVjdHMgPSBbXTtcblxuICAgIHByb2R1Y3RzTGlzdCA9IFtdO1xuXG4gICAgZGlzYWJsZUV4cGlyZXNBdCA9IGZhbHNlO1xuXG4gICAgaXNTdXBlckFkbWluID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5pc1N1cGVyQWRtaW4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3JlZlByb2R1Y3QnKSByZWZQcm9kdWN0OiBBdXRvQ29tcGxldGU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHByb2R1Y3RTZXJ2aWNlOiBQcm9kdWN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkYXRlRm9ybWF0U2VydmljZTogTmdiRGF0ZUN1c3RvbVBhcnNlckZvcm1hdHRlcixcbiAgICAgICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5zdWJzY3JpcHRpb25Qcm9kdWN0Rm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFkZFZhbGlkYXRpb24oKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IE51bWJlcih0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdzdWJzY3JpcHRpb25faWQnKSk7XG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRQcm9kdWN0TGlzdCh7IHNlYXJjaDogJycgfSwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRQcm9kdWN0cyA9IHRoaXMuZ3JvdXBQcm9kdWN0cyhyZXNwb25zZS5wcm9kdWN0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKHBhcmFtc1snaWQnXSk7XG4gICAgICAgICAgICB0aGlzLmdldFByb2R1Y3RMaXN0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIGdldFByb2R1Y3RMaXN0KCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3Qoe30sIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzTGlzdCA9IHRoaXMuZ3JvdXBQcm9kdWN0cyhyZXNwb25zZS5wcm9kdWN0cyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Qcm9kdWN0RGV0YWlscygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uUHJvZHVjdERldGFpbHMoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0U3Vic2NyaXB0aW9uUHJvZHVjdCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1cmNoYXNlZFVuaXRzRGlzYWJsZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNTdXBlckFkbWluKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJBZG1pbigpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhcmVzcG9uc2Uuc3RyaXBlX3N1YnNjcmlwdGlvbl9pZCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQdXJjaGFzZWRVbml0c0Rpc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgncHVyY2hhc2VkX3VuaXRzJykuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ25ld19wcm9kdWN0X2lkJykuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2V4cGlyZXNfYXQnKS5lbmFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLmdldCgnc2lnbmVkX3VwX2F0JykuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUV4cGlyZXNBdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3B1cmNoYXNlZF91bml0cycpLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnbmV3X3Byb2R1Y3RfaWQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2V4cGlyZXNfYXQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5nZXQoJ3NpZ25lZF91cF9hdCcpLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlRXhwaXJlc0F0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWxQYXltZW50ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5pc1N1cGVyQWRtaW4oKSB8fCAhcmVzcG9uc2U/LnN0cmlwZV9zdWJzY3JpcHRpb25faWQ7XG4gICAgICAgICAgICAgICAgaWYgKGV4dGVybmFsUGF5bWVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdleHRlcm5hbF9wYXltZW50JykuZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnZXh0ZXJuYWxfcGF5bWVudCcpLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZXhwaXJlc19hdCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHJlc3BvbnNlLmV4cGlyZXNfYXQsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy5zaWduZWRfdXBfYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2lnbmVkX3VwX2F0ID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZT8uc2lnbmVkX3VwX2F0LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3l5eXktTU0tZGQnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBleHBEYXRlID0gdGhpcy5kYXRlRm9ybWF0U2VydmljZS5kYXRlRm9ybWF0Rm9yUGlja2VyKHJlc3BvbnNlPy5leHBpcmVzX2F0KTtcbiAgICAgICAgICAgICAgICBsZXQgc2lnbmVkVXBEYXRlO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZT8uc2lnbmVkX3VwX2F0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNpZ25lZFVwRGF0ZSA9IHRoaXMuZGF0ZUZvcm1hdFNlcnZpY2UuZGF0ZUZvcm1hdEZvclBpY2tlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlPy5zaWduZWRfdXBfYXRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnc2lnbmVkX3VwX2F0JykucGF0Y2hWYWx1ZShzaWduZWRVcERhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdleHBpcmVzX2F0JykucGF0Y2hWYWx1ZShleHBEYXRlKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LnByb2R1Y3RfaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Byb2R1Y3RfaWQ6IHRoaXMucHJvZHVjdHNMaXN0LmZpbmQoeCA9PiB4LmlkID09PSB0aGlzLmRhdGE/LnByb2R1Y3RfaWQpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydE9iaihvYmopIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgc2VhcmNoUHJvZHVjdChldmVudCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3QoeyBzZWFyY2g6IGV2ZW50LnF1ZXJ5IH0sIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvZHVjdHMgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cFByb2R1Y3RzKHByb2R1Y3RzKSB7XG4gICAgICAgIGlmIChwcm9kdWN0cyAmJiBwcm9kdWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IHByb2R1Y3RzLmZpbHRlcih4ID0+IHguZGVwZW5kZW5jeV9wcm9kdWN0cz8ubGVuZ3RoIDwgMSAmJiB4LmFjdGl2ZSk7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IGdyb3VwQnkocHJvZHVjdHMsICdjdXJyZW5jeScpO1xuICAgICAgICAgICAgcHJvZHVjdHMgPSB0aGlzLnNvcnRPYmoocHJvZHVjdHMpO1xuICAgICAgICAgICAgbGV0IGdyb3VwZWRBcnJheSA9IFtdO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgaW4gcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2R1Y3RzW3BdLnNvcnQoXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PiBOdW1iZXIoYi5wcmljZV9wZXJfdW5pdCkgLSBOdW1iZXIoYS5wcmljZV9wZXJfdW5pdClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGdyb3VwZWRBcnJheS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyb3VwZWRBcnJheSA9IGdyb3VwZWRBcnJheS5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHguaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt4Lm5hbWV9IHwgJHt4LnJlZ2lvbn0gfCAke3guYmlsbGluZ19mcmVxdWVuY3l9IHwgJHt4Lm1pbl91bml0c30geCAkeyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHgucHJpY2VfcGVyX3VuaXQgLyAxMDBcbiAgICAgICAgICAgICAgICAgICAgKS50b0ZpeGVkKDIpfSB8ICR7eC5jdXJyZW5jeX1gXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBleHBEYXRlID0gdGhpcy5mb3JtLnZhbHVlLmV4cGlyZXNfYXQ7XG4gICAgICAgIGNvbnN0IHNpZ25lZFVwQXQgPSB0aGlzLmZvcm0udmFsdWUuc2lnbmVkX3VwX2F0O1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgcHJvZHVjdF9pZDogdGhpcy5kYXRhPy5wcm9kdWN0X2lkLFxuICAgICAgICAgICAgZXhwaXJlc19hdDogZXhwRGF0ZSA/IEhlbHBlclNlcnZpY2UuZGF0ZUZvcm1hdChleHBEYXRlKSA6IG51bGwsXG4gICAgICAgICAgICBzaWduZWRfdXBfYXQ6IHNpZ25lZFVwQXQgPyBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQoc2lnbmVkVXBBdCkgOiBudWxsLFxuICAgICAgICAgICAgZXh0ZXJuYWxfcGF5bWVudDogdGhpcy5mb3JtLnZhbHVlLmV4dGVybmFsX3BheW1lbnQsXG4gICAgICAgICAgICBzdHJpcGVfc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmZvcm0udmFsdWUuc3RyaXBlX3N1YnNjcmlwdGlvbl9pZCxcbiAgICAgICAgICAgIG1pbl91bml0czogdGhpcy5mb3JtLnZhbHVlLm1pbl91bml0c1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbHVlPy5uZXdfcHJvZHVjdF9pZCkge1xuICAgICAgICAgICAgZGF0YVsnbmV3X3Byb2R1Y3RfaWQnXSA9IHRoaXMuZm9ybS52YWx1ZT8ubmV3X3Byb2R1Y3RfaWQ/LmlkIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5wdXJjaGFzZWRfdW5pdHMpIHtcbiAgICAgICAgICAgIGRhdGFbJ3B1cmNoYXNlZF91bml0cyddID0gdGhpcy5mb3JtLnZhbHVlLnB1cmNoYXNlZF91bml0cztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVN1YnNjcmlwdGlvblByb2R1Y3QoZGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlN1YnNjcmlwdGlvbnMuVXBkYXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVmFsaWRhdGlvbigpIHtcbiAgICAgICAgLy8gc3RyaXBlIHN1YnNjcmlwdGlvbiBzaG91bGQgYmUgZGlzYWJsZSBpZiBub3Qgc3VwZXJhZG1pblxuICAgICAgICBpZiAoIXRoaXMuaXNTdXBlckFkbWluKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzaWduZWRfdXBfYXQnKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzdHJpcGVfc3Vic2NyaXB0aW9uX2lkJykuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnc2lnbmVkX3VwX2F0JykuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzdHJpcGVfc3Vic2NyaXB0aW9uX2lkJykuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXh0ZXJuYWwgcGF5bWVudFxuICAgICAgICAvLyB0aGlzLmZvcm0uZ2V0KCdleHRlcm5hbF9wYXltZW50JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAvLyAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3NpZ25lZF91cF9hdCddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3NpZ25lZF91cF9hdCddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICAgIHRoaXMuZm9ybS5jb250cm9sc1snc2lnbmVkX3VwX2F0J10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBvblByb2R1Y3RDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvZHVjdElkID0gTnVtYmVyKGV2ZW50Py52YWx1ZS5pZCk7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RPYmogPSB0aGlzLnByb2R1Y3RzTGlzdC5maW5kKHggPT4geC5pZCA9PT0gcHJvZHVjdElkKTtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgbmV3X3Byb2R1Y3RfaWQ6IHByb2R1Y3RPYmpcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02IG10LTRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmV2aW91c1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgICAgICAgIDxzcGFuPlN1YnNjcmlwdGlvbiBQcm9kdWN0PC9zcGFuPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICAgICAgICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInAtMiBtdC0zXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIFlvdSBjYW4gdXBkYXRlIHRoZSBQdXJjaGFzZWQgU2VhdHMsIFByb2R1Y3QsIGFuZCBQcm9kdWN0IEV4cGlyeSBkYXRlIGFzIGxvbmcgYXMgdGhlIHVzZXIgaGFzbid0IHN1YnNjcmliZWQgdXNpbmcgc3RyaXBlLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwIGNsYXNzPVwibWItNVwiPlxuICAgICAgICAgIElmIHlvdSBzZXQgdGhlIHN1YnNjcmlwdGlvbiBhcyBFeHRlcm5hbCBQYXltZW50IHlvdSdsbCBoYXZlIHRvIG1hbnVhbGx5IG1hbmFnZSB0aGUgUHJvZHVjdCBFeHBpcnkgRGF0ZS5cbiAgICAgICAgPC9wPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtMyBjb2wtbGctMlwiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5QdXJjaGFzZWRTZWF0cycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwicHVyY2hhc2VkX3VuaXRzXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5QdXJjaGFzZWRTZWF0cycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInB1cmNoYXNlZF91bml0c1wiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTMgY29sLWxnLTJcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm1pbl91bml0c1wiXG4gICAgICAgICAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5NaW5Vbml0cycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybS5nZXQoJ3B1cmNoYXNlZF91bml0cycpLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1pbl91bml0c1wiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIHByb2R1Y3QgZXhwaXJ5IGRhdGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuUHJvZHVjdEV4cGlyeURhdGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuUHJvZHVjdEV4cGlyeURhdGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZXhwaXJlc19hdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRXhwaXJ5IERhdGVcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJleHBpcmVzX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgW291dHNpZGVEYXlzXT1cIidoaWRkZW4nXCJcbiAgICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAjYz1cIm5nYkRhdGVwaWNrZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUV4cGlyZXNBdFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImMudG9nZ2xlKClcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNhbGVuZGFyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIHNpZ25lZCB1cCBhdC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC0zIGNvbC1sZy0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlNpZ25lZFVwQXQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuU2lnbmVkVXBBdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJzaWduZWRfdXBfYXRcIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLlNpZ25lZFVwQXQnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaWduZWQgVXAgQXRcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaWduZWRfdXBfYXRcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiIC8+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNTdXBlckFkbWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZC50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIHN0cmlwZSBzdWJzY3JpcHRpb24gaWQgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuU3RyaXBlU3Vic2NyaXB0aW9uSWQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic3RyaXBlX3N1YnNjcmlwdGlvbl9pZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLlN0cmlwZVN1YnNjcmlwdGlvbklkJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdHJpcGVfc3Vic2NyaXB0aW9uX2lkXCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gZXh0ZXJuYWwgcGF5bWVudCB0b2dnbGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLkV4dGVybmFsUGF5bWVudCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJleHRlcm5hbF9wYXltZW50XCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLkV4dGVybmFsUGF5bWVudCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8dWktc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImV4dGVybmFsX3BheW1lbnRcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImV4dGVybmFsX3BheW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidMYWJlbC5Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm5ld19wcm9kdWN0X2lkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLlByb2R1Y3QnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPHAtYXV0b0NvbXBsZXRlICNyZWZQcm9kdWN0XG4gICAgICAgICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRQcm9kdWN0c1wiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuZXdfcHJvZHVjdF9pZFwiXG4gICAgICAgICAgICAgICAgICBkYXRhS2V5PVwiaWRcIlxuICAgICAgICAgICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbZGVsYXldPVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoUHJvZHVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJvblByb2R1Y3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgICBbaW5wdXRTdHlsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgnbmV3X3Byb2R1Y3RfaWQnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCduZXdfcHJvZHVjdF9pZCcpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBib3JkZXI6ICcxcHggc29saWQgZ3JheScgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICB7eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,7 +15,7 @@ import * as i9 from "primeng/progressspinner";
15
15
  import * as i10 from "@posiwise/shared-components";
16
16
  import * as i11 from "@posiwise/directives";
17
17
  import * as i12 from "@ng-bootstrap/ng-bootstrap";
18
- import * as i13 from "@ngneat/transloco";
18
+ import * as i13 from "@jsverse/transloco";
19
19
  export class SubscriptionProductsComponent extends AppBaseComponent {
20
20
  constructor(subscriptionService, injector, productService) {
21
21
  super(injector);
@@ -21,7 +21,7 @@ import * as i10 from "@angular/router";
21
21
  import * as i11 from "primeng/progressspinner";
22
22
  import * as i12 from "@posiwise/directives";
23
23
  import * as i13 from "@ng-bootstrap/ng-bootstrap";
24
- import * as i14 from "@ngneat/transloco";
24
+ import * as i14 from "@jsverse/transloco";
25
25
  import * as i15 from "@posiwise/pipes";
26
26
  export class SubscriptionUsersComponent extends AppBaseComponent {
27
27
  constructor(subscriptionService, injector, cdr, authService, windowService, adminService, toaster) {