@posiwise/resource-module 0.0.122 → 0.0.124

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.
@@ -1 +1 @@
1
- {"version":3,"file":"posiwise-resource-module.mjs","sources":["../../../../libs/resource-module/src/lib/resource.service.ts","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.ts","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog.component.html","../../../../libs/resource-module/src/lib/public/components/resource-card-list/resource-card-list.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-card-list/resource-card-list.component.html","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.html","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.ts","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/resource-case-studies.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/resource-case-studies.component.html","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-integration/integration-top-banner/integration-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-integration/integration-top-banner/integration-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-integration/resource-integration.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-integration/resource-integration.component.html","../../../../libs/resource-module/src/lib/shared/models/resource.model.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/related-resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/related-resources.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post-details/resource-post-details.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post-details/resource-post-details.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post.component.html","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes.component.html","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/resource-webinars.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/resource-webinars.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.html","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.html","../../../../libs/resource-module/src/lib/public/components/resources-hub/resources-hub.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-hub/resources-hub.component.html","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.html","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers-top-banner/white-papers-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers-top-banner/white-papers-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers.component.ts","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers.component.html","../../../../libs/resource-module/src/lib/public/resource-public.routing.module.ts","../../../../libs/resource-module/src/lib/public/resource-public.module.ts","../../../../libs/resource-module/src/lib/resource.module.ts","../../../../libs/resource-module/src/posiwise-resource-module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from '@posiwise/common-services';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Injectable()\nexport class ResourceService {\n private readonly resource = '/posts';\n\n private readonly comments = '/comments';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getPublicPosts(\n master_subscription_id,\n page: number,\n pageSize: number,\n search: string,\n tagCategoryIds?: string,\n tagIds?: string\n ) {\n const params = {\n page,\n page_size: pageSize,\n search: search,\n master_subscription_id\n };\n\n if (tagCategoryIds) {\n params['tag_category_ids'] = tagCategoryIds;\n }\n\n if (tagIds) {\n params['tag_ids'] = tagIds;\n }\n return this.api.getWithParams(`${this.resource}/get_all`, {\n ...params\n });\n }\n\n getAdminPosts(subscriptionId, paging?: Paging) {\n return this.api.getWithParams(`${this.resource}/admin_get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addPost(post) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.post(this.resource, formData);\n }\n\n getPostBySlug(slug: string) {\n return this.api.get(`${this.resource}/${slug}`);\n }\n\n deletePost(id) {\n return this.api.delete(`${this.resource}/${id}`);\n }\n\n updatePost(post, id) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.put(`${this.resource}/${id}`, formData);\n }\n\n private getComments() {\n return this.api.get(`${this.comments}/get_all`);\n }\n\n postComments(post) {\n return this.api.post(this.comments, post);\n }\n\n getResourceInsight(subscription_id, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/posts_analytics?type=views&subscription_id=${subscription_id}`,\n { starting_at, ending_at }\n );\n }\n\n getResourcePostsInsight(id) {\n return this.api.get(`${this.resource}/${id}/insights`);\n }\n}\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-note-card',\n templateUrl: './release-note-card.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceNoteCardComponent extends AppBaseComponent implements OnInit {\n @Input() releaseHeader = false;\n @Input() categoryId!: string;\n @Input() isReleasePress = false;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n postTags: { [key: string]: { id: string; title: string } } = {};\n releasePosts: { [key: string]: Resource[] } = {};\n\n tagCategory;\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getTags();\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Release Notes' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.postTags['product'] = this.findTag(\n response.tags,\n 'Product Release Notes',\n this.tagCategory?.id\n );\n this.postTags['press'] = this.findTag(\n response.tags,\n 'Press Release Notes',\n this.tagCategory?.id\n );\n\n if (this.postTags['product']?.id) {\n this.getProductReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['product'] = [];\n }\n\n if (this.postTags['press']?.id) {\n this.getPressReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['press'] = [];\n }\n });\n }\n\n private findTag(tags, name: string, categoryId: number) {\n return tags.find(tag => tag.name === name && tag.tag_category_id === categoryId);\n }\n\n hasPressReleases(): boolean {\n return this.releasePosts['press']?.length !== 0 && this.isLoaded;\n }\n hasProductReleases(): boolean {\n return this.releasePosts['product']?.length !== 0 && this.isLoaded;\n }\n\n getProductReleasePosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n '',\n this.postTags['product']?.id\n )\n .subscribe(response => {\n const sortedPosts = response.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['product'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n getPressReleasePosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n '',\n this.postTags['press']?.id\n )\n .subscribe(response => {\n const sortedPosts = response?.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['press'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getProcessedPosts(posts: Resource[], sliceCount = 3): Resource[] {\n const cloned = [...posts];\n return this.postSlice ? cloned.reverse() : cloned.slice(0, sliceCount).reverse();\n }\n}\n","<section class=\"msp-vault-section bg-white\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"postTags['product']?.title || 'Product Release Notes'\"></h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Picture\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Picture\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"msp-vault-section bg-white\" *ngIf=\"isReleasePress\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"postTags['press']?.title || 'Press Release Notes'\"></h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Picture\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Picture\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-cards',\n templateUrl: './resource-cards.component.html',\n styleUrls: ['../../../resources/resources-shared.component.scss']\n})\nexport class ResourceCardComponent extends AppBaseComponent implements OnInit {\n @Input() categoryId!: string;\n @Input() isHeaderVisible = true;\n @Input() resourceTitle!: string;\n @Input() postSlice = false;\n @Input() header;\n @Input() resourceLink;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\" *ngIf=\"isHeaderVisible\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Our team’s articles'\"></h2>\n <a class=\"view-all\" [routerLink]=\"resourceLink\">VIEW ALL ></a>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of posts\">\n <p class=\"resource-title\" [innerHTML]=\"post.title \"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n /></a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n [href]=\"post.external_url\"\n aria-label=\"Navigate to external url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </section>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-blog-top-banner',\n templateUrl: './resource-blog-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-blog-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ResourceBlogTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Blog Posts' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Blogs'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Here, we share our insights,<br>\n learnings & the occasional <br>\n meme.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/msp-man.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-blog',\n templateUrl: './resource-blog.component.html',\n styleUrls: [\n '../resources/resources-shared.component.scss',\n '../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ResourceBlogComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Blog Posts');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag?.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<pw-resource-blog-top-banner />\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"false\" resourceLink=\"/resources/blogs\" [postSlice]=\"true\"></pw-resource-cards>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Input } from '@angular/core';\n\nimport { Resource } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resource-card-list',\n templateUrl: './resource-card-list.component.html',\n styleUrls: ['../resource-post/related-resources/related-resources.component.scss']\n})\nexport class ResourceCardListComponent {\n @Input() posts: Resource[] = [];\n @Input() postHeader = '';\n}\n","<section class=\"resource-section bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div class=\"row mt-4 cards-row\">\n <div class=\"col-lg-4 col-md-6 mb-4\" *ngFor=\"let post of this.posts; let i = index\" [ngClass]=\"{ 'mt-5': i > 2 }\">\n <div class=\"resource-card\">\n <p class=\"resource-title\">{{ post.title }}</p>\n <img [src]=\"post.picture.url\" class=\"resource-image mt-4\" [alt]=\"\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"read-now-btn\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"read-now-btn\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n\n </div>\n </div>\n </div>\n </div>\n </section>","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-case-studies-card',\n templateUrl: './case-studies-cards.component.html',\n styleUrls: ['./case-studies-cards.component.scss']\n})\nexport class CaseStudyCardComponent extends AppBaseComponent implements OnInit {\n @Input() showCaseStudyHeader = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n companyName = this.appConfig.company.name;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPosts(1, 10);\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.masterSubscriptionId || this.subscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\" id=\"msp-case-studies\">\n <div class=\"container\">\n <div *ngIf=\"showCaseStudyHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" id=\"msp-case-studies\" [innerHTML]=\"resourceTitle || 'Case Studies'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/case-studies\">VIEW ALL ></a>\n </div>\n <div *ngIf=\"!showCaseStudyHeader\" class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Case Studies'\"></h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"testimonial-box\" *ngFor=\"let post of posts\">\n\n <div>\n <img *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"IT Partners Logo\"\n class=\"company-logo mb-3\" />\n\n <p class=\"mb-4 mt-3 testimonial-section\">\n <span [innerHTML]=\"post.title\"></span>\n </p>\n </div>\n\n <!-- BOTTOM AVATAR -->\n <div class=\"avatar-container mt-5\">\n <img [src]=\"post.picture.url\"\n alt=\"User Avatar\"\n *ngIf=\"post.picture.url && !post.picture.url.includes('default-photo.jpg')\"\n class=\"testimonial-avatar\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"read-more-btn-overlay\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"read-more-btn-overlay\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { Resource } from '@posiwise/common-utilities';\n\nimport { Navigation, Pagination, Swiper } from 'swiper';\n\n@Component({\n selector: 'pw-testimonial-card',\n templateUrl: './testimonial-card.component.html',\n styleUrls: [\n './testimonial-card.component.scss',\n '../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class TestimonialCardListComponent implements OnInit {\n @Input() posts: Resource[] = [];\n @Input() postHeader = '';\n swiper;\n\n ngOnInit() {\n this.initSwiper();\n }\n\n private initSwiper() {\n this.swiper = new Swiper('.swiper-container', {\n modules: [Navigation, Pagination],\n slidesPerView: 1,\n spaceBetween: 24,\n centeredSlides: true,\n touchRatio: 1,\n touchAngle: 45,\n grabCursor: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n pagination: {\n el: '.swiper-pagination',\n clickable: true\n },\n breakpoints: {\n 425: {\n slidesPerView: 1.05,\n centeredSlides: true\n },\n 470: {\n slidesPerView: 1.25,\n centeredSlides: true\n },\n 564: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 640: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 768: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 1024: {\n slidesPerView: 2, // Allow room between cards\n centeredSlides: false\n },\n 1200: {\n slidesPerView: 3,\n centeredSlides: false\n }\n }\n });\n }\n}\n","<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div *ngIf=\"posts.length === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n<div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" *ngFor=\"let post of posts\">\n <div class=\"testimonial-box\">\n <div class=\"stars mb-5\">★★★★★</div>\n <div class=\"testimonial-content\">\n <div class=\"ql-container ql-snow ql-res\">\n <div class=\"ql-editor\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n </div>\n\n <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n <img\n *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"swiper-pagination\"></div>\n <div class=\"swiper-button-prev\"></div>\n <div class=\"swiper-button-next\"></div>\n </div>\n</div>\n </div>\n</section>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-case-studies',\n templateUrl: './resource-case-studies.component.html',\n styleUrls: ['./resource-case-studies.component.scss']\n})\nexport class ResourceCaseStudiesComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n this.getTestimonialTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Case Studies' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n console.log(this.tagCategory);\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getTestimonialTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogTestimonialsPostTag = response.tags.find(\n tag => tag.name === 'Testimonials'\n );\n this.getTestimonialsPosts(1, 100);\n });\n }\n\n getTestimonialsPosts(page: number, pageSize: number) {\n console.log(this.blogTestimonialsPostTag?.tag_category_id, 'sop');\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogTestimonialsPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts);\n this.testimonialsPosts = response.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n {{blogPostTag?.title || 'Case Studies'}}\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\" *ngIf=\"!blogPostTag?.description\">Real solutions - real results.<br /></p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource//case-studies-man.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n\n<pw-testimonial-card [posts]=\"testimonialsPosts\" [postHeader]=\"'Testimonials'\" id=\"reviews\"></pw-testimonial-card>\n<pw-case-studies-card *ngIf=\"blogPostTag?.tag_category_id\" id=\"case-studies\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-case-studies-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Input, OnChanges } from '@angular/core';\n\ninterface PageEvent {\n first: number;\n rows: number;\n page: number;\n pageCount: number;\n}\n@Component({\n selector: 'pw-resource-company-card',\n templateUrl: './resource-company-card.component.html',\n styleUrl: './resource-company-card.component.scss'\n})\nexport class ResourceCompanyCardComponent implements OnChanges {\n @Input() header = '';\n @Input() data = [];\n @Input() integrationCountDisplay;\n @Input() vendor = false;\n postData = false;\n filteredData = [];\n first = 0;\n rows = 12;\n ngOnChanges(): void {\n this.search();\n }\n search(keywords?) {\n if (keywords) {\n this.filteredData = this.data.filter(x =>\n x.title.toLowerCase().includes(keywords.toLowerCase())\n );\n if (this.filteredData.length === 0) {\n this.postData = true;\n } else {\n this.postData = false;\n }\n } else {\n this.filteredData = [...this.data];\n this.postData = false;\n }\n }\n onPageChange(event: PageEvent) {\n this.first = event.first;\n this.rows = event.rows;\n }\n}\n","<div [ngClass]=\"{ 'vendors-distributor-wrapper': !vendor }\">\n <div class=\"d-flex justify-content-between align-items-center mb-3 search-container\">\n <div>\n <span class=\"int-span\">{{header}}</span>\n </div>\n <div class=\"search-wrapper position-relative\" *ngIf=\"integrationCountDisplay > 0\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\"\n (keyup)=\"search($event.target.value)\"\n placeholder=\"Search eg security\"\n class=\"search-input\" />\n </div>\n\n </div>\n\n <div *ngIf=\"postData\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"> </pw-no-data>\n </div>\n\n <div class=\"row\" *ngIf=\"!postData && integrationCountDisplay > 0\">\n <div class=\"col-md-3 mt-4\"\n *ngFor=\"let img of filteredData | slice:first:(first + rows)\">\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n <ng-container *ngIf=\"img?.companyImg; else checkRectangular\">\n <img [src]=\"img.companyImg\" alt=\"Vendor Company Picture\" class=\"vendor-icon\" />\n </ng-container>\n\n <ng-template #checkRectangular>\n <ng-container *ngIf=\"img?.rectangular_picture?.url; else noImage\">\n <ng-container *ngIf=\"!img.rectangular_picture.url.includes('default-photo'); else showPostName\">\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <img [src]=\"img.rectangular_picture.url\" alt=\"Vendor Rectangular Company Picture\" class=\"vendor-icon\" />\n </a>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #showPostName>\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <span class=\"vendor-name text-center mt-2\">{{ img?.title }}</span>\n </a>\n </ng-template>\n </div>\n </div>\n\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n *ngIf=\"!postData && integrationCountDisplay > 0\"\n >\n <p-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length\"\n (onPageChange)=\"onPageChange($event)\"></p-paginator>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-integration-top-banner',\n templateUrl: './integration-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class IntegrationTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n contactUsUrl = this.appConfig?.pages_config?.contact_us?.url;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Integrations' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n console.log(this.tagCategory, response.tags, 'sop');\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Integrated vendors'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Browse below the vendor integrations<br />\n we support.\n </p>\n </ng-template>\n </div>\n\n <!-- Buttons always at bottom -->\n <div class=\"d-flex gap-3 flex-wrap mt-3\">\n <a [href]=\"contactUsUrl\" target=\"_blank\"\n class=\"cta-btn filled\">Speak to sales ></a>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/men.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { CompanyData, Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { forkJoin } from 'rxjs';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-integration',\n templateUrl: './resource-integration.component.html',\n styleUrls: [\n './resource-integration.component.scss',\n '../resources/resources-shared.component.scss'\n ]\n})\nexport class ResourceIntegrationComponent extends AppBaseComponent implements OnInit {\n distributorsData = CompanyData?.distributorsData;\n vendorsData = CompanyData?.vendorsData;\n\n textColor = this.appConfig?.color_codes?.text;\n\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n distributerPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n isLoaded = false;\n resourcePostTag;\n blogPostVendorTag;\n\n integrations = this.appConfig?.pages_config?.integrations;\n\n releaseNotesLink = '/resources/product-release-notes';\n q1NotesLink = '/resources/product-release-q1-2025';\n q3NotesLink = '/resources/product-release-q3-2024';\n q4NotesLink = '/resources/product-release-q4-2024';\n companyName;\n\n videoWebinarLoaded = false;\n videoDemoLoaded = false;\n youtubeVideoId = 'R7Vk219zbhA';\n videoTitle = 'CloudOlive Overview';\n sanitizedMicrosoftVideoUrl: SafeResourceUrl;\n sanitizedKesyaVideoUrl: SafeResourceUrl;\n integrationCountDisplay: number;\n contactUsUrl = this.appConfig?.pages_config?.contact_us?.url;\n tagCategory;\n totalPosts: number;\n\n guideData = this.appConfig?.pages_config?.guides?.items[0];\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n console.log(this.guideData);\n this.companyName = this.appConfig.company.name;\n\n document.documentElement.style.setProperty('--text-color', this.textColor);\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Integrations' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.resourcePostTag = response.tags.find(\n tag => tag.name === 'Product Release Notes'\n );\n this.blogPostTag = response.tags.find(\n tag =>\n tag.name === 'Integrated Distributors' &&\n tag.tag_category_id === this.tagCategory?.id\n );\n this.blogPostVendorTag = response.tags.find(\n tag =>\n tag.name === 'Integrated Vendors' &&\n tag.tag_category_id === this.tagCategory?.id\n );\n\n // use forkJoin to fetch both sets of posts in parallel\n forkJoin({\n vendorResponse: this.resourceService.getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n 1,\n 100,\n '',\n '',\n this.blogPostVendorTag?.id\n ),\n distributorResponse: this.resourceService.getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n 1,\n 100,\n '',\n '',\n this.blogPostTag?.id\n )\n }).subscribe(({ vendorResponse, distributorResponse }) => {\n this.posts = vendorResponse.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() -\n new Date(a.published_at).getTime()\n );\n\n this.distributerPosts = distributorResponse.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() -\n new Date(a.published_at).getTime()\n );\n\n const vendorCount = vendorResponse?.object_count || 0;\n const distributorCount = distributorResponse?.object_count || 0;\n const total = vendorCount + distributorCount;\n\n this.integrationCountDisplay = total === 0 ? 0 : Math.ceil(total / 10) * 10;\n this.isLoaded = true;\n });\n });\n }\n\n loadMicrosoftVideo(videoUrl) {\n window.open(videoUrl, '_blank');\n }\n\n loadKeseyaVideo(): void {\n const baseUrl = `https://www.youtube.com/embed/${this.youtubeVideoId}?autoplay=1`;\n // baseUrl is a trusted internal source (e.g. YouTube embed URL)\n this.sanitizedKesyaVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(baseUrl); // NOSONAR\n this.videoWebinarLoaded = true;\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-integration-top-banner></pw-integration-top-banner>\n<div class=\"bg-white\">\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container sec-container\">\n <div *ngIf=\"isLoaded && integrationCountDisplay > 0\">\n <h1 class=\"int-title mb-0\">{{ integrationCountDisplay }}+ integrations (& counting)</h1>\n <p class=\"int-text\"> Search the current list of {{companyName}} vendor and distributor integrations below. <br />\n </p>\n </div>\n <pw-resource-company-card *ngIf=\"isLoaded\" [header]=\"'integrated vendors'\"\n [integrationCountDisplay]=\"integrationCountDisplay\"\n [data]=\"posts\"></pw-resource-company-card>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"integrationCountDisplay === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"text-center pt-3 mt-4\" *ngIf=\"isLoaded && integrationCountDisplay > 0\">\n <p class=\"see-span\"> Don’t see what you’re after? <a [href]=\"contactUsUrl\"\n target=\"_blank\"\n class=\"int-span team-span\">Speak with our team to request a connection >\n </a>\n </p>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <pw-resource-company-card [header]=\"'integrated Distributors'\"\n [integrationCountDisplay]=\"integrationCountDisplay\"\n *ngIf=\"isLoaded\"\n [vendor]=\"true\"\n [data]=\"distributerPosts\"></pw-resource-company-card>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"integrationCountDisplay === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\" *ngIf=\"integrations\">\n <div class=\"container\">\n <div class=\"how-it-works-wrapper\">\n <h1 class=\"it-works-title mb-0\">{{integrations?.title || 'How it works'}}</h1>\n <p class=\"pb-20\" [innerHTML]=\"integrations?.description || 'View short example videos to understand how these integrations can work for you:'\"></p>\n <div class=\"row section-row\">\n <ng-container *ngIf=\"integrations?.items?.length > 0; else noIntegrations\">\n <ng-container *ngFor=\"let integration of integrations?.items\">\n <div\n class=\"col-md-6\"\n *ngIf=\"integration?.image_url || integration?.title || integration?.description\"\n >\n <ng-container *ngIf=\"integration?.video_url && integration?.video_url.includes('https'); else noVideo\">\n <div class=\"d-flex justify-content-center\">\n <img\n *ngIf=\"integration?.video_url\"\n [src]=\"integration?.image_url\"\n (click)=\"loadMicrosoftVideo(integration?.video_url)\"\n class=\"how-it-works-img\"\n alt=\"Integration Video Thumbnail\"\n />\n </div>\n </ng-container>\n\n <ng-template #noVideo>\n <div class=\"d-flex justify-content-center\">\n <div class=\"w-100\">\n <pw-no-data [withImage]=\"true\" [message]=\"'No video found' | transloco\">\n </pw-no-data>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #noIntegrations>\n <div class=\"w-100 text-center\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Integration.NoDataMessage' | transloco\"></pw-no-data>\n </div>\n </ng-template>\n\n </div>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"row align-items-start\">\n <div class=\"col-md-6 text-md-start text-center\">\n <h1 class=\"guide-title mb-3\">{{guideData?.title || '--UPDATE ME ON THE ADMIN/DOMAINS MODULE--'}}</h1>\n <p class=\"guide-subtext\"\n [innerHTML]=\"guideData?.description || '--UPDATE ME ON THE ADMIN/DOMAINS MODULE--'\">\n </p>\n <a class=\"vault-btn\"\n [href]=\"guideData?.guide_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n {{guideData?.button_text || 'View the guide'}}\n </a>\n\n </div>\n\n <div class=\"col-md-6 text-center\">\n <ng-container *ngIf=\"guideData?.image_url && !guideData.image_url.includes('default-photo.jpg'); else noDataTemplate\">\n <img\n [src]=\"guideData.image_url\"\n alt=\"Guide\"\n class=\"guide-img\" />\n </ng-container>\n\n <ng-template #noDataTemplate>\n <div>\n <pw-no-data [withImage]=\"true\" [message]=\"'--ADD ME ON THE ADMIN/DOMAINS MODULE--' | transloco\" />\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </section>\n</div>\n\n<pw-resource-note-card *ngIf=\"resourcePostTag?.tag_category_id\" [categoryId]=\"resourcePostTag?.tag_category_id\" [releaseHeader]=\"true\" [resourceTitle]=\"resourcePostTag?.title\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { UntypedFormBuilder, Validators } from '@angular/forms';\n\nexport class ResourceBlog {\n static getResourcePostsForm() {\n return new UntypedFormBuilder().group({\n related_entity_id: [''],\n related_entity_type: [''],\n comment: [null, Validators.required],\n user_id: ['']\n });\n }\n}\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomToastService, TagService } from '@posiwise/common-services';\nimport { TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\nimport { ResourceBlog } from '../../../../shared/models/resource.model';\n\n@Component({\n selector: 'pw-related-resources',\n templateUrl: './related-resources.component.html',\n styleUrls: ['./related-resources.component.scss']\n})\nexport class RelatedResourcesComponent extends AppBaseComponent implements OnInit {\n resourceCards = [\n {\n title: 'BLOG: Here’s why you should QA your distributor invoices',\n image: '/assets/img/resource/resource-qa.png',\n alt: 'QA distributor invoices',\n url: '/resources/view/here-s-why-you-should-be-seeking-independent-qa-of-all-distributor-inv'\n },\n {\n title: 'BLOG: 4 instant hacks to uplift your MSP’s monthly billing',\n image: '/assets/img/resource/resource-hacks.png',\n alt: 'Monthly billing hacks',\n url: '/resources/view/4-instant-hacks-to-uplift-your-msp-s-monthly-billing'\n },\n {\n title: 'BLOG: The trivial detail that will either future-proof or sabotage your PSA.',\n image: '/assets/img/resource/resource-psa.png',\n alt: 'PSA future-proof',\n url: '/resources/view/the-trivial-detail-that-will-either-future-proof-or-sabotage-your-psa'\n }\n ];\n\n post;\n masterSubscriptionId;\n slug;\n\n postComments = [];\n commentForm;\n\n userLoggedIn: boolean;\n\n demoLinks = this.appConfig?.pages_config?.book_demo?.items;\n\n user: User;\n blogPostTag;\n subscriptionId;\n linkedInUrl = this.appConfig?.social?.linkedin_url;\n company_email = this.appConfig.company.email;\n\n constructor(\n private readonly resourceService: ResourceService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer,\n private readonly tagService: TagService,\n private readonly toastr: CustomToastService\n ) {\n super(injector);\n this.commentForm = ResourceBlog.getResourcePostsForm();\n }\n\n ngOnInit(): void {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n console.log(this.linkedInUrl, this.appConfig);\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n });\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n get hasValidDemoLinks(): boolean {\n return (\n Array.isArray(this.demoLinks) && this.demoLinks.some(link => link?.title || link?.url)\n );\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Blog Posts');\n });\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n const date = new Date(response?.when);\n const formatted = date.toISOString().split('T')[0];\n console.log(formatted); //\n this.postComments = response.entity_comments;\n this.post = { ...response, body: blogBody, when: formatted };\n });\n }\n\n onComment() {\n const data = { ...this.commentForm.value };\n data.related_entity_id = this.post?.id;\n data.related_entity_type = 'Post';\n data.user_id = this.user?.id;\n this.resourceService\n .postComments(data)\n .subscribe(() => {\n this.getBlogItem(this.slug);\n this.commentForm.reset();\n this.toastr.success(this.translation.translate('Resource.Posts.CommentAdded'));\n })\n .add(() => {\n console.log('In this');\n });\n }\n\n trackByComment(_index: number, item: { id: number }) {\n return item.id;\n }\n}\n","\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm border-0 p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">💬 Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card border-0 shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { ADMIN_ROUTERS, TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\n@Component({\n selector: 'pw-resource-post-details',\n templateUrl: './resource-post-details.component.html',\n styleUrls: ['./resource-post-details.component.scss']\n})\nexport class ResourcePostDetailsComponent extends AppBaseComponent implements OnInit {\n post;\n masterSubscriptionId;\n slug;\n blogPermission: string;\n userLoggedIn: boolean;\n routers = ADMIN_ROUTERS;\n hasBlogAccess: boolean;\n user: User;\n\n constructor(\n private readonly resourceService: ResourceService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n\n if (res) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.hasBlogAccess = HelperService.checkBlogPermission(this.user);\n });\n }\n });\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n this.post = { ...response, body: blogBody };\n });\n }\n}\n","<section class=\"nce-hero-section\">\n <div class=\"container d-flex flex-wrap\">\n <div class=\"hero-left\">\n <p class=\"blog-label\">BLOG</p>\n\n <h1 class=\"hero-title\">\n <span [innerHTML]=\"post?.title\"></span>\n <a *ngIf=\"userLoggedIn && hasBlogAccess\"\n class=\"ms-3 text-decoration-none\"\n ngbTooltip=\"Edit this post\"\n [routerLink]=\"['/admin/resources/', post?.slug]\"\n target=\"_blank\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </a>\n </h1>\n\n\n <div class=\"author-info\">\n <img [src]=\"post?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\" alt=\"User Profile Logo\" class=\"author-img\" />\n <div class=\"author-meta\">\n <p>Article by {{ post?.author?.first_name }} {{ post?.author?.last_name }}</p>\n <p class=\"date\">{{post?.published_at | dateFormat}}</p>\n </div>\n <img src=\"/assets/img/resource/math.png\" alt=\"User Profile Logo\" class=\"d-md-none d-block mobile-math-image\" />\n </div>\n </div>\n\n <div class=\"hero-right d-none d-md-block\">\n <img src=\"/assets/img/resource/math.png\" alt=\"Math Icon Blob\" class=\"hero-image\" />\n </div>\n </div>\n <hr class=\"nce-divider\" />\n </section>\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-resource-post',\n templateUrl: './resource-post.component.html',\n styleUrl: './resource-post.component.scss'\n})\nexport class ResourcePostComponent implements OnInit {\n slug: string;\n\n constructor(\n private route: ActivatedRoute,\n private titleService: Title\n ) {}\n\n ngOnInit(): void {\n this.route.paramMap.subscribe(params => {\n this.slug = params.get('slug') || 'Default';\n setTimeout(() => {\n this.titleService.setTitle(`Resource - ${this.slug}`);\n }, 1000);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-post-details></pw-resource-post-details>\n<pw-related-resources></pw-related-resources>\n<pw-trial-4-contact-us></pw-trial-4-contact-us>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-release-notes-top-banner',\n templateUrl: './resource-release-notes-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-release-notes-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ReleaseTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Release Notes' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Release Notes'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n We’re obsessed with solving real problems for our customers.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/release-person.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-release-notes',\n templateUrl: './resource-release-notes.component.html'\n})\nexport class ResourceReleaseNoteComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n console.log();\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Product Release Notes');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-release-notes-top-banner></pw-resource-release-notes-top-banner>\n\n<pw-resource-note-card [isReleasePress]=\"true\" *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [releaseHeader]=\"true\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource--vault',\n templateUrl: './resource-vault.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceVaultComponent extends AppBaseComponent implements OnInit {\n @Input() showVaultSection = false;\n @Input() postSlice = false;\n @Input() categoryId;\n @Input() resourceTitle;\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVaultSection\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-5\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Whitepapers & Tools'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/white-papers\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"d-flex mt-2 flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card text-center p-4\" *ngFor=\"let post of posts\">\n <p class=\"mb-4\" [innerHTML]=\"post.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n />\n </a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-video-card',\n templateUrl: './resource-video-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class ResourceVideoCardComponent extends AppBaseComponent implements OnInit {\n @Input() showVideoSection = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n\n videoStates: { [slug: string]: { loaded: boolean; url: SafeResourceUrl } } = {};\n\n userLoggedIn: boolean;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly resourceService: ResourceService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n loadVideo(post): void {\n if (!post.external_url) return;\n\n const slug = post.slug;\n let externalUrl = post.external_url;\n\n // Append autoplay only when clicked\n externalUrl += externalUrl.includes('?') ? '&autoplay=1' : '?autoplay=1';\n\n this.videoStates[slug].url = this.sanitizer.bypassSecurityTrustResourceUrl(externalUrl);\n }\n\n getPosts(page: number, pageSize: number): void {\n console.log('pop', this.categoryId);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n this.posts.forEach(post => {\n if (post.external_url) {\n this.videoStates[post.slug] = {\n loaded: true,\n url: this.sanitizer.bypassSecurityTrustResourceUrl(post.external_url)\n };\n }\n });\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVideoSection\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'On-Demand Videos'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/videos\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card\" *ngFor=\"let post of posts\">\n <p [innerHTML]=\"post.title\" class=\"mb-5\"></p>\n <a [href]=\" post.external_url\" target=\"_blank\">\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid mb-3\"\n [alt]=\"post.title\" />\n </a>\n\n <a class=\"resource-btn mt-3\" [href]=\" post.external_url\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Watch now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </div>\n </div>\n </div>\n\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-videos-top-banner',\n templateUrl: './resource-videos-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-videos-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class VideosTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Videos' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Videos on Demand'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Discover below all our videos.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/video-template.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-videos',\n templateUrl: './resource-videos.component.html',\n styleUrls: []\n})\nexport class ResourceVideoComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Videos');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-videos-top-banner></pw-resource-videos-top-banner>\n\n\n<pw-resource-video-card *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource-video-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-replay-event-card',\n templateUrl: './replay-event-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class ReplayEventCardComponent extends AppBaseComponent implements OnInit {\n @Input() showEventContent = false;\n @Input() categoryId!: string;\n @Input() resourceTitle!: string;\n userLoggedIn: boolean;\n subscriptionId;\n\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPostTags();\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Events');\n if (this.blogPostTag?.tag_category_id) {\n this.getPosts(1, 100);\n } else {\n this.isLoaded = true;\n }\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const now = new Date().getTime();\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true && new Date(post?.when).getTime() < now)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = sortedPosts;\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"vault-heading\">Webinar Replays</h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card vault-card text-center p-4\" *ngFor=\"let post of posts\">\n <h5 class=\"badge-title fw-bold\">REPLAY:</h5>\n\n <p class=\"event-title mb-4\" [innerHtml]=\"post?.title\"></p>\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n [href]=\"post.external_url\"\n aria-label=\"Navigate to external url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-upcoming-event-card',\n templateUrl: './upcoming-event-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class UpcomingEventCardComponent extends AppBaseComponent implements OnInit {\n @Input() showEventContent = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n now = new Date().getTime();\n userLoggedIn: boolean;\n subscriptionId;\n\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPostTags();\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Events');\n if (this.blogPostTag?.tag_category_id) {\n if (this.postSlice) {\n this.getPosts(1, 100);\n } else {\n this.getAllPosts(1, 100);\n }\n } else {\n this.isLoaded = true;\n }\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId || this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(\n post => post.showcase === true && new Date(post?.when).getTime() > this.now\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = sortedPosts;\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n isUpcoming(post): boolean {\n return new Date(post?.when).getTime() > this.now;\n }\n\n getAllPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId || this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort((a, b) => new Date(b.when).getTime() - new Date(a.when).getTime());\n\n this.posts = [...sortedPosts].slice(0, 3).reverse();\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showEventContent\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Events & Webinars'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/events\">VIEW ALL ></a>\n </div>\n <div *ngIf=\"!showEventContent\" class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"vault-heading\"[innerHTML]=\"resourceTitle || 'Upcoming Events'\"></h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card d text-center p-4\" *ngFor=\"let post of posts\">\n <ng-container *ngIf=\"postSlice; else conditionalCheck\">\n <h5 class=\"badge-title fw-bold\">UPCOMING:</h5>\n </ng-container>\n\n <ng-template #conditionalCheck>\n <h5 class=\"badge-title fw-bold\">\n {{ isUpcoming(post) ? 'UPCOMING:' : 'REPLAY:' }}\n </h5>\n </ng-template>\n\n <p class=\"event-title mb-4\" [innerHtml]=\"post?.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n />\n </a>\n\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-webinars',\n templateUrl: './resource-webinars.component.html',\n styleUrls: [\n './resource-webinars.component.scss',\n '../resource-case-studies/resource-case-studies.component.scss',\n '../resources/resources-shared.component.scss'\n ]\n})\nexport class ResourceWebinarComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n upcomingPosts = [];\n tagCategory;\n userLoggedIn: boolean;\n blogPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Events' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n\n<section class=\"bg-white\">\n <div class=\"nce-banner nce-section\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n {{blogPostTag?.title || 'Events & Webinars'}}\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension\">\n <p class=\"intro\" *ngIf=\"!blogPostTag?.description || blogPostTag.description === 'null'\">\n We're big on community and even<br>bigger on sharing what works.\n </p>\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\" *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null'\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img\"\n [src]=\"(blogPostTag?.image?.url !== null && !blogPostTag?.image?.url?.includes('default-photo.jpg') && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared')) ) ? blogPostTag?.image?.url : 'assets/img/resource/events-women.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n\n<section class=\"bg-white\">\n <pw-upcoming-event-card [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-upcoming-event-card>\n</section>\n\n<section class=\"bg-white\">\n <pw-replay-event-card></pw-replay-event-card>\n</section>\n\n\n\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, EventEmitter, Injector, OnInit, Output } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Tag } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resource-tags',\n templateUrl: './resource-tags.component.html',\n styleUrls: [\n './resource-tags.component.scss',\n '../../resources-hub/resources-hub.component.scss'\n ]\n})\nexport class ResourceTagComponent extends AppBaseComponent implements OnInit {\n @Output() tagsLoaded = new EventEmitter<Tag[]>();\n @Output() tagSelected = new EventEmitter<Tag>();\n tags = [];\n subscriptionId: number;\n userLoggedIn: boolean;\n loading = true;\n loaded = false;\n\n selectedTag: Tag | null = null;\n\n constructor(\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$('product').subscribe(product => {\n const data = product ? JSON.parse(product) : null;\n this.subscriptionId =\n data?.subscriptionId || this.appConfig.master_subscription.subscription_id;\n this.getTags();\n });\n }\n\n selectTag(tag: Tag): void {\n this.selectedTag = tag;\n this.tagSelected.emit(tag);\n }\n\n getTags() {\n this.loading = true;\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId)\n .subscribe(res => {\n this.tags = (res?.tags || [])\n .filter(tag => tag.visible_in_resources)\n .map(tag => ({\n ...tag,\n iconClass: `fa ${tag.icon_name}` // e.g. fa fa-check\n }));\n this.tagsLoaded.emit(this.tags);\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n}\n","<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-vault-section',\n templateUrl: './vault-section.component.html',\n styleUrls: ['./vault-section.component.scss']\n})\nexport class VaultSectionComponent extends AppBaseComponent implements OnInit {\n companyName;\n resourceTagLine = this.appConfig.pages_config.resources.resources_tagline;\n resourceImage = this.appConfig.pages_config.resources.resources_image.url;\n resourceDescription = this.appConfig.pages_config.resources.resources_description;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.companyName = this.appConfig?.company.name;\n }\n}\n","<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n </section>\n","import { Component } from '@angular/core';\n\nimport { Tag } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.scss']\n})\nexport class ResourceComponent {\n allTags: Tag[] = [];\n\n onTagsLoaded(tags: Tag[]) {\n this.allTags = tags;\n }\n\n hasTag(name: string): boolean {\n return this.allTags.some(tag => tag.name?.toLowerCase() === name.toLowerCase());\n }\n\n getCategoryIdByTagName(name: string): number | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.tag_category_id;\n }\n\n getTitleByTagName(name: string): string | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.title;\n }\n\n scrollToTag(tag: Tag) {\n const sectionMap: { [key: string]: string } = {\n Videos: 'videos',\n Events: 'events',\n 'Blog Posts': 'blog-posts',\n 'Case Studies': 'case-studies',\n 'White Papers': 'white-papers',\n 'Product Release Notes': 'product-release-notes'\n };\n\n const sectionId = sectionMap[tag.name?.trim()];\n if (sectionId) {\n setTimeout(() => {\n const el = document.getElementById(sectionId);\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 100);\n }\n }\n}\n","\n<pw-resource-header></pw-resource-header>\n<pw-vault-section></pw-vault-section>\n<pw-resource-tags (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\"></pw-case-studies-card>\n<pw-resource--vault id=\"white-papers\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\"></pw-resource--vault>\n<pw-resource-note-card [isReleasePress]=\"true\" id=\"product-release-notes\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\"></pw-resource-note-card>\n<pw-trial-4-contact-us></pw-trial-4-contact-us>","import {\n Component,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, Tag, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { forkJoin } from 'rxjs';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-posts-list',\n templateUrl: './resources-hub.component.html',\n styleUrls: [\n './resources-hub.component.scss',\n '../resource-company-card/resource-company-card.component.scss'\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceHubComponent extends AppBaseComponent implements OnInit, OnDestroy {\n private delayTimeout: ReturnType<typeof setTimeout> | null = null;\n\n data = [];\n\n posts: Resource[] = [];\n tags: Tag[] = [];\n\n selectedTags = [];\n\n currentPage = 1;\n pageSize = 20;\n objectCount = 0;\n\n searchTextItems = '';\n searchInput = false;\n\n readingTime: number;\n\n totalRecords: number;\n\n loading = true;\n loaded = false;\n\n masterSubscriptionId: number;\n subscriptionId;\n userLoggedIn: boolean;\n\n scrollLocked = false;\n\n iconClasses: string[] = [\n 'fa-lightbulb',\n 'fa-rocket',\n 'fa-file-alt',\n 'fa-users',\n 'fa-video',\n 'fa-pencil-alt',\n 'fa-book-open',\n 'fa-cogs'\n ];\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.getPostsAndTags();\n this.readingTime = 0;\n }\n\n getPostsAndTags() {\n this.loading = true;\n this.loaded = false;\n forkJoin({\n resPosts: this.resourceService.getPublicPosts(\n this.masterSubscriptionId,\n this.currentPage,\n this.pageSize,\n this.searchTextItems\n ),\n resTags: this.tagService.getTagsByType(\n 'post_categories',\n {},\n this.subscriptionId || this.masterSubscriptionId\n )\n })\n .subscribe(res => {\n this.posts = res?.resPosts?.posts;\n this.objectCount = res?.resPosts.object_count;\n this.data = res?.resPosts?.posts;\n this.data = res?.resPosts?.posts.map(post => ({\n ...post,\n expandedTags: false\n }));\n this.totalRecords = this.posts?.length;\n\n this.tags = res?.resTags?.tags?.filter(tag => tag.visible_in_resources);\n this.tags = this.tags.map(tag => ({\n ...tag,\n iconClass: this.getRandomIcon()\n }));\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n toggleDropdown(event: Event, post): void {\n event.stopPropagation();\n post.showDropdown = !post.showDropdown;\n }\n\n getRandomIcon(): string {\n const randomIndex = Math.floor(Math.random() * this.iconClasses.length);\n return 'fa ' + this.iconClasses[randomIndex];\n }\n\n getPosts(page: number, pageSize: number, fetchAll = false, append = false) {\n if (fetchAll) this.selectedTags = [];\n\n if (!append) {\n this.loading = true;\n this.loaded = false;\n }\n\n const tagCategoryParam = this.selectedTags.map(tag => tag.tag_category_id).join(',');\n\n this.resourceService\n .getPublicPosts(\n this.masterSubscriptionId,\n page,\n append ? 10 : pageSize,\n this.searchTextItems,\n tagCategoryParam\n )\n .subscribe(response => {\n this.objectCount = response.object_count;\n this.posts = append ? [...this.posts, ...response.posts] : response.posts;\n this.data = [...this.posts];\n this.totalRecords = this.posts?.length;\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n onSearch(seconds: number) {\n let delay = 0;\n delay = seconds * 1000;\n clearTimeout(this.delayTimeout);\n const delayTimeout = setTimeout(() => {\n this.currentPage = 1;\n this.getPosts(1, this.pageSize);\n }, delay);\n\n this.delayTimeout = delayTimeout;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll(): void {\n const scrollPosition = window.scrollY + window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n\n const nearBottom = scrollPosition >= pageHeight - 100;\n\n if (\n nearBottom &&\n this.posts.length < this.objectCount &&\n !this.loading &&\n !this.scrollLocked\n ) {\n this.scrollLocked = true;\n this.currentPage += 1;\n\n this.getPosts(this.currentPage, this.pageSize, false, true);\n\n setTimeout(() => {\n this.scrollLocked = false;\n }, 500);\n }\n }\n\n isSelected(tagId: number): boolean {\n return this.selectedTags.map(tag => tag.id).includes(tagId);\n }\n\n tagPost(selectedTag) {\n const index = this.selectedTags.findIndex(\n tag => tag.tag_category_id === selectedTag?.tag_category_id && tag.id === selectedTag.id\n );\n\n if (index === -1) {\n this.selectedTags.push({\n tag_category_id: selectedTag?.tag_category_id,\n id: selectedTag.id\n });\n } else {\n this.selectedTags.splice(index, 1);\n }\n\n this.currentPage = 1;\n this.getPosts(1, this.pageSize);\n }\n\n thisPostReadingTime(text: string): string {\n if (text) {\n const wordsPerMinute = 200;\n const noOfWords = text.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-resource-header></pw-resource-header>\n<div class=\"all-posts py-5\">\n <div class=\"row mt-1 mb-4 px-2\">\n <div class=\"col-md-9\">\n </div>\n <div class=\"col-md-3\">\n <div class=\"text-end mt-0 mt-sm-3 d-flex\">\n <div class=\"search-wrapper position-relative\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\" [(ngModel)]=\"searchTextItems\" pInputText size=\"50\" placeholder=\"Search resources...\"\n (input)=\"onSearch(1)\"\n class=\"search-input\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"row resource-row\">\n <!-- All Resources Card -->\n <div class=\"col-md-3 col-sm-6 mb-4\">\n <div class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"getPosts(1, 20, true)\"\n [ngClass]=\"{ 'selected': selectedTags.length === 0 }\"\n (click)=\"getPosts(1, 20, true)\">\n <i class=\"fa fa-layer-group resource-icon me-3\"></i>\n <span class=\"resource-text\">All Resources</span>\n </div>\n </div>\n\n <!-- Dynamic Tags -->\n <div class=\"col-md-3 col-sm-6 mb-4\"\n *ngFor=\"let tag of tags\">\n <div\n class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"tagPost(tag)\"\n [ngClass]=\"{ 'selected': isSelected(tag.id) }\"\n (click)=\"tagPost(tag)\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"loading && !loaded\">\n <div class=\"w-100 text-center mt-3\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"posts?.length && !loading\">\n <div>\n <div class=\"blog-list\">\n <div class=\"row mt-4 mb-5 ms-1 me-1 blog-listing\"\n *ngFor=\"let post of data\">\n <div class=\"col-md-6 col-sm-12 col-xs-12 my-auto\"\n [routerLink]=\"['/resources/view', post.slug]\">\n <div class=\"list-blog-image\">\n <img [src]=\"post.picture?.url\"\n alt=\"Post List\"\n class=\"img-fluid\" />\n </div>\n </div>\n <div class=\"col-md-6 col-sm-12 col-xs-12 px-4 position-relative\">\n <div class=\"tag-div\">\n <div class=\"author d-flex\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post.author?.avatar\"\n [src]=\"post.author?.avatar[0]?.url\"\n alt=\"Author\" />\n <img *ngIf=\"!post.author?.avatar\"\n src=\"/assets/img/icons/male.png\"\n alt=\"Author\"\n class=\"default-user-image\" />\n </a>\n </div>\n\n <div class=\"author-name ps-2\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post.author.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n <ul>\n <li>\n <a href=\"javascript:void(0);\">\n {{ post.published_at | date: 'dd/MM/yyyy' }}\n </a>\n </li>\n <li>.</li>\n <li>\n <a href=\"javascript:void(0);\">{{ thisPostReadingTime(post.body) }}\n </a>\n </li>\n </ul>\n </div>\n <div class=\"share-post\">\n <div class=\"dropdown position-relative d-flex justify-content-end\" (clickOutside)=\"post.showDropdown = false\">\n <div class=\"three-dots-wrapper\" (click)=\"toggleDropdown($event, post)\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </div>\n\n <div class=\"dropdown-menu show\"\n *ngIf=\"post.showDropdown\">\n <a class=\"dropdown-item\"\n href=\"http://www.facebook.com/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <i class=\"fas fa-share\"></i> Share Post\n </a>\n </div>\n </div>\n\n </div>\n </div>\n <h4 [routerLink]=\"['/resources/view', post.slug]\"\n class=\"title my-3\">{{ post.title }}</h4>\n <p [routerLink]=\"['/resources/view', post.slug]\"\n class=\"body mb-3 pb-3 post-body-text\">\n {{ post.body | removeHtml: 'quill' | textTruncate: 200 }}\n </p>\n <div class=\"d-flex flex-wrap align-items-center gap-2 mt-auto mb-3\">\n <ng-container *ngIf=\"post?.tags?.length\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(0, 4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"post.expandedTags\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n </ng-container>\n\n <span *ngIf=\"post?.tags?.length > 4\"\n (click)=\"post.expandedTags = !post.expandedTags\"\n class=\"fw-bold cursor-pointer m-1\"\n style=\"font-size: 1.2rem;\">...</span>\n </ng-container>\n </div>\n\n\n <div class=\"blog-view py-3 blog-list-write-view\">\n <ul class=\"d-flex\">\n <li>{{ post.view !== null ? post.view : '0' }} View</li>\n <li><a [routerLink]=\"['/resources/view', post.slug]\">Write Comment</a></li>\n <li>\n <a [routerLink]=\"['/resources/view', post.slug]\" aria-label=\"Blog\"><i class=\"far fa-heart\" aria-hidden=\"true\"></i></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!posts?.length && loaded\">\n <pw-no-data [withImage]=\"true\" message=\"We couldn't find any resources.\" > </pw-no-data>\n </ng-container>\n</div>\n","import { Component, Injector, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomToastService } from '@posiwise/common-services';\nimport { RecentPost, Resource, ResourceComment, TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\nimport { ResourceBlog } from '../../../shared/models/resource.model';\n\n@Component({\n selector: 'pw-post-read',\n templateUrl: './resources-read.component.html',\n styleUrls: ['./resources-read.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceReadComponent extends AppBaseComponent implements OnInit, OnDestroy {\n post: Resource;\n user: User;\n recentPosts: RecentPost[] = [];\n postComments: ResourceComment[] = [];\n\n slug: string;\n masterSubscriptionId: number;\n\n commentForm: UntypedFormGroup;\n\n userLoggedIn = false;\n buttonBusy = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly toastr: CustomToastService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n this.commentForm = ResourceBlog.getResourcePostsForm();\n }\n\n ngOnInit() {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n });\n }\n });\n }\n\n readingTime(text: string) {\n if (text) {\n const textContent = text.toString();\n const wordsPerMinute = 200;\n const noOfWords = textContent.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n this.post = { ...response, body: blogBody };\n this.postComments = response.entity_comments;\n this.getPosts(1, 4);\n });\n }\n\n private getPosts(page: number, pageSize: number) {\n this.resourceService\n .getPublicPosts(this.masterSubscriptionId, page, pageSize, '')\n .subscribe(response => {\n this.recentPosts = response.posts.filter(post => post.slug !== this.post.slug);\n });\n }\n\n onComment() {\n this.buttonBusy = true;\n const data = { ...this.commentForm.value };\n data.related_entity_id = this.post?.id;\n data.related_entity_type = 'Post';\n data.user_id = this.user?.id;\n this.resourceService\n .postComments(data)\n .subscribe(() => {\n this.getBlogItem(this.slug);\n this.commentForm.reset();\n this.toastr.success(this.translation.translate('Resource.Posts.CommentAdded'));\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n\n tagPost(selectedTag) {\n this.recentPosts = this.recentPosts.filter(element => {\n let filtered;\n if (element.tags?.length) {\n filtered = element.tags.filter(\n tag => tag.tag_category_id === selectedTag?.tag_category_id\n );\n\n return { element, filtered };\n }\n\n return {};\n });\n }\n\n trackByTagId(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByRecentPost(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByComment(_index: number, item: { id: number }) {\n return item.id;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-header/>\n<div class=\"read-post mt-5 pt-5\">\n <div class=\"show-blog\">\n <div class=\"row\">\n <!-- content -->\n <div class=\"col-12\">\n <ul class=\"d-flex align-items-center mb-4 position-relative\">\n <li>\n <a href=\"javascript:void(0);\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post?.author?.avatar\"\n [src]=\"post?.author?.avatar[0].url\"\n alt=\"author\" />\n <img *ngIf=\"!post?.author?.avatar\"\n height=\"45\"\n width=\"45\"\n src=\"/assets/img/icons/male.png\"\n alt=\"author\" /></a>\n </div>\n </a>\n </li>\n <li>\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post?.author?.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n </li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">{{\n post?.author.published_at\n }}</a>\n </li>\n <li>.</li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">\n {{ readingTime(post?.body) }}\n </a>\n </li>\n <li class=\"social-media\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n id=\"dropdownMenuLink2\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink2\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n </ul>\n <h2 class=\"mb-3\">{{ post?.title }}</h2>\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n\n <ul class=\"bottom-social-icons d-flex justify-content-between mt-5 border-top border-bottom py-3\">\n <li class=\"social-media-blog-page\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n id=\"dropdownMenuLink\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n <li>\n <ul>\n <li *ngFor=\"let tag of post?.tags; trackBy: trackByTagId\"\n (keydown.enter)=\"tagPost(tag)\"\n (click)=\"tagPost(tag)\">\n {{ tag.name }}\n </li>\n </ul>\n </li>\n </ul>\n <ul class=\"d-flex justify-content-between mt-3 views\">\n <li>\n <span>{{ post?.view || 0 }} views</span>\n </li>\n <li><i class=\"far fa-heart\" aria-hidden=\"true\"></i></li>\n </ul>\n </div>\n <!--content end -->\n </div>\n <!-- modal for share buttons -->\n <div class=\"modal fade\"\n id=\"exampleModal\"\n tabindex=\"-1\"\n aria-labelledby=\"exampleModalLabel\">\n <div class=\"modal-dialog modal-dialog-centered\" >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\"\n id=\"exampleModalLabel\">Share the post</h5>\n <button type=\"button\"\n class=\"btn-close float-end\"\n data-dismiss=\"modal\"\n aria-label=\"Close\">\n <span>&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <share-buttons theme=\"material-dark\"\n show=\"7\"></share-buttons>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\">\n Close\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- recent posts -->\n <div class=\"related-posts mt-5\">\n <ul class=\"d-flex justify-content-between\">\n <li>\n <h5>Recent Resources</h5>\n </li>\n <li><a [routerLink]=\"['/resources/view']\">See All</a></li>\n </ul>\n <div class=\"row mt-4\">\n <div class=\"col-sm-6 col-md-6 col-lg-4 col-xs-12 mb-2\"\n *ngFor=\"let recentPost of recentPosts; trackBy: trackByRecentPost\">\n <div class=\"recent-post\"\n [routerLink]=\"['/resources/view', recentPost.slug]\">\n <div class=\"blog-image\">\n <img [src]=\"recentPost.picture.url\"\n alt=\"Resource\" />\n </div>\n <h5 class=\"pt-4 blog-title ps-3 pe-3\">{{ recentPost?.title }}</h5>\n <div class=\"blog-view pt-3 ps-3 pe-3\">\n <p>{{ recentPost.view !== null ? recentPost.view : '0' }} View</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 mb-4\">\n <div class=\"col-12\">\n <form class=\"comments-sec\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\">\n <div class=\"col-12 pt-4\">\n <!-- Comment Massage -->\n <pw-input-container label=\"Write a response\"\n name=\"comment\"\n errorMsg=\"Please enter comment\">\n <textarea type=\"text\"\n class=\"form-control\"\n formControlName=\"comment\"></textarea>\n </pw-input-container>\n\n <div class=\"text-end mt-4\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in\">\n <a [routerLink]=\"['/login']\">Log in</a>\n to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n <div class=\"row mt-5 mb-5\">\n <div class=\"col-12\"\n *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"comment-post mt-2\">\n <img *ngIf=\"comment?.user?.avatar\"\n [src]=\"comment.user?.avatar[0]?.url\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\" />\n <img *ngIf=\"!comment?.user?.avatar\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n src=\"assets/img/icons/male.png\" />\n <small>{{ comment.user?.first_name ? comment.user?.first_name : '' }}\n {{ comment.user?.last_name ? comment.user?.last_name : '' }}\n </small>\n <p>{{ comment.comment }}</p>\n <p class=\"text-end comment-date\">{{ comment.created_at | date: 'dd/MM/yyyy' }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-white-paper-top-banner',\n templateUrl: './white-papers-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './white-papers-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class WhitePaperTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'White Papers' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'White papers & Tools'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n If you like your insights practical and <br>\n your downloads actually useful - you’re <br>\n in the right place.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/white-paper-women.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-white-papers',\n templateUrl: './white-papers.component.html'\n})\nexport class WhitePaperComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'White Papers');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<pw-white-paper-top-banner></pw-white-paper-top-banner>\n\n<pw-resource--vault *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource--vault>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceBlogComponent } from './components/resource-blogs/resource-blog.component';\nimport { ResourceCaseStudiesComponent } from './components/resource-case-studies/resource-case-studies.component';\nimport { ResourceIntegrationComponent } from './components/resource-integration/resource-integration.component';\nimport { ResourcePostComponent } from './components/resource-post/resource-post.component';\nimport { ResourceReleaseNoteComponent } from './components/resource-release-notes/resource-release-notes.component';\nimport { ResourceVideoComponent } from './components/resource-videos/resource-videos.component';\nimport { ResourceWebinarComponent } from './components/resource-webinars/resource-webinars.component';\nimport { ResourceComponent } from './components/resources/resources.component';\nimport { ResourceHubComponent } from './components/resources-hub/resources-hub.component';\nimport { WhitePaperComponent } from './components/white-papers/white-papers.component';\n\n// These are the private routes. The public routes and modules needs to be defined in public.routes.ts\nconst routes: Routes = [\n {\n path: '',\n component: ResourceComponent,\n data: {\n title: 'Resources Library',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'hub',\n component: ResourceHubComponent,\n data: {\n title: 'Resources - Hub',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'blogs',\n component: ResourceBlogComponent,\n data: {\n title: 'Resources - Blogs',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'videos',\n component: ResourceVideoComponent,\n data: {\n title: 'Resources - Videos',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'integrations',\n component: ResourceIntegrationComponent,\n data: {\n title: 'Resources - Integrations',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'release-notes',\n component: ResourceReleaseNoteComponent,\n data: {\n title: 'Resources - Release Notes',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'events',\n component: ResourceWebinarComponent,\n data: {\n title: 'Resources - Events',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'white-papers',\n component: WhitePaperComponent,\n data: {\n title: 'Resources - White Papers',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'case-studies',\n component: ResourceCaseStudiesComponent,\n data: {\n title: 'Resources - Case Studies',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'view/:slug',\n component: ResourcePostComponent,\n data: {\n title: 'Resources - Post',\n permission: 'Pages.Blog'\n }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class BlogPublicRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AlphaPublicModule } from '@posiwise/alpha-module';\nimport { GoogleAnalyticsService } from '@posiwise/common-services';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { PublicModule } from '@posiwise/public-modules';\nimport { SharedComponentsModule } from '@posiwise/shared-components';\n\nimport { QuillModule } from 'ngx-quill';\nimport { ShareButtonsModule } from 'ngx-sharebuttons/buttons';\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\nimport { NgxUploaderModule } from 'ngx-uploader';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PaginatorModule } from 'primeng/paginator';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceService } from '../resource.service';\n\nimport { ResourceNoteCardComponent } from './components/reslease-note-card/release-note-card.component';\nimport { ResourceBlogComponent } from './components/resource-blogs/resource-blog.component';\nimport { ResourceBlogTopBannerComponent } from './components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component';\nimport { ResourceCardListComponent } from './components/resource-card-list/resource-card-list.component';\nimport { CaseStudyCardComponent } from './components/resource-case-studies/case-studies-cards/case-studies-cards.component';\nimport { ResourceCaseStudiesComponent } from './components/resource-case-studies/resource-case-studies.component';\nimport { ResourceCompanyCardComponent } from './components/resource-company-card/resource-company-card.component';\nimport { IntegrationTopBannerComponent } from './components/resource-integration/integration-top-banner/integration-top-banner.component';\nimport { ResourceIntegrationComponent } from './components/resource-integration/resource-integration.component';\nimport { RelatedResourcesComponent } from './components/resource-post/related-resources/related-resources.component';\nimport { ResourceCardComponent } from './components/resource-post/related-resources/resource-cards/resource-cards.component';\nimport { ResourcePostComponent } from './components/resource-post/resource-post.component';\nimport { ResourcePostDetailsComponent } from './components/resource-post/resource-post-details/resource-post-details.component';\nimport { ResourceReleaseNoteComponent } from './components/resource-release-notes/resource-release-notes.component';\nimport { ReleaseTopBannerComponent } from './components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component';\nimport { ResourceVaultComponent } from './components/resource-vault/resource-vault.component';\nimport { ResourceVideoCardComponent } from './components/resource-videos/resource-video-cards/resource-video-cards.component';\nimport { ResourceVideoComponent } from './components/resource-videos/resource-videos.component';\nimport { VideosTopBannerComponent } from './components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component';\nimport { ReplayEventCardComponent } from './components/resource-webinars/replay-event-cards/replay-event-cards.component';\nimport { ResourceWebinarComponent } from './components/resource-webinars/resource-webinars.component';\nimport { UpcomingEventCardComponent } from './components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component';\nimport { ResourceTagComponent } from './components/resources/resource-tags/resource-tags.component';\nimport { ResourceComponent } from './components/resources/resources.component';\nimport { VaultSectionComponent } from './components/resources/vault-section/vault-section.component';\nimport { ResourceHubComponent } from './components/resources-hub/resources-hub.component';\nimport { ResourceReadComponent } from './components/resources-read/resources-read.component';\nimport { TestimonialCardListComponent } from './components/testimonial-card/testimonial-card.component';\nimport { WhitePaperComponent } from './components/white-papers/white-papers.component';\nimport { WhitePaperTopBannerComponent } from './components/white-papers/white-papers-top-banner/white-papers-top-banner.component';\nimport { BlogPublicRoutingModule } from './resource-public.routing.module';\n\n@NgModule({\n declarations: [\n ResourceHubComponent,\n ResourceTagComponent,\n ResourceReadComponent,\n VaultSectionComponent,\n ResourceComponent,\n ResourcePostComponent,\n RelatedResourcesComponent,\n ResourceCardComponent,\n ResourcePostDetailsComponent,\n ResourceBlogComponent,\n ResourceVideoComponent,\n ResourceIntegrationComponent,\n IntegrationTopBannerComponent,\n ResourceBlogTopBannerComponent,\n WhitePaperTopBannerComponent,\n ReleaseTopBannerComponent,\n VideosTopBannerComponent,\n ResourceReleaseNoteComponent,\n ResourceWebinarComponent,\n WhitePaperComponent,\n ResourceCaseStudiesComponent,\n ResourceCardListComponent,\n TestimonialCardListComponent,\n ResourceNoteCardComponent,\n ResourceCompanyCardComponent,\n ResourceVaultComponent,\n ResourceVideoCardComponent,\n UpcomingEventCardComponent,\n ReplayEventCardComponent,\n CaseStudyCardComponent\n ],\n imports: [\n CommonModule,\n PipesModule,\n AlphaPublicModule,\n DropdownModule,\n PaginatorModule,\n SharedComponentsModule,\n NgxUploaderModule,\n BlogPublicRoutingModule,\n ShareButtonsModule,\n PublicModule,\n ShareIconsModule,\n QuillModule.forRoot(),\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ReactiveFormsModule,\n DirectivesModule\n ],\n providers: [ResourceService, GoogleAnalyticsService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourcePublicModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ResourcePublicModule } from './public/resource-public.module';\n\n@NgModule({\n imports: [ResourcePublicModule]\n})\nexport class ResourceModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ResourceService","i6","i7","i2","i3","i4","i5","i6.ResourceCardComponent","i7.ResourceBlogTopBannerComponent","i7.TestimonialCardListComponent","i8.CaseStudyCardComponent","i2.ResourceService","i8","i9.IntegrationTopBannerComponent","i10.ResourceNoteCardComponent","i11.ResourceCompanyCardComponent","i12","i9.ResourceCardComponent","i10","i5.RelatedResourcesComponent","i6.ResourcePostDetailsComponent","i6.ReleaseTopBannerComponent","i7.ResourceNoteCardComponent","i6.VideosTopBannerComponent","i7.ResourceVideoCardComponent","i7.UpcomingEventCardComponent","i8.ReplayEventCardComponent","i4.ResourceTagComponent","i5.VaultSectionComponent","i8.ResourceVaultComponent","i9.ResourceVideoCardComponent","i10.UpcomingEventCardComponent","i11.CaseStudyCardComponent","i9","i6.WhitePaperTopBannerComponent","i7.ResourceVaultComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOa,eAAe,CAAA;AAKxB,IAAA,WAAA,CAA6B,GAAuB,EAAA;QAAvB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAoB;QAJnC,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QAEpB,IAAQ,CAAA,QAAA,GAAG,WAAW,CAAC;KAEgB;IAExD,cAAc,CACV,sBAAsB,EACtB,IAAY,EACZ,QAAgB,EAChB,MAAc,EACd,cAAuB,EACvB,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG;YACX,IAAI;AACJ,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,MAAM,EAAE,MAAM;YACd,sBAAsB;SACzB,CAAC;QAEF,IAAI,cAAc,EAAE;AAChB,YAAA,MAAM,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC;SAC/C;QAED,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,QAAA,CAAU,EAAE;AACtD,YAAA,GAAG,MAAM;AACZ,SAAA,CAAC,CAAC;KACN;IAED,aAAa,CAAC,cAAc,EAAE,MAAe,EAAA;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,cAAA,CAAgB,EAAE;AAC5D,YAAA,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;AACxC,YAAA,eAAe,EAAE,cAAc;AAClC,SAAA,CAAC,CAAC;KACN;AAED,IAAA,OAAO,CAAC,IAAI,EAAA;AACR,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;;AAGhC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,GAAG,IAAI,IAAI,EAAE;gBACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACnC;SACJ;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACjD;AAED,IAAA,aAAa,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC,CAAC;KACnD;AAED,IAAA,UAAU,CAAC,EAAE,EAAA;AACT,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACpD;IAED,UAAU,CAAC,IAAI,EAAE,EAAE,EAAA;AACf,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;;AAGhC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,GAAG,IAAI,IAAI,EAAE;gBACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACnC;SACJ;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA,CAAE,EAAE,QAAQ,CAAC,CAAC;KAC3D;IAEO,WAAW,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAU,QAAA,CAAA,CAAC,CAAC;KACnD;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC7C;AAED,IAAA,kBAAkB,CAAC,eAAe,EAAE,WAAoB,EAAE,SAAkB,EAAA;AACxE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CACzB,CAAqD,kDAAA,EAAA,eAAe,CAAE,CAAA,EACtE,EAAE,WAAW,EAAE,SAAS,EAAE,CAC7B,CAAC;KACL;AAED,IAAA,uBAAuB,CAAC,EAAE,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC;KAC1D;+GA5FQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAf,eAAe,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;;ACOL,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;AAiB3D,IAAA,WAAA,CACI,QAAkB,EACD,eAAgC,EAChC,UAAsB,EAAA;QAEvC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAHC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAnBlC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAEtB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAI3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAQ,CAAA,QAAA,GAAqD,EAAE,CAAC;QAChE,IAAY,CAAA,YAAA,GAAkC,EAAE,CAAC;KAUhD;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,eAAe,EAAE,EAC3B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CACnC,QAAQ,CAAC,IAAI,EACb,uBAAuB,EACvB,IAAI,CAAC,WAAW,EAAE,EAAE,CACvB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CACjC,QAAQ,CAAC,IAAI,EACb,qBAAqB,EACrB,IAAI,CAAC,WAAW,EAAE,EAAE,CACvB,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACvC;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aACrC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACrC;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aACnC;AACL,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,OAAO,CAAC,IAAI,EAAE,IAAY,EAAE,UAAkB,EAAA;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC;KACpF;IAED,gBAAgB,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;KACpE;IACD,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;KACtE;IAED,sBAAsB,CAAC,IAAY,EAAE,QAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,EAAE,EACF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAC/B;aACA,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK;iBAC7B,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;AACN,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACvE,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;IAED,oBAAoB,CAAC,IAAY,EAAE,QAAgB,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,EAAE,EACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAC7B;aACA,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,MAAM,WAAW,GAAG,QAAQ,EAAE,KAAK;iBAC9B,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;AACN,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACrE,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,iBAAiB,CAAC,KAAiB,EAAE,UAAU,GAAG,CAAC,EAAA;AACvD,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;KACpF;+GAhJQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,oPCbtC,ojJA8FA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjFa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,ojJAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;iIAKxB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;AENJ,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;IAevD,WACI,CAAA,QAAkB,EACD,eAAgC,EAAA;QAEjD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAf5C,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QAEvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAK3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAOtB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACxB;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,CAClB;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GAxDQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,kQCZlC,8tEA+CY,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnCC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,8tEAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;wGAKpB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AEAJ,MAAO,8BAA+B,SAAQ,gBAAgB,CAAA;AAWhE,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAX3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAKvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA3DQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,0FClB3C,qsDA4CA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ba,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAV1C,SAAS;+BACI,6BAA6B,EAAA,QAAA,EAAA,qsDAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEOrC,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAOvD,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAP3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAUtB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,eAAe,CACpC;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;iBACtB,MAAM,CAAC,IAAI,IACR,IAAI,CAAC,IAAI,EAAE,IAAI,CACX,GAAG,IAAI,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,eAAe,CACpE,CACJ;AACA,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E;AACA,iBAAA,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACV;+GAhEQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+EChBlC,6XAOA,EAAA,MAAA,EAAA,CAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDSa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,6XAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;MEAnB,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;QAMa,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAC5B,KAAA;+GAHY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,mHCTtC,u+CA+BY,EAAA,MAAA,EAAA,CAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtBC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,u+CAAA,EAAA,MAAA,EAAA,CAAA,ulJAAA,CAAA,EAAA,CAAA;8BAKxB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AECJ,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;IAcxD,WACI,CAAA,QAAkB,EACD,eAAgC,EAAA;QAEjD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAf5C,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAE5B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAI3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAE1C,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAOtB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;KACN;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,cAAc,CACX,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,CAClB;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GAvDQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,6NCZnC,2sFA4DA,EAAA,MAAA,EAAA,CAAA,8/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhDa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,2sFAAA,EAAA,MAAA,EAAA,CAAA,8/DAAA,CAAA,EAAA,CAAA;wGAKvB,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEFG,4BAA4B,CAAA;AARzC,IAAA,WAAA,GAAA;QASa,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAwD5B,KAAA;IArDG,QAAQ,GAAA;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE;AAC1C,YAAA,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AACjC,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,MAAM,EAAE,qBAAqB;AAChC,aAAA;AACD,YAAA,UAAU,EAAE;AACR,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,SAAS,EAAE,IAAI;AAClB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,GAAG,EAAE;AACD,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,cAAc,EAAE,IAAI;AACvB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACD,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,cAAc,EAAE,IAAI;AACvB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACD,oBAAA,aAAa,EAAE,GAAG;AAClB,oBAAA,cAAc,EAAE,IAAI;AACvB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACD,oBAAA,aAAa,EAAE,GAAG;AAClB,oBAAA,cAAc,EAAE,IAAI;AACvB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACD,oBAAA,aAAa,EAAE,GAAG;AAClB,oBAAA,cAAc,EAAE,IAAI;AACvB,iBAAA;AACD,gBAAA,IAAI,EAAE;oBACF,aAAa,EAAE,CAAC;AAChB,oBAAA,cAAc,EAAE,KAAK;AACxB,iBAAA;AACD,gBAAA,IAAI,EAAE;AACF,oBAAA,aAAa,EAAE,CAAC;AAChB,oBAAA,cAAc,EAAE,KAAK;AACxB,iBAAA;AACJ,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;+GAzDQ,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,iHCdzC,u+CAwCU,EAAA,MAAA,EAAA,CAAA,+kEAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1BG,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACI,qBAAqB,EAAA,QAAA,EAAA,u+CAAA,EAAA,MAAA,EAAA,CAAA,+kEAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;8BAQtB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEHJ,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAW9D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAX3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAKvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;IAEO,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAC7C,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CACrC,CAAC;AACF,YAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACV;IAED,oBAAoB,CAAC,IAAY,EAAE,QAAgB,EAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAChD;aACA,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,KAAK;iBAClC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;AACV,SAAC,CAAC,CAAC;KACV;+GA7FQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,uFCbzC,kiEA+CA,EAAA,MAAA,EAAA,CAAA,+xPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,4BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,kiEAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,CAAA,EAAA,CAAA;;;MEI3B,4BAA4B,CAAA;AALzC,IAAA,WAAA,GAAA;QAMa,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAEV,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QACV,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAuBb,KAAA;IAtBG,WAAW,GAAA;QACP,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;AACD,IAAA,MAAM,CAAC,QAAS,EAAA;QACZ,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAClC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;YACF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;SACJ;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;KACJ;AACD,IAAA,YAAY,CAAC,KAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KAC1B;+GA9BQ,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,uMCbzC,8zEAwDA,EAAA,MAAA,EAAA,CAAA,43CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3Ca,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,8zEAAA,EAAA,MAAA,EAAA,CAAA,43CAAA,CAAA,EAAA,CAAA;8BAK3B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEAJ,MAAO,6BAA8B,SAAQ,gBAAgB,CAAA;AAY/D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAZ3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAIvB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC;QAE7D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA7DQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,wFCjB1C,45DAiDA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBATzC,SAAS;+BACI,2BAA2B,EAAA,QAAA,EAAA,45DAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEUnC,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAqC9D,IAAA,WAAA,CACqB,SAAuB,EACvB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QALC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACvB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAvC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,WAAW,EAAE,gBAAgB,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,WAAW,EAAE,WAAW,CAAC;QAEvC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC;QAG9C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QAGtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAIjB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;QAE1D,IAAgB,CAAA,gBAAA,GAAG,kCAAkC,CAAC;QACtD,IAAW,CAAA,WAAA,GAAG,oCAAoC,CAAC;QACnD,IAAW,CAAA,WAAA,GAAG,oCAAoC,CAAC;QACnD,IAAW,CAAA,WAAA,GAAG,oCAAoC,CAAC;QAGnD,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAc,CAAA,cAAA,GAAG,aAAa,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAG,qBAAqB,CAAC;QAInC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC;AAI7D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KAS1D;IAED,QAAQ,GAAA;AACJ,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AAE/C,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACrC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAC9C,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IACC,GAAG,CAAC,IAAI,KAAK,yBAAyB;gBACtC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACnD,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACvC,GAAG,IACC,GAAG,CAAC,IAAI,KAAK,oBAAoB;gBACjC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACnD,CAAC;;AAGF,YAAA,QAAQ,CAAC;AACL,gBAAA,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CAC/C,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,CAAC,EACD,GAAG,EACH,EAAE,EACF,EAAE,EACF,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAC7B;AACD,gBAAA,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CACpD,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,CAAC,EACD,GAAG,EACH,EAAE,EACF,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,EAAE,CACvB;aACJ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAI;AACrD,gBAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK;qBAC5B,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,qBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;oBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CACzC,CAAC;AAEN,gBAAA,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK;qBAC5C,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,qBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;oBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CACzC,CAAC;AAEN,gBAAA,MAAM,WAAW,GAAG,cAAc,EAAE,YAAY,IAAI,CAAC,CAAC;AACtD,gBAAA,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,YAAY,IAAI,CAAC,CAAC;AAChE,gBAAA,MAAM,KAAK,GAAG,WAAW,GAAG,gBAAgB,CAAC;gBAE7C,IAAI,CAAC,uBAAuB,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC5E,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;AAED,IAAA,kBAAkB,CAAC,QAAQ,EAAA;AACvB,QAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACnC;IAED,eAAe,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,CAAA,8BAAA,EAAiC,IAAI,CAAC,cAAc,aAAa,CAAC;;AAElF,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAClC;+GAvJQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,sFCnBzC,sxLAoIA,EAAA,MAAA,EAAA,CAAA,kgFAAA,EAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjHa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACI,yBAAyB,EAAA,QAAA,EAAA,sxLAAA,EAAA,MAAA,EAAA,CAAA,kgFAAA,EAAA,ujGAAA,CAAA,EAAA,CAAA;;;MEV1B,YAAY,CAAA;AACrB,IAAA,OAAO,oBAAoB,GAAA;AACvB,QAAA,OAAO,IAAI,kBAAkB,EAAE,CAAC,KAAK,CAAC;YAClC,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC,EAAE,CAAC;AACzB,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,CAAC;AAChB,SAAA,CAAC,CAAC;KACN;AACJ;;ACKK,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;IAuC3D,WACqB,CAAA,eAAgC,EACjD,QAAkB,EACD,SAAuB,EACvB,UAAsB,EACtB,MAA0B,EAAA;QAE3C,KAAK,CAAC,QAAQ,CAAC,CAAC;QANC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAEhC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;AA3C/C,QAAA,IAAA,CAAA,aAAa,GAAG;AACZ,YAAA;AACI,gBAAA,KAAK,EAAE,0DAA0D;AACjE,gBAAA,KAAK,EAAE,sCAAsC;AAC7C,gBAAA,GAAG,EAAE,yBAAyB;AAC9B,gBAAA,GAAG,EAAE,wFAAwF;AAChG,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,4DAA4D;AACnE,gBAAA,KAAK,EAAE,yCAAyC;AAChD,gBAAA,GAAG,EAAE,uBAAuB;AAC5B,gBAAA,GAAG,EAAE,sEAAsE;AAC9E,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,8EAA8E;AACrF,gBAAA,KAAK,EAAE,uCAAuC;AAC9C,gBAAA,GAAG,EAAE,kBAAkB;AACvB,gBAAA,GAAG,EAAE,uFAAuF;AAC/F,aAAA;SACJ,CAAC;QAMF,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAKlB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC;QAK3D,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC;QACnD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAUzC,QAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;KAC1D;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAG;YACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5C,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,QACI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,CAAC,EACxF;KACL;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,WAAW,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC1D,YAAA,IAAI,QAAQ,CAAC;AACb,YAAA,IAAI,QAAQ,EAAE,IAAI,EAAE;AAChB,gBAAA,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC7E;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;AAC7C,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACjE,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;QACL,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe;aACf,YAAY,CAAC,IAAI,CAAC;aAClB,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC;AACnF,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACV;IAED,cAAc,CAAC,MAAc,EAAE,IAAoB,EAAA;QAC/C,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;+GAvHQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAhB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,mFChBtC,g2HAoGA,EAAA,MAAA,EAAA,CAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAa,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpFa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,g2HAAA,EAAA,MAAA,EAAA,CAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEC9B,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAU9D,IAAA,WAAA,CACqB,eAAgC,EACjD,QAAkB,EACD,SAAuB,EAAA;QAExC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAEhC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAP5C,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;KAUvB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAG;YACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;YAE1B,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5C,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,WAAW,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC1D,YAAA,IAAI,QAAQ,CAAC;AACb,YAAA,IAAI,QAAQ,EAAE,IAAI,EAAE;AAChB,gBAAA,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC7E;YACD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAChD,SAAC,CAAC,CAAC;KACN;+GA7CQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,uFCbzC,02CAiCA,EAAA,MAAA,EAAA,CAAA,uxFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,02CAAA,EAAA,MAAA,EAAA,CAAA,uxFAAA,CAAA,EAAA,CAAA;;;MEA3B,qBAAqB,CAAA;IAG9B,WACY,CAAA,KAAqB,EACrB,YAAmB,EAAA;QADnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAO;KAC3B;IAEJ,QAAQ,GAAA;QACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAG;YACnC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;YAC5C,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAc,WAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;aACzD,EAAE,IAAI,CAAC,CAAC;AACb,SAAC,CAAC,CAAC;KACN;+GAfQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yDCTlC,kMAG+C,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,yBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDMlC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,kMAAA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,CAAA;;;AEa3B,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;AAW3D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAX3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAKvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,eAAe,EAAE,EAC3B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA3DQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,mGClBtC,6qDA0CA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BACI,sCAAsC,EAAA,QAAA,EAAA,6qDAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEG9C,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAO9D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAP3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAUtB;IAED,QAAQ,GAAA;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,eAAe,CACpC;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;iBACtB,MAAM,CAAC,IAAI,IACR,IAAI,CAAC,IAAI,EAAE,IAAI,CACX,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,eAAe,CACnE,CACJ;AACA,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E;AACA,iBAAA,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACV;+GAjEQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,wFCZzC,saAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,yBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;+BACI,2BAA2B,EAAA,QAAA,EAAA,saAAA,EAAA,CAAA;;;AEGnC,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;IAYxD,WACI,CAAA,QAAkB,EACD,eAAgC,EAAA;QAEjD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAb5C,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAI3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAOtB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACxB;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,CAClB;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GArDQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAtB,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,qNCZnC,k0EA+CA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,k0EAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;wGAKrB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;AEHJ,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAiB5D,IAAA,WAAA,CACqB,SAAuB,EACvB,eAAgC,EACjD,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACvB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAlB5C,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAEzB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAI3B,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QAEvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAW,CAAA,WAAA,GAAkE,EAAE,CAAC;KAU/E;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACxB;AAED,IAAA,SAAS,CAAC,IAAI,EAAA;QACV,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;AAE/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;;AAGpC,QAAA,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,aAAa,CAAC;AAEzE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;KAC3F;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,CAClB;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC1B,wBAAA,MAAM,EAAE,IAAI;wBACZ,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;qBACxE,CAAC;iBACL;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GAhFQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,yNCbvC,q8CA+BA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlBa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,q8CAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;qIAKzB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;AECJ,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAW1D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAX3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAKvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA3DQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4FClBrC,6oDA0CA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;+BACI,+BAA+B,EAAA,QAAA,EAAA,6oDAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEIvC,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAOxD,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAP3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAUtB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,eAAe,CACpC;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;iBACtB,MAAM,CAAC,IAAI,IACR,IAAI,CAAC,IAAI,EAAE,IAAI,CACX,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,eAAe,CACnE,CACJ;AACA,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E;AACA,iBAAA,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACV;+GAhEQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,iFCbnC,gZAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,wBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,gZAAA,EAAA,CAAA;;;AEI5B,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAc1D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAflC,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAMlC,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QAEvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAShB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACpE,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE;AACnC,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzB;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;AACL,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,eAAe,CACpC;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC;AAC9E,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;AACN,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AAC7B,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GAtEQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+LCbrC,g8DA4CA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,g8DAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;iIAKvB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;AEHJ,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAgB5D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAjBlC,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAEzB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAI3B,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAE1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QAEvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAShB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACpE,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE;AACnC,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACzB;qBAAM;AACH,oBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC5B;aACJ;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;AACL,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,CACvD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CACH,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAC9E;AACA,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;AACN,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AAC7B,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;AACX,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;KACpD;IAED,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,CACvD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;iBACpC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACtC,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAE7E,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACxD,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GAtGQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,yNCbvC,g6FAiEA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpDa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,g6FAAA,EAAA,MAAA,EAAA,CAAA,ujGAAA,CAAA,EAAA,CAAA;iIAKzB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;AEAJ,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAU1D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAV3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAInB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA1DQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mFCjBrC,+6DAmDA,EAAA,MAAA,EAAA,CAAA,4FAAA,EAAA,+xPAAA,EAAA,ujGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwB,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlCa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,+6DAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,EAAA,+xPAAA,EAAA,ujGAAA,CAAA,EAAA,CAAA;;;AEK9B,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;IAWtD,WACqB,CAAA,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAHC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAXjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAChD,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAGV,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QACf,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAEf,IAAW,CAAA,WAAA,GAAe,IAAI,CAAC;KAO9B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;AACtD,YAAA,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAClD,YAAA,IAAI,CAAC,cAAc;gBACf,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;YAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9B;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU;aACV,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC;aACzD,SAAS,CAAC,GAAG,IAAG;YACb,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE;iBACvB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC;AACvC,iBAAA,GAAG,CAAC,GAAG,KAAK;AACT,gBAAA,GAAG,GAAG;AACN,gBAAA,SAAS,EAAE,CAAM,GAAA,EAAA,GAAG,CAAC,SAAS,CAAA,CAAE;AACnC,aAAA,CAAC,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;+GAjDQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3B,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kJCdjC,olBAYA,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,2xIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,olBAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,2xIAAA,CAAA,EAAA,CAAA;sGAQlB,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AEPL,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAMvD,IAAA,WAAA,CAAY,QAAkB,EAAA;QAC1B,KAAK,CAAC,QAAQ,CAAC,CAAC;QALpB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CAAC;AAC1E,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1E,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC;KAIjF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;KACnD;+GAZQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+ECTlC,uiCA0BA,EAAA,MAAA,EAAA,CAAA,wxEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,uiCAAA,EAAA,MAAA,EAAA,CAAA,wxEAAA,CAAA,EAAA,CAAA;;;MEInB,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;QAMI,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;AAsCvB,KAAA;AApCG,IAAA,YAAY,CAAC,IAAW,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;AAED,IAAA,MAAM,CAAC,IAAY,EAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACnF;AAED,IAAA,sBAAsB,CAAC,IAAY,EAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjF,OAAO,GAAG,EAAE,eAAe,CAAC;KAC/B;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjF,OAAO,GAAG,EAAE,KAAK,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;AAChB,QAAA,MAAM,UAAU,GAA8B;AAC1C,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,uBAAuB,EAAE,uBAAuB;SACnD,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE;YACX,UAAU,CAAC,MAAK;gBACZ,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9C,gBAAA,IAAI,EAAE;AAAE,oBAAA,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;aACrE,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;+GAtCQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,oDCT9B,ypDAU+C,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuB,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDlC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACI,cAAc,EAAA,QAAA,EAAA,ypDAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;;AEqBtB,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAyCtD,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QA1CnC,IAAY,CAAA,YAAA,GAAyC,IAAI,CAAC;QAElE,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAEV,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;QAEjB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAEhB,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAMpB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QACf,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAMf,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAErB,QAAA,IAAA,CAAA,WAAW,GAAa;YACpB,cAAc;YACd,WAAW;YACX,aAAa;YACb,UAAU;YACV,UAAU;YACV,eAAe;YACf,cAAc;YACd,SAAS;SACZ,CAAC;KAQD;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;KACxB;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,QAAQ,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CACzC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,CACvB;AACD,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAClC,iBAAiB,EACjB,EAAE,EACF,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;SACJ,CAAC;aACG,SAAS,CAAC,GAAG,IAAG;YACb,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC;YAC9C,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;AAC1C,gBAAA,GAAG,IAAI;AACP,gBAAA,YAAY,EAAE,KAAK;AACtB,aAAA,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAEvC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9B,gBAAA,GAAG,GAAG;AACN,gBAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE;AAClC,aAAA,CAAC,CAAC,CAAC;AACR,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAED,cAAc,CAAC,KAAY,EAAE,IAAI,EAAA;QAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KAC1C;IAED,aAAa,GAAA;AACT,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KAChD;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAA;AACrE,QAAA,IAAI,QAAQ;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAErF,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,oBAAoB,EACzB,IAAI,EACJ,MAAM,GAAG,EAAE,GAAG,QAAQ,EACtB,IAAI,CAAC,eAAe,EACpB,gBAAgB,CACnB;aACA,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC1E,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAC3C,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;AAED,IAAA,QAAQ,CAAC,OAAe,EAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;AACvB,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC,EAAE,KAAK,CAAC,CAAC;AAEV,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KACpC;IAGD,cAAc,GAAA;QACV,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;AAC3D,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;AAEzD,QAAA,MAAM,UAAU,GAAG,cAAc,IAAI,UAAU,GAAG,GAAG,CAAC;AAEtD,QAAA,IACI,UAAU;AACV,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW;YACpC,CAAC,IAAI,CAAC,OAAO;AACb,YAAA,CAAC,IAAI,CAAC,YAAY,EACpB;AACE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AAEtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAE5D,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC7B,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC/D;AAED,IAAA,OAAO,CAAC,WAAW,EAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CACrC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,WAAW,EAAE,eAAe,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAC3F,CAAC;AAEF,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnB,eAAe,EAAE,WAAW,EAAE,eAAe;gBAC7C,EAAE,EAAE,WAAW,CAAC,EAAE;AACrB,aAAA,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACtC;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnC;AAED,IAAA,mBAAmB,CAAC,IAAY,EAAA;QAC5B,IAAI,IAAI,EAAE;YACN,MAAM,cAAc,GAAG,GAAG,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3C,YAAA,MAAM,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,OAAO,CAAA,EAAG,QAAQ,CAAA,YAAA,CAAc,CAAC;SACpC;AAED,QAAA,OAAO,EAAE,CAAC;KACb;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;+GAvNQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAhC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0IC1BjC,8yOA2KA,EAAA,MAAA,EAAA,CAAA,2xIAAA,EAAA,43CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDjJa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;+BACI,eAAe,EAAA,aAAA,EAMV,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,8yOAAA,EAAA,MAAA,EAAA,CAAA,2xIAAA,EAAA,43CAAA,CAAA,EAAA,CAAA;iIA6JrC,cAAc,EAAA,CAAA;sBADb,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,CAAA;;;AElK/B,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAcvD,IAAA,WAAA,CACqB,eAAgC,EAChC,MAA0B,EAC3C,QAAkB,EACD,SAAuB,EAAA;QAExC,KAAK,CAAC,QAAQ,CAAC,CAAC;QALC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAE1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAf5C,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;QAC/B,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;QAOrC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AASf,QAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;KAC1D;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAG;YACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5C,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;QACpB,IAAI,IAAI,EAAE;AACN,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,GAAG,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAClD,YAAA,MAAM,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,OAAO,CAAA,EAAG,QAAQ,CAAA,YAAA,CAAc,CAAC;SACpC;AAED,QAAA,OAAO,EAAE,CAAC;KACb;IAED,gBAAgB,CAAC,KAAY,EAAE,YAAY,EAAA;AACvC,QAAA,aAAa,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;KAC9D;AAEO,IAAA,WAAW,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC1D,YAAA,IAAI,QAAQ,CAAC;AACb,YAAA,IAAI,QAAQ,EAAE,IAAI,EAAE;AAChB,gBAAA,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC7E;YACD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5C,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;IAEO,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AAC3C,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;aAC7D,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,SAAC,CAAC,CAAC;KACV;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe;aACf,YAAY,CAAC,IAAI,CAAC;aAClB,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC;AACnF,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,SAAC,CAAC,CAAC;KACV;AAED,IAAA,OAAO,CAAC,WAAW,EAAA;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,IAAG;AACjD,YAAA,IAAI,QAAQ,CAAC;AACb,YAAA,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;AACtB,gBAAA,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAC1B,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,WAAW,EAAE,eAAe,CAC9D,CAAC;AAEF,gBAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;aAChC;AAED,YAAA,OAAO,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACN;IAED,YAAY,CAAC,MAAc,EAAE,IAAoB,EAAA;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,iBAAiB,CAAC,MAAc,EAAE,IAAoB,EAAA;QAClD,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,cAAc,CAAC,MAAc,EAAE,IAAoB,EAAA;QAC/C,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;+GA7HQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,2EClBlC,00RAgPA,EAAA,MAAA,EAAA,CAAA,8lIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA5B,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAa,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Na,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACI,cAAc,EAAA,aAAA,EAGT,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,00RAAA,EAAA,MAAA,EAAA,CAAA,8lIAAA,CAAA,EAAA,CAAA;;;AEEnC,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAW9D,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAX3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAKvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAQhB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,mBAAmB,CAChB,EAAE,MAAM,EAAE,cAAc,EAAE,EAC1B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CACnD;aACA,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CACjC,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;AACN,SAAC,CAAC;aACD,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACV;+GA3DQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,wFClBzC,0wDA4CA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ba,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;+BACI,2BAA2B,EAAA,QAAA,EAAA,0wDAAA,EAAA,MAAA,EAAA,CAAA,+xPAAA,EAAA,yDAAA,EAAA,ujGAAA,EAAA,ulJAAA,CAAA,EAAA,CAAA;;;AEGnC,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AAOrD,IAAA,WAAA,CACqB,eAAgC,EAChC,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAP3C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC;QAC1E,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;KAUtB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAClD,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;aACtF,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACV;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe;aACf,cAAc,CACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAChD,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAAE,eAAe,CACpC;aACA,SAAS,CAAC,QAAQ,IAAG;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;iBACtB,MAAM,CAAC,IAAI,IACR,IAAI,CAAC,IAAI,EAAE,IAAI,CACX,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,EAAE,eAAe,CACnE,CACJ;AACA,iBAAA,IAAI,CACD,CAAC,CAAC,EAAE,CAAC,KACD,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC9E;AACA,iBAAA,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACV;+GA9DQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uFCZhC,yVAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,yVAAA,EAAA,CAAA;;;AEKxC;AACA,MAAM,MAAM,GAAW;AACnB,IAAA;AACI,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,2BAA2B;AAClC,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,kBAAkB;AACzB,YAAA,UAAU,EAAE,YAAY;AAC3B,SAAA;AACJ,KAAA;CACJ,CAAC;MAMW,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,wCAFtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEb,uBAAuB,EAAA,OAAA,EAAA,CAHtB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AAC1B,iBAAA,CAAA;;;MCSY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBArDzB,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,iBAAiB;YACjB,qBAAqB;YACrB,yBAAyB;YACzB,qBAAqB;YACrB,4BAA4B;YAC5B,qBAAqB;YACrB,sBAAsB;YACtB,4BAA4B;YAC5B,6BAA6B;YAC7B,8BAA8B;YAC9B,4BAA4B;YAC5B,yBAAyB;YACzB,wBAAwB;YACxB,4BAA4B;YAC5B,wBAAwB;YACxB,mBAAmB;YACnB,4BAA4B;YAC5B,yBAAyB;YACzB,4BAA4B;YAC5B,yBAAyB;YACzB,4BAA4B;YAC5B,sBAAsB;YACtB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;AACxB,YAAA,sBAAsB,aAGtB,YAAY;YACZ,WAAW;YACX,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,sBAAsB;YACtB,iBAAiB;YACjB,uBAAuB;YACvB,kBAAkB;YAClB,YAAY;AACZ,YAAA,gBAAgB,kBAEhB,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAKX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,aAHlB,CAAC,eAAe,EAAE,sBAAsB,CAAC,YAlBhD,YAAY;YACZ,WAAW;YACX,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,sBAAsB;YACtB,iBAAiB;YACjB,uBAAuB;YACvB,kBAAkB;YAClB,YAAY;YACZ,gBAAgB;YAChB,WAAW,CAAC,OAAO,EAAE;YACrB,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvDhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,oBAAoB;wBACpB,oBAAoB;wBACpB,qBAAqB;wBACrB,qBAAqB;wBACrB,iBAAiB;wBACjB,qBAAqB;wBACrB,yBAAyB;wBACzB,qBAAqB;wBACrB,4BAA4B;wBAC5B,qBAAqB;wBACrB,sBAAsB;wBACtB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,8BAA8B;wBAC9B,4BAA4B;wBAC5B,yBAAyB;wBACzB,wBAAwB;wBACxB,4BAA4B;wBAC5B,wBAAwB;wBACxB,mBAAmB;wBACnB,4BAA4B;wBAC5B,yBAAyB;wBACzB,4BAA4B;wBAC5B,yBAAyB;wBACzB,4BAA4B;wBAC5B,sBAAsB;wBACtB,0BAA0B;wBAC1B,0BAA0B;wBAC1B,wBAAwB;wBACxB,sBAAsB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,sBAAsB;wBACtB,iBAAiB;wBACjB,uBAAuB;wBACvB,kBAAkB;wBAClB,YAAY;wBACZ,gBAAgB;wBAChB,WAAW,CAAC,OAAO,EAAE;wBACrB,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC;oBACpD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;;;MCtGY,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFb,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFb,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAErB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"posiwise-resource-module.mjs","sources":["../../../../libs/resource-module/src/lib/resource.service.ts","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.ts","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-blogs/resource-blog.component.html","../../../../libs/resource-module/src/lib/public/components/resource-card-list/resource-card-list.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-card-list/resource-card-list.component.html","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.html","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.ts","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/resource-case-studies.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/resource-case-studies.component.html","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-integration/integration-top-banner/integration-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-integration/integration-top-banner/integration-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-integration/resource-integration.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-integration/resource-integration.component.html","../../../../libs/resource-module/src/lib/shared/models/resource.model.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/related-resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/related-resources.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post-details/resource-post-details.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post-details/resource-post-details.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/resource-post.component.html","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-release-notes/resource-release-notes.component.html","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-videos.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/resource-webinars.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/resource-webinars.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.html","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.html","../../../../libs/resource-module/src/lib/public/components/resources-hub/resources-hub.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-hub/resources-hub.component.html","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.html","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers-top-banner/white-papers-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers-top-banner/white-papers-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers.component.ts","../../../../libs/resource-module/src/lib/public/components/white-papers/white-papers.component.html","../../../../libs/resource-module/src/lib/public/resource-public.routing.module.ts","../../../../libs/resource-module/src/lib/public/resource-public.module.ts","../../../../libs/resource-module/src/lib/resource.module.ts","../../../../libs/resource-module/src/posiwise-resource-module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from '@posiwise/common-services';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Injectable()\nexport class ResourceService {\n private readonly resource = '/posts';\n\n private readonly comments = '/comments';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getPublicPosts(\n master_subscription_id,\n page: number,\n pageSize: number,\n search: string,\n tagCategoryIds?: string,\n tagIds?: string\n ) {\n const params = {\n page,\n page_size: pageSize,\n search: search,\n master_subscription_id\n };\n\n if (tagCategoryIds) {\n params['tag_category_ids'] = tagCategoryIds;\n }\n\n if (tagIds) {\n params['tag_ids'] = tagIds;\n }\n return this.api.getWithParams(`${this.resource}/get_all`, {\n ...params\n });\n }\n\n getAdminPosts(subscriptionId, paging?: Paging) {\n return this.api.getWithParams(`${this.resource}/admin_get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addPost(post) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.post(this.resource, formData);\n }\n\n getPostBySlug(slug: string) {\n return this.api.get(`${this.resource}/${slug}`);\n }\n\n deletePost(id) {\n return this.api.delete(`${this.resource}/${id}`);\n }\n\n updatePost(post, id) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.put(`${this.resource}/${id}`, formData);\n }\n\n private getComments() {\n return this.api.get(`${this.comments}/get_all`);\n }\n\n postComments(post) {\n return this.api.post(this.comments, post);\n }\n\n getResourceInsight(subscription_id, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/posts_analytics?type=views&subscription_id=${subscription_id}`,\n { starting_at, ending_at }\n );\n }\n\n getResourcePostsInsight(id) {\n return this.api.get(`${this.resource}/${id}/insights`);\n }\n}\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-note-card',\n templateUrl: './release-note-card.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceNoteCardComponent extends AppBaseComponent implements OnInit {\n @Input() releaseHeader = false;\n @Input() categoryId!: string;\n @Input() isReleasePress = false;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n postTags: { [key: string]: { id: string; title: string } } = {};\n releasePosts: { [key: string]: Resource[] } = {};\n\n tagCategory;\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getTags();\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Release Notes' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.postTags['product'] = this.findTag(\n response.tags,\n 'Product Release Notes',\n this.tagCategory?.id\n );\n this.postTags['press'] = this.findTag(\n response.tags,\n 'Press Release Notes',\n this.tagCategory?.id\n );\n\n if (this.postTags['product']?.id) {\n this.getProductReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['product'] = [];\n }\n\n if (this.postTags['press']?.id) {\n this.getPressReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['press'] = [];\n }\n });\n }\n\n private findTag(tags, name: string, categoryId: number) {\n return tags.find(tag => tag.name === name && tag.tag_category_id === categoryId);\n }\n\n hasPressReleases(): boolean {\n return this.releasePosts['press']?.length !== 0 && this.isLoaded;\n }\n hasProductReleases(): boolean {\n return this.releasePosts['product']?.length !== 0 && this.isLoaded;\n }\n\n getProductReleasePosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n '',\n this.postTags['product']?.id\n )\n .subscribe(response => {\n const sortedPosts = response.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['product'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n getPressReleasePosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n '',\n this.postTags['press']?.id\n )\n .subscribe(response => {\n const sortedPosts = response?.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['press'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getProcessedPosts(posts: Resource[], sliceCount = 3): Resource[] {\n const cloned = [...posts];\n return this.postSlice ? cloned.reverse() : cloned.slice(0, sliceCount).reverse();\n }\n}\n","<section class=\"msp-vault-section bg-white\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"postTags['product']?.title || 'Product Release Notes'\"></h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Picture\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Picture\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"msp-vault-section bg-white\" *ngIf=\"isReleasePress\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"postTags['press']?.title || 'Press Release Notes'\"></h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Picture\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Picture\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-cards',\n templateUrl: './resource-cards.component.html',\n styleUrls: ['../../../resources/resources-shared.component.scss']\n})\nexport class ResourceCardComponent extends AppBaseComponent implements OnInit {\n @Input() categoryId!: string;\n @Input() isHeaderVisible = true;\n @Input() resourceTitle!: string;\n @Input() postSlice = false;\n @Input() header;\n @Input() resourceLink;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\" *ngIf=\"isHeaderVisible\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Our team’s articles'\"></h2>\n <a class=\"view-all\" [routerLink]=\"resourceLink\">VIEW ALL ></a>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of posts\">\n <p class=\"resource-title\" [innerHTML]=\"post.title \"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n /></a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n [href]=\"post.external_url\"\n aria-label=\"Navigate to external url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </section>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-blog-top-banner',\n templateUrl: './resource-blog-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-blog-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ResourceBlogTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Blog Posts' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Blogs'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Here, we share our insights,<br>\n learnings & the occasional <br>\n meme.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/msp-man.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-blog',\n templateUrl: './resource-blog.component.html',\n styleUrls: [\n '../resources/resources-shared.component.scss',\n '../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ResourceBlogComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Blog Posts');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag?.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<pw-resource-blog-top-banner />\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"false\" resourceLink=\"/resources/blogs\" [postSlice]=\"true\"></pw-resource-cards>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Input } from '@angular/core';\n\nimport { Resource } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resource-card-list',\n templateUrl: './resource-card-list.component.html',\n styleUrls: ['../resource-post/related-resources/related-resources.component.scss']\n})\nexport class ResourceCardListComponent {\n @Input() posts: Resource[] = [];\n @Input() postHeader = '';\n}\n","<section class=\"resource-section bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div class=\"row mt-4 cards-row\">\n <div class=\"col-lg-4 col-md-6 mb-4\" *ngFor=\"let post of this.posts; let i = index\" [ngClass]=\"{ 'mt-5': i > 2 }\">\n <div class=\"resource-card\">\n <p class=\"resource-title\">{{ post.title }}</p>\n <img [src]=\"post.picture.url\" class=\"resource-image mt-4\" [alt]=\"\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"read-now-btn\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"read-now-btn\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n\n </div>\n </div>\n </div>\n </div>\n </section>","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-case-studies-card',\n templateUrl: './case-studies-cards.component.html',\n styleUrls: ['./case-studies-cards.component.scss']\n})\nexport class CaseStudyCardComponent extends AppBaseComponent implements OnInit {\n @Input() showCaseStudyHeader = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n companyName = this.appConfig.company.name;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPosts(1, 10);\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.masterSubscriptionId || this.subscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\" id=\"msp-case-studies\">\n <div class=\"container\">\n <div *ngIf=\"showCaseStudyHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" id=\"msp-case-studies\" [innerHTML]=\"resourceTitle || 'Case Studies'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/case-studies\">VIEW ALL ></a>\n </div>\n <div *ngIf=\"!showCaseStudyHeader\" class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Case Studies'\"></h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"testimonial-box\" *ngFor=\"let post of posts\">\n\n <div>\n <img *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"IT Partners Logo\"\n class=\"company-logo mb-3\" />\n\n <p class=\"mb-4 mt-3 testimonial-section\">\n <span [innerHTML]=\"post.title\"></span>\n </p>\n </div>\n\n <!-- BOTTOM AVATAR -->\n <div class=\"avatar-container mt-5\">\n <img [src]=\"post.picture.url\"\n alt=\"User Avatar\"\n *ngIf=\"post.picture.url && !post.picture.url.includes('default-photo.jpg')\"\n class=\"testimonial-avatar\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"read-more-btn-overlay\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"read-more-btn-overlay\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { Resource } from '@posiwise/common-utilities';\n\nimport { Navigation, Pagination, Swiper } from 'swiper';\n\n@Component({\n selector: 'pw-testimonial-card',\n templateUrl: './testimonial-card.component.html',\n styleUrls: [\n './testimonial-card.component.scss',\n '../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class TestimonialCardListComponent implements OnInit {\n @Input() posts: Resource[] = [];\n @Input() postHeader = '';\n swiper;\n\n ngOnInit() {\n this.initSwiper();\n }\n\n private initSwiper() {\n this.swiper = new Swiper('.swiper-container', {\n modules: [Navigation, Pagination],\n slidesPerView: 1,\n spaceBetween: 24,\n centeredSlides: true,\n touchRatio: 1,\n touchAngle: 45,\n grabCursor: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n pagination: {\n el: '.swiper-pagination',\n clickable: true\n },\n breakpoints: {\n 425: {\n slidesPerView: 1.05,\n centeredSlides: true\n },\n 470: {\n slidesPerView: 1.25,\n centeredSlides: true\n },\n 564: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 640: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 768: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 1024: {\n slidesPerView: 2, // Allow room between cards\n centeredSlides: false\n },\n 1200: {\n slidesPerView: 3,\n centeredSlides: false\n }\n }\n });\n }\n}\n","<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div *ngIf=\"posts.length === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n<div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" *ngFor=\"let post of posts\">\n <div class=\"testimonial-box\">\n <div class=\"stars mb-5\">★★★★★</div>\n <div class=\"testimonial-content\">\n <div class=\"ql-container ql-snow ql-res\">\n <div class=\"ql-editor\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n </div>\n\n <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n <img\n *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"swiper-pagination\"></div>\n <div class=\"swiper-button-prev\"></div>\n <div class=\"swiper-button-next\"></div>\n </div>\n</div>\n </div>\n</section>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-case-studies',\n templateUrl: './resource-case-studies.component.html',\n styleUrls: ['./resource-case-studies.component.scss']\n})\nexport class ResourceCaseStudiesComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n this.getTestimonialTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Case Studies' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n console.log(this.tagCategory);\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getTestimonialTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogTestimonialsPostTag = response.tags.find(\n tag => tag.name === 'Testimonials'\n );\n this.getTestimonialsPosts(1, 100);\n });\n }\n\n getTestimonialsPosts(page: number, pageSize: number) {\n console.log(this.blogTestimonialsPostTag?.tag_category_id, 'sop');\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogTestimonialsPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts);\n this.testimonialsPosts = response.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n {{blogPostTag?.title || 'Case Studies'}}\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\" *ngIf=\"!blogPostTag?.description\">Real solutions - real results.<br /></p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource//case-studies-man.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n\n<pw-testimonial-card [posts]=\"testimonialsPosts\" [postHeader]=\"'Testimonials'\" id=\"reviews\"></pw-testimonial-card>\n<pw-case-studies-card *ngIf=\"blogPostTag?.tag_category_id\" id=\"case-studies\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-case-studies-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Input, OnChanges } from '@angular/core';\n\ninterface PageEvent {\n first: number;\n rows: number;\n page: number;\n pageCount: number;\n}\n@Component({\n selector: 'pw-resource-company-card',\n templateUrl: './resource-company-card.component.html',\n styleUrl: './resource-company-card.component.scss'\n})\nexport class ResourceCompanyCardComponent implements OnChanges {\n @Input() header = '';\n @Input() data = [];\n @Input() integrationCountDisplay;\n @Input() vendor = false;\n postData = false;\n filteredData = [];\n first = 0;\n rows = 12;\n ngOnChanges(): void {\n this.search();\n }\n search(keywords?) {\n if (keywords) {\n this.filteredData = this.data.filter(x =>\n x.title.toLowerCase().includes(keywords.toLowerCase())\n );\n if (this.filteredData.length === 0) {\n this.postData = true;\n } else {\n this.postData = false;\n }\n } else {\n this.filteredData = [...this.data];\n this.postData = false;\n }\n }\n onPageChange(event: PageEvent) {\n this.first = event.first;\n this.rows = event.rows;\n }\n}\n","<div [ngClass]=\"{ 'vendors-distributor-wrapper': !vendor }\">\n <div class=\"d-flex justify-content-between align-items-center mb-3 search-container\">\n <div>\n <span class=\"int-span\">{{header}}</span>\n </div>\n <div class=\"search-wrapper position-relative\" *ngIf=\"integrationCountDisplay > 0\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\"\n (keyup)=\"search($event.target.value)\"\n placeholder=\"Search eg security\"\n class=\"search-input\" />\n </div>\n\n </div>\n\n <div *ngIf=\"postData\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"> </pw-no-data>\n </div>\n\n <div class=\"row\" *ngIf=\"!postData && integrationCountDisplay > 0\">\n <div class=\"col-md-3 mt-4\"\n *ngFor=\"let img of filteredData | slice:first:(first + rows)\">\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n <ng-container *ngIf=\"img?.companyImg; else checkRectangular\">\n <img [src]=\"img.companyImg\" alt=\"Vendor Company Picture\" class=\"vendor-icon\" />\n </ng-container>\n\n <ng-template #checkRectangular>\n <ng-container *ngIf=\"img?.rectangular_picture?.url; else noImage\">\n <ng-container *ngIf=\"!img.rectangular_picture.url.includes('default-photo'); else showPostName\">\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <img [src]=\"img.rectangular_picture.url\" alt=\"Vendor Rectangular Company Picture\" class=\"vendor-icon\" />\n </a>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #showPostName>\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <span class=\"vendor-name text-center mt-2\">{{ img?.title }}</span>\n </a>\n </ng-template>\n </div>\n </div>\n\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n *ngIf=\"filteredData.length > 0\"\n >\n <p-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length\"\n (onPageChange)=\"onPageChange($event)\"></p-paginator>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-integration-top-banner',\n templateUrl: './integration-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class IntegrationTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n contactUsUrl = this.appConfig?.pages_config?.contact_us?.url;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Integrations' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n console.log(this.tagCategory, response.tags, 'sop');\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Integrated vendors'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Browse below the vendor integrations<br />\n we support.\n </p>\n </ng-template>\n </div>\n\n <!-- Buttons always at bottom -->\n <div class=\"d-flex gap-3 flex-wrap mt-3\">\n <a [href]=\"contactUsUrl\" target=\"_blank\"\n class=\"cta-btn filled\">Speak to sales ></a>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/men.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { CompanyData, Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { forkJoin } from 'rxjs';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-integration',\n templateUrl: './resource-integration.component.html',\n styleUrls: [\n './resource-integration.component.scss',\n '../resources/resources-shared.component.scss'\n ]\n})\nexport class ResourceIntegrationComponent extends AppBaseComponent implements OnInit {\n distributorsData = CompanyData?.distributorsData;\n vendorsData = CompanyData?.vendorsData;\n\n textColor = this.appConfig?.color_codes?.text;\n\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n distributerPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n isLoaded = false;\n resourcePostTag;\n blogPostVendorTag;\n\n integrations = this.appConfig?.pages_config?.integrations;\n\n releaseNotesLink = '/resources/product-release-notes';\n q1NotesLink = '/resources/product-release-q1-2025';\n q3NotesLink = '/resources/product-release-q3-2024';\n q4NotesLink = '/resources/product-release-q4-2024';\n companyName;\n\n videoWebinarLoaded = false;\n videoDemoLoaded = false;\n youtubeVideoId = 'R7Vk219zbhA';\n videoTitle = 'CloudOlive Overview';\n sanitizedMicrosoftVideoUrl: SafeResourceUrl;\n sanitizedKesyaVideoUrl: SafeResourceUrl;\n integrationCountDisplay: number;\n contactUsUrl = this.appConfig?.pages_config?.contact_us?.url;\n tagCategory;\n totalPosts: number;\n\n guideData = this.appConfig?.pages_config?.guides?.items[0];\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n console.log(this.guideData);\n this.companyName = this.appConfig.company.name;\n\n document.documentElement.style.setProperty('--text-color', this.textColor);\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Integrations' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.resourcePostTag = response.tags.find(\n tag => tag.name === 'Product Release Notes'\n );\n this.blogPostTag = response.tags.find(\n tag =>\n tag.name === 'Integrated Distributors' &&\n tag.tag_category_id === this.tagCategory?.id\n );\n this.blogPostVendorTag = response.tags.find(\n tag =>\n tag.name === 'Integrated Vendors' &&\n tag.tag_category_id === this.tagCategory?.id\n );\n\n // use forkJoin to fetch both sets of posts in parallel\n forkJoin({\n vendorResponse: this.resourceService.getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n 1,\n 100,\n '',\n '',\n this.blogPostVendorTag?.id\n ),\n distributorResponse: this.resourceService.getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n 1,\n 100,\n '',\n '',\n this.blogPostTag?.id\n )\n }).subscribe(({ vendorResponse, distributorResponse }) => {\n this.posts = vendorResponse.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() -\n new Date(a.published_at).getTime()\n );\n\n this.distributerPosts = distributorResponse.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() -\n new Date(a.published_at).getTime()\n );\n\n const vendorCount = vendorResponse?.object_count || 0;\n const distributorCount = distributorResponse?.object_count || 0;\n const total = vendorCount + distributorCount;\n\n this.integrationCountDisplay = total === 0 ? 0 : Math.ceil(total / 10) * 10;\n this.isLoaded = true;\n });\n });\n }\n\n loadMicrosoftVideo(videoUrl) {\n window.open(videoUrl, '_blank');\n }\n\n loadKeseyaVideo(): void {\n const baseUrl = `https://www.youtube.com/embed/${this.youtubeVideoId}?autoplay=1`;\n // baseUrl is a trusted internal source (e.g. YouTube embed URL)\n this.sanitizedKesyaVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(baseUrl); // NOSONAR\n this.videoWebinarLoaded = true;\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-integration-top-banner></pw-integration-top-banner>\n<div class=\"bg-white\">\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container sec-container\">\n <div *ngIf=\"isLoaded && integrationCountDisplay > 0\">\n <h1 class=\"int-title mb-0\">{{ integrationCountDisplay }}+ integrations (& counting)</h1>\n <p class=\"int-text\"> Search the current list of {{companyName}} vendor and distributor integrations below. <br />\n </p>\n </div>\n <pw-resource-company-card *ngIf=\"isLoaded\" [header]=\"'integrated vendors'\"\n [integrationCountDisplay]=\"integrationCountDisplay\"\n [data]=\"posts\"></pw-resource-company-card>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"integrationCountDisplay === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"text-center pt-3 mt-4\" *ngIf=\"isLoaded && integrationCountDisplay > 0\">\n <p class=\"see-span\"> Don’t see what you’re after? <a [href]=\"contactUsUrl\"\n target=\"_blank\"\n class=\"int-span team-span\">Speak with our team to request a connection >\n </a>\n </p>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <pw-resource-company-card [header]=\"'integrated Distributors'\"\n [integrationCountDisplay]=\"integrationCountDisplay\"\n *ngIf=\"isLoaded\"\n [vendor]=\"true\"\n [data]=\"distributerPosts\"></pw-resource-company-card>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"integrationCountDisplay === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\" *ngIf=\"integrations\">\n <div class=\"container\">\n <div class=\"how-it-works-wrapper\">\n <h1 class=\"it-works-title mb-0\">{{integrations?.title || 'How it works'}}</h1>\n <p class=\"pb-20\" [innerHTML]=\"integrations?.description || 'View short example videos to understand how these integrations can work for you:'\"></p>\n <div class=\"row section-row\">\n <ng-container *ngIf=\"integrations?.items?.length > 0; else noIntegrations\">\n <ng-container *ngFor=\"let integration of integrations?.items\">\n <div\n class=\"col-md-6\"\n *ngIf=\"integration?.image_url || integration?.title || integration?.description\"\n >\n <ng-container *ngIf=\"integration?.video_url && integration?.video_url.includes('https'); else noVideo\">\n <div class=\"d-flex justify-content-center\">\n <img\n *ngIf=\"integration?.video_url\"\n [src]=\"integration?.image_url\"\n (click)=\"loadMicrosoftVideo(integration?.video_url)\"\n class=\"how-it-works-img\"\n alt=\"Integration Video Thumbnail\"\n />\n </div>\n </ng-container>\n\n <ng-template #noVideo>\n <div class=\"d-flex justify-content-center\">\n <div class=\"w-100\">\n <pw-no-data [withImage]=\"true\" [message]=\"'No video found' | transloco\">\n </pw-no-data>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #noIntegrations>\n <div class=\"w-100 text-center\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Integration.NoDataMessage' | transloco\"></pw-no-data>\n </div>\n </ng-template>\n\n </div>\n </div>\n </div>\n\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"row align-items-start\">\n <div class=\"col-md-6 text-md-start text-center\">\n <h1 class=\"guide-title mb-3\">{{guideData?.title || '--UPDATE ME ON THE ADMIN/DOMAINS MODULE--'}}</h1>\n <p class=\"guide-subtext\"\n [innerHTML]=\"guideData?.description || '--UPDATE ME ON THE ADMIN/DOMAINS MODULE--'\">\n </p>\n <a class=\"vault-btn\"\n [href]=\"guideData?.guide_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n {{guideData?.button_text || 'View the guide'}}\n </a>\n\n </div>\n\n <div class=\"col-md-6 text-center\">\n <ng-container *ngIf=\"guideData?.image_url && !guideData.image_url.includes('default-photo.jpg'); else noDataTemplate\">\n <img\n [src]=\"guideData.image_url\"\n alt=\"Guide\"\n class=\"guide-img\" />\n </ng-container>\n\n <ng-template #noDataTemplate>\n <div>\n <pw-no-data [withImage]=\"true\" [message]=\"'--ADD ME ON THE ADMIN/DOMAINS MODULE--' | transloco\" />\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </section>\n</div>\n\n<pw-resource-note-card *ngIf=\"resourcePostTag?.tag_category_id\" [categoryId]=\"resourcePostTag?.tag_category_id\" [releaseHeader]=\"true\" [resourceTitle]=\"resourcePostTag?.title\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { UntypedFormBuilder, Validators } from '@angular/forms';\n\nexport class ResourceBlog {\n static getResourcePostsForm() {\n return new UntypedFormBuilder().group({\n related_entity_id: [''],\n related_entity_type: [''],\n comment: [null, Validators.required],\n user_id: ['']\n });\n }\n}\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomToastService, TagService } from '@posiwise/common-services';\nimport { TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\nimport { ResourceBlog } from '../../../../shared/models/resource.model';\n\n@Component({\n selector: 'pw-related-resources',\n templateUrl: './related-resources.component.html',\n styleUrls: ['./related-resources.component.scss']\n})\nexport class RelatedResourcesComponent extends AppBaseComponent implements OnInit {\n resourceCards = [\n {\n title: 'BLOG: Here’s why you should QA your distributor invoices',\n image: '/assets/img/resource/resource-qa.png',\n alt: 'QA distributor invoices',\n url: '/resources/view/here-s-why-you-should-be-seeking-independent-qa-of-all-distributor-inv'\n },\n {\n title: 'BLOG: 4 instant hacks to uplift your MSP’s monthly billing',\n image: '/assets/img/resource/resource-hacks.png',\n alt: 'Monthly billing hacks',\n url: '/resources/view/4-instant-hacks-to-uplift-your-msp-s-monthly-billing'\n },\n {\n title: 'BLOG: The trivial detail that will either future-proof or sabotage your PSA.',\n image: '/assets/img/resource/resource-psa.png',\n alt: 'PSA future-proof',\n url: '/resources/view/the-trivial-detail-that-will-either-future-proof-or-sabotage-your-psa'\n }\n ];\n\n post;\n masterSubscriptionId;\n slug;\n\n postComments = [];\n commentForm;\n\n userLoggedIn: boolean;\n\n demoLinks = this.appConfig?.pages_config?.book_demo?.items;\n\n user: User;\n blogPostTag;\n subscriptionId;\n linkedInUrl = this.appConfig?.social?.linkedin_url;\n company_email = this.appConfig.company.email;\n\n constructor(\n private readonly resourceService: ResourceService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer,\n private readonly tagService: TagService,\n private readonly toastr: CustomToastService\n ) {\n super(injector);\n this.commentForm = ResourceBlog.getResourcePostsForm();\n }\n\n ngOnInit(): void {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n console.log(this.linkedInUrl, this.appConfig);\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n });\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n get hasValidDemoLinks(): boolean {\n return (\n Array.isArray(this.demoLinks) && this.demoLinks.some(link => link?.title || link?.url)\n );\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Blog Posts');\n });\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n const date = new Date(response?.when);\n const formatted = date.toISOString().split('T')[0];\n console.log(formatted); //\n this.postComments = response.entity_comments;\n this.post = { ...response, body: blogBody, when: formatted };\n });\n }\n\n onComment() {\n const data = { ...this.commentForm.value };\n data.related_entity_id = this.post?.id;\n data.related_entity_type = 'Post';\n data.user_id = this.user?.id;\n this.resourceService\n .postComments(data)\n .subscribe(() => {\n this.getBlogItem(this.slug);\n this.commentForm.reset();\n this.toastr.success(this.translation.translate('Resource.Posts.CommentAdded'));\n })\n .add(() => {\n console.log('In this');\n });\n }\n\n trackByComment(_index: number, item: { id: number }) {\n return item.id;\n }\n}\n","\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm border-0 p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">💬 Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card border-0 shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { ADMIN_ROUTERS, TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\n@Component({\n selector: 'pw-resource-post-details',\n templateUrl: './resource-post-details.component.html',\n styleUrls: ['./resource-post-details.component.scss']\n})\nexport class ResourcePostDetailsComponent extends AppBaseComponent implements OnInit {\n post;\n masterSubscriptionId;\n slug;\n blogPermission: string;\n userLoggedIn: boolean;\n routers = ADMIN_ROUTERS;\n hasBlogAccess: boolean;\n user: User;\n subscriptionId: number;\n blogPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n\n if (res) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.hasBlogAccess = HelperService.checkBlogPermission(this.user);\n });\n }\n\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Blog Posts');\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n this.post = { ...response, body: blogBody };\n });\n }\n}\n","<section class=\"nce-hero-section\">\n <div class=\"container d-flex flex-wrap\" [ngClass]=\"blogPostTag?.image?.url ? 'container-top' : 'container-no-image'\">\n <div class=\"hero-left\">\n <p class=\"blog-label\">BLOG</p>\n\n <h1 class=\"hero-title\">\n <span [innerHTML]=\"post?.title\"></span>\n <a *ngIf=\"userLoggedIn && hasBlogAccess\"\n class=\"ms-3 text-decoration-none\"\n ngbTooltip=\"Edit this post\"\n [routerLink]=\"['/admin/resources/', post?.slug]\"\n target=\"_blank\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </a>\n </h1>\n\n\n <div class=\"author-info\">\n <img [src]=\"post?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\" alt=\"User Profile Logo\" class=\"author-img\" />\n <div class=\"author-meta\">\n <p>Article by {{ post?.author?.first_name }} {{ post?.author?.last_name }}</p>\n <p class=\"date\">{{post?.published_at | dateFormat}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"hero-right\" *ngIf=\"isLoaded\">\n <img\n *ngIf=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))); else noImage\"\n [src]=\"blogPostTag.image.url\"\n alt=\"Math Icon Blob\"\n class=\"hero-image\"\n />\n\n <ng-template #noImage>\n <pw-no-data\n class=\"data-image\"\n [withImage]=\"true\"\n [message]=\"'Search.NoDataMessage' | transloco\"\n [description]=\"'Search.NoDataDescription' | transloco\"\n ></pw-no-data>\n </ng-template>\n </div>\n </div>\n </section>\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-resource-post',\n templateUrl: './resource-post.component.html',\n styleUrl: './resource-post.component.scss'\n})\nexport class ResourcePostComponent implements OnInit {\n slug: string;\n\n constructor(\n private route: ActivatedRoute,\n private titleService: Title\n ) {}\n\n ngOnInit(): void {\n this.route.paramMap.subscribe(params => {\n this.slug = params.get('slug') || 'Default';\n setTimeout(() => {\n this.titleService.setTitle(`Resource - ${this.slug}`);\n }, 1000);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-post-details></pw-resource-post-details>\n<pw-related-resources></pw-related-resources>\n<pw-trial-4-contact-us></pw-trial-4-contact-us>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-release-notes-top-banner',\n templateUrl: './resource-release-notes-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-release-notes-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class ReleaseTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Release Notes' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Release Notes'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n We’re obsessed with solving real problems for our customers.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/release-person.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-release-notes',\n templateUrl: './resource-release-notes.component.html'\n})\nexport class ResourceReleaseNoteComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n console.log();\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Product Release Notes');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-release-notes-top-banner></pw-resource-release-notes-top-banner>\n\n<pw-resource-note-card [isReleasePress]=\"true\" *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [releaseHeader]=\"true\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource--vault',\n templateUrl: './resource-vault.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceVaultComponent extends AppBaseComponent implements OnInit {\n @Input() showVaultSection = false;\n @Input() postSlice = false;\n @Input() categoryId;\n @Input() resourceTitle;\n userLoggedIn: boolean;\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVaultSection\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-5\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Whitepapers & Tools'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/white-papers\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"d-flex mt-2 flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card text-center p-4\" *ngFor=\"let post of posts\">\n <p class=\"mb-4\" [innerHTML]=\"post.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n />\n </a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-video-card',\n templateUrl: './resource-video-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class ResourceVideoCardComponent extends AppBaseComponent implements OnInit {\n @Input() showVideoSection = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n\n videoStates: { [slug: string]: { loaded: boolean; url: SafeResourceUrl } } = {};\n\n userLoggedIn: boolean;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly resourceService: ResourceService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPosts(1, 10);\n }\n\n loadVideo(post): void {\n if (!post.external_url) return;\n\n const slug = post.slug;\n let externalUrl = post.external_url;\n\n // Append autoplay only when clicked\n externalUrl += externalUrl.includes('?') ? '&autoplay=1' : '?autoplay=1';\n\n this.videoStates[slug].url = this.sanitizer.bypassSecurityTrustResourceUrl(externalUrl);\n }\n\n getPosts(page: number, pageSize: number): void {\n console.log('pop', this.categoryId);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n this.posts.forEach(post => {\n if (post.external_url) {\n this.videoStates[post.slug] = {\n loaded: true,\n url: this.sanitizer.bypassSecurityTrustResourceUrl(post.external_url)\n };\n }\n });\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVideoSection\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'On-Demand Videos'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/videos\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card\" *ngFor=\"let post of posts\">\n <p [innerHTML]=\"post.title\" class=\"mb-5\"></p>\n <a [href]=\" post.external_url\" target=\"_blank\">\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid mb-3\"\n [alt]=\"post.title\" />\n </a>\n\n <a class=\"resource-btn mt-3\" [href]=\" post.external_url\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Watch now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </div>\n </div>\n </div>\n\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-videos-top-banner',\n templateUrl: './resource-videos-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './resource-videos-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class VideosTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Videos' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'Videos on Demand'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n Discover below all our videos.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/video-template.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-videos',\n templateUrl: './resource-videos.component.html',\n styleUrls: []\n})\nexport class ResourceVideoComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Videos');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n console.log(this.blogPostTag);\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n console.log(response.posts, this.blogPostTag);\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n<pw-resource-videos-top-banner></pw-resource-videos-top-banner>\n\n\n<pw-resource-video-card *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource-video-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-replay-event-card',\n templateUrl: './replay-event-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class ReplayEventCardComponent extends AppBaseComponent implements OnInit {\n @Input() showEventContent = false;\n @Input() categoryId!: string;\n @Input() resourceTitle!: string;\n userLoggedIn: boolean;\n subscriptionId;\n\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPostTags();\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Events');\n if (this.blogPostTag?.tag_category_id) {\n this.getPosts(1, 100);\n } else {\n this.isLoaded = true;\n }\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const now = new Date().getTime();\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true && new Date(post?.when).getTime() < now)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = sortedPosts;\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"vault-heading\">Webinar Replays</h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card vault-card text-center p-4\" *ngFor=\"let post of posts\">\n <h5 class=\"badge-title fw-bold\">REPLAY:</h5>\n\n <p class=\"event-title mb-4\" [innerHtml]=\"post?.title\"></p>\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n [href]=\"post.external_url\"\n aria-label=\"Navigate to external url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-upcoming-event-card',\n templateUrl: './upcoming-event-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss']\n})\nexport class UpcomingEventCardComponent extends AppBaseComponent implements OnInit {\n @Input() showEventContent = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n now = new Date().getTime();\n userLoggedIn: boolean;\n subscriptionId;\n\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.getPostTags();\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Events');\n if (this.blogPostTag?.tag_category_id) {\n if (this.postSlice) {\n this.getPosts(1, 100);\n } else {\n this.getAllPosts(1, 100);\n }\n } else {\n this.isLoaded = true;\n }\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId || this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(\n post => post.showcase === true && new Date(post?.when).getTime() > this.now\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = sortedPosts;\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n isUpcoming(post): boolean {\n return new Date(post?.when).getTime() > this.now;\n }\n\n getAllPosts(page: number, pageSize: number): void {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.categoryId || this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts || [])\n .filter(post => post.showcase === true)\n .sort((a, b) => new Date(b.when).getTime() - new Date(a.when).getTime());\n\n this.posts = [...sortedPosts].slice(0, 3).reverse();\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"msp-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showEventContent\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading\" [innerHTML]=\"resourceTitle || 'Events & Webinars'\"></h2>\n <a class=\"view-all\" routerLink=\"/resources/events\">VIEW ALL ></a>\n </div>\n <div *ngIf=\"!showEventContent\" class=\"d-md-flex justify-content-between align-items-start\">\n <div class=\"vault-header\">\n <h2 class=\"vault-heading\"[innerHTML]=\"resourceTitle || 'Upcoming Events'\"></h2>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card d text-center p-4\" *ngFor=\"let post of posts\">\n <ng-container *ngIf=\"postSlice; else conditionalCheck\">\n <h5 class=\"badge-title fw-bold\">UPCOMING:</h5>\n </ng-container>\n\n <ng-template #conditionalCheck>\n <h5 class=\"badge-title fw-bold\">\n {{ isUpcoming(post) ? 'UPCOMING:' : 'REPLAY:' }}\n </h5>\n </ng-template>\n\n <p class=\"event-title mb-4\" [innerHtml]=\"post?.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n />\n </a>\n\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-webinars',\n templateUrl: './resource-webinars.component.html',\n styleUrls: [\n './resource-webinars.component.scss',\n '../resource-case-studies/resource-case-studies.component.scss',\n '../resources/resources-shared.component.scss'\n ]\n})\nexport class ResourceWebinarComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n upcomingPosts = [];\n tagCategory;\n userLoggedIn: boolean;\n blogPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'Events' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n\n<section class=\"bg-white\">\n <div class=\"nce-banner nce-section\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n {{blogPostTag?.title || 'Events & Webinars'}}\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension\">\n <p class=\"intro\" *ngIf=\"!blogPostTag?.description || blogPostTag.description === 'null'\">\n We're big on community and even<br>bigger on sharing what works.\n </p>\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\" *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null'\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img\"\n [src]=\"(blogPostTag?.image?.url !== null && !blogPostTag?.image?.url?.includes('default-photo.jpg') && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared')) ) ? blogPostTag?.image?.url : 'assets/img/resource/events-women.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n\n<section class=\"bg-white\">\n <pw-upcoming-event-card [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-upcoming-event-card>\n</section>\n\n<section class=\"bg-white\">\n <pw-replay-event-card></pw-replay-event-card>\n</section>\n\n\n\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { Component, EventEmitter, Injector, OnInit, Output } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Tag } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resource-tags',\n templateUrl: './resource-tags.component.html',\n styleUrls: [\n './resource-tags.component.scss',\n '../../resources-hub/resources-hub.component.scss'\n ]\n})\nexport class ResourceTagComponent extends AppBaseComponent implements OnInit {\n @Output() tagsLoaded = new EventEmitter<Tag[]>();\n @Output() tagSelected = new EventEmitter<Tag>();\n tags = [];\n subscriptionId: number;\n userLoggedIn: boolean;\n loading = true;\n loaded = false;\n\n selectedTag: Tag | null = null;\n\n constructor(\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$('product').subscribe(product => {\n const data = product ? JSON.parse(product) : null;\n this.subscriptionId =\n data?.subscriptionId || this.appConfig.master_subscription.subscription_id;\n this.getTags();\n });\n }\n\n selectTag(tag: Tag): void {\n this.selectedTag = tag;\n this.tagSelected.emit(tag);\n }\n\n getTags() {\n this.loading = true;\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId)\n .subscribe(res => {\n this.tags = (res?.tags || [])\n .filter(tag => tag.visible_in_resources)\n .map(tag => ({\n ...tag,\n iconClass: `fa ${tag.icon_name}` // e.g. fa fa-check\n }));\n this.tagsLoaded.emit(this.tags);\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n}\n","<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-vault-section',\n templateUrl: './vault-section.component.html',\n styleUrls: ['./vault-section.component.scss']\n})\nexport class VaultSectionComponent extends AppBaseComponent implements OnInit {\n companyName;\n resourceTagLine = this.appConfig.pages_config.resources.resources_tagline;\n resourceImage = this.appConfig.pages_config.resources.resources_image.url;\n resourceDescription = this.appConfig.pages_config.resources.resources_description;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.companyName = this.appConfig?.company.name;\n }\n}\n","<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n </section>\n","import { Component } from '@angular/core';\n\nimport { Tag } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.scss']\n})\nexport class ResourceComponent {\n allTags: Tag[] = [];\n\n onTagsLoaded(tags: Tag[]) {\n this.allTags = tags;\n }\n\n hasTag(name: string): boolean {\n return this.allTags.some(tag => tag.name?.toLowerCase() === name.toLowerCase());\n }\n\n getCategoryIdByTagName(name: string): number | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.tag_category_id;\n }\n\n getTitleByTagName(name: string): string | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.title;\n }\n\n scrollToTag(tag: Tag) {\n const sectionMap: { [key: string]: string } = {\n Videos: 'videos',\n Events: 'events',\n 'Blog Posts': 'blog-posts',\n 'Case Studies': 'case-studies',\n 'White Papers': 'white-papers',\n 'Product Release Notes': 'product-release-notes'\n };\n\n const sectionId = sectionMap[tag.name?.trim()];\n if (sectionId) {\n setTimeout(() => {\n const el = document.getElementById(sectionId);\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 100);\n }\n }\n}\n","\n<pw-resource-header></pw-resource-header>\n<pw-vault-section></pw-vault-section>\n<pw-resource-tags (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\"></pw-case-studies-card>\n<pw-resource--vault id=\"white-papers\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\"></pw-resource--vault>\n<pw-resource-note-card [isReleasePress]=\"true\" id=\"product-release-notes\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\"></pw-resource-note-card>\n<pw-trial-4-contact-us></pw-trial-4-contact-us>","import {\n Component,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, Tag, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { forkJoin } from 'rxjs';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-posts-list',\n templateUrl: './resources-hub.component.html',\n styleUrls: [\n './resources-hub.component.scss',\n '../resource-company-card/resource-company-card.component.scss'\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceHubComponent extends AppBaseComponent implements OnInit, OnDestroy {\n private delayTimeout: ReturnType<typeof setTimeout> | null = null;\n\n data = [];\n\n posts: Resource[] = [];\n tags: Tag[] = [];\n\n selectedTags = [];\n\n currentPage = 1;\n pageSize = 20;\n objectCount = 0;\n\n searchTextItems = '';\n searchInput = false;\n\n readingTime: number;\n\n totalRecords: number;\n\n loading = true;\n loaded = false;\n\n masterSubscriptionId: number;\n subscriptionId;\n userLoggedIn: boolean;\n\n scrollLocked = false;\n\n iconClasses: string[] = [\n 'fa-lightbulb',\n 'fa-rocket',\n 'fa-file-alt',\n 'fa-users',\n 'fa-video',\n 'fa-pencil-alt',\n 'fa-book-open',\n 'fa-cogs'\n ];\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.getPostsAndTags();\n this.readingTime = 0;\n }\n\n getPostsAndTags() {\n this.loading = true;\n this.loaded = false;\n forkJoin({\n resPosts: this.resourceService.getPublicPosts(\n this.masterSubscriptionId,\n this.currentPage,\n this.pageSize,\n this.searchTextItems\n ),\n resTags: this.tagService.getTagsByType(\n 'post_categories',\n {},\n this.subscriptionId || this.masterSubscriptionId\n )\n })\n .subscribe(res => {\n this.posts = res?.resPosts?.posts;\n this.objectCount = res?.resPosts.object_count;\n this.data = res?.resPosts?.posts;\n this.data = res?.resPosts?.posts.map(post => ({\n ...post,\n expandedTags: false\n }));\n this.totalRecords = this.posts?.length;\n\n this.tags = res?.resTags?.tags?.filter(tag => tag.visible_in_resources);\n this.tags = this.tags.map(tag => ({\n ...tag,\n iconClass: this.getRandomIcon()\n }));\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n toggleDropdown(event: Event, post): void {\n event.stopPropagation();\n post.showDropdown = !post.showDropdown;\n }\n\n getRandomIcon(): string {\n const randomIndex = Math.floor(Math.random() * this.iconClasses.length);\n return 'fa ' + this.iconClasses[randomIndex];\n }\n\n getPosts(page: number, pageSize: number, fetchAll = false, append = false) {\n if (fetchAll) this.selectedTags = [];\n\n if (!append) {\n this.loading = true;\n this.loaded = false;\n }\n\n const tagCategoryParam = this.selectedTags.map(tag => tag.tag_category_id).join(',');\n\n this.resourceService\n .getPublicPosts(\n this.masterSubscriptionId,\n page,\n append ? 10 : pageSize,\n this.searchTextItems,\n tagCategoryParam\n )\n .subscribe(response => {\n this.objectCount = response.object_count;\n this.posts = append ? [...this.posts, ...response.posts] : response.posts;\n this.data = [...this.posts];\n this.totalRecords = this.posts?.length;\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n onSearch(seconds: number) {\n let delay = 0;\n delay = seconds * 1000;\n clearTimeout(this.delayTimeout);\n const delayTimeout = setTimeout(() => {\n this.currentPage = 1;\n this.getPosts(1, this.pageSize);\n }, delay);\n\n this.delayTimeout = delayTimeout;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll(): void {\n const scrollPosition = window.scrollY + window.innerHeight;\n const pageHeight = document.documentElement.scrollHeight;\n\n const nearBottom = scrollPosition >= pageHeight - 100;\n\n if (\n nearBottom &&\n this.posts.length < this.objectCount &&\n !this.loading &&\n !this.scrollLocked\n ) {\n this.scrollLocked = true;\n this.currentPage += 1;\n\n this.getPosts(this.currentPage, this.pageSize, false, true);\n\n setTimeout(() => {\n this.scrollLocked = false;\n }, 500);\n }\n }\n\n isSelected(tagId: number): boolean {\n return this.selectedTags.map(tag => tag.id).includes(tagId);\n }\n\n tagPost(selectedTag) {\n const index = this.selectedTags.findIndex(\n tag => tag.tag_category_id === selectedTag?.tag_category_id && tag.id === selectedTag.id\n );\n\n if (index === -1) {\n this.selectedTags.push({\n tag_category_id: selectedTag?.tag_category_id,\n id: selectedTag.id\n });\n } else {\n this.selectedTags.splice(index, 1);\n }\n\n this.currentPage = 1;\n this.getPosts(1, this.pageSize);\n }\n\n thisPostReadingTime(text: string): string {\n if (text) {\n const wordsPerMinute = 200;\n const noOfWords = text.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-resource-header></pw-resource-header>\n<div class=\"all-posts py-5\">\n <div class=\"row mt-1 mb-4 px-2\">\n <div class=\"col-md-9\">\n </div>\n <div class=\"col-md-3\">\n <div class=\"text-end mt-0 mt-sm-3 d-flex\">\n <div class=\"search-wrapper position-relative\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\" [(ngModel)]=\"searchTextItems\" pInputText size=\"50\" placeholder=\"Search resources...\"\n (input)=\"onSearch(1)\"\n class=\"search-input\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"row resource-row\">\n <!-- All Resources Card -->\n <div class=\"col-md-3 col-sm-6 mb-4\">\n <div class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"getPosts(1, 20, true)\"\n [ngClass]=\"{ 'selected': selectedTags.length === 0 }\"\n (click)=\"getPosts(1, 20, true)\">\n <i class=\"fa fa-layer-group resource-icon me-3\"></i>\n <span class=\"resource-text\">All Resources</span>\n </div>\n </div>\n\n <!-- Dynamic Tags -->\n <div class=\"col-md-3 col-sm-6 mb-4\"\n *ngFor=\"let tag of tags\">\n <div\n class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"tagPost(tag)\"\n [ngClass]=\"{ 'selected': isSelected(tag.id) }\"\n (click)=\"tagPost(tag)\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"loading && !loaded\">\n <div class=\"w-100 text-center mt-3\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"posts?.length && !loading\">\n <div>\n <div class=\"blog-list\">\n <div class=\"row mt-4 mb-5 ms-1 me-1 blog-listing\"\n *ngFor=\"let post of data\">\n <div class=\"col-md-6 col-sm-12 col-xs-12 my-auto\"\n [routerLink]=\"['/resources/view', post.slug]\">\n <div class=\"list-blog-image\">\n <img [src]=\"post.picture?.url\"\n alt=\"Post List\"\n class=\"img-fluid\" />\n </div>\n </div>\n <div class=\"col-md-6 col-sm-12 col-xs-12 px-4 position-relative\">\n <div class=\"tag-div\">\n <div class=\"author d-flex\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post.author?.avatar\"\n [src]=\"post.author?.avatar[0]?.url\"\n alt=\"Author\" />\n <img *ngIf=\"!post.author?.avatar\"\n src=\"/assets/img/icons/male.png\"\n alt=\"Author\"\n class=\"default-user-image\" />\n </a>\n </div>\n\n <div class=\"author-name ps-2\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post.author.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n <ul>\n <li>\n <a href=\"javascript:void(0);\">\n {{ post.published_at | date: 'dd/MM/yyyy' }}\n </a>\n </li>\n <li>.</li>\n <li>\n <a href=\"javascript:void(0);\">{{ thisPostReadingTime(post.body) }}\n </a>\n </li>\n </ul>\n </div>\n <div class=\"share-post\">\n <div class=\"dropdown position-relative d-flex justify-content-end\" (clickOutside)=\"post.showDropdown = false\">\n <div class=\"three-dots-wrapper\" (click)=\"toggleDropdown($event, post)\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </div>\n\n <div class=\"dropdown-menu show\"\n *ngIf=\"post.showDropdown\">\n <a class=\"dropdown-item\"\n href=\"http://www.facebook.com/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <i class=\"fas fa-share\"></i> Share Post\n </a>\n </div>\n </div>\n\n </div>\n </div>\n <h4 [routerLink]=\"['/resources/view', post.slug]\"\n class=\"title my-3\">{{ post.title }}</h4>\n <p [routerLink]=\"['/resources/view', post.slug]\"\n class=\"body mb-3 pb-3 post-body-text\">\n {{ post.body | removeHtml: 'quill' | textTruncate: 200 }}\n </p>\n <div class=\"d-flex flex-wrap align-items-center gap-2 mt-auto mb-3\">\n <ng-container *ngIf=\"post?.tags?.length\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(0, 4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"post.expandedTags\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n </ng-container>\n\n <span *ngIf=\"post?.tags?.length > 4\"\n (click)=\"post.expandedTags = !post.expandedTags\"\n class=\"fw-bold cursor-pointer m-1\"\n style=\"font-size: 1.2rem;\">...</span>\n </ng-container>\n </div>\n\n\n <div class=\"blog-view py-3 blog-list-write-view\">\n <ul class=\"d-flex\">\n <li>{{ post.view !== null ? post.view : '0' }} View</li>\n <li><a [routerLink]=\"['/resources/view', post.slug]\">Write Comment</a></li>\n <li>\n <a [routerLink]=\"['/resources/view', post.slug]\" aria-label=\"Blog\"><i class=\"far fa-heart\" aria-hidden=\"true\"></i></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!posts?.length && loaded\">\n <pw-no-data [withImage]=\"true\" message=\"We couldn't find any resources.\" > </pw-no-data>\n </ng-container>\n</div>\n","import { Component, Injector, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomToastService } from '@posiwise/common-services';\nimport { RecentPost, Resource, ResourceComment, TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\nimport { ResourceBlog } from '../../../shared/models/resource.model';\n\n@Component({\n selector: 'pw-post-read',\n templateUrl: './resources-read.component.html',\n styleUrls: ['./resources-read.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceReadComponent extends AppBaseComponent implements OnInit, OnDestroy {\n post: Resource;\n user: User;\n recentPosts: RecentPost[] = [];\n postComments: ResourceComment[] = [];\n\n slug: string;\n masterSubscriptionId: number;\n\n commentForm: UntypedFormGroup;\n\n userLoggedIn = false;\n buttonBusy = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly toastr: CustomToastService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n this.commentForm = ResourceBlog.getResourcePostsForm();\n }\n\n ngOnInit() {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n });\n }\n });\n }\n\n readingTime(text: string) {\n if (text) {\n const textContent = text.toString();\n const wordsPerMinute = 200;\n const noOfWords = textContent.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n this.post = { ...response, body: blogBody };\n this.postComments = response.entity_comments;\n this.getPosts(1, 4);\n });\n }\n\n private getPosts(page: number, pageSize: number) {\n this.resourceService\n .getPublicPosts(this.masterSubscriptionId, page, pageSize, '')\n .subscribe(response => {\n this.recentPosts = response.posts.filter(post => post.slug !== this.post.slug);\n });\n }\n\n onComment() {\n this.buttonBusy = true;\n const data = { ...this.commentForm.value };\n data.related_entity_id = this.post?.id;\n data.related_entity_type = 'Post';\n data.user_id = this.user?.id;\n this.resourceService\n .postComments(data)\n .subscribe(() => {\n this.getBlogItem(this.slug);\n this.commentForm.reset();\n this.toastr.success(this.translation.translate('Resource.Posts.CommentAdded'));\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n\n tagPost(selectedTag) {\n this.recentPosts = this.recentPosts.filter(element => {\n let filtered;\n if (element.tags?.length) {\n filtered = element.tags.filter(\n tag => tag.tag_category_id === selectedTag?.tag_category_id\n );\n\n return { element, filtered };\n }\n\n return {};\n });\n }\n\n trackByTagId(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByRecentPost(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByComment(_index: number, item: { id: number }) {\n return item.id;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-header/>\n<div class=\"read-post mt-5 pt-5\">\n <div class=\"show-blog\">\n <div class=\"row\">\n <!-- content -->\n <div class=\"col-12\">\n <ul class=\"d-flex align-items-center mb-4 position-relative\">\n <li>\n <a href=\"javascript:void(0);\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post?.author?.avatar\"\n [src]=\"post?.author?.avatar[0].url\"\n alt=\"author\" />\n <img *ngIf=\"!post?.author?.avatar\"\n height=\"45\"\n width=\"45\"\n src=\"/assets/img/icons/male.png\"\n alt=\"author\" /></a>\n </div>\n </a>\n </li>\n <li>\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post?.author?.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n </li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">{{\n post?.author.published_at\n }}</a>\n </li>\n <li>.</li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">\n {{ readingTime(post?.body) }}\n </a>\n </li>\n <li class=\"social-media\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n id=\"dropdownMenuLink2\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink2\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n </ul>\n <h2 class=\"mb-3\">{{ post?.title }}</h2>\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n\n <ul class=\"bottom-social-icons d-flex justify-content-between mt-5 border-top border-bottom py-3\">\n <li class=\"social-media-blog-page\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n id=\"dropdownMenuLink\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n <li>\n <ul>\n <li *ngFor=\"let tag of post?.tags; trackBy: trackByTagId\"\n (keydown.enter)=\"tagPost(tag)\"\n (click)=\"tagPost(tag)\">\n {{ tag.name }}\n </li>\n </ul>\n </li>\n </ul>\n <ul class=\"d-flex justify-content-between mt-3 views\">\n <li>\n <span>{{ post?.view || 0 }} views</span>\n </li>\n <li><i class=\"far fa-heart\" aria-hidden=\"true\"></i></li>\n </ul>\n </div>\n <!--content end -->\n </div>\n <!-- modal for share buttons -->\n <div class=\"modal fade\"\n id=\"exampleModal\"\n tabindex=\"-1\"\n aria-labelledby=\"exampleModalLabel\">\n <div class=\"modal-dialog modal-dialog-centered\" >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\"\n id=\"exampleModalLabel\">Share the post</h5>\n <button type=\"button\"\n class=\"btn-close float-end\"\n data-dismiss=\"modal\"\n aria-label=\"Close\">\n <span>&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <share-buttons theme=\"material-dark\"\n show=\"7\"></share-buttons>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\">\n Close\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- recent posts -->\n <div class=\"related-posts mt-5\">\n <ul class=\"d-flex justify-content-between\">\n <li>\n <h5>Recent Resources</h5>\n </li>\n <li><a [routerLink]=\"['/resources/view']\">See All</a></li>\n </ul>\n <div class=\"row mt-4\">\n <div class=\"col-sm-6 col-md-6 col-lg-4 col-xs-12 mb-2\"\n *ngFor=\"let recentPost of recentPosts; trackBy: trackByRecentPost\">\n <div class=\"recent-post\"\n [routerLink]=\"['/resources/view', recentPost.slug]\">\n <div class=\"blog-image\">\n <img [src]=\"recentPost.picture.url\"\n alt=\"Resource\" />\n </div>\n <h5 class=\"pt-4 blog-title ps-3 pe-3\">{{ recentPost?.title }}</h5>\n <div class=\"blog-view pt-3 ps-3 pe-3\">\n <p>{{ recentPost.view !== null ? recentPost.view : '0' }} View</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 mb-4\">\n <div class=\"col-12\">\n <form class=\"comments-sec\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\">\n <div class=\"col-12 pt-4\">\n <!-- Comment Massage -->\n <pw-input-container label=\"Write a response\"\n name=\"comment\"\n errorMsg=\"Please enter comment\">\n <textarea type=\"text\"\n class=\"form-control\"\n formControlName=\"comment\"></textarea>\n </pw-input-container>\n\n <div class=\"text-end mt-4\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in\">\n <a [routerLink]=\"['/login']\">Log in</a>\n to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n <div class=\"row mt-5 mb-5\">\n <div class=\"col-12\"\n *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"comment-post mt-2\">\n <img *ngIf=\"comment?.user?.avatar\"\n [src]=\"comment.user?.avatar[0]?.url\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\" />\n <img *ngIf=\"!comment?.user?.avatar\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n src=\"assets/img/icons/male.png\" />\n <small>{{ comment.user?.first_name ? comment.user?.first_name : '' }}\n {{ comment.user?.last_name ? comment.user?.last_name : '' }}\n </small>\n <p>{{ comment.comment }}</p>\n <p class=\"text-end comment-date\">{{ comment.created_at | date: 'dd/MM/yyyy' }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-white-paper-top-banner',\n templateUrl: './white-papers-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n './white-papers-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class WhitePaperTopBannerComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getTags();\n });\n }\n\n private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: 'White Papers' },\n this.subscriptionId || this.masterSubscriptionId\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\" *ngIf=\"isLoaded\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n <span [innerHTML]=\"blogPostTag?.title || 'White papers & Tools'\"></span>\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex flex-column justify-between h-100\">\n <div class=\"flex-grow-1\">\n <ng-container *ngIf=\"blogPostTag?.description && blogPostTag.description !== 'null' ; else defaultDescription\">\n <p class=\"intro\" [innerHTML]=\"blogPostTag.description\"></p>\n </ng-container>\n <ng-template #defaultDescription>\n <p class=\"intro\">\n If you like your insights practical and <br>\n your downloads actually useful - you’re <br>\n in the right place.\n </p>\n </ng-template>\n </div>\n </div>\n</div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"nce-math-img\" ></div>\n <img class=\"nce-laptop-img dyn-img\"\n [src]=\"(blogPostTag?.image?.url && !(blogPostTag?.image?.url.includes('no_image_uploaded_squared'))) ? blogPostTag?.image?.url : '/assets/img/resource/white-paper-women.png'\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n</section>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-white-papers',\n templateUrl: './white-papers.component.html'\n})\nexport class WhitePaperComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'White Papers');\n this.getPosts(1, 100);\n });\n }\n\n getPosts(page: number, pageSize: number) {\n this.resourceService\n .getPublicPosts(\n this.subscriptionId || this.masterSubscriptionId,\n page,\n pageSize,\n '',\n this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n this.posts = response.posts\n .filter(post =>\n post.tags?.some(\n tag => tag.tag_category_id === this.blogPostTag?.tag_category_id\n )\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n });\n }\n}\n","<pw-resource-header></pw-resource-header>\n\n<pw-white-paper-top-banner></pw-white-paper-top-banner>\n\n<pw-resource--vault *ngIf=\"blogPostTag?.tag_category_id\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [postSlice]=\"true\"></pw-resource--vault>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceBlogComponent } from './components/resource-blogs/resource-blog.component';\nimport { ResourceCaseStudiesComponent } from './components/resource-case-studies/resource-case-studies.component';\nimport { ResourceIntegrationComponent } from './components/resource-integration/resource-integration.component';\nimport { ResourcePostComponent } from './components/resource-post/resource-post.component';\nimport { ResourceReleaseNoteComponent } from './components/resource-release-notes/resource-release-notes.component';\nimport { ResourceVideoComponent } from './components/resource-videos/resource-videos.component';\nimport { ResourceWebinarComponent } from './components/resource-webinars/resource-webinars.component';\nimport { ResourceComponent } from './components/resources/resources.component';\nimport { ResourceHubComponent } from './components/resources-hub/resources-hub.component';\nimport { WhitePaperComponent } from './components/white-papers/white-papers.component';\n\n// These are the private routes. The public routes and modules needs to be defined in public.routes.ts\nconst routes: Routes = [\n {\n path: '',\n component: ResourceComponent,\n data: {\n title: 'Resources Library',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'hub',\n component: ResourceHubComponent,\n data: {\n title: 'Resources - Hub',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'blogs',\n component: ResourceBlogComponent,\n data: {\n title: 'Resources - Blogs',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'videos',\n component: ResourceVideoComponent,\n data: {\n title: 'Resources - Videos',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'integrations',\n component: ResourceIntegrationComponent,\n data: {\n title: 'Resources - Integrations',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'release-notes',\n component: ResourceReleaseNoteComponent,\n data: {\n title: 'Resources - Release Notes',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'events',\n component: ResourceWebinarComponent,\n data: {\n title: 'Resources - Events',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'white-papers',\n component: WhitePaperComponent,\n data: {\n title: 'Resources - White Papers',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'case-studies',\n component: ResourceCaseStudiesComponent,\n data: {\n title: 'Resources - Case Studies',\n permission: 'Pages.Blog'\n }\n },\n {\n path: 'view/:slug',\n component: ResourcePostComponent,\n data: {\n title: 'Resources - Post',\n permission: 'Pages.Blog'\n }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class BlogPublicRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AlphaPublicModule } from '@posiwise/alpha-module';\nimport { GoogleAnalyticsService } from '@posiwise/common-services';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { PublicModule } from '@posiwise/public-modules';\nimport { SharedComponentsModule } from '@posiwise/shared-components';\n\nimport { QuillModule } from 'ngx-quill';\nimport { ShareButtonsModule } from 'ngx-sharebuttons/buttons';\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\nimport { NgxUploaderModule } from 'ngx-uploader';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PaginatorModule } from 'primeng/paginator';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceService } from '../resource.service';\n\nimport { ResourceNoteCardComponent } from './components/reslease-note-card/release-note-card.component';\nimport { ResourceBlogComponent } from './components/resource-blogs/resource-blog.component';\nimport { ResourceBlogTopBannerComponent } from './components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component';\nimport { ResourceCardListComponent } from './components/resource-card-list/resource-card-list.component';\nimport { CaseStudyCardComponent } from './components/resource-case-studies/case-studies-cards/case-studies-cards.component';\nimport { ResourceCaseStudiesComponent } from './components/resource-case-studies/resource-case-studies.component';\nimport { ResourceCompanyCardComponent } from './components/resource-company-card/resource-company-card.component';\nimport { IntegrationTopBannerComponent } from './components/resource-integration/integration-top-banner/integration-top-banner.component';\nimport { ResourceIntegrationComponent } from './components/resource-integration/resource-integration.component';\nimport { RelatedResourcesComponent } from './components/resource-post/related-resources/related-resources.component';\nimport { ResourceCardComponent } from './components/resource-post/related-resources/resource-cards/resource-cards.component';\nimport { ResourcePostComponent } from './components/resource-post/resource-post.component';\nimport { ResourcePostDetailsComponent } from './components/resource-post/resource-post-details/resource-post-details.component';\nimport { ResourceReleaseNoteComponent } from './components/resource-release-notes/resource-release-notes.component';\nimport { ReleaseTopBannerComponent } from './components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component';\nimport { ResourceVaultComponent } from './components/resource-vault/resource-vault.component';\nimport { ResourceVideoCardComponent } from './components/resource-videos/resource-video-cards/resource-video-cards.component';\nimport { ResourceVideoComponent } from './components/resource-videos/resource-videos.component';\nimport { VideosTopBannerComponent } from './components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component';\nimport { ReplayEventCardComponent } from './components/resource-webinars/replay-event-cards/replay-event-cards.component';\nimport { ResourceWebinarComponent } from './components/resource-webinars/resource-webinars.component';\nimport { UpcomingEventCardComponent } from './components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component';\nimport { ResourceTagComponent } from './components/resources/resource-tags/resource-tags.component';\nimport { ResourceComponent } from './components/resources/resources.component';\nimport { VaultSectionComponent } from './components/resources/vault-section/vault-section.component';\nimport { ResourceHubComponent } from './components/resources-hub/resources-hub.component';\nimport { ResourceReadComponent } from './components/resources-read/resources-read.component';\nimport { TestimonialCardListComponent } from './components/testimonial-card/testimonial-card.component';\nimport { WhitePaperComponent } from './components/white-papers/white-papers.component';\nimport { WhitePaperTopBannerComponent } from './components/white-papers/white-papers-top-banner/white-papers-top-banner.component';\nimport { BlogPublicRoutingModule } from './resource-public.routing.module';\n\n@NgModule({\n declarations: [\n ResourceHubComponent,\n ResourceTagComponent,\n ResourceReadComponent,\n VaultSectionComponent,\n ResourceComponent,\n ResourcePostComponent,\n RelatedResourcesComponent,\n ResourceCardComponent,\n ResourcePostDetailsComponent,\n ResourceBlogComponent,\n ResourceVideoComponent,\n ResourceIntegrationComponent,\n IntegrationTopBannerComponent,\n ResourceBlogTopBannerComponent,\n WhitePaperTopBannerComponent,\n ReleaseTopBannerComponent,\n VideosTopBannerComponent,\n ResourceReleaseNoteComponent,\n ResourceWebinarComponent,\n WhitePaperComponent,\n ResourceCaseStudiesComponent,\n ResourceCardListComponent,\n TestimonialCardListComponent,\n ResourceNoteCardComponent,\n ResourceCompanyCardComponent,\n ResourceVaultComponent,\n ResourceVideoCardComponent,\n UpcomingEventCardComponent,\n ReplayEventCardComponent,\n CaseStudyCardComponent\n ],\n imports: [\n CommonModule,\n PipesModule,\n AlphaPublicModule,\n DropdownModule,\n PaginatorModule,\n SharedComponentsModule,\n NgxUploaderModule,\n BlogPublicRoutingModule,\n ShareButtonsModule,\n PublicModule,\n ShareIconsModule,\n QuillModule.forRoot(),\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ReactiveFormsModule,\n DirectivesModule\n ],\n providers: [ResourceService, GoogleAnalyticsService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourcePublicModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ResourcePublicModule } from './public/resource-public.module';\n\n@NgModule({\n imports: [ResourcePublicModule]\n})\nexport class ResourceModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ResourceService","i6","i7","i2","i3","i4","i5","i6.ResourceCardComponent","i7.ResourceBlogTopBannerComponent","i7.TestimonialCardListComponent","i8.CaseStudyCardComponent","i2.ResourceService","i8","i9.IntegrationTopBannerComponent","i10.ResourceNoteCardComponent","i11.ResourceCompanyCardComponent","i12","i9.ResourceCardComponent","i10","i9","i5.RelatedResourcesComponent","i6.ResourcePostDetailsComponent","i6.ReleaseTopBannerComponent","i7.ResourceNoteCardComponent","i6.VideosTopBannerComponent","i7.ResourceVideoCardComponent","i7.UpcomingEventCardComponent","i8.ReplayEventCardComponent","i4.ResourceTagComponent","i5.VaultSectionComponent","i8.ResourceVaultComponent","i9.ResourceVideoCardComponent","i10.UpcomingEventCardComponent","i11.CaseStudyCardComponent","i6.WhitePaperTopBannerComponent","i7.ResourceVaultComponent"],"mappings":"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"}