@osovitny/anatoly 3.20.47 → 3.21.1
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":"osovitny-anatoly.mjs","sources":["../../../projects/anatoly/src/lib/core/consts/storageKeys.ts","../../../projects/anatoly/src/lib/core/consts/core-settings.ts","../../../projects/anatoly/src/lib/data/base/api.service.ts","../../../projects/anatoly/src/lib/core/performance/stopwatch.ts","../../../projects/anatoly/src/lib/core/services/web-storage.service.ts","../../../projects/anatoly/src/lib/core/services/appcontext.service.ts","../../../projects/anatoly/src/lib/core/consts/app-settings.ts","../../../projects/anatoly/src/lib/core/consts/formats.ts","../../../projects/anatoly/src/lib/core/consts/ga.ts","../../../projects/anatoly/src/lib/core/is.ts","../../../projects/anatoly/src/lib/core/converts/convert.ts","../../../projects/anatoly/src/lib/core/converts/tz/tzTokenizeDate.ts","../../../projects/anatoly/src/lib/core/converts/tz/tzParseTimezone.ts","../../../projects/anatoly/src/lib/core/converts/dateConvert.ts","../../../projects/anatoly/src/lib/core/converts/xmlFormatter.ts","../../../projects/anatoly/src/lib/core/enums/billing.ts","../../../projects/anatoly/src/lib/core/enums/enums.ts","../../../projects/anatoly/src/lib/core/subs.ts","../../../projects/anatoly/src/lib/core/services/base/service.ts","../../../projects/anatoly/src/lib/core/go/go.service.ts","../../../projects/anatoly/src/lib/core/guid.ts","../../../projects/anatoly/src/lib/iam/storage.ts","../../../projects/anatoly/src/lib/iam/redirect.ts","../../../projects/anatoly/src/lib/iam/consts.ts","../../../projects/anatoly/src/lib/iam/utils.ts","../../../projects/anatoly/src/lib/iam/b2c/b2c.ts","../../../projects/anatoly/src/lib/iam/b2c/consts.ts","../../../projects/anatoly/src/lib/iam/b2c/index.ts","../../../projects/anatoly/src/lib/iam/services/auth.service.ts","../../../projects/anatoly/src/lib/core/logging/logging.service.ts","../../../projects/anatoly/src/lib/core/go/apps-go.service.ts","../../../projects/anatoly/src/lib/iam/guards/admin.guard.ts","../../../projects/anatoly/src/lib/iam/guards/authentication.guard.ts","../../../projects/anatoly/src/lib/iam/guards/index.ts","../../../projects/anatoly/src/lib/iam/exports.ts","../../../projects/anatoly/src/lib/core/services/loading.service.ts","../../../projects/anatoly/src/lib/core/interceptors/httpInterceptor.ts","../../../projects/anatoly/src/lib/core/guards/once-import.guard.ts","../../../projects/anatoly/src/lib/core/services/starter.service.ts","../../../projects/anatoly/src/lib/core/guards/starter.guard.ts","../../../projects/anatoly/src/lib/core/localization/localization.service.ts","../../../projects/anatoly/src/lib/core/localization/localize.pipe.ts","../../../projects/anatoly/src/lib/core/localization/localization.module.ts","../../../projects/anatoly/src/lib/core/localization/utils.ts","../../../projects/anatoly/src/lib/core/logging/globalErrorHandler.ts","../../../projects/anatoly/src/lib/core/notifications/alerts.ts","../../../projects/anatoly/src/lib/core/notifications/interfaces/notification.ts","../../../projects/anatoly/src/lib/core/notifications/services/notification-service.ts","../../../projects/anatoly/src/lib/core/services/browser.service.ts","../../../projects/anatoly/src/lib/core/services/dm.service.ts","../../../projects/anatoly/src/lib/core/services/google-analytics.service.ts","../../../projects/anatoly/src/lib/core/services/idle.service.ts","../../../projects/anatoly/src/lib/core/services/script.service.ts","../../../projects/anatoly/src/lib/core/services/message2user.service.ts","../../../projects/anatoly/src/lib/core/dom.ts","../../../projects/anatoly/src/lib/core/utils/qsutils.ts","../../../projects/anatoly/src/lib/core/utils/utils.ts","../../../projects/anatoly/src/lib/core/exports.ts","../../../projects/anatoly/src/lib/core/enums/index.ts","../../../projects/anatoly/src/lib/ui/components/base/components/component.ts","../../../projects/anatoly/src/lib/ui/directives/replacer/replacer.base.directive.ts","../../../projects/anatoly/src/lib/ui/directives/replacer/a-replacer.directive.ts","../../../projects/anatoly/src/lib/ui/components/identity/signup-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signup-button.component.html","../../../projects/anatoly/src/lib/billing/components/buttons/buyaccess-button.component.ts","../../../projects/anatoly/src/lib/billing/components/buttons/buyaccess-button.component.html","../../../projects/anatoly/src/lib/billing/components/buttons/subscribe-plan-button.component.ts","../../../projects/anatoly/src/lib/billing/components/buttons/subscribe-plan-button.component.html","../../../projects/anatoly/src/lib/billing/services/payments.service.ts","../../../projects/anatoly/src/lib/data/services/billing/promocodes-api.service.ts","../../../projects/anatoly/src/lib/billing/components/order-summary/order-summary.component.ts","../../../projects/anatoly/src/lib/billing/components/order-summary/order-summary.component.html","../../../projects/anatoly/src/lib/ui/directives/replacer/image-replacer.directive.ts","../../../projects/anatoly/src/lib/billing/components/payment-methods/payment-methods.component.ts","../../../projects/anatoly/src/lib/billing/components/payment-methods/payment-methods.component.html","../../../projects/anatoly/src/lib/billing/components/payment-options/payment-options.component.ts","../../../projects/anatoly/src/lib/billing/components/payment-options/payment-options.component.html","../../../projects/anatoly/src/lib/ui/components/base/components/edit.component.ts","../../../projects/anatoly/src/lib/ui/components/base/dialog.ts","../../../projects/anatoly/src/lib/data/services/billing/payments-api.service.ts","../../../projects/anatoly/src/lib/data/services/billing/subscriptions-api.service.ts","../../../projects/anatoly/src/lib/billing/services/billing.service.ts","../../../projects/anatoly/src/lib/billing/components/pm/braintree/braintree.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/braintree/braintree.component.html","../../../projects/anatoly/src/lib/billing/services/paypal-script.service.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-button.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-button.component.html","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-subscribe-button.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-subscribe-button.component.html","../../../projects/anatoly/src/lib/billing/components/pm/stripe/stripe.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/stripe/stripe.component.html","../../../projects/anatoly/src/lib/billing/components/exports.ts","../../../projects/anatoly/src/lib/billing/utils.ts","../../../projects/anatoly/src/lib/billing/exports.ts","../../../projects/anatoly/src/lib/data/base/grid/grid-read.service.ts","../../../projects/anatoly/src/lib/data/base/grid/grid-edit.service.ts","../../../projects/anatoly/src/lib/data/services/billing/currencies-api.service.ts","../../../projects/anatoly/src/lib/data/services/billing/currencies-storage.service.ts","../../../projects/anatoly/src/lib/data/services/billing/transactions-api.service.ts","../../../projects/anatoly/src/lib/data/services/core-api.service.ts","../../../projects/anatoly/src/lib/data/services/emails-api.service.ts","../../../projects/anatoly/src/lib/data/exports.ts","../../../projects/anatoly/src/lib/ui/components/base/components/enum-edit.component.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/page.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/edit.page.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/paged.page.ts","../../../projects/anatoly/src/lib/ui/components/base/list.ts","../../../projects/anatoly/src/lib/ui/components/card/card.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-header.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-header.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-body.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-body.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-footer.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-footer.component.html","../../../projects/anatoly/src/lib/ui/directives/native-element.directive.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/country/country.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/country/country.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/language/language.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/language/language.dropdownlist.html","../../../projects/anatoly/src/lib/ui/validation/validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/item-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/item-validation-summary.component.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/html-editor/defaultoptions.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/base-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.component.html","../../../projects/anatoly/src/lib/ui/components/check-icon/check-icon.component.ts","../../../projects/anatoly/src/lib/ui/components/check-icon/check-icon.component.html","../../../projects/anatoly/src/lib/ui/components/data-grid/control-panel.component.ts","../../../projects/anatoly/src/lib/ui/components/data-grid/control-panel.component.html","../../../projects/anatoly/src/lib/ui/components/datapager/datapager.component.ts","../../../projects/anatoly/src/lib/ui/components/datapager/datapager.component.html","../../../projects/anatoly/src/lib/ui/components/identity/signin-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signin-button.component.html","../../../projects/anatoly/src/lib/ui/components/identity/signout-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signout-button.component.html","../../../projects/anatoly/src/lib/ui/components/nodata/nodata.component.ts","../../../projects/anatoly/src/lib/ui/components/nodata/nodata.component.html","../../../projects/anatoly/src/lib/ui/components/no-mobile-support/no-mobile-support.component.ts","../../../projects/anatoly/src/lib/ui/components/no-mobile-support/no-mobile-support.component.html","../../../projects/anatoly/src/lib/ui/components/message2User/message2user.component.ts","../../../projects/anatoly/src/lib/ui/components/message2User/message2User.component.html","../../../projects/anatoly/src/lib/ui/components/spinners/loading/loading.component.ts","../../../projects/anatoly/src/lib/ui/components/spinners/loading/loading.component.html","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/spinkits.ts","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/pagespinner.component.ts","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/pagespinner.component.html","../../../projects/anatoly/src/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.ts","../../../projects/anatoly/src/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.html","../../../projects/anatoly/src/lib/ui/components/urlslug/urlslug.component.ts","../../../projects/anatoly/src/lib/ui/components/urlslug/urlslug.component.html","../../../projects/anatoly/src/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.ts","../../../projects/anatoly/src/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.html","../../../projects/anatoly/src/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.ts","../../../projects/anatoly/src/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.html","../../../projects/anatoly/src/lib/ui/components/exports.ts","../../../projects/anatoly/src/lib/ui/validation/form-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/form-validation-summary.component.html","../../../projects/anatoly/src/lib/ui/forms/contact-us/contact-us.ts","../../../projects/anatoly/src/lib/ui/forms/contact-us/contact-us.html","../../../projects/anatoly/src/lib/ui/dialogs/contact-us/contact-us.dialog.ts","../../../projects/anatoly/src/lib/ui/dialogs/contact-us/contact-us.dialog.html","../../../projects/anatoly/src/lib/ui/dialogs/exports.ts","../../../projects/anatoly/src/lib/ui/directives/hover.directive.ts","../../../projects/anatoly/src/lib/ui/directives/exports.ts","../../../projects/anatoly/src/lib/ui/forms/components/address/address.component.ts","../../../projects/anatoly/src/lib/ui/forms/components/address/address.component.html","../../../projects/anatoly/src/lib/ui/forms/components/company/company.component.ts","../../../projects/anatoly/src/lib/ui/forms/components/company/company.component.html","../../../projects/anatoly/src/lib/ui/forms/exports.ts","../../../projects/anatoly/src/lib/ui/pipes/filesize.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/replace-text.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/safeHtml.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/exports.ts","../../../projects/anatoly/src/lib/ui/validation/exports.ts","../../../projects/anatoly/src/lib/ui/exports.ts","../../../projects/anatoly/src/lib/core/core.module.ts","../../../projects/anatoly/src/lib/data/data.module.ts","../../../projects/anatoly/src/lib/iam/configs.ts","../../../projects/anatoly/src/lib/iam/iam.module.ts","../../../projects/anatoly/src/lib/iam/pages/signin.page.ts","../../../projects/anatoly/src/lib/iam/pages/signout.page.ts","../../../projects/anatoly/src/lib/iam/pages/signup.page.ts","../../../projects/anatoly/src/lib/iam/iam-pages.routes.ts","../../../projects/anatoly/src/lib/iam/iam-pages.module.ts","../../../projects/anatoly/src/lib/external/fa.module.ts","../../../projects/anatoly/src/lib/external/kendo.module.ts","../../../projects/anatoly/src/lib/ui/components/index.ts","../../../projects/anatoly/src/lib/ui/dialogs/index.ts","../../../projects/anatoly/src/lib/ui/directives/index.ts","../../../projects/anatoly/src/lib/ui/forms/index.ts","../../../projects/anatoly/src/lib/ui/pipes/index.ts","../../../projects/anatoly/src/lib/ui/validation/index.ts","../../../projects/anatoly/src/lib/ui/ui.module.ts","../../../projects/anatoly/src/lib/billing/components/index.ts","../../../projects/anatoly/src/lib/billing/billing.module.ts","../../../projects/anatoly/src/lib/core/services/app.service.ts","../../../projects/anatoly/src/lib/anatoly.module.ts","../../../projects/anatoly/src/public-api.ts","../../../projects/anatoly/src/osovitny-anatoly.ts"],"sourcesContent":["/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const SessionStorageKeys = {\r\n appCoreSettings: 'appCoreSettings',\r\n appMSALSettings: 'appMSALSettings'\r\n};\r\n\r\nexport const AppContextStorageKeys = {\r\n version: 'version',\r\n currency: 'currency',\r\n\r\n //Lists\r\n countries: 'countries',\r\n languages: 'languages',\r\n timezones: 'timezones',\r\n usStates: 'usStates'\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Examples:\r\n https://github.com/microsoft/TypeScript/blob/main/src/server/editorServices.ts\r\n https://github.com/microsoft/TypeScript/blob/main/src/compiler/core.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { SessionStorageKeys } from \"./storageKeys\";\r\n\r\nexport function getAppCoreSettings() {\r\n const json = sessionStorage.getItem(SessionStorageKeys.appCoreSettings);\r\n return json ? JSON.parse(json) : null;\r\n}\r\n\r\nexport function resetAppCoreSettings() {\r\n AppCoreSettings = getAppCoreSettings();\r\n\r\n let isDevMode = `${AppCoreSettings?.isDevMode}`;\r\n\r\n AppVersion = `${AppCoreSettings?.version}`;\r\n IsDevMode = (isDevMode && (isDevMode == 'True' || isDevMode == 'true'));\r\n IsProdMode = !IsDevMode;\r\n ClientApps = AppCoreSettings?.clientApps; \r\n}\r\n\r\nexport function formatUrl(url: string): string {\r\n let newUrl = url;\r\n\r\n if (url) {\r\n if (url.startsWith(\"http\")) {\r\n return url;\r\n }\r\n\r\n const isCDNEnabled = AppCoreSettings.cdn?.enabled;\r\n const cdnUrl = AppCoreSettings.cdn?.url;\r\n \r\n newUrl = isCDNEnabled ? cdnUrl + url : url;\r\n }\r\n\r\n return newUrl;\r\n}\r\n\r\nexport let AppCoreSettings;\r\nexport let AppVersion;\r\nexport let IsDevMode: boolean = true;\r\nexport let IsProdMode: boolean = !IsDevMode;\r\nexport let ClientApps;\r\n\r\n//Set global vars\r\ndeclare const g_AppName: any;\r\ndeclare const g_ApiUrl: any;\r\nexport const AppName = g_AppName;\r\nexport const ApiUrl = g_ApiUrl;\r\n\r\nresetAppCoreSettings();\r\n\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../core/consts/core-settings';\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class ApiServiceBase {\r\n private _httpNoInterceptors: HttpClient;\r\n\r\n //Protected\r\n protected baseUrl: string;\r\n protected ignoreInterceptors: boolean = false;\r\n\r\n constructor(protected http: HttpClient) { \r\n this._httpNoInterceptors = new HttpClient(inject(HttpBackend));\r\n }\r\n\r\n get _http(): HttpClient {\r\n return this.ignoreInterceptors ? this._httpNoInterceptors : this.http;\r\n }\r\n\r\n private serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : \"\";\r\n }\r\n\r\n //api\r\n get<T>(action: string, data?: any, responseType?): Observable<T> {\r\n if (!responseType) {\r\n responseType = 'json';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.get<T>(url, { responseType: responseType }).pipe(\r\n map(res => <T>res)\r\n );\r\n }\r\n\r\n post(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}`;\r\n return this._http.post(url, data, { responseType: responseType });\r\n }\r\n\r\n postQS(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.post(url, null, { responseType: responseType });\r\n }\r\n\r\n delete(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.delete(url, { responseType: responseType });\r\n }\r\n\r\n //gets\r\n getExternalTextFile(url: string): Observable<any> {\r\n return this._http.get(url);\r\n }\r\n\r\n //Json Files\r\n private __getJsonFile(url: string): Observable<any> {\r\n const version = AppCoreSettings.version;\r\n const isCDNEnabled = AppCoreSettings.cdn.enabled;\r\n const cdnUrl = AppCoreSettings.cdn.url;\r\n //const cdnSasToken = AppCoreSettings.cdn.sasToken;\r\n\r\n if (isCDNEnabled) {\r\n url = (url[0] == '/') ? cdnUrl + url : cdnUrl + '/' + url;\r\n }\r\n else {\r\n url = url + '?v=' + version;\r\n }\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n getLibJsonFile(fileName: string): Observable<any> {\r\n const url = AppCoreSettings.assetsLibUrl + '/jsons';\r\n return this.__getJsonFile(url + \"/\" + fileName);\r\n }\r\n\r\n getJsonFile(fileName: string): Observable<any> {\r\n const url = AppCoreSettings.assetsUrl + '/jsons';\r\n return this.__getJsonFile(url + \"/\" + fileName);\r\n }\r\n\r\n getExternalJsonFile(libname: string, fileName: string): Observable<any> {\r\n const url = AppCoreSettings.assetsExternalUrl + \"/\" + libname + \"/jsons\";\r\n return this.__getJsonFile(url + \"/\" + fileName);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Apr 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Stopwatch {\r\n private name;\r\n private startTime;\r\n private stopTime;\r\n private running;\r\n private performance;\r\n\r\n constructor(name) {\r\n this.name = name;\r\n this.startTime = 0;\r\n this.stopTime = 0;\r\n this.running = false;\r\n this.performance = !!window.performance;\r\n\r\n console.log(this.name + ' started.');\r\n }\r\n\r\n private currentTime() {\r\n return this.performance ? window.performance.now() : new Date().getTime();\r\n }\r\n\r\n start() {\r\n this.startTime = this.currentTime();\r\n this.running = true;\r\n }\r\n\r\n stop() {\r\n this.stopTime = this.currentTime();\r\n this.running = false;\r\n }\r\n\r\n getElapsedMilliseconds() {\r\n if (this.running) {\r\n this.stopTime = this.currentTime();\r\n }\r\n\r\n return this.stopTime - this.startTime;\r\n }\r\n\r\n getElapsedSeconds() {\r\n return this.getElapsedMilliseconds() / 1000;\r\n }\r\n\r\n printElapsedAsMilliseconds() {\r\n let elapsed = this.getElapsedMilliseconds();\r\n console.log(`${this.name} stopped. Execution time: ${elapsed} ms`);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Injectable} from '@angular/core';\r\n\r\nclass WebStorageService {\r\n storage: Storage;\r\n\r\n constructor(storage: string) {\r\n this.storage = storage === 'local' || storage === 'localStorage' ? localStorage : sessionStorage;\r\n }\r\n\r\n setItem(key, value) {\r\n this.storage.setItem(key, value);\r\n }\r\n\r\n setObject(key, value) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n getItem(key) {\r\n return this.storage.getItem(key);\r\n }\r\n\r\n getObject(key) {\r\n let value = this.storage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(value);\r\n }\r\n\r\n remove(key) {\r\n this.storage.removeItem(key);\r\n }\r\n\r\n clear() {\r\n this.storage.clear();\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class LocalStorageService extends WebStorageService {\r\n constructor() {\r\n super('localStorage');\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class SessionStorageService extends WebStorageService {\r\n constructor() {\r\n super('sessionStorage');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Subscription, Observable, forkJoin } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n//App\r\nimport { ApiUrl } from '../consts/core-settings';\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { LocalStorageService, SessionStorageService } from './web-storage.service'\r\nimport { Stopwatch } from '../performance/stopwatch';\r\nimport { AppContextStorageKeys } from '../consts/storageKeys';\r\n\r\n@Injectable()\r\nexport class AppContextService extends ApiServiceBase {\r\n private storageKeyName = 'appContext';\r\n private subscription: Subscription = null;\r\n\r\n //updated\r\n private _updated = new BehaviorSubject<any>(null);\r\n readonly updated$ = this._updated.asObservable();\r\n\r\n //userUpdated\r\n private _userUpdated = new BehaviorSubject<any>(null);\r\n readonly userUpdated$ = this._userUpdated.asObservable();\r\n\r\n //standardJsonFilesLoaded\r\n private _standardJsonFilesLoaded = new BehaviorSubject<any>(null);\r\n readonly standardJsonFilesLoaded$ = this._standardJsonFilesLoaded.asObservable(); \r\n\r\n constructor(protected http: HttpClient, protected localStorage: LocalStorageService, protected sessionStorage: SessionStorageService) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/app`;\r\n this.internalInit();\r\n }\r\n\r\n private internalInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n\r\n this.contextUpdated(this.current);\r\n this.updated$.subscribe((context) => {\r\n this.contextUpdated(context);\r\n });\r\n }\r\n\r\n protected setDefaults?() : void;\r\n protected setValues?() : void;\r\n protected contextUpdated?(context) : void;\r\n\r\n //fires\r\n private fireUpdated(data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this._updated.next(data);\r\n }\r\n\r\n protected fireUserUpdated() {\r\n this._userUpdated.next(null);\r\n }\r\n\r\n private fireStandardJsonFilesLoaded() {\r\n this._standardJsonFilesLoaded.next(null);\r\n } \r\n\r\n //API\r\n private getCountriesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'countries.json');\r\n } \r\n\r\n private getLanguagesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'languages.json');\r\n } \r\n\r\n private getTimezonesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'timezones.json');\r\n }\r\n\r\n private getUSStatesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'usStates.json');\r\n }\r\n\r\n //Session\r\n private getCurrent4Session() {\r\n return this.sessionStorage.getObject(this.storageKeyName);\r\n }\r\n\r\n private setCurrent2Session(value: any) {\r\n this.sessionStorage.setObject(this.storageKeyName, value);\r\n }\r\n\r\n private dataReceived(data) {\r\n this.current = data;\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n\r\n private getCurrentContext() {\r\n if (this.subscription != null) {\r\n return;\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppContextService: Requesting a new AppContext\");\r\n stopwatch.start();\r\n\r\n this.subscription = this.get('getCurrentContext', null).subscribe({\r\n next: (data) => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n this.dataReceived(data);\r\n }\r\n });\r\n }\r\n\r\n private updateCurrentIfExpired() {\r\n let context = this.getCurrent4Session();\r\n\r\n if (!context) {\r\n return;\r\n }\r\n\r\n let shouldBeUpdated = false;\r\n let lr = context.lastRequested;\r\n\r\n if (lr) {\r\n let now = new Date();\r\n let lastRequested = new Date(context.lastRequested);\r\n let in60Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(),\r\n lastRequested.getHours(), lastRequested.getMinutes() + 60, 0, 0);\r\n\r\n if (in60Mins.getTime() < now.getTime()) {\r\n shouldBeUpdated = true;\r\n }\r\n }\r\n else {\r\n shouldBeUpdated = true;\r\n }\r\n\r\n if (shouldBeUpdated) {\r\n this.updateCurrent();\r\n }\r\n }\r\n\r\n //Public\r\n init(context = null) {\r\n if (context) {\r\n this.current = context;\r\n }\r\n\t}\r\n\r\n loadStandardJsonFiles(): Observable<any> {\r\n let countries = this.countries;\r\n let languages = this.languages;\r\n let timezones = this.timezones;\r\n let usStates = this.usStates;\r\n\r\n if (countries && languages && timezones && usStates) {\r\n //VadimOS: that means NO action requried, just we have everything in place\r\n return null;\r\n }\r\n\r\n let countries$ = this.getCountriesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.countries = data;\r\n }\r\n }));\r\n\r\n let languages$ = this.getLanguagesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.languages = data;\r\n }\r\n }));\r\n\r\n let timezones$ = this.getTimezonesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.timezones = data;\r\n }\r\n })); \r\n\r\n let usStates$ = this.getUSStatesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.usStates = data;\r\n }\r\n })); \r\n\r\n let tasks$ = forkJoin([countries$, languages$, timezones$, usStates$]);\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppContextService: loading standard json files\");\r\n stopwatch.start();\r\n\r\n return tasks$.pipe(tap(() => {\r\n this.fireStandardJsonFilesLoaded();\r\n\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds(); \r\n }));\r\n } \r\n\r\n loadRequiredJsonFiles(): Observable<any> {\r\n return null;\r\n }\r\n\r\n loadRequiredItems(): Observable<any> {\r\n return null;\r\n }\r\n\r\n updateCurrent() {\r\n this.getCurrentContext();\r\n }\r\n\r\n //Storage\r\n clearLocalStorage() {\r\n\t\tthis.localStorage.clear();\r\n\t}\r\n\r\n\tclearSessionStorage() {\r\n\t\tthis.sessionStorage.clear();\r\n\t}\r\n\r\n clearWebStorage() {\r\n\t\tthis.clearLocalStorage();\r\n\t\tthis.clearSessionStorage();\r\n\t}\r\n\r\n //current\r\n public get current() {\r\n this.updateCurrentIfExpired();\r\n return this.getCurrent4Session();\r\n }\r\n public set current(value: any) {\r\n this.setCurrent2Session(value);\r\n this.fireUpdated(value);\r\n }\r\n\r\n //user\r\n\tpublic get user() {\r\n\t\tlet current = this.current;\r\n\t\treturn current?.user;\r\n\t}\r\n\r\n /* Storage Caching ----------------------------------------------------------BEGIN */\r\n //version => localStorage\r\n public get version() {\r\n return this.localStorage.getObject(AppContextStorageKeys.version);\r\n }\r\n public set version(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.version, value);\r\n }\r\n\r\n //currency => localStorage\r\n public get currency() {\r\n return this.localStorage.getObject(AppContextStorageKeys.currency);\r\n }\r\n public set currency(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.currency, value);\r\n }\r\n public clearCurrency() {\r\n this.localStorage.remove(AppContextStorageKeys.currency);\r\n }\r\n\r\n //countries => localStorage\r\n public get countries() {\r\n return this.localStorage.getObject(AppContextStorageKeys.countries);\r\n }\r\n public set countries(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.countries, value);\r\n }\r\n public clearCountries() {\r\n this.localStorage.remove(AppContextStorageKeys.countries);\r\n }\r\n\r\n //languages => localStorage\r\n public get languages() {\r\n return this.localStorage.getObject(AppContextStorageKeys.languages);\r\n }\r\n public set languages(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.languages, value);\r\n }\r\n public clearLanguages() {\r\n this.localStorage.remove(AppContextStorageKeys.languages);\r\n }\r\n\r\n //timezones => localStorage\r\n public get timezones() {\r\n return this.localStorage.getObject(AppContextStorageKeys.timezones);\r\n }\r\n public set timezones(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.timezones, value);\r\n }\r\n public clearTimezones() {\r\n this.localStorage.remove(AppContextStorageKeys.timezones);\r\n } \r\n\r\n //usStates => localStorage\r\n public get usStates() {\r\n return this.localStorage.getObject(AppContextStorageKeys.usStates);\r\n }\r\n public set usStates(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.usStates, value);\r\n }\r\n public clearUSStates() {\r\n this.localStorage.remove(AppContextStorageKeys.usStates);\r\n } \r\n /* Storage Caching ----------------------------------------------------------END */\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { AppName, ClientApps } from \"./core-settings\";\r\n\r\nexport function getAppSettingsById(id) {\r\n let apps = ClientApps;\r\n\r\n if (apps && id) {\r\n for (let i = 0; i < apps.length; i++) {\r\n let app = apps[i];\r\n\r\n if (app.id == id) {\r\n return app;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getAppSettingsByName(name) {\r\n let apps = ClientApps;\r\n\r\n if (apps && name) {\r\n for (let i = 0; i < apps.length; i++) {\r\n let app = apps[i];\r\n\r\n if (app.name == name) {\r\n return app;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport interface ICurrentApp {\r\n id: number;\r\n root: string;\r\n\r\n //ApplicationOne\r\n one: any;\r\n oneUrl: string;\r\n}\r\n\r\nexport function getCurrentApp(): ICurrentApp {\r\n let appSettings = getAppSettingsByName(AppName);\r\n let appOne = getAppSettingsById(1);\r\n\r\n if (!appSettings || !appOne) {\r\n return null;\r\n }\r\n \r\n return {\r\n id: appSettings.id,\r\n root: appSettings.root,\r\n\r\n one: appOne,\r\n oneUrl: appOne?.baseUrl + appOne?.root\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const dateTimeFormats = {\r\n medium: 'dd MMM yyyy HH:mm'\r\n};\r\n\r\nexport const dateFormats = {\r\n medium: \"dd MMM yyyy\",\r\n short: \"dd/MM/yyyy\"\r\n};\r\n\r\nexport const timeFormats = {\r\n medium: \"HH:mm:ss\",\r\n short: \"HH:mm\"\r\n};\r\n","\r\n\r\n/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const GAEvents = {\r\n login: {\r\n signin: 'osa_login_signin',\r\n signin_success: 'osa_login_signin_success',\r\n signup: 'osa_login_signup',\r\n signup_success: 'osa_login_signup_success'\r\n }\r\n};\r\n\r\nexport const GABillingEvents = {\r\n payment: 'osa_billing_payment'\r\n};\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 09 Feb 2024\r\n\r\n Sources:\r\n https://playcode.io/javascript\r\n https://github.com/date-fns/date-fns/blob/main/src/isDate/index.ts\r\n https://github.com/date-fns/date-fns/blob/main/src/isValid/index.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class is {\r\n /**\r\n * @name isDate\r\n * @summary Is the given value a date?\r\n */\r\n public static date(value) {\r\n return (\r\n value instanceof Date ||\r\n (typeof value === \"object\" && Object.prototype.toString.call(value) === \"[object Date]\")\r\n );\r\n }\r\n\r\n /**\r\n * @name isDateValid\r\n * @summary Is the given date valid?\r\n */\r\n public static dateValid(date): boolean {\r\n if (!is.date(date) && typeof date !== \"number\") {\r\n return false;\r\n }\r\n\r\n let d = new Date(date);\r\n return !isNaN(Number(d));\r\n }\r\n\r\n public static dateInvalid(date): boolean {\r\n return !is.dateValid(date);\r\n }\r\n\r\n public static objectNullOrEmpty(obj) {\r\n return !obj || Object.keys(obj).length == 0;\r\n }\r\n\r\n public static string(value) {\r\n return (typeof value === 'string' || value instanceof String);\r\n }\r\n\r\n public static emptyString(value) {\r\n return (is.string(value) && (value.length == 0));\r\n }\r\n\r\n public static notEmptyString(value) {\r\n return (is.string(value) && (value.length > 0));\r\n }\r\n\r\n public static number(value) {\r\n return (typeof value === 'number');\r\n }\r\n\r\n public static boolean(value) {\r\n return (typeof value === 'boolean');\r\n }\r\n\r\n public static array(value) {\r\n return (value instanceof Array);\r\n }\r\n\r\n public static emptyArray(value) {\r\n return (is.array(value) && (value.length == 0));\r\n }\r\n\r\n public static notEmptyArray(value) {\r\n return (is.array(value) && (value.length > 0));\r\n }\r\n\r\n public static undefined(value) {\r\n return (typeof value === 'undefined');\r\n }\r\n}\r\n\r\n/*\r\nis = {\r\n DONE string: function (obj) { return (typeof obj === 'string'); },\r\n DONE emptyString: function (obj) { return (is.string(obj) && (obj.length == 0)); },\r\n DONE nonEmptyString: function (obj) { return (is.string(obj) && (obj.length > 0)); },\r\n DONE number: function (obj) { return (typeof obj === 'number'); },\r\n DONE bool: function (obj) { return (typeof obj === 'boolean'); },\r\n DONE array: function (obj) { return (obj instanceof Array); },\r\n DONE emptyArray: function (obj) { return (is.array(obj) && (obj.length == 0)); },\r\n DONE notEmptyArray: function (obj) { return (is.array(obj) && (obj.length > 0)); },\r\n DONE undefined: function (obj) { return (typeof obj === 'undefined'); },\r\n\r\n 'null': function (obj) { return (obj === null); },\r\n notNull: function (obj) { return (obj !== null); },\r\n invalid: function (obj) { return (is['null'](obj) || is.undefined(obj)); },\r\n valid: function (obj) { return (!is['null'](obj) && !is.undefined(obj)); },\r\n\r\n document: function (obj) { return (obj === document); },\r\n window: function (obj) { return (obj === window); },\r\n element: function (obj) { return (obj instanceof HTMLElement); },\r\n event: function (obj) { return (obj instanceof Event); },\r\n link: function (obj) { return (is.element(obj) && (obj.tagName == 'A')); }\r\n};\r\n*/\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 June 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { is } from \"../is\";\r\n\r\nexport class Convert {\r\n private static pad(number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n\r\n public static enumToString(enumeration, value) {\r\n for (let k in enumeration) if (enumeration[k] == value) return k;\r\n\r\n return null;\r\n }\r\n\r\n public static enumToArray(enumeration, valueAsInt = true, notIncludes?) {\r\n const notIncludeFiler = (value) => {\r\n if (isNaN(Number(value))) {\r\n return false;\r\n }\r\n\r\n if (notIncludes) {\r\n for (let i in notIncludes) {\r\n if (notIncludes[i] == value)\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (valueAsInt) {\r\n return Object.keys(enumeration)\r\n .filter(notIncludeFiler)\r\n .map(key => ({\r\n value: parseInt(key),\r\n text: enumeration[key]\r\n }));\r\n }\r\n else {\r\n return Object.keys(enumeration)\r\n .filter(notIncludeFiler)\r\n .map(key => ({\r\n value: key,\r\n text: enumeration[key]\r\n }));\r\n }\r\n }\r\n\r\n public static stringToArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public static stringToIntArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element).map(value => parseInt(value));\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public static company2String(comp:any):string {\r\n let company = JSON.parse(comp);\r\n if(company)\r\n {\r\n return `${company.name} ${company.phone} ${company.email} ${company.websiteUrl}`;\r\n }\r\n }\r\n\r\n public static address2String(adr:any):string {\r\n let address = JSON.parse(adr);\r\n return `${address.street} ${address.street2} ${address.city} ${address.stateOrRegion} ${address.zipcode} ${address.country}`;\r\n }\r\n\r\n public static stringToBoolean(value) {\r\n if (value) {\r\n if (is.boolean(value)){\r\n return value;\r\n }\r\n\r\n if (is.string(value)){\r\n switch (value.toLowerCase().trim()) {\r\n case \"true\":\r\n case \"yes\":\r\n case \"1\":\r\n return true;\r\n \r\n case \"false\":\r\n case \"no\":\r\n case \"0\":\r\n case null:\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n/**\r\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\r\n * `date` as it will be rendered in the `timeZone`.\r\n */\r\nexport function tzTokenizeDate(date, timeZone) {\r\n var dtf = getDateTimeFormat(timeZone)\r\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\r\n}\r\n\r\nvar typeToPos = {\r\n year: 0,\r\n month: 1,\r\n day: 2,\r\n hour: 3,\r\n minute: 4,\r\n second: 5,\r\n}\r\n\r\nfunction partsOffset(dtf, date) {\r\n try {\r\n var formatted = dtf.formatToParts(date)\r\n var filled = []\r\n for (var i = 0; i < formatted.length; i++) {\r\n var pos = typeToPos[formatted[i].type]\r\n\r\n if (pos >= 0) {\r\n filled[pos] = parseInt(formatted[i].value, 10)\r\n }\r\n }\r\n return filled\r\n } catch (error) {\r\n if (error instanceof RangeError) {\r\n return [NaN]\r\n }\r\n throw error\r\n }\r\n}\r\n\r\nfunction hackyOffset(dtf, date) {\r\n var formatted = dtf.format(date).replace(/\\u200E/g, '')\r\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted)\r\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\r\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\r\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\r\n}\r\n\r\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\r\n// to get deterministic local date/time output according to the `en-US` locale which\r\n// can be used to extract local time parts as necessary.\r\nvar dtfCache = {}\r\nfunction getDateTimeFormat(timeZone) {\r\n if (!dtfCache[timeZone]) {\r\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\r\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\r\n hour12: false,\r\n timeZone: 'America/New_York',\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n }).format(new Date('2014-06-25T04:00:00.123Z'))\r\n\r\n var hourCycleSupported =\r\n testDateFormatted === '06/25/2014, 00:00:00' ||\r\n testDateFormatted === '06/25/2014 00:00:00'\r\n\r\n dtfCache[timeZone] = hourCycleSupported\r\n ? new Intl.DateTimeFormat('en-US', {\r\n hour12: false,\r\n timeZone: timeZone,\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n })\r\n : new Intl.DateTimeFormat('en-US', {\r\n hourCycle: 'h23',\r\n timeZone: timeZone,\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n })\r\n }\r\n\r\n return dtfCache[timeZone]\r\n}\r\n\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { tzTokenizeDate } from \"./tzTokenizeDate\"\r\n\r\nexport function tzParseTimezone(timezoneString, date, isUtcDate) {\r\n var token\r\n var absoluteOffset\r\n\r\n // Empty string\r\n if (!timezoneString) {\r\n return 0\r\n }\r\n\r\n // Z\r\n token = patterns.timezoneZ.exec(timezoneString)\r\n if (token) {\r\n return 0\r\n }\r\n\r\n var hours\r\n\r\n // ±hh\r\n token = patterns.timezoneHH.exec(timezoneString)\r\n if (token) {\r\n hours = parseInt(token[1], 10)\r\n\r\n if (!validateTimezone(hours)) {\r\n return NaN\r\n }\r\n\r\n return -(hours * MILLISECONDS_IN_HOUR)\r\n }\r\n\r\n // ±hh:mm or ±hhmm\r\n token = patterns.timezoneHHMM.exec(timezoneString)\r\n if (token) {\r\n hours = parseInt(token[1], 10)\r\n var minutes = parseInt(token[2], 10)\r\n\r\n if (!validateTimezone(hours, minutes)) {\r\n return NaN\r\n }\r\n\r\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\r\n return hours > 0 ? -absoluteOffset : absoluteOffset\r\n }\r\n\r\n // IANA time zone\r\n if (isValidTimezoneIANAString(timezoneString)) {\r\n date = new Date(date || Date.now())\r\n var utcDate = isUtcDate ? date : toUtcDate(date);\r\n var offset = calcOffset(utcDate, timezoneString);\r\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString)\r\n\r\n return -fixedOffset\r\n }\r\n\r\n return NaN\r\n}\r\n\r\n\r\nvar MILLISECONDS_IN_HOUR = 3600000\r\nvar MILLISECONDS_IN_MINUTE = 60000\r\n\r\nvar patterns = {\r\n timezone: /([Z+-].*)$/,\r\n timezoneZ: /^(Z)$/,\r\n timezoneHH: /^([+-]\\d{2})$/,\r\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/,\r\n}\r\n\r\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\r\n var utcDate = new Date(0)\r\n utcDate.setUTCFullYear(fullYear, month, day)\r\n utcDate.setUTCHours(hour, minute, second, millisecond)\r\n return utcDate\r\n}\r\n\r\nfunction toUtcDate(date) {\r\n return newDateUTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n date.getMilliseconds()\r\n )\r\n}\r\n\r\nfunction calcOffset(date, timezoneString) {\r\n var tokens = tzTokenizeDate(date, timezoneString)\r\n\r\n // ms dropped because it's not provided by tzTokenizeDate\r\n var asUTC = newDateUTC(\r\n tokens[0],\r\n tokens[1] - 1,\r\n tokens[2],\r\n tokens[3] % 24,\r\n tokens[4],\r\n tokens[5],\r\n 0\r\n ).getTime()\r\n\r\n var asTS = date.getTime()\r\n var over = asTS % 1000\r\n asTS -= over >= 0 ? over : 1000 + over\r\n return asUTC - asTS\r\n}\r\n\r\nfunction fixOffset(date, offset, timezoneString) {\r\n var localTS = date.getTime()\r\n\r\n // Our UTC time is just a guess because our offset is just a guess\r\n var utcGuess = localTS - offset\r\n\r\n // Test whether the zone matches the offset for this ts\r\n var o2 = calcOffset(new Date(utcGuess), timezoneString)\r\n\r\n // If so, offset didn't change, and we're done\r\n if (offset === o2) {\r\n return offset\r\n }\r\n\r\n // If not, change the ts by the difference in the offset\r\n utcGuess -= o2 - offset\r\n\r\n // If that gives us the local time we want, we're done\r\n var o3 = calcOffset(new Date(utcGuess), timezoneString)\r\n if (o2 === o3) {\r\n return o2\r\n }\r\n\r\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\r\n return Math.max(o2, o3)\r\n}\r\n\r\nfunction validateTimezone(hours, minutes = null) {\r\n return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59))\r\n}\r\n\r\nvar validIANATimezoneCache = {}\r\nfunction isValidTimezoneIANAString(timeZoneString) {\r\n if (validIANATimezoneCache[timeZoneString]) return true\r\n try {\r\n new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString })\r\n validIANATimezoneCache[timeZoneString] = true\r\n return true\r\n } catch (error) {\r\n return false\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 09 Feb 2024\r\n\r\n Source:\r\n https://github.com/date-fns/date-fns/blob/main/src/toDate/index.ts\r\n\r\n tz:\r\n https://www.npmjs.com/package/date-fns-tz\r\n https://github.com/marnusw/date-fns-tz/blob/master/src/utcToZonedTime/index.js\r\n https://github.com/marnusw/date-fns-tz/blob/master/src/_lib/tzParseTimezone/index.js\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { tzParseTimezone } from \"./tz/tzParseTimezone\";\r\nimport { format } from 'date-fns';\r\n\r\nexport class DateConvert {\r\n public static toDate(date: Date | number | string): Date {\r\n const argStr = Object.prototype.toString.call(date);\r\n\r\n if (date instanceof Date || (typeof date === \"object\" && argStr === \"[object Date]\")) {\r\n return date;\r\n }\r\n else if (typeof date === \"number\" || argStr === \"[object Number]\" ||\r\n typeof date === \"string\" || argStr === \"[object String]\") {\r\n return new Date(date);\r\n }\r\n else {\r\n return new Date(NaN);\r\n }\r\n }\r\n\r\n public static toFormattedDate(date: Date | number | string, formatStr: string = 'yyyy-MM-dd HH:mm:ss' ){\r\n const parsedDate = this.toDate(date);\r\n return format(parsedDate, formatStr);\r\n }\r\n\r\n public static utcToLocal(dirtyDate): Date {\r\n if (typeof dirtyDate === 'string') {\r\n if (dirtyDate.indexOf(\"T\") > -1) {\r\n dirtyDate = dirtyDate.replace(\"T\", \" \");\r\n }\r\n\r\n if (dirtyDate.indexOf(\"Z\") == -1) {\r\n dirtyDate = dirtyDate + \"Z\";\r\n }\r\n }\r\n\r\n let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n if (browserTimeZone) {\r\n let date = DateConvert.toDate(dirtyDate);\r\n let offsetMilliseconds = tzParseTimezone(browserTimeZone, date, true);\r\n let d = new Date(date.getTime() - offsetMilliseconds);\r\n let resultDate = new Date(0);\r\n\r\n resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\r\n resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\r\n\r\n return resultDate;\r\n }\r\n\r\n return new Date(dirtyDate);\r\n }\r\n\r\n /*\r\n VadimOS: Anatoly please have a look\r\n\r\n public static localToUtc(value: Date): Date | null {\r\n if (value) {\r\n return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(),\r\n value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds()\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static utcToLocal(value: Date): Date | null {\r\n if (value) {\r\n return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(),\r\n value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds())\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n */\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Sep 2022\r\n\r\n Code:\r\n https://www.npmjs.com/package/js-beautify\r\n https://beautifier.io\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport js_beautify from 'js-beautify'\r\nimport { HTMLBeautifyOptions } from 'js-beautify'\r\n\r\nexport class XmlFormatter {\r\n public static toPrettyXML(s: string, options?: HTMLBeautifyOptions): string {\r\n if (!options) {\r\n options = {\r\n indent_size: 2,\r\n indent_char: \" \",\r\n wrap_line_length: 110\r\n }\r\n }\r\n\r\n return js_beautify.html(s, options);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport enum DiscountCodeType {\r\n Standard = 1,\r\n UseOnce = 2\r\n}\r\n\r\nexport enum DiscountCodeStatus {\r\n Exist = 1,\r\n NotFound = 2,\r\n AlreadyUsed = 3\r\n}\r\n\r\nexport enum PaymentType {\r\n FullPayment = 1,\r\n WeeklyPayment = 2,\r\n BiWeeklyPayment = 3,\r\n MonthlyPayment = 4\r\n}\r\n\r\nexport enum PaymentMethod {\r\n None = 1,\r\n Wallet = 2,\r\n CreditCard = 3,\r\n PayPal = 4,\r\n Stripe = 5,\r\n Venmo = 6,\r\n ApplePay = 7,\r\n GooglePay = 8\r\n}\r\n\r\nexport enum PaymentStage {\r\n //PayPal/Stripe\r\n External = 1,\r\n Internal = 2\r\n}\r\n\r\nexport enum SubscriptionProvider\r\n{\r\n Product = 1,\r\n PayPal = 2,\r\n Stripe = 3\r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n \r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport enum Mode {\r\n View = 1,\r\n Edit = 2,\r\n Moderation = 3\r\n}\r\n\r\nexport enum DataViewType {\r\n Grid = 'grid',\r\n List = 'list',\r\n Table = 'table'\r\n}\r\n\r\nexport enum PublishStatus {\r\n Draft = 1, //viewable by owner ONLY\r\n PendingReview = 2, //via RequestPublishing\r\n Published = 3, //viewable by everyone\r\n Archived = 4 \r\n}\r\n\r\nexport enum ModerationStatus {\r\n Draft = 1, //item is saved\r\n PendingReview = 2, //item is in review\r\n Approved = 3, //item is approved by Moderator\r\n Rejected = 4 //item is rejected by Moderator \r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport class Subs {\r\n private subs: Subscription[] = [];\r\n\r\n constructor() {}\r\n\r\n add(...subscriptions: Subscription[]) {\r\n this.subs = this.subs.concat(subscriptions);\r\n }\r\n\r\n set sink(subscription: Subscription) {\r\n this.subs.push(subscription);\r\n }\r\n\r\n unsubscribe() {\r\n this.subs.forEach((sub) => sub && sub.unsubscribe());\r\n this.subs = [];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Dec 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n\r\n//App\r\nimport { Subs } from '../../subs';\r\n\r\n@Injectable()\r\nexport class ServiceBase implements OnDestroy {\r\n //protected\r\n protected subs: Subs = new Subs();\r\n \r\n constructor() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Jun 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\r\n\r\n//App\r\nimport { getCurrentApp, ICurrentApp } from '../consts/app-settings';\r\nimport { IsDevMode } from '../consts/core-settings';\r\nimport { ServiceBase } from '../services/base/service';\r\n\r\n@Injectable()\r\nexport class GoServiceBase extends ServiceBase {\r\n private initialized = false;\r\n private _currentApp: ICurrentApp;\r\n\r\n //protected\r\n protected isDevMode = false;\r\n\r\n //gets\r\n protected get currentApp(): ICurrentApp {\r\n this.ensureInitialized();\r\n return this._currentApp;\r\n }\r\n \r\n constructor(protected route: ActivatedRoute, protected router: Router) {\r\n super();\r\n }\r\n\r\n private ensureInitialized() {\r\n if (!this.initialized) {\r\n this.isDevMode = IsDevMode;\r\n this._currentApp = getCurrentApp();\r\n this.initialized = true;\r\n }\r\n } \r\n\r\n navigate(commands: any[], extras?: NavigationExtras, reload: boolean = false) {\r\n this.router.navigate(commands, extras).then(() => {\r\n if (reload) {\r\n this.locationReload();\r\n } \r\n });\r\n }\r\n\r\n getHomeUrl() {\r\n return this.currentApp.root;\r\n } \r\n\r\n locationReload() {\r\n (window as any).location.reload();\r\n }\r\n\r\n home(reload: boolean = false) {\r\n this.navigate([this.currentApp.root], {}, reload);\r\n }\r\n \r\n dashboard(reload: boolean = false) {\r\n this.navigate([this.currentApp.root + '/dashboard'], {}, reload);\r\n }\r\n\r\n //Accounts\r\n accountClosed() {\r\n this.navigate([this.currentApp.root + '/accounts/closed']);\r\n } \r\n\r\n //Errors\r\n error() {\r\n this.navigate([this.currentApp.root + '/errors/error']);\r\n }\r\n\r\n //401 Unauthorized\r\n error401() { \r\n this.navigate([this.currentApp.root + '/errors/401']);\r\n }\r\n\r\n //402 Payment Required\r\n error402() { \r\n this.navigate([this.currentApp.root + '/errors/402']);\r\n }\r\n\r\n //403 Forbidden\r\n error403() { \r\n this.navigate([this.currentApp.root + '/errors/403']);\r\n }\r\n\r\n //404 Not Found\r\n error404() { \r\n this.navigate([this.currentApp.root + '/errors/404']);\r\n }\r\n\r\n //500 Internal Server Error\r\n error500() { \r\n this.navigate([this.currentApp.root + '/errors/500']);\r\n } \r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport class Guid {\r\n public static newGuid() {\r\n return uuidv4();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const MSALStorageKeys = {\r\n //LocalStorage\r\n redirectTo: 'msal.app.redirectTo'\r\n\r\n //SessionStorage\r\n}\r\n\r\nexport class MSALStorage {\r\n public static saveRedirectState(redirectTo: string, calledBy: string) {\r\n if (redirectTo.indexOf('iam') >= 0) {\r\n return;\r\n }\r\n\r\n localStorage.setItem(MSALStorageKeys.redirectTo, redirectTo);\r\n console.log(`msal.app: redirect state saved: ${redirectTo}. Called by: ${calledBy}`);\r\n }\r\n\r\n public static getRedirectState(calledBy: string) {\r\n let redirectTo = localStorage.getItem(MSALStorageKeys.redirectTo);\r\n console.log(`msal.app: redirect state requested: ${redirectTo}. Called by: ${calledBy}`);\r\n\r\n return redirectTo;\r\n }\r\n\r\n public static clearRedirectState(calledBy: string) {\r\n localStorage.removeItem(MSALStorageKeys.redirectTo);\r\n console.log(`msal.app: redirect state cleared. Called by: ${calledBy}`);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { MSALStorage } from './storage';\r\n\r\nexport class MSALRedirect {\r\n public static handle(router, calledBy: string) {\r\n let redirectTo = MSALStorage.getRedirectState(calledBy);\r\n if (redirectTo) {\r\n MSALStorage.clearRedirectState(calledBy);\r\n router.navigate([redirectTo]);\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { SessionStorageKeys } from \"../core/consts/storageKeys\";\r\n\r\nexport function getMsalSettings() {\r\n const json = sessionStorage.getItem(SessionStorageKeys.appMSALSettings);\r\n return json ? JSON.parse(json) : null;\r\n}\r\n\r\nexport function resetMsalSettings() {\r\n let msalSettings = getMsalSettings();\r\n\r\n MSALConfig = msalSettings;\r\n MSALApiConfig = MSALConfig?.api;\r\n MSALB2CConfig = MSALConfig?.b2c; \r\n}\r\n\r\nexport let MSALConfig;\r\nexport let MSALApiConfig;\r\nexport let MSALB2CConfig;\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t27 Nov 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { BrowserUtils } from '@azure/msal-browser';\r\n\r\n//App\r\nimport { MSALApiConfig, MSALB2CConfig } from './consts';\r\n\r\nexport class MSALUtils {\r\n public static isB2C() {\r\n if (MSALB2CConfig) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Don't perform initial navigation in iframes or popups\r\n public static initialNavigation() {\r\n return !BrowserUtils.isInIframe() && !BrowserUtils.isInPopup() ? 'enabledNonBlocking' : 'disabled';\r\n }\r\n\r\n public static getApi() : Map<string, Array<string>> {\r\n let map = new Map<string, Array<string>>();\r\n\r\n if (MSALApiConfig) {\r\n let api = MSALApiConfig;\r\n map.set(api.uri, api.scopes);\r\n }\r\n\r\n return map;\r\n }\r\n\r\n public static getApiScopes() : any[] {\r\n let scopes = []; \r\n\r\n if (MSALApiConfig) {\r\n let api = MSALApiConfig;\r\n for (const scope of api.scopes) {\r\n scopes.push(scope);\r\n }\r\n }\r\n \r\n return scopes;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { MSALB2CConfig } from '../consts';\r\n\r\nexport class MSALB2C {\r\n public static getAuthorityByType(type) {\r\n let policy = MSALB2C.getPolicyByType(type);\r\n return policy?.authority;\r\n }\r\n\r\n public static getPolicyByType(type) {\r\n let policies = MSALB2CConfig?.policies;\r\n if (!policies) {\r\n return null;\r\n }\r\n\r\n for (let i = 0; i < policies.length; i++) {\r\n let policy = policies[i];\r\n\r\n if (policy.type == type) {\r\n return policy;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const PolicyType = {\r\n signUpSignIn: 'signUpSignIn',\r\n signUp: 'signUp',\r\n editProfile: 'editProfile',\r\n resetPassword: 'resetPassword'\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './b2c';\r\nexport * from './consts';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, Subject, catchError, filter, map, of, takeUntil } from 'rxjs';\r\nimport { MSAL_GUARD_CONFIG, MsalBroadcastService, MsalGuardConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { AccountInfo, AuthenticationResult, EventMessage, EventType, IdTokenClaims, InteractionRequiredAuthError,\r\n InteractionStatus, InteractionType, PopupRequest, PromptValue, RedirectRequest, SilentRequest, SsoSilentRequest\r\n} from '@azure/msal-browser';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { AppContextService } from '../../core/services/appcontext.service';\r\nimport { MSALRedirect } from '../redirect';\r\nimport { MSALUtils } from '../utils';\r\nimport { MSALB2C, PolicyType } from '../b2c';\r\nimport { QSUtils } from '../../core/exports';\r\n\r\ntype IdTokenClaimsWithPolicyId = IdTokenClaims & {\r\n acr?: string,\r\n tfp?: string,\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService extends ApiServiceBase implements OnDestroy {\r\n private readonly msalDestroying$ = new Subject<void>();\r\n\r\n //B2C Policies\r\n private signUpSignInPolicy\r\n private signUpPolicy;\r\n private editProfilePolicy;\r\n private resetPasswordPolicy;\r\n\r\n constructor(\r\n protected http: HttpClient,\r\n private router: Router,\r\n private appContext: AppContextService,\r\n\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MsalGuardConfiguration,\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService) {\r\n super(http);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.msalDestroying$.next(undefined);\r\n this.msalDestroying$.complete();\r\n }\r\n\r\n private setDefaults() {\r\n } \r\n\r\n /*\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/samples/msal-angular-v3-samples/angular-b2c-sample-app/src/app/app.component.ts\r\n\r\n Token Validation:\r\n https://jwt.io\r\n\r\n Token types:\r\n https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\r\n ID token - A JWT that contains claims that you can use to identify users in your application\r\n Access token - A JWT that contains claims that you can use to identify the granted permissions to your APIs.\r\n Access tokens are signed, but they aren't encrypted\r\n Refresh token - Refresh tokens are used to acquire new ID tokens and access tokens in an OAuth 2.0 flow.\r\n */\r\n private initMSAL() {\r\n //B2C\r\n this.signUpSignInPolicy = MSALB2C.getPolicyByType(PolicyType.signUpSignIn);\r\n this.signUpPolicy = MSALB2C.getPolicyByType(PolicyType.signUp);\r\n this.editProfilePolicy = MSALB2C.getPolicyByType(PolicyType.editProfile);\r\n this.resetPasswordPolicy = MSALB2C.getPolicyByType(PolicyType.resetPassword);\r\n\r\n this.msalService.handleRedirectObservable().subscribe({\r\n next: (result: AuthenticationResult) => {\r\n console.log(`iam.msal: handleRedirectObservable`);\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n\r\n this.msalService.instance.enableAccountStorageEvents();\r\n this.msalBroadcastService.msalSubject$.pipe(\r\n filter((msg: EventMessage) =>\r\n msg.eventType === EventType.INITIALIZE_END ||\r\n\r\n //ACCOUNT_ADDED and ACCOUNT_REMOVED events emitted when a user logs in or out of another tab or window\r\n msg.eventType === EventType.ACCOUNT_ADDED ||\r\n msg.eventType === EventType.ACCOUNT_REMOVED ||\r\n\r\n //Login Failure\r\n msg.eventType === EventType.LOGIN_FAILURE ||\r\n msg.eventType === EventType.ACQUIRE_TOKEN_FAILURE ||\r\n\r\n //LogOut\r\n msg.eventType === EventType.LOGOUT_SUCCESS ||\r\n\r\n //LogIn\r\n msg.eventType === EventType.LOGIN_SUCCESS ||\r\n msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS ||\r\n msg.eventType === EventType.SSO_SILENT_SUCCESS\r\n ),\r\n takeUntil(this.msalDestroying$)\r\n )\r\n .subscribe((msg: EventMessage) => {\r\n switch (msg.eventType) {\r\n case EventType.INITIALIZE_END:\r\n console.log(`iam.msal: INITIALIZE_END fired`);\r\n break;\r\n\r\n case EventType.ACCOUNT_ADDED:\r\n case EventType.ACCOUNT_REMOVED:\r\n if (this.msalService.instance.getAllAccounts().length === 0) {\r\n window.location.pathname = \"/\";\r\n }\r\n break;\r\n\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n //Check for forgot password error. Learn more about AAD error codes at\r\n //https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes\r\n if (msg.error && msg.error.message.indexOf('AADB2C90118') > -1) {\r\n let resetPasswordFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.resetPasswordPolicy.authority,\r\n scopes: [],\r\n };\r\n\r\n this.login(resetPasswordFlowRequest);\r\n };\r\n break;\r\n\r\n case EventType.LOGOUT_SUCCESS:\r\n break;\r\n\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n let payload = msg.payload as AuthenticationResult;\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n if (!MSALUtils.isB2C()) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n return;\r\n }\r\n\r\n //B2C\r\n let token = payload.idTokenClaims as IdTokenClaimsWithPolicyId\r\n\r\n /**\r\n *\r\n * signUpSignIn\r\n *\r\n */\r\n if (token.acr === this.signUpSignInPolicy.name || token.tfp === this.signUpSignInPolicy.name) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n }\r\n\r\n /**\r\n *\r\n * signUpPolicy\r\n *\r\n */\r\n if (token.acr === this.signUpPolicy.name || token.tfp === this.signUpPolicy.name) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n }\r\n\r\n /**\r\n *\r\n * editProfile\r\n *\r\n * For the purpose of setting an active account for UI update, we want to consider only the auth response resulting\r\n * from SUSI flow. \"acr\" claim in the id token tells us the policy (NOTE: newer policies may use the \"tfp\" claim instead).\r\n * To learn more about B2C tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\r\n */\r\n if (token.acr === this.editProfilePolicy.name || token.tfp === this.editProfilePolicy.name) {\r\n const signInAccount = this.msalService.instance.getAllAccounts().find((account: AccountInfo) =>\r\n account.idTokenClaims?.oid === token.oid &&\r\n account.idTokenClaims?.sub === token.sub &&\r\n ((account.idTokenClaims as IdTokenClaimsWithPolicyId).acr === this.signUpSignInPolicy.name ||\r\n (account.idTokenClaims as IdTokenClaimsWithPolicyId).tfp === this.signUpSignInPolicy.name)\r\n );\r\n\r\n this.forceReauthenticate(signInAccount);\r\n }\r\n\r\n /**\r\n *\r\n * resetPassword\r\n *\r\n * Below we are checking if the user is returning from the reset password flow.\r\n * If so, we will ask the user to reauthenticate with their new password.\r\n * If you do not want this behavior and prefer your users to stay signed in instead,\r\n * you can replace the code below with the same pattern used for handling the return from\r\n * profile edit flow\r\n */\r\n if (token.acr === this.resetPasswordPolicy.name || token.tfp === this.resetPasswordPolicy.name) {\r\n this.forceReauthenticate();\r\n }\r\n\r\n break;\r\n }\r\n\r\n return msg;\r\n });\r\n\r\n this.msalBroadcastService.inProgress$.pipe(\r\n filter((status: InteractionStatus) =>\r\n status === InteractionStatus.Startup ||\r\n status === InteractionStatus.None\r\n ),\r\n takeUntil(this.msalDestroying$)\r\n )\r\n .subscribe((status: InteractionStatus) => {\r\n switch (status) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n case InteractionStatus.Startup:\r\n console.log(`iam.msal: InteractionStatus.Startup`);\r\n break;\r\n\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n case InteractionStatus.None:\r\n console.log(`iam.msal: InteractionStatus.None`);\r\n\r\n MSALRedirect.handle(this.router, 'msalBroadcastService.inProgress$ InteractionStatus.None');\r\n\r\n this.checkAndSetActiveAccount();\r\n this.appContext.updateCurrent();\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private checkAndSetActiveAccount() {\r\n let activeAccount = this.msalService.instance.getActiveAccount();\r\n let accounts = this.msalService.instance.getAllAccounts();\r\n\r\n if (!activeAccount && accounts.length > 0) {\r\n this.msalService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n\r\n private isPopup(popup?: boolean) {\r\n if (typeof popup === \"undefined\") {\r\n return this.msalGuardConfig.interactionType === InteractionType.Popup;\r\n }\r\n\r\n return popup;\r\n }\r\n\r\n private acquireToken(): Observable<string> {\r\n let request = {\r\n scopes: MSALUtils.getApiScopes()\r\n }\r\n\r\n if (this.isPopup()) {\r\n return this.msalService.acquireTokenPopup(request).pipe(\r\n map(response => {\r\n return response ? response.accessToken : null;\r\n })\r\n );\r\n }\r\n else {\r\n return this.msalService.acquireTokenRedirect(request).pipe(\r\n map(() => {\r\n return null;\r\n })\r\n );\r\n }\r\n }\r\n\r\n //Public funcs\r\n init() {\r\n this.setDefaults();\r\n this.initMSAL();\r\n }\r\n\r\n getActiveAccount(): AccountInfo | null {\r\n this.checkAndSetActiveAccount();\r\n return this.msalService.instance.getActiveAccount();\r\n }\r\n\r\n getUserEmail() {\r\n let user = this.appContext.user;\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (activeAccount) {\r\n return activeAccount.username;\r\n }\r\n\r\n return user ? user.Email : '';\r\n }\r\n\r\n getUserName() {\r\n let user = this.appContext.user;\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (activeAccount) {\r\n return activeAccount.name ? activeAccount.name : user ? user.displayNameOrFullName : '';\r\n }\r\n\r\n return user ? user.displayNameOrFullName : '';\r\n }\r\n\r\n getAccessToken(): Observable<string> {\r\n //1. Check SSO\r\n /*\r\n https://learn.microsoft.com/en-us/entra/identity-platform/msal-js-sso\r\n */\r\n if (QSUtils.isSSOinProgress()) {\r\n let cls = QSUtils.getValueByName(\"cls\");\r\n let login = QSUtils.getValueByName(\"login\");\r\n let sid = QSUtils.getValueByName(\"sid\");\r\n let ssoSilentRequest: SsoSilentRequest;\r\n\r\n if (login) {\r\n ssoSilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n loginHint: login\r\n };\r\n }\r\n else if (sid) {\r\n ssoSilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n sid: sid\r\n };\r\n }\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO in progress\");\r\n if (cls) {\r\n QSUtils.clearKey(\"cls=1\", true, true);\r\n }\r\n\r\n return this.msalService.ssoSilent(ssoSilentRequest).pipe(\r\n map(response => {\r\n QSUtils.clearSSO();\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO have been successfully done\");\r\n\r\n return response.accessToken;\r\n }),\r\n catchError(error => {\r\n QSUtils.clearSSO();\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO silent token acquisition failed\");\r\n console.error(error);\r\n\r\n if (error instanceof InteractionRequiredAuthError) {\r\n return this.acquireToken();\r\n }\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n //2. if isUserAuthenticated\r\n let activeAccount = this.getActiveAccount();\r\n if (activeAccount) {\r\n let silentRequest: SilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n account: activeAccount\r\n };\r\n\r\n return this.msalService.acquireTokenSilent(silentRequest).pipe(\r\n map(response => {\r\n return response.accessToken;\r\n }),\r\n catchError(error => {\r\n console.log(\"iam.msal.sso: Silent token acquisition failed.\");\r\n\r\n if (error instanceof InteractionRequiredAuthError) {\r\n return this.acquireToken();\r\n }\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n return of(null);\r\n }\r\n\r\n forceReauthenticate(account?) {\r\n if (MSALUtils.isB2C()) {\r\n let signUpSignInFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpSignInPolicy.authority,\r\n scopes: [],\r\n prompt: PromptValue.LOGIN, // force user to reauthenticate with their new password\r\n account: account\r\n };\r\n\r\n this.login(signUpSignInFlowRequest);\r\n }\r\n else {\r\n }\r\n }\r\n\r\n login(userFlowRequest?: RedirectRequest | PopupRequest, popup?: boolean) {\r\n let authRequestCfg: any = this.msalGuardConfig.authRequest;\r\n let authRequest = null;\r\n\r\n if (!userFlowRequest) {\r\n let signUpSignInFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpSignInPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n userFlowRequest = signUpSignInFlowRequest;\r\n }\r\n\r\n if (authRequestCfg) {\r\n authRequest = authRequestCfg(this.msalService, this.router.routerState.snapshot);\r\n }\r\n\r\n if (this.isPopup(popup)) {\r\n if (authRequest) {\r\n this.msalService.loginPopup({ ...authRequest, ...userFlowRequest } as PopupRequest).subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n else {\r\n this.msalService.loginPopup(userFlowRequest).subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n }\r\n else {\r\n if (authRequest) {\r\n this.msalService.loginRedirect({ ...authRequest, ...userFlowRequest } as RedirectRequest);\r\n }\r\n else {\r\n this.msalService.loginRedirect(userFlowRequest);\r\n }\r\n }\r\n }\r\n\r\n logout(popup?: boolean) {\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (this.isPopup(popup)) {\r\n if (activeAccount) {\r\n this.msalService.logoutPopup({ account: activeAccount, mainWindowRedirectUri: \"/\" }).subscribe(() => {\r\n });\r\n }\r\n else {\r\n this.msalService.logoutPopup({ mainWindowRedirectUri: \"/\" }).subscribe(() => {\r\n });\r\n }\r\n }\r\n else {\r\n if (activeAccount) {\r\n this.msalService.logoutRedirect({ account: activeAccount });\r\n }\r\n else {\r\n this.msalService.logoutRedirect();\r\n }\r\n }\r\n }\r\n\r\n //MSAL check\r\n isUserAuthenticated(): boolean {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n //MSAL + appContext check\r\n isUserSignedIn(): boolean {\r\n if (!this.isUserAuthenticated()) {\r\n return false;\r\n }\r\n\r\n if (this.appContext.current.isUserSignedIn && this.appContext.user) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isUserAdmin(): boolean {\r\n return this.isUserSignedIn() && this.appContext.current.isUserAdmin;\r\n }\r\n\r\n //B2C\r\n signUp() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let signUpFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(signUpFlowRequest);\r\n }\r\n\r\n editProfile() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let editProfileFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.editProfilePolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(editProfileFlowRequest);\r\n }\r\n\r\n resetPassword() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let resetPasswordFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.resetPasswordPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(resetPasswordFlowRequest);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LoggingService {\r\n constructor() {\r\n }\r\n\r\n info(info) {\r\n console.info(info);\r\n }\r\n\r\n warn(info) {\r\n console.warn(info);\r\n }\r\n\r\n error(error) {\r\n console.error(error);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 18 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n//App\r\nimport { GoServiceBase } from './go.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AuthService } from '../../iam/services/auth.service';\r\nimport { getAppSettingsById } from '../consts/app-settings';\r\nimport { Guid } from '../guid';\r\n\r\n@Injectable()\r\nexport class AppsGoServiceBase extends GoServiceBase {\r\n constructor(protected route: ActivatedRoute, protected router: Router, protected authService: AuthService, protected logger: LoggingService) {\r\n super(route, router);\r\n }\r\n\r\n private redirectToUrl(url, inNewTab = false, action = null) {\r\n if (action) {\r\n action();\r\n }\r\n\r\n //Logging\r\n this.logger.info('AppsGoService.redirectToUrl: ' + url);\r\n\r\n if (inNewTab) {\r\n //window.open(url, '_blank'); => blocks\r\n\r\n let a = document.createElement('a');\r\n a.target = '_blank';\r\n a.href = url;\r\n a.click();\r\n }\r\n else {\r\n location.href = url;\r\n }\r\n }\r\n\r\n //Public\r\n redirect2App(redirectTo, path = null, params = null, inNewTab = false, action = null) {\r\n let appSettings;\r\n\r\n if (redirectTo) {\r\n appSettings = getAppSettingsById(+redirectTo);\r\n }\r\n else {\r\n appSettings = getAppSettingsById(1);\r\n }\r\n\r\n if (appSettings) {\r\n let url: string = appSettings.baseUrl + appSettings.root;\r\n\r\n if (path && params) {\r\n url += (url.endsWith('/') ? \"\" : \"/\") + path + \"?\" + params;\r\n }\r\n else if (path) {\r\n url += (url.endsWith('/') ? \"\" : \"/\") + path;\r\n }\r\n else if (params) {\r\n url = (url.endsWith('/') ? url.substring(0, url.length - 1) : url) + \"?\" + params;\r\n }\r\n\r\n if (this.authService.isUserAuthenticated()) {\r\n let account = this.authService.getActiveAccount();\r\n let sid = Guid.newGuid();\r\n\r\n if (account) {\r\n url += (params ? '&' : '?') + `action=sso&sid=${sid}&login=${account.username}`;\r\n }\r\n\r\n this.redirectToUrl(url, inNewTab, action);\r\n }\r\n else {\r\n this.redirectToUrl(url, inNewTab, action);\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class AdminGuard implements CanActivate, CanActivateChild {\r\n constructor(private auth: AuthService) {\r\n }\r\n\r\n private isUserAdmin(): Observable<boolean> {\r\n\t\treturn of(this.auth.isUserAdmin());\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n return this.isUserAdmin();\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n if (route.component) {\r\n return this.isUserAdmin();\r\n }\r\n\r\n return of(true);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Oct 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Location } from \"@angular/common\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from \"@angular/router\";\r\nimport { MsalBroadcastService, MsalGuard, MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { InteractionType } from \"@azure/msal-browser\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AuthenticationGuard extends MsalGuard implements CanActivate {\r\n private _msalGuardConfig: MsalGuardConfiguration;\r\n\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG)\r\n msalGuardConfig: MsalGuardConfiguration,\r\n msalBroadcastService: MsalBroadcastService,\r\n authService: MsalService,\r\n location: Location,\r\n router: Router\r\n ) {\r\n super(msalGuardConfig, msalBroadcastService, authService, location, router);\r\n this._msalGuardConfig = msalGuardConfig;\r\n }\r\n\r\n private setInteractionType(route: ActivatedRouteSnapshot) {\r\n let interactionType = (route.data as any).interactionType;\r\n this._msalGuardConfig.interactionType = interactionType || InteractionType.Redirect;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {\r\n this.setInteractionType(route);\r\n return super.canActivate(route, state);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n QA\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './admin.guard';\r\nexport * from './authentication.guard';\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 27 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//guards\r\nexport * from './guards';\r\n\r\n//services\r\nexport * from './services/auth.service';\r\n\r\n//utils\r\nexport * from './utils';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingService extends BehaviorSubject<boolean> {\r\n private counter = 0;\r\n\r\n //Public\r\n public isFreezed = false;\r\n\r\n constructor() {\r\n super(false);\r\n }\r\n\r\n private setTimeout(fn: Function, timeout = 500) {\r\n let that = this;\r\n setTimeout(() => {\r\n if (fn) fn(that);\r\n }, \r\n timeout);\r\n }\r\n\r\n show() {\r\n this.counter++;\r\n\r\n this.setTimeout((that) => {\r\n if (that.counter > 0) {\r\n that.next(true);\r\n }\r\n });\r\n }\r\n\r\n hide() {\r\n if (this.counter <= 0) {\r\n return;\r\n }\r\n\r\n this.counter--;\r\n\r\n this.setTimeout((that) => {\r\n if (that.counter == 0) {\r\n that.next(false);\r\n }\r\n });\r\n }\r\n\r\n freeze(timeout: number = 1000) {\r\n this.isFreezed = true;\r\n\r\n this.setTimeout((that) => {\r\n that.isFreezed = false;\r\n },\r\n timeout);\r\n }\r\n\r\n reset() {\r\n if (this.counter > 0) {\r\n this.next(false);\r\n }\r\n\r\n this.counter = 0;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 25 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {mergeMap, tap} from 'rxjs/operators';\r\nimport {Observable} from 'rxjs';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../consts/core-settings';\r\nimport { LoadingService } from '../services/loading.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AuthService } from '../../iam/exports';\r\nimport { getCurrentApp } from '../consts/app-settings';\r\n\r\n@Injectable()\r\nexport class AnatolyHttpInterceptor implements HttpInterceptor {\r\n protected longRunningExceptions = [\r\n 'chunkupload',\r\n ];\r\n\r\n protected authorizationTokenExceptions = [\r\n 'assets',\r\n 'dist',\r\n 'blobs',\r\n 'loadAppInitializerSettings'\r\n ];\r\n\r\n protected autoCDNSASTokenUrls = [\r\n 'chunks',\r\n 'l10n'\r\n ];\r\n\r\n protected externalSiteUrls = [\r\n 'azurewebsites.net'\r\n ];\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n protected loadingService: LoadingService,\r\n protected logger: LoggingService) {\r\n }\r\n\r\n private handleHttpRequest(request: HttpRequest<any>, next: HttpHandler, loadingRequired: boolean): Observable<HttpEvent<any>>{\r\n return next.handle(request).pipe(tap({\r\n next: (event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n },\r\n error: (err: any) => {\r\n this.logger.error(err);\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n }));\r\n }\r\n\r\n private setQS(url: string, value: string): string {\r\n if (url.indexOf('?') > -1) {\r\n return url + '&' + value;\r\n }\r\n\r\n return url + '?' + value;\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n let isCDNEnabled = AppCoreSettings?.cdn?.enabled;\r\n let cdnSasToken = AppCoreSettings?.cdn?.sasToken;\r\n let isLoadingFreezed = this.loadingService.isFreezed;\r\n let loadingRequired = !isLoadingFreezed;\r\n let isExternalSite = false;\r\n let authorizationTokenRequired = true;\r\n\r\n //Urls\r\n let originalUrl = req.url;\r\n let url = req.url.toLowerCase();\r\n let lowerCaseUrl = url.toLowerCase();\r\n\r\n //1. longRunning tasks\r\n if (!isLoadingFreezed) { \r\n for (var i = 0; i < this.longRunningExceptions.length; i++) { \r\n let e = this.longRunningExceptions[i].toLowerCase();\r\n\r\n if (lowerCaseUrl.indexOf(e) >= 0) {\r\n loadingRequired = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //2. Check is site External?\r\n for (const i of this.externalSiteUrls) {\r\n if (url.indexOf(this.externalSiteUrls[i]) >= 0) {\r\n isExternalSite = true;\r\n break;\r\n }\r\n }\r\n\r\n //3. Is Authorization Token Required\r\n if (isExternalSite) {\r\n authorizationTokenRequired = false;\r\n }\r\n else {\r\n for (var i = 0; i < this.authorizationTokenExceptions.length; i++) { \r\n let e = this.authorizationTokenExceptions[i].toLowerCase();\r\n\r\n if (lowerCaseUrl.indexOf(e) >= 0) {\r\n authorizationTokenRequired = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //4. getCurrentContext\r\n if (url.indexOf('getCurrentContext') > -1) {\r\n authorizationTokenRequired = this.authService.isUserAuthenticated();\r\n }\r\n\r\n // Change Url if need it -------------------------------------------->\r\n let newUrl = originalUrl;\r\n\r\n //5. Check should we add CDN SAS tokens\r\n if (isCDNEnabled) {\r\n for (const i of this.autoCDNSASTokenUrls) {\r\n if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {\r\n newUrl = newUrl + cdnSasToken;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //6. no caching for API calls\r\n if (url.indexOf('/api/') > -1 || url.indexOf('api.') > -1) { \r\n const t = new Date().getTime().toString();\r\n newUrl = this.setQS(newUrl, 't=' + t);\r\n }\r\n\r\n //7. set ca\r\n let app = getCurrentApp();\r\n if (app) {\r\n newUrl = this.setQS(newUrl, 'ca=' + app.id);\r\n } \r\n\r\n //8. set new url\r\n req = req.clone({ url: newUrl });\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/json') });\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/text') });\r\n\r\n try\r\n {\r\n this.onRequestStart(loadingRequired);\r\n\r\n if (authorizationTokenRequired) {\r\n return this.authService.getAccessToken().pipe(mergeMap((token: string) => {\r\n if (token) {\r\n req = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + token) });\r\n }\r\n\r\n return this.handleHttpRequest(req, next, loadingRequired);\r\n }));\r\n }\r\n else {\r\n return this.handleHttpRequest(req, next, loadingRequired);\r\n }\r\n }\r\n catch (err) {\r\n this.logger.error(\"An error occurred: \" + err);\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n }\r\n\r\n //Events\r\n onRequestStart(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.show();\r\n }\r\n }\r\n\r\n onRequestEnd(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.hide();\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(\r\n `${moduleName} has already been loaded. Import ${moduleName} modules in the AppModule only.`\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, forkJoin, merge } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n//App\r\nimport { ApiUrl } from '../consts/core-settings';\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { Stopwatch } from '../performance/stopwatch';\r\nimport { is } from '../is';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AppContextService } from '../services/appcontext.service';\r\n\r\n@Injectable()\r\nexport class StarterService extends ApiServiceBase {\r\n constructor(protected http: HttpClient, protected appContext: AppContextService, protected logger: LoggingService) {\r\n super(http);\r\n }\r\n\r\n private applicationStarting(): Observable<any> {\r\n let context = this.appContext.current;\r\n if (!is.objectNullOrEmpty(context)) {\r\n //Logging\r\n this.logger.info('@osovitny/anatoly. StarterService: getting AppContext from Session Storage');\r\n\r\n this.appContext.init(context);\r\n return of(context);\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. StarterService: getting AppContext from API\");\r\n stopwatch.start();\r\n\r\n this.baseUrl = `${ApiUrl}/app`;\r\n return this.get<any>('appStarting').pipe(map(data => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n this.appContext.init(data.context);\r\n }));\r\n }\r\n\r\n ensureApplicationStarted(): Observable<any> {\r\n //1. Application Starting\r\n let applicationStarting$ = this.applicationStarting();\r\n\r\n //2. Load json files\r\n let standardJsonFiles$ = this.appContext.loadStandardJsonFiles();\r\n let requiredJsonFiles$ = this.appContext.loadRequiredJsonFiles();\r\n\r\n //3. Load required items, like settings\r\n let requiredItems$ = this.appContext.loadRequiredItems();\r\n\r\n //Tasks to execute\r\n let parallelTasks = [];\r\n let tasks$: Observable<any> = null;\r\n\r\n if (standardJsonFiles$) parallelTasks.push(standardJsonFiles$);\r\n if (requiredJsonFiles$) parallelTasks.push(requiredJsonFiles$);\r\n if (requiredItems$) parallelTasks.push(requiredItems$);\r\n\r\n /*\r\n VadimOS:\r\n concat is NOT wokring here, no idea why. Just executing first task\r\n let tasks$ = concat(applicationStarting$, parallelTasks$);\r\n\r\n https://github.com/ReactiveX/rxjs/issues/2427\r\n https://github.com/ReactiveX/rxjs/issues/2188\r\n */\r\n if (parallelTasks.length > 0) {\r\n let parallelTasks$ = merge(...parallelTasks);\r\n tasks$ = forkJoin([applicationStarting$, parallelTasks$]);\r\n }\r\n else {\r\n tasks$ = applicationStarting$;\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. StarterService: ensureApplicationStarted\");\r\n stopwatch.start();\r\n\r\n return tasks$.pipe(map(() => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n }));\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n//App\r\nimport { StarterService } from \"../services/starter.service\";\r\n\r\n@Injectable()\r\nexport class StarterGuard implements CanActivate, CanActivateChild {\r\n constructor(protected starter: StarterService) {\r\n }\r\n\r\n private ensureApplicationStarted(): Observable<boolean> {\r\n return this.starter.ensureApplicationStarted().pipe(\r\n mergeMap(() => {\r\n return of(true);\r\n })\r\n );\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n return this.ensureApplicationStarted();\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n if (route.component) {\r\n return this.ensureApplicationStarted();\r\n }\r\n\r\n return of(true);\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 05 May 2020\r\n\r\n Source:\r\n https://date-fns.org/v3.3.1/docs/formatDistance\r\n https://date-fns.org/v3.3.1/docs/formatDistanceToNow\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { TranslateService, LangChangeEvent } from '@ngx-translate/core';\r\n\r\n//date-fns\r\nimport { format, formatDistanceToNow, formatDistance } from 'date-fns';\r\n\r\n// VadimOS: DON'T change next imports!\r\n// Reason: https://github.com/date-fns/date-fns/issues/666\r\n//import enUS from 'date-fns/locale/en-US';\r\nimport { enUS } from 'date-fns/locale/en-US';\r\n\r\n//App\r\nimport { Subs } from '../subs';\r\nimport { dateFormats, dateTimeFormats, timeFormats } from '../consts/formats';\r\nimport { DateConvert } from '../converts/dateConvert';\r\nimport { is } from '../is';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService implements OnDestroy {\r\n private subs: Subs = new Subs();\r\n private dateFnsLocale: any;\r\n\r\n //i10n\r\n private supportedLanguages: any = ['en', 'ru', 'es'];\r\n private defaultLanguage = 'en';\r\n\r\n //Outputs\r\n @Output() langchange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private translate: TranslateService) {\r\n this.setSupportedLanguages(this.supportedLanguages);\r\n this.setDefaultLanguage(this.defaultLanguage);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n private format(str: string, args) {\r\n return str.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined' ? args[number] : match;\r\n });\r\n };\r\n\r\n configureSettings(translate: TranslateService): string {\r\n let lang = this.defaultLanguage;\r\n\r\n try {\r\n //i10n\r\n const browserLang = translate.getBrowserLang();\r\n lang = browserLang.match(/en|ru|es/) ? browserLang : this.defaultLanguage;\r\n\r\n //dates\r\n this.dateFnsLocale = { locale: enUS };\r\n\r\n this.subs.sink = this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n console.log('Language Changed');\r\n this.langchange.emit(event.lang);\r\n });\r\n }\r\n catch {\r\n }\r\n\r\n return lang;\r\n }\r\n\r\n //Languages\r\n setSupportedLanguages(languages: string[]): void {\r\n this.translate.addLangs(languages);\r\n }\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n\r\n setLanguage(language: string): void {\r\n this.translate.use(language);\r\n }\r\n\r\n getBrowserLanguage(): string {\r\n return this.translate.getBrowserLang();\r\n }\r\n\r\n //Dates\r\n getDatefnsLocale(): any {\r\n let dfnLocale: any;\r\n\r\n switch (this.getBrowserLanguage()) {\r\n case 'en':\r\n dfnLocale = { locale: enUS };\r\n break;\r\n\r\n default:\r\n dfnLocale = { locale: enUS };\r\n }\r\n\r\n return dfnLocale;\r\n }\r\n\r\n //getLocalized\r\n getLocalizedValue(key: string, params?: any[]): string {\r\n const value = this.translate.instant(key);\r\n\r\n if (!params || params.length === 0) {\r\n return value;\r\n }\r\n\r\n return this.format(value, params);\r\n }\r\n\r\n getLocalizedDateTime(value, formatStr: string = dateTimeFormats.medium): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n getLocalizedDate(value, formatStr: string = dateFormats.medium): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n getLocalizedTime(value, formatStr: string = timeFormats.short): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n //UTC ---------------------------------------------------------------------BEGIN\r\n getUTCToLocalizedDateTime(value, formatStr: string = dateTimeFormats.medium) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedDateTime(d, formatStr);\r\n }\r\n\r\n getUTCToLocalizedDate(value, formatStr: string = dateFormats.medium) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedDate(d, formatStr);\r\n }\r\n\r\n getUTCToLocalizedTime(value, formatStr: string = timeFormats.short) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedTime(d, formatStr);\r\n }\r\n //UTC ---------------------------------------------------------------------END\r\n\r\n //Distance ----------------------------------------------------------------BEGIN\r\n getLocalizedDistance(endedDateStr: string, startedDateStr: string): string {\r\n let endedDate = DateConvert.toDate(endedDateStr);\r\n let startedDate = DateConvert.toDate(startedDateStr);\r\n\r\n if (is.dateInvalid(endedDate) || is.dateInvalid(startedDate)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return formatDistance(endedDate, startedDate, this.dateFnsLocale);\r\n }\r\n\r\n getUTCToLocalizedDistance(value: string): string {\r\n let d = DateConvert.utcToLocal(value);\r\n if (is.dateInvalid(d)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return formatDistanceToNow(d, this.dateFnsLocale);\r\n }\r\n //Distance ----------------------------------------------------------------END\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n//App\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'localize',\r\n pure: false,\r\n standalone: false\r\n})\r\nexport class LocalizePipe implements PipeTransform {\r\n constructor(private localizeService: LocalizationService) {\r\n }\r\n\r\n transform(inputData: string, type: string = null, param2: string = null): string {\r\n if (!inputData) {\r\n return;\r\n }\r\n\r\n if (!type) {\r\n type = 'tr';\r\n }\r\n\r\n //Translate\r\n if (type === 'tr') {\r\n return this.localizeService.getLocalizedValue(inputData);\r\n }\r\n\r\n //DateTime\r\n if (type === 'dt') {\r\n return this.localizeService.getLocalizedDateTime(inputData);\r\n }\r\n\r\n //Date\r\n if (type === 'd') {\r\n return this.localizeService.getLocalizedDate(inputData);\r\n }\r\n\r\n //Time\r\n if (type === 't') {\r\n return this.localizeService.getLocalizedTime(inputData);\r\n }\r\n\r\n //UTC ---------------------------------------------------------------------BEGIN\r\n //DateTime\r\n if (type === 'utc2dt') {\r\n return this.localizeService.getUTCToLocalizedDateTime(inputData);\r\n }\r\n\r\n //Date\r\n if (type === 'utc2d') {\r\n return this.localizeService.getUTCToLocalizedDate(inputData);\r\n }\r\n\r\n //Time\r\n if (type === 'utc2t') {\r\n return this.localizeService.getUTCToLocalizedTime(inputData);\r\n }\r\n //UTC ---------------------------------------------------------------------END\r\n\r\n //Distance ----------------------------------------------------------------BEGIN\r\n //DistanceInWords\r\n if (type === 'dis') {\r\n return this.localizeService.getLocalizedDistance(inputData, param2);\r\n }\r\n\r\n //DistanceToNowInWords\r\n if (type === 'utc2dis') {\r\n return this.localizeService.getUTCToLocalizedDistance(inputData);\r\n }\r\n //Distance ----------------------------------------------------------------END\r\n\r\n return inputData;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n\r\n//App\r\nimport { LocalizePipe } from './localize.pipe';\r\nimport { LocalizationService } from \"./localization.service\";\r\nimport { getAppCoreSettings, AppVersion} from '../consts/core-settings';\r\n\r\nexport function translateLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\r\n let appCoreSettings = getAppCoreSettings();\r\n let url = appCoreSettings.assetsL10NUrl;\r\n let isCDNEnabled = appCoreSettings.cdn.enabled;\r\n let cdnUrl = appCoreSettings.cdn.url;\r\n let version = AppVersion ?? '1.0.0';\r\n\r\n if (isCDNEnabled) {\r\n url = (url[0] == '/') ? cdnUrl + url : cdnUrl + '/' + url;\r\n }\r\n\r\n return new TranslateHttpLoader(httpClient, `${url}/`, `.json?v=${version}`);\r\n}\r\n\r\nlet _localizationInjectorInstance: Injector;\r\nexport function getLocalizationInjector(): Injector {\r\n if (!_localizationInjectorInstance) {\r\n throw new Error('LocalizationInjector is not initialized.');\r\n }\r\n\r\n return _localizationInjectorInstance;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: translateLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n exports: [\r\n TranslateModule,\r\n LocalizePipe\r\n ],\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n TranslateService,\r\n LocalizationService\r\n ]\r\n})\r\nexport class LocalizationModule {\r\n constructor(private injector: Injector) {\r\n _localizationInjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 July 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { getLocalizationInjector } from './localization.module';\r\nimport { LocalizationService } from './localization.service';\r\n\r\nexport class L10nUtils {\r\n public static get localizationService(): LocalizationService {\r\n const ns = getLocalizationInjector().get<LocalizationService>(LocalizationService);\r\n return ns;\r\n }\r\n\r\n public static getLocalizedValue(key: string, params?: any[], defaultKey?: string) {\r\n // VadimOS: DON'T CHANGE THIS CODE. NEED TO BE REVIEWED AND APPROVED BY VADIMOS\r\n // defaultKey definition:\r\n // if key is empty and defaultKey is defined => get localization for defaultKey\r\n // Example: cancel()\r\n if (!key && defaultKey) {\r\n return this.localizationService.getLocalizedValue(defaultKey);\r\n }\r\n\r\n // VadimOS:\r\n // if key is not empty value MUST be in localization table, othewise we will return key\r\n if (key) {\r\n const value = this.localizationService.getLocalizedValue(key, params);\r\n return value;\r\n }\r\n\r\n return key;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Details:\r\n https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c\r\n https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\n\r\n//App\r\nimport { LoggingService } from \"./logging.service\";\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor(private injector: Injector) {\r\n }\r\n\r\n handleError(error) {\r\n const loggingService = this.injector.get(LoggingService);\r\n loggingService.error(error);\r\n\r\n // IMPORTANT: Rethrow the error otherwise it gets swallowed\r\n throw error;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 3 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport Swal from 'sweetalert2';\r\n\r\n//App\r\nimport { L10nUtils } from '../localization/utils';\r\n\r\nexport class Alerts {\r\n public static areYouSure(text, title?, confirmButtonText?, cancelButtonText?, successAction?, cancelAction?) {\r\n text = L10nUtils.getLocalizedValue(text);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.AreYouSure');\r\n confirmButtonText = L10nUtils.getLocalizedValue(confirmButtonText, null, 'Notifications.AreYouSure-ConfirmButtonText');\r\n cancelButtonText = L10nUtils.getLocalizedValue(cancelButtonText, null, 'Notifications.AreYouSure-CancelButtonText');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText,\r\n cancelButtonText,\r\n showCancelButton: true\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n if (successAction) {\r\n successAction();\r\n }\r\n }\r\n // result.dismiss can be 'cancel', 'overlay', 'close', and 'timer'\r\n else if (result.dismiss == Swal.DismissReason.cancel || result.dismiss == Swal.DismissReason.close) {\r\n if (cancelAction) {\r\n cancelAction();\r\n }\r\n }\r\n });\r\n };\r\n\r\n public static info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Info');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Warning');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static error(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Error');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'error',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static success(text?, params?: any[], title?, successAction?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Success');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'success',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n })\r\n .then(() => {\r\n if (successAction) {\r\n successAction();\r\n }\r\n });\r\n }\r\n\r\n public static cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Cancelled');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info'\r\n })\r\n }\r\n\r\n //Standard Notifications\r\n public static notImplemented() {\r\n let text = L10nUtils.getLocalizedValue('Notifications.NotImplemented');\r\n this.warning(text);\r\n };\r\n\r\n public static authenticationRequired() {\r\n let text = 'Please Log in';\r\n let title = 'Authentication Required';\r\n\r\n this.warning(text, null, title);\r\n };\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport interface INotification {\r\n id?: string;\r\n isNew: boolean;\r\n isSession: boolean;\r\n text?: string;\r\n type?: string;\r\n component?: string;\r\n operation?: string;\r\n createdDate?: string;\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n//App\r\nimport { L10nUtils } from '../../localization/utils';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class NotificationService {\r\n constructor(private toastrService: ToastrService) {\r\n }\r\n\r\n info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.warning(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n error(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.error(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n success(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.success(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n //Standard Notifications\r\n notImplemented() {\r\n let text = L10nUtils.getLocalizedValue('Notifications.NotImplemented');\r\n this.warning(text);\r\n }\r\n\r\n authenticationRequired() {\r\n let text = 'Please Log in';\r\n let title = 'Authentication Required';\r\n\r\n this.warning(text, null, title);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 May 2023\r\n\r\n Details:\r\n https://github.com/angular/components/blob/main/src/cdk/layout/breakpoints.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n/*\r\n {\r\n \"tablet\": \"Apple iPad (10th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 16_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Air (M2, 2024)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Mini (6th Gen, 2021)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 15_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Pro 11 (4th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Pro 12.9 (6th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Google Pixel Tablet (TangorPro)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 14; TANGORPRO Build/UQ1A.240205.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.78 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Huawei MatePad Pro\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 10; MRX-AL09 Build/HUAWEIMRX-AL09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.99 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Lenovo Tab P11 Pro Gen 2\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 12; TB132FU Build/SKQ1.220331.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.163 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab A8 (2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 11; SM-X200 Build/RP1A.200720.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.65 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S8 (2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 12; SM-X700 Build/SP1A.210812.016) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S9 (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; SM-X710 Build/TP1A.220624.014) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S9 Ultra (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; SM-X910 Build/TP1A.220624.014) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.92 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S10 Ultra\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 15; SM-X926B Build/AP3A.240905.015.A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.7151.112 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Xiaomi Pad 6 (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; 23043RP34G Build/TKQ1.221114.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.92 Safari/537.36\"\r\n }\r\n*/\r\n\r\n//Node\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BrowserService {\r\n //updated\r\n private _updated = new BehaviorSubject<any>(null);\r\n readonly updated$ = this._updated.asObservable();\r\n\r\n constructor(private platform: Platform) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.fireUpdated();\r\n }\r\n\r\n private fireUpdated() {\r\n this._updated.next(null);\r\n }\r\n\r\n // Checks if the app is running inside an iframe\r\n public isIframe(): boolean {\r\n return window !== window.parent && !window.opener;\r\n }\r\n\r\n public isIE(): boolean {\r\n return this.platform.TRIDENT;\r\n }\r\n\r\n public isMobile(): boolean {\r\n if (!this.platform?.isBrowser) return false;\r\n\r\n const mobileRegex = new RegExp(\r\n \"(android.+mobile)|\" + // Android phones\r\n \"iphone|ipod|\" + // Apple phones\r\n \"blackberry|\" + // Modern BlackBerry\r\n \"mobile safari|\" + // Safari in mobile mode\r\n \"sm-[a-z0-9]+|\" + // Samsung Galaxy phones (SM-G series)\r\n \"pixel [0-9a-z]+|\" + // Google Pixel phones\r\n \"redmi|mi [0-9a-z]+|poco|\" + // Xiaomi/Redmi/Poco\r\n \"oneplus|oppo|vivo|realme|\" + // Other Android phones\r\n \"huawei|honor|\" + // Huawei/Honor\r\n \"motorola|moto|\" + // Motorola\r\n \"nokia|infinix|tecno\", // Other brands\r\n \"i\"\r\n );\r\n\r\n return mobileRegex.test(this.userAgent);\r\n }\r\n\r\n public isTablet(): boolean {\r\n if (!this.platform?.isBrowser) return false;\r\n\r\n const tabletRegex = new RegExp(\r\n \"ipad|\" + // Apple iPads\r\n \"android(?!.*mobile)|\" + // Android tablets (exclude phones)\r\n \"tablet|kindle|playbook|silk|\" +\r\n \"nexus 7|nexus 10|\" + // Google Nexus tablets\r\n \"fire|kf[a-z0-9]+|\" + // Amazon Fire tablets\r\n \"sm-t|sm-x|gt-p|sch-i|xoom|tf101|\" + // Samsung Galaxy Tab tablets\r\n \"tab(?!let)|\" + // Match \"tab\" but not \"tablet\"\r\n \"tangor|tangorpro|\" + // Google Pixel Tablet\r\n \"pad\\\\s?[0-9]*|23043rp34g|\" + // Xiaomi Pad\r\n \"tb[0-9a-z\\\\-]+|\" + // Lenovo Tab\r\n \"mrx-al09|\" + // Huawei MatePad Pro\r\n \"x926b\", // Galaxy Tab S10 Ultra\r\n \"i\"\r\n );\r\n\r\n return tabletRegex.test(this.userAgent);\r\n }\r\n\r\n public isMobileOrTablet(): boolean {\r\n return this.isMobile() || this.isTablet();\r\n }\r\n\r\n public isDesktopMacOS(): boolean {\r\n // Check macOS desktop user agent (Macintosh or Mac OS X)\r\n const isMac = /macintosh|mac os x/i.test(this.userAgent);\r\n\r\n // Exclude iPhone and iPad (iOS devices)\r\n const isIPhone = /iphone/i.test(this.userAgent);\r\n const isIPad = /ipad/i.test(this.userAgent);\r\n\r\n return isMac && !isIPhone && !isIPad;\r\n }\r\n\r\n public isDesktop(): boolean {\r\n if (this.isDesktopMacOS()) {\r\n return true;\r\n }\r\n\r\n return !this.isMobileOrTablet();\r\n }\r\n\r\n public get userAgent(): string {\r\n return navigator.userAgent.toLowerCase();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Nov 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DigitalMarketingService {\r\n private existingMetaTags = new Map<string, HTMLElement>();\r\n\r\n constructor(private title: Title, private meta: Meta, @Inject(DOCUMENT) private dom: any) {\r\n }\r\n\r\n updateTitle(title?: string) {\r\n this.title.setTitle(title);\r\n }\r\n\r\n updateDescription(desc?: string) {\r\n if (desc) {\r\n this.meta.updateTag({ name: 'description', content: desc });\r\n } \r\n else {\r\n this.meta.removeTag('name=\"description\"');\r\n }\r\n }\r\n\r\n updateKeywords(keywords?: string) {\r\n if (keywords) {\r\n this.meta.updateTag({ name: 'keywords', content: keywords });\r\n } \r\n else {\r\n this.meta.removeTag('name=\"keywords\"');\r\n }\r\n }\r\n\r\n updateMetaTags(metaDefinitions: MetaDefinition[]) {\r\n this.removePreviousMetaTags();\r\n\r\n if (metaDefinitions && metaDefinitions.length > 0) {\r\n metaDefinitions.forEach(metaDef => {\r\n const tag = this.meta.updateTag(metaDef);\r\n if (tag) {\r\n const key = this.getMetaTagKey(metaDef);\r\n this.existingMetaTags.set(key, tag);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private removePreviousMetaTags() {\r\n this.existingMetaTags.forEach((tag, key) => {\r\n if (tag && tag.parentNode) {\r\n tag.parentNode.removeChild(tag);\r\n }\r\n });\r\n\r\n this.existingMetaTags.clear();\r\n }\r\n\r\n private getMetaTagKey(metaDef: MetaDefinition): string {\r\n if (metaDef.name) {\r\n return `name:${metaDef.name}`;\r\n } \r\n else if (metaDef.property) {\r\n return `property:${metaDef.property}`;\r\n } \r\n else if (metaDef.httpEquiv) {\r\n return `httpEquiv:${metaDef.httpEquiv}`;\r\n }\r\n \r\n return Math.random().toString(); // fallback\r\n }\r\n\r\n setCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const head = this.dom.getElementsByTagName('head')[0];\r\n\r\n const existingLinks = this.dom.querySelectorAll('link[rel=\"canonical\"]');\r\n existingLinks.forEach((link: HTMLLinkElement) => {\r\n if (link.parentNode) {\r\n link.parentNode.removeChild(link);\r\n }\r\n });\r\n\r\n const link: HTMLLinkElement = this.dom.createElement('link');\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', canUrl);\r\n head.appendChild(link);\r\n }\r\n\r\n updateCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const head = this.dom.getElementsByTagName('head')[0];\r\n let link: HTMLLinkElement = this.dom.querySelector(`link[rel='canonical']`) || null;\r\n\r\n if (link == null) {\r\n link = this.dom.createElement('link') as HTMLLinkElement;\r\n head.appendChild(link);\r\n }\r\n\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', canUrl);\r\n }\r\n\r\n updateOpenGraphTags(ogTags: { title?: string; description?: string; image?: string; url?: string }) {\r\n const metaTags: MetaDefinition[] = [];\r\n\r\n if (ogTags.title) {\r\n metaTags.push({ property: 'og:title', content: ogTags.title });\r\n metaTags.push({ name: 'twitter:title', content: ogTags.title });\r\n }\r\n\r\n if (ogTags.description) {\r\n metaTags.push({ property: 'og:description', content: ogTags.description });\r\n metaTags.push({ name: 'twitter:description', content: ogTags.description });\r\n }\r\n\r\n if (ogTags.image) {\r\n metaTags.push({ property: 'og:image', content: ogTags.image });\r\n metaTags.push({ name: 'twitter:image', content: ogTags.image });\r\n }\r\n\r\n if (ogTags.url) {\r\n metaTags.push({ property: 'og:url', content: ogTags.url });\r\n }\r\n\r\n metaTags.push({ name: 'twitter:card', content: 'summary_large_image' });\r\n\r\n this.updateMetaTags(metaTags);\r\n }\r\n\r\n clearAllMetaTags() {\r\n this.removePreviousMetaTags();\r\n this.meta.removeTag('name=\"description\"');\r\n this.meta.removeTag('name=\"keywords\"');\r\n\r\n const metaTagsToRemove = [\r\n 'property=\"og:title\"', 'property=\"og:description\"', 'property=\"og:image\"', 'property=\"og:url\"',\r\n 'name=\"twitter:title\"', 'name=\"twitter:description\"', 'name=\"twitter:image\"', 'name=\"twitter:card\"'\r\n ];\r\n\r\n metaTagsToRemove.forEach(selector => {\r\n this.meta.removeTag(selector);\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Nov 2020\r\n\r\n Details:\r\n https://medium.com/@danielfilipkowskiblogs/adding-google-analytics-to-angular-v15-1766c4bdaed5\r\n\r\n API:\r\n https://developers.google.com/tag-platform/gtagjs/reference\r\n https://developers.google.com/analytics/devguides/collection/ga4/events?client_type=gtag\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class GoogleAnalyticsService {\r\n private subscription: Subscription;\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n subscribe() {\r\n this.subscription = this.router.events.subscribe({\r\n next: (event) => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.ga) {\r\n this.ga('set', 'page', event.urlAfterRedirects);\r\n this.ga('send', 'pageview');\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n unsubscribe() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n event(name: string, params = null) {\r\n if (!this.ga) {\r\n return;\r\n }\r\n\r\n try {\r\n if (params) {\r\n this.ga('event', name, params);\r\n }\r\n else {\r\n this.ga('event', name);\r\n }\r\n }\r\n catch (err) {\r\n console.error('Google Analytics event error', err);\r\n }\r\n }\r\n\r\n private get ga() {\r\n let ga = (<any>window).gtag;\r\n return ga;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, fromEvent, merge, Subject, timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdleService {\r\n private idle$: Observable<any>;\r\n private timer$;\r\n private idleSubscription;\r\n\r\n //Dates/Timeouts\r\n private startDate;\r\n private timeOutSeconds: number;\r\n private timeOutMilliSeconds: number;\r\n\r\n public expired$: Subject<boolean> = new Subject<boolean>();\r\n\r\n //Private\r\n private resetTimeCounters(timeOutSeconds) {\r\n this.timeOutSeconds = timeOutSeconds;\r\n this.timeOutMilliSeconds = timeOutSeconds * 1000;\r\n this.startDate = new Date();\r\n }\r\n\r\n private startTimer() {\r\n this.timer$ = timer(this.timeOutMilliSeconds, 1 * 1000).subscribe({\r\n next: (data) => {\r\n let nowDate = new Date();\r\n let exiredDate = new Date(this.startDate.getTime() + this.timeOutMilliSeconds);\r\n\r\n if (nowDate.getTime() >= exiredDate.getTime()) {\r\n //console.log(\"nowDate: \" + nowDate);\r\n //console.log(\"exiredDate: \" + exiredDate);\r\n\r\n this.expired$.next(true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private resetTimer() {\r\n this.startDate = new Date();\r\n }\r\n\r\n //Public\r\n public startWatching(timeOutSeconds): Observable<any> {\r\n this.idle$ = merge(\r\n fromEvent(document, 'mousemove'),\r\n fromEvent(document, 'click'),\r\n fromEvent(document, 'mousedown'),\r\n fromEvent(document, 'keypress'),\r\n fromEvent(document, 'DOMMouseScroll'),\r\n fromEvent(document, 'mousewheel'),\r\n fromEvent(document, 'touchmove'),\r\n fromEvent(document, 'MSPointerMove'),\r\n fromEvent(window, 'mousemove'),\r\n fromEvent(window, 'resize'),\r\n );\r\n\r\n this.resetTimeCounters(timeOutSeconds);\r\n\r\n this.idleSubscription = this.idle$.subscribe({\r\n next: (data) => {\r\n this.resetTimer();\r\n }\r\n });\r\n\r\n this.startTimer();\r\n return this.expired$;\r\n }\r\n\r\n public stopWatching() {\r\n this.timer$.unsubscribe();\r\n this.idleSubscription.unsubscribe();\r\n }\r\n\r\n public restartIdleTimer(timeOutSeconds) {\r\n this.timer$.unsubscribe();\r\n\r\n this.resetTimeCounters(timeOutSeconds);\r\n this.startTimer();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, NgZone } from '@angular/core';\r\n\r\n//App\r\nimport { IQueryParam } from '../models/qs';\r\n\r\n@Injectable()\r\nexport class ScriptService {\r\n constructor(protected zone: NgZone) {\r\n }\r\n\r\n private getElemId(globalVar: string): string {\r\n return `anatoly-script-${globalVar}`;\r\n }\r\n\r\n registerScript(url: string, globalVar: string, onReady: (globalVar: any) => void): void {\r\n const existingGlobalVar = (window as any)[globalVar];\r\n\r\n if (existingGlobalVar) {\r\n // global variable is present = script was already loaded\r\n this.zone.run(() => {\r\n onReady(existingGlobalVar);\r\n });\r\n return;\r\n }\r\n\r\n // prepare script elem\r\n const scriptElem = document.createElement('script');\r\n scriptElem.id = this.getElemId(globalVar);\r\n scriptElem.innerHTML = '';\r\n scriptElem.onload = () => {\r\n this.zone.run(() => {\r\n onReady((window as any)[globalVar]);\r\n });\r\n };\r\n scriptElem.src = url;\r\n scriptElem.async = true;\r\n scriptElem.defer = true;\r\n\r\n // add script to header\r\n document.getElementsByTagName('head')[0].appendChild(scriptElem);\r\n }\r\n\r\n cleanup(globalVar: string): void {\r\n // remove script from DOM\r\n const scriptElem = document.getElementById(this.getElemId(globalVar));\r\n\r\n if (scriptElem) {\r\n scriptElem.remove();\r\n }\r\n }\r\n\r\n getQueryString(queryParams: IQueryParam[]): string {\r\n let queryString = '';\r\n\r\n for (let i = 0; i < queryParams.length; i++) {\r\n const queryParam = queryParams[i];\r\n if (i === 0) {\r\n queryString += '?';\r\n } else {\r\n queryString += '&';\r\n }\r\n\r\n queryString += `${queryParam.name}=${queryParam.value}`;\r\n }\r\n\r\n return queryString;\r\n }\r\n}\r\n","/*\r\n <file>\r\n Project:\r\n @osovitny/anatoly\r\n \r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n \r\n Created:\r\n 16 Dec 2025\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport class Message2User {\r\n type: number;\r\n block: boolean;\r\n timeout?: number;\r\n \r\n constructor(type: number, block: boolean, timeout?) {\r\n this.type = type;\r\n this.block = block;\r\n this.timeout = timeout;\r\n }\r\n}\r\n\r\nexport interface Message2UserConfig {\r\n type: number;\r\n image: string;\r\n color: string;\r\n title: string;\r\n message: string;\r\n go2dashboard: boolean\r\n}\r\n\r\n@Injectable()\r\nexport class Message2UserService extends BehaviorSubject<Message2User> {\r\n private configs;\r\n \r\n constructor() {\r\n super(null);\r\n }\r\n \r\n init(configs) {\r\n this.configs = configs;\r\n }\r\n \r\n getConfig(type: number) {\r\n return this.configs?.find(config => config.type == type);\r\n }\r\n \r\n notify(type: number, block = true, timeout = null) {\r\n const message = new Message2User(type, block, timeout);\r\n this.next(message);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\ndeclare var $: any;\r\n\r\nexport class DOM {\r\n //Private\r\n private static dir(elem: HTMLElement, dir, until = null, selector: string = null) {\r\n let matched = [];\r\n let truncate = until !== undefined && until != null;\r\n\r\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\r\n if (elem.nodeType === 1) {\r\n /*\r\n if (truncate && jQuery(elem).is(until)) {\r\n break;\r\n }\r\n */\r\n\r\n if (selector) {\r\n let className = selector.replace('.', '');\r\n if (elem.classList.contains(className)) {\r\n matched.push(elem);\r\n }\r\n }\r\n else {\r\n matched.push(elem);\r\n }\r\n }\r\n }\r\n\r\n return matched;\r\n }\r\n\r\n //Public\r\n public static first(elements: HTMLElement[]): HTMLElement {\r\n if (!elements || elements.length == 0) {\r\n return null;\r\n }\r\n\r\n return elements[0];\r\n }\r\n\r\n public static any(elements: HTMLElement[]): boolean {\r\n if (!elements || elements.length == 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public static parent(elem: HTMLElement): HTMLElement {\r\n let parentElement = elem.parentElement;\r\n let parentNode = elem.parentNode;\r\n\r\n return parentNode && parentNode.nodeType !== 11 ? parentElement : null;\r\n }\r\n\r\n public static parents(elem: HTMLElement, selector = null) {\r\n return this.dir(elem, \"parentNode\", null, selector);\r\n }\r\n\r\n public static findInDocument(selector: string): HTMLElement[] {\r\n let parent = $(document);\r\n return $(parent).find(selector).get();\r\n }\r\n\r\n public static find(elem, selector: string): HTMLElement[] {\r\n return $(elem).find(selector).get();\r\n }\r\n\r\n public static remove(nodes) {\r\n if (nodes == null) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(nodes)) {\r\n if (nodes.parentNode) {\r\n nodes.parentNode.removeChild(nodes);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (nodes.length == 0) {\r\n return;\r\n }\r\n\r\n let node;\r\n let i = 0;\r\n\r\n for (; (node = nodes[i]) != null; i++) {\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n }\r\n }\r\n }\r\n\r\n public static findAndRemove(element, selector) {\r\n this.remove(this.find(element, selector));\r\n }\r\n\r\n public static show(elem) {\r\n $(elem).show();\r\n }\r\n\r\n public static hide(elem) {\r\n $(elem).hide();\r\n }\r\n\r\n public static each(selector, action) {\r\n let parent = $(document);\r\n let elems = DOM.find(parent, selector);\r\n\r\n for (let i = 0; i < elems.length; i++) {\r\n let elem = elems[i];\r\n action(elem);\r\n }\r\n }\r\n\r\n //Css\r\n /*\r\n public static addClass(e: Element, className: string): Element {\r\n const class = e.getAttribute('class');\r\n if (class === null || class === '') {\r\n e.setAttribute('class', className);\r\n } else if (!DOM.hasClass(e, className)) {\r\n e.setAttribute('class', `${class} ${className}`);\r\n }\r\n\r\n return e;\r\n }\r\n\r\n public static removeClass(e: Element, className: string): Element {\r\n const class = e.getAttribute('class')\r\n if (class !== null && class !== '') {\r\n if (class === className) {\r\n e.setAttribute('class', '');\r\n } else {\r\n const result = class\r\n .split(' ')\r\n .filter((s: any) => s !== className)\r\n .join(' ');\r\n e.setAttribute('class', result);\r\n }\r\n }\r\n\r\n return e;\r\n }\r\n\r\n public static hasClass(e: Element, className: string): boolean {\r\n const class = e.getAttribute('class') || '';\r\n const r = new RegExp(`\\\\b${className}\\\\b`, '');\r\n return r.test(class);\r\n }\r\n */\r\n\r\n public static addClass(elem: Node | Element, classNames) {\r\n $(elem).addClass(classNames);\r\n }\r\n\r\n public static removeClass(elem: Node | Element, classNames) {\r\n $(elem).removeClass(classNames);\r\n }\r\n\r\n public static hasClass(elem: Node | Element, className) {\r\n $(elem).hasClass(className);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class QSUtils {\r\n private static getValue(url, name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n const regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)'),\r\n\r\n results = regex.exec(url);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n }\r\n\r\n public static getValueByName(name) {\r\n return QSUtils.getValue(location.search, name);\r\n }\r\n\r\n public static exists(name) {\r\n let value = QSUtils.getValueByName(name);\r\n if (value) return true;\r\n\r\n return false;\r\n }\r\n\r\n public static idExists() {\r\n return QSUtils.exists(\"id\");\r\n }\r\n\r\n public static clear() {\r\n try\r\n {\r\n let newURL = location.href.split(\"?\")[0];\r\n window.history.pushState('object', document.title, newURL);\r\n }\r\n catch(e)\r\n {\r\n }\r\n }\r\n\r\n public static clearKey(name, reload = false, clearStorage = false) {\r\n try\r\n {\r\n let str = null;\r\n let newURL= null;\r\n\r\n str = \"?\" + name;\r\n if (location.href.indexOf(str) > -1) {\r\n newURL = location.href.split(str)[0];\r\n }\r\n\r\n str = \"&\" + name;\r\n if (location.href.indexOf(str) > -1) {\r\n newURL = location.href.split(str)[0];\r\n }\r\n\r\n if (newURL && reload) {\r\n if (clearStorage) {\r\n console.log(\"Clearing Storage\");\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n }\r\n\r\n window.location.href = newURL;\r\n }\r\n else {\r\n window.history.pushState('object', document.title, newURL);\r\n }\r\n }\r\n catch(e)\r\n {\r\n }\r\n }\r\n\r\n public static getUrlSlug(): string {\r\n let str = location.href;\r\n let items = str.split('/');\r\n let urlSlugWithQS = items[items.length - 1];\r\n let urlSlug = urlSlugWithQS.split(\"?\")[0];\r\n\r\n return urlSlug;\r\n }\r\n\r\n //SSO\r\n public static isSSOinProgress(): boolean {\r\n return location.search.indexOf(\"action=sso\") > -1;\r\n }\r\n\r\n public static clearSSO() {\r\n this.clearKey(\"action=sso\");\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Utils {\r\n public static copyToClipBoard(event: any, val: string) {\r\n event.preventDefault();\r\n\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public static downloadFile(name: string, url: string) {\r\n const link = document.createElement('a');\r\n link.download = name;\r\n link.href = url;\r\n link.click();\r\n }\r\n\r\n public static downloadBlobFile(value: Blob, fileName: string) {\r\n const nav = (window.navigator as any);\r\n\r\n if (nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(value, fileName);\r\n }\r\n else {\r\n const downloadURL = window.URL.createObjectURL(value);\r\n Utils.downloadFile(fileName, downloadURL);\r\n }\r\n }\r\n\r\n /*\r\n Author:\r\n https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1\r\n */\r\n public static slugify(text: string, prefix: string = '', postfix: string = '') {\r\n const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';\r\n const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';\r\n const p = new RegExp(a.split('').join('|'), 'g');\r\n\r\n /*\r\n https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/\r\n https://stackoverflow.com/questions/822452/strip-html-from-text-javascript\r\n */\r\n text = text.replace(/(<([^>]+)>)/gi, '');\r\n\r\n let result = text\r\n .toString()\r\n .toLowerCase()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\r\n .replace(/&/g, '-and-') // Replace & with 'and'\r\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word characters\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start of text\r\n .replace(/-+$/, ''); // Trim - from end of text\r\n\r\n return prefix + result + postfix;\r\n }\r\n\r\n public static generateRandom(start: number, end: number) {\r\n return Math.floor(Math.random() * (end - start + 1)) + start;\r\n }\r\n\r\n public static sortArray(items) {\r\n return items?.slice().sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()))\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//consts\r\nexport * from './consts/app-settings';\r\nexport * from './consts/core-settings';\r\nexport * from './consts/formats';\r\nexport * from './consts/ga';\r\n\r\n//converts\r\nexport * from './converts/convert';\r\nexport * from './converts/dateConvert';\r\nexport * from './converts/xmlFormatter';\r\n\r\n//enums\r\nexport * from './enums/billing';\r\nexport * from './enums/enums';\r\n\r\n//go\r\nexport * from './go/go.service';\r\nexport * from './go/apps-go.service';\r\n\r\n//interceptors\r\nexport * from './interceptors/httpInterceptor';\r\n\r\n//guards\r\nexport * from './guards/once-import.guard';\r\nexport * from './guards/starter.guard';\r\n\r\n//localization\r\nexport * from './localization/localize.pipe';\r\nexport * from './localization/localization.service';\r\nexport * from './localization/localization.module';\r\nexport * from './localization/utils';\r\n\r\n//logging\r\nexport * from './logging/globalErrorHandler';\r\nexport * from './logging/logging.service';\r\n\r\n//notifications\r\nexport * from './notifications/alerts';\r\nexport * from './notifications/interfaces/notification';\r\nexport * from './notifications/services/notification-service';\r\n\r\n//performance\r\nexport * from './performance/stopwatch';\r\n\r\n//services\r\nexport * from './services/base/service';\r\nexport * from './services/appcontext.service';\r\nexport * from './services/browser.service';\r\nexport * from './services/dm.service'\r\nexport * from './services/google-analytics.service'\r\nexport * from './services/idle.service';\r\nexport * from './services/loading.service';\r\nexport * from './services/script.service'\r\nexport * from './services/starter.service';\r\nexport * from './services/web-storage.service'\r\nexport * from './services/message2user.service';\r\n\r\nexport * from './dom';\r\nexport * from './guid';\r\nexport * from './is';\r\nexport * from './subs';\r\nexport * from './utils/qsutils';\r\nexport * from './utils/utils';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n \r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './billing';\r\nexport * from './enums';","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnDestroy, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { Subs, IsDevMode, QSUtils, ICurrentApp, getCurrentApp } from \"../../../../core/exports\";\r\nimport { Mode } from \"../../../../core/enums\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class ComponentBase implements OnInit, OnDestroy {\r\n protected isDevMode = false;\r\n protected subs: Subs = new Subs();\r\n\r\n //Component Data => usually loading from API\r\n protected dataLoading: boolean = true;\r\n protected dataLoaded: boolean = false;\r\n protected dataFound: boolean = false;\r\n\r\n //Public\r\n currentApp: ICurrentApp;\r\n\r\n //Inputs\r\n @Input() mode = Mode.View;\r\n @Input() classes: string;\r\n @Input() title = '';\r\n @Input() isTitleVisible: boolean = true;\r\n @Input() isRequired: boolean = false;\r\n\r\n constructor() {\r\n this.internalInit();\r\n }\r\n\r\n private internalInit() {\r\n this.isDevMode = IsDevMode;\r\n this.currentApp = getCurrentApp();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n getEntityId() {\r\n return QSUtils.getValueByName(\"id\");\r\n }\r\n\r\n dataStartedLoading() {\r\n this.dataLoading = true;\r\n this.dataLoaded = false;\r\n this.dataFound = false;\r\n }\r\n\r\n dataLoadedAndNothingFound() {\r\n this.dataLoadedAndFound(false);\r\n }\r\n\r\n dataLoadedAndFound(found: boolean = true) {\r\n this.dataLoading = false;\r\n this.dataLoaded = true;\r\n this.dataFound = found;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 May 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n//App\r\nimport { formatUrl } from '../../../core/consts/core-settings';\r\n\r\n@Directive({\r\n})\r\nexport abstract class ReplacerDirectiveBase {\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n protected setUrlAttribute(name: string, url: string) {\r\n if (url) {\r\n let newUrl = formatUrl(url);\r\n this.setAttribute(name, newUrl);\r\n }\r\n }\r\n\r\n protected setAttribute(name: string, value: string) {\r\n this.renderer.setAttribute(this.el.nativeElement, name, value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 May 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n//App\r\nimport { ReplacerDirectiveBase } from './replacer.base.directive';\r\n\r\n@Directive({\r\n selector: 'a',\r\n standalone: false\r\n})\r\nexport class AReplacerDirective extends ReplacerDirectiveBase implements OnInit, OnChanges {\r\n @Input('href') href: string;\r\n\r\n ngOnInit() {\r\n this.setHref(this.href);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['href']) {\r\n this.setHref(changes['href'].currentValue);\r\n }\r\n }\r\n\r\n private setHref(value) {\r\n if (value) {\r\n if (value.indexOf(\"assets\") > -1) {\r\n this.setUrlAttribute('href', value);\r\n }\r\n else {\r\n this.setAttribute('href', value);\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signup-button\",\r\n templateUrl: \"./signup-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignUpButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n external = false;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n let url = MSALConfig.ui.signup;\r\n\r\n if (url) {\r\n this.external = url.indexOf('http') > -1;\r\n\r\n if (this.external) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n else {\r\n this.url = url;\r\n }\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Up</span>\r\n</ng-template>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Aug 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n//App\r\nimport {AppContextService} from '../../../core/services/appcontext.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-buyaccess-button',\r\n templateUrl: './buyaccess-button.component.html',\r\n standalone: false\r\n})\r\nexport class BuyAccessButtonComponent implements OnInit {\r\n contextUpdated = false;\r\n isUserSignedIn = false;\r\n currentPlanId = -1;\r\n\r\n //Inputs\r\n @Input() plan: number;\r\n @Input() visiblePlanStatus: boolean = false;\r\n @Input() visibleSignup: boolean = false;\r\n\r\n //Outputs\r\n @Output() planselect: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private appContext: AppContextService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n let profile = context.billing.profile;\r\n this.currentPlanId = profile.planId;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n\r\n //Events\r\n onPlanSelect() {\r\n this.planselect.emit(this.plan);\r\n }\r\n}\r\n","<div class=\"actions\" *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn && visibleSignup\">\r\n <anatoly-signup-button classes=\"btn btn-block btn-primary\" />\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visiblePlanStatus\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlanId\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlanId\"\r\n (click)=\"onPlanSelect()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Jun 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { AppContextService } from \"../../../core/services/appcontext.service\";\r\n\r\n@Component({\r\n selector: 'anatoly-billing-subscribe-plan-button',\r\n templateUrl: \"./subscribe-plan-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SubscribePlanButtonComponent implements OnInit {\r\n contextUpdated = false;\r\n isUserSignedIn = false;\r\n currentPlanId = -1;\r\n requestedPlanId = -1;\r\n\r\n //Inputs\r\n @Input() plan: number;\r\n @Input() visiblePlanStatus: boolean = false;\r\n @Input() visibleSignup: boolean = false;\r\n\r\n //Outputs\r\n @Output() planselect: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private appContext: AppContextService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n let profile = context.billing.profile;\r\n this.currentPlanId = profile.planId;\r\n this.requestedPlanId = profile.requestedPlanId ?? -1;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n\r\n //Events\r\n onPlanSelect() {\r\n this.planselect.emit(this.plan);\r\n }\r\n}\r\n","<div class=\"actions\" *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn && visibleSignup\">\r\n <anatoly-signup-button classes=\"btn btn-block btn-primary\" />\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visiblePlanStatus\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlanId\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan == requestedPlanId\">\r\n Requested\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlanId && plan != requestedPlanId\"\r\n (click)=\"onPlanSelect()\">\r\n Subscribe\r\n </button>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 11 Aug 2024\r\n\r\n Details:\r\n https://blog.thoughtram.io/angular/2017/02/21/using-zones-in-angular-for-better-performance.html\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class PaymentsService {\r\n selectedPaymentType;\r\n selectedPaymentMethod;\r\n subtotal = 0;\r\n promoCode = null;\r\n promoPercentage = null;\r\n promoAmount = null;\r\n currency = 'USD';\r\n\r\n //promoApplied\r\n private _promoCodeApplied = new Subject<any>(); \r\n readonly promoCodeApplied$ = this._promoCodeApplied.asObservable(); \r\n\r\n //showStripeDialog\r\n private _showStripeDialog = new Subject<any>();\r\n readonly showStripeDialog$ = this._showStripeDialog.asObservable();\r\n\r\n //showBraintreeDialog\r\n private _showBraintreeDialog = new Subject<any>();\r\n readonly showBraintreeDialog$ = this._showBraintreeDialog.asObservable();\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n //fires\r\n private firePromoCodeApplied() {\r\n this._promoCodeApplied.next(this.promoCode);\r\n }\r\n\r\n //Public\r\n init() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n resetState() {\r\n this.subtotal = 0;\r\n this.promoCode = null;\r\n this.promoPercentage = null;\r\n this.promoAmount = null;\r\n }\r\n\r\n getTotal() {\r\n let subtotal = this.subtotal;\r\n\r\n if (this.promoAmount != 0) {\r\n subtotal = subtotal - this.promoAmount;\r\n } \r\n else if (this.promoPercentage != 0) {\r\n subtotal = subtotal - (subtotal * (this.promoPercentage / 100));\r\n subtotal = +subtotal.toFixed(2);\r\n }\r\n\r\n // Round to nearest whole number\r\n subtotal = Math.round(subtotal);\r\n\r\n // Ensure non-negative total\r\n return subtotal > 0 ? subtotal : 0;\r\n }\r\n\r\n applyPromoCode(data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this.promoCode = data.code;\r\n\r\n if (data.amount) {\r\n this.promoPercentage = 0;\r\n this.promoAmount = parseInt(data.amount);\r\n }\r\n else if (data.percentage) {\r\n this.promoPercentage = parseInt(data.percentage);\r\n this.promoAmount = 0;\r\n }\r\n\r\n this.firePromoCodeApplied();\r\n }\r\n\r\n getPromoCodeAsString(): string {\r\n if (this.promoAmount > 0) {\r\n return \"$\" + this.promoAmount;\r\n }\r\n else if (this.promoPercentage > 0) {\r\n return this.promoPercentage + \"%\";\r\n }\r\n\r\n return '$0';\r\n }\r\n\r\n openStripePaymentDialog() {\r\n this._showStripeDialog.next(true);\r\n }\r\n\r\n openBraintreePaymentDialog() {\r\n this._showBraintreeDialog.next(true);\r\n }\r\n\r\n closeBraintreePaymentDialog() {\r\n this._showBraintreeDialog.next(false);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jun 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class PromoCodesApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/promoCodes`;\r\n }\r\n\r\n getPromoCode(code): Observable<any> {\r\n return this.get<any>('getPromoCode', { code });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PromoCodesApiService } from \"../../../data/services/billing/promocodes-api.service\";\r\nimport { NotificationService } from \"../../../core/notifications/services/notification-service\";\r\nimport { DiscountCodeStatus } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-order-summary\",\r\n templateUrl: \"./order-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class OrderSummaryComponent extends ComponentBase {\r\n showPromoCode = false;\r\n promoCode;\r\n discount;\r\n\r\n constructor(\r\n public ps: PaymentsService,\r\n private api: PromoCodesApiService,\r\n private ns: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n //Tos\r\n toTotal(): number {\r\n return this.ps.getTotal();\r\n }\r\n\r\n //Events\r\n onTogglePromoCode() {\r\n this.showPromoCode = !this.showPromoCode;\r\n }\r\n\r\n onApplyPromoCode() {\r\n if (!this.promoCode) {\r\n this.ns.info(\"Please enter a promo code\");\r\n return;\r\n }\r\n\r\n this.api.getPromoCode(this.promoCode).subscribe({\r\n next: (data: any) => {\r\n if (!data) {\r\n this.ns.error(\"Invalid Promo Code\");\r\n return;\r\n }\r\n\r\n switch (data.status) {\r\n case DiscountCodeStatus.Exist:\r\n this.ps.applyPromoCode(data);\r\n this.discount = this.ps.getPromoCodeAsString();\r\n\r\n this.ns.success(\"Discount applied successfully\");\r\n break;\r\n\r\n case DiscountCodeStatus.NotFound:\r\n this.ns.error(\"Invalid Promo Code\");\r\n break;\r\n\r\n case DiscountCodeStatus.AlreadyUsed:\r\n this.ns.error(\"Promo Code already applied\");\r\n break;\r\n\r\n default:\r\n this.ns.error(\"Invalid Promo Code\");\r\n break;\r\n }\r\n },\r\n error: (e) => {\r\n this.ns.error();\r\n },\r\n });\r\n }\r\n}\r\n","<div class='card'>\r\n <div class='card-header'>\r\n <div class='card-title'>\r\n <h2>Order Summary</h2>\r\n </div>\r\n </div>\r\n <div class='card-body'>\r\n <div class='order-summary'>\r\n <ng-content></ng-content>\r\n\r\n <div class='subtotal'>\r\n <span>Subtotal:</span><strong>${{ ps.subtotal }}</strong>\r\n </div>\r\n <div class='divider'></div>\r\n <div class=\"add-promo-code\" [ngClass]=\"{ 'show': showPromoCode }\" (click)=\"onTogglePromoCode()\">\r\n <span class='has-arrow'>Add a Promo Code:</span>\r\n </div>\r\n\r\n @if (showPromoCode) {\r\n <div class=\"add-promo-code\" [ngClass]=\"{ 'show': showPromoCode }\">\r\n <div class=\"promo-code\">\r\n <input type=\"text\" [(ngModel)]=\"promoCode\" class=\"input-text\" placeholder=\"Promo code\">\r\n <button class=\"btn\" (click)=\"onApplyPromoCode()\">Apply</button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class='divider'></div>\r\n <div class='discounts'>\r\n <span>Discounts & Savings:</span>\r\n <strong>{{ discount }}</strong>\r\n </div>\r\n <div class='divider'></div>\r\n <div class='total'>\r\n <span>Total:</span>\r\n <strong>${{ toTotal() }}</strong>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Apr 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n//App\r\nimport { ReplacerDirectiveBase } from './replacer.base.directive';\r\n\r\n@Directive({\r\n selector: 'img',\r\n standalone: false\r\n})\r\nexport class ImageReplacerDirective extends ReplacerDirectiveBase implements OnInit, OnChanges {\r\n @Input('src') src: string;\r\n\r\n ngOnInit() {\r\n this.setSrc(this.src);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['src']) {\r\n this.setSrc(changes['src'].currentValue);\r\n }\r\n }\r\n\r\n private setSrc(value) {\r\n this.setUrlAttribute('src', value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PaymentMethod } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-payment-methods\",\r\n templateUrl: \"./payment-methods.component.html\",\r\n standalone: false\r\n})\r\nexport class PaymentMethodsComponent extends ComponentBase {\r\n paymentMethods = [\r\n { id: PaymentMethod.CreditCard, title: \"\", icon: \"cards\", selected: true },\r\n { id: PaymentMethod.PayPal, title: \"\", icon: \"paypal\", selected: false },\r\n { id: PaymentMethod.Stripe, title: \"\", icon: \"stripe\", selected: false },\r\n { id: PaymentMethod.Venmo, title: \"\", icon: \"venmo\", selected: false },\r\n {\r\n id: PaymentMethod.ApplePay,\r\n title: \"\",\r\n icon: \"applepay\",\r\n selected: false,\r\n },\r\n {\r\n id: PaymentMethod.GooglePay,\r\n title: \"\",\r\n icon: \"googlepay\",\r\n selected: false,\r\n },\r\n {\r\n id: PaymentMethod.Wallet,\r\n title: \"\",\r\n icon: \"wallet\",\r\n selected: false,\r\n },\r\n ];\r\n\r\n constructor(public ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n let selectedPM = this.paymentMethods.filter(\r\n (value) => value.selected == true,\r\n )[0];\r\n this.ps.selectedPaymentMethod = selectedPM.id;\r\n }\r\n\r\n private setValues() {}\r\n\r\n //Events\r\n onPaymentSelect(paymentMethod) {\r\n //1. Unselect items\r\n this.paymentMethods.forEach((payment) => (payment.selected = false));\r\n\r\n //2. Set selected PaymentMethod\r\n paymentMethod.selected = true;\r\n this.ps.selectedPaymentMethod = paymentMethod.id;\r\n }\r\n}\r\n","<div class='card p-0 mb-3'>\r\n <div class='card-header'>\r\n <div class='card-title'>\r\n <h2>Select a payment method</h2>\r\n </div>\r\n </div>\r\n <div class='card-body'>\r\n <div class='payment__select-method'>\r\n <ul>\r\n @for (item of paymentMethods; track item) {\r\n <li (click)='onPaymentSelect(item)' [class.selected]='item.selected'>\r\n <div class='payment-name'>Pay with {{ item.title }}</div>\r\n <div class='icon-img'>\r\n <img src='/assets/@lib/images/payment-icons/{{item.icon}}.png' alt='payment-icon {{item.title}}'>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PaymentType } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-payment-options\",\r\n templateUrl: \"./payment-options.component.html\",\r\n standalone: false\r\n})\r\nexport class PaymentOptionsComponent extends ComponentBase {\r\n @Input() priceWeekly;\r\n @Input() priceUpfront;\r\n @Input() numberOfWeeks;\r\n\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n this.ps.selectedPaymentType = PaymentType.FullPayment;\r\n }\r\n\r\n private setValues() {}\r\n\r\n //Events\r\n onPaymentTypeSelect(pt) {\r\n this.ps.selectedPaymentType = pt;\r\n this.change.emit();\r\n }\r\n}\r\n","<div class='payment-options'>\r\n <h4>Payment options</h4>\r\n <div (click)='onPaymentTypeSelect(2)' [ngClass]='{\"active\": ps.selectedPaymentType == 2 }' class='pay-weekly'>\r\n <div class='info'>\r\n <h4>Pay weekly</h4>\r\n <p>Cancel anytime</p>\r\n </div>\r\n <div class='price'>${{ priceWeekly }}</div>\r\n </div>\r\n\r\n <div (click)='onPaymentTypeSelect(1)' [ngClass]='{\"active\": ps.selectedPaymentType == 1 }' class='pay-upfront'>\r\n <div class='info'>\r\n <h4>Pay upfront</h4>\r\n <p>Covers the full {{ numberOfWeeks }} weeks </p>\r\n </div>\r\n <div class='price'>${{ priceUpfront }}</div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl, FormControl, ValidatorFn, AbstractControlOptions, AsyncValidatorFn } from \"@angular/forms\";\r\n\r\n//App\r\nimport { ComponentBase } from \"./component\";\r\nimport { QSUtils } from \"../../../../core/exports\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class EditComponentBase extends ComponentBase {\r\n //Modes\r\n protected isAddMode = false;\r\n protected isEditMode = false;\r\n\r\n //Forms support\r\n @Input() formGroup: FormGroup;\r\n @Input() formSubmitted: boolean = false;\r\n @Input() controlName: string = null;\r\n @Input() controlTitle: string = null;\r\n\r\n /**\r\n * returns formgroup controls.\r\n * main use case is used in html pages\r\n */\r\n get fc() {\r\n return this.formGroup.controls;\r\n }\r\n\r\n get isNgModelBased() {\r\n return !this.isFormBased;\r\n }\r\n\r\n get isFormBased() {\r\n if (this.controlName) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this.isEditMode = QSUtils.idExists();\r\n this.isAddMode = !this.isEditMode;\r\n }\r\n\r\n isControlValid(name: string, frmGroup: FormGroup = null) {\r\n return !this.isControlInvalid(name, frmGroup);\r\n }\r\n\r\n isControlInvalid(name: string, frmGroup: FormGroup = null) {\r\n if (typeof name === \"undefined\" || name == \"\") {\r\n return false;\r\n }\r\n\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n if (!fg) {\r\n return false;\r\n }\r\n\r\n let control = fg.get(name);\r\n\r\n if (control) {\r\n return (\r\n (this.formSubmitted && control.invalid) || (control.touched && control.invalid)\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //FormGroup functions\r\n getFormValue(name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[name].value;\r\n }\r\n\r\n setFormValue(name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[name].setValue(value);\r\n }\r\n\r\n getFormGroupValue(groupName, name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[groupName].get(name).value;\r\n }\r\n\r\n setFormGroupValue(groupName, name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[groupName].get(name).setValue(value);\r\n }\r\n\r\n /**\r\n * Add control to form group\r\n * @param name\r\n * @param formControl\r\n * @param frmGroup\r\n */\r\n addControl(\r\n name: string,\r\n formControl: AbstractControl,\r\n frmGroup: FormGroup = null\r\n ) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.addControl(name, formControl);\r\n }\r\n\r\n /**\r\n * Removes control from form group\r\n * @param name\r\n * @param frmGroup\r\n */\r\n removeControl(name: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n\r\n if (fg.get(name)) {\r\n fg.removeControl(name);\r\n }\r\n }\r\n\r\n /**\r\n * return new form control\r\n * @param formState\r\n * @param validatorOrOpts\r\n * @param asyncValidator\r\n */\r\n createFormControl(\r\n formState?: any,\r\n validatorOrOpts?:\r\n | ValidatorFn\r\n | ValidatorFn[]\r\n | AbstractControlOptions\r\n | null,\r\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null\r\n ) {\r\n return new FormControl(formState, validatorOrOpts, asyncValidator);\r\n }\r\n\r\n /**\r\n * Set error to control\r\n * @param controlName formControl name\r\n * @param err error expect {erroname: boolean} format\r\n * @param frmGroup\r\n */\r\n setControlError(controlName: string, err: {}, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors(err);\r\n }\r\n\r\n /**\r\n * Set {invalid: true} for the specified form\r\n * @param controlName form control name\r\n * @param frmGroup\r\n */\r\n setInValidError(controlName: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors({ invalid: true });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 24 Jan 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { DialogThemeColor } from \"@progress/kendo-angular-dialog\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"./components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class DialogBase extends EditComponentBase {\r\n //Private\r\n private _isOpen = false;\r\n\r\n //Public\r\n themeColor: DialogThemeColor = \"primary\";\r\n\r\n @Input()\r\n get isOpen() {\r\n return this._isOpen;\r\n }\r\n set isOpen(value) {\r\n if (value) {\r\n if (this.osOnBeforeOpen) {\r\n this.osOnBeforeOpen();\r\n }\r\n\r\n this.opened.emit();\r\n }\r\n\r\n this._isOpen = value;\r\n }\r\n\r\n //Events\r\n @Output() opened: EventEmitter<any> = new EventEmitter();\r\n @Output() closed: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n osOnBeforeOpen?(): void;\r\n\r\n open() {\r\n this.isOpen = true;\r\n }\r\n\r\n close(returnValue: any = \"OK\") {\r\n this.isOpen = false;\r\n this.closed.emit(returnValue);\r\n }\r\n\r\n cancel() {\r\n this.isOpen = false;\r\n this.closed.emit(-1);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Nov 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class PaymentsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/payments`;\r\n }\r\n\r\n //Stripe\r\n createStripeSession(amount, currency, name, description, image) {\r\n return this.post('createStripeSession', { amount, currency, name, description, image }, 'json');\r\n }\r\n\r\n //Braintree\r\n createBraintreeToken(): Observable<any> {\r\n return this.get<string>('createBraintreeToken');\r\n }\r\n\r\n addPayment(\r\n paymentMethod, planId, paidFor,\r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n\r\n success?: Function, error?: Function) {\r\n return this.post('addPayment', {\r\n paymentMethod, planId, paidFor,\r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n }, 'json').subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Nov 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class SubscriptionsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/subscriptions`;\r\n }\r\n \r\n getSubscriptions(data: any): Observable<any[]> {\r\n return this.get<any[]>('getSubscriptions', data);\r\n }\r\n\r\n addSubscription(subscriptionProvider, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency, \r\n success?: Function, error?: Function) {\r\n this.post('addSubscription', { \r\n subscriptionProvider, newSubscriptionId, \r\n planId, addons, subtotal, promoCode, total, currency \r\n }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n\r\n addFreeSubscription(planId, addons, subtotal, promoCode, total, currency, \r\n success?: Function, error?: Function) {\r\n this.post('addFreeSubscription', { \r\n planId, addons, subtotal, promoCode, total, currency \r\n }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n } \r\n\r\n cancelSubscription(subscriptionProvider, subscriptionId, success?: Function, error?: Function) {\r\n this.post('cancelSubscription', { subscriptionProvider, subscriptionId }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 Jul 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n//App\r\nimport { SubscriptionsApiService } from '../../data/services/billing/subscriptions-api.service';\r\nimport { AppContextService } from '../../core/services/appcontext.service';\r\nimport { PaymentMethod, PaymentStage, SubscriptionProvider } from '../../core/enums';\r\nimport { PaymentsApiService } from '../../data/services/billing/payments-api.service';\r\nimport { NotificationService } from '../../core/notifications/services/notification-service';\r\n\r\n@Injectable()\r\nexport class BillingService {\r\n //paymentAdded\r\n private _paymentAdded = new Subject<any>();\r\n readonly paymentAdded$ = this._paymentAdded.asObservable();\r\n\r\n //paymentProgress\r\n private _paymentProgress = new Subject<any>();\r\n readonly paymentProgress$ = this._paymentProgress.asObservable();\r\n\r\n //subscriptionAdded\r\n private _subscriptionAdded = new Subject<any>();\r\n readonly subscriptionAdded$ = this._subscriptionAdded.asObservable();\r\n\r\n constructor(\r\n private zone: NgZone, \r\n private appContext: AppContextService, \r\n private apiPayments: PaymentsApiService,\r\n private apiSubscriptions: SubscriptionsApiService,\r\n private ns: NotificationService) {\r\n }\r\n\r\n //fires\r\n firePaymentAdded(isPaymentValid, paymentId) {\r\n this._paymentAdded.next({ isPaymentValid, paymentId });\r\n }\r\n \r\n firePaymentProgress(paymentStage, paymentInProgress, isPaymentFailed) {\r\n this._paymentAdded.next({ paymentStage, paymentInProgress, isPaymentFailed });\r\n }\r\n\r\n fireSubscriptionAdded(paymentInProgress, paymentFailed) {\r\n this._subscriptionAdded.next({ paymentInProgress, paymentFailed });\r\n }\r\n\r\n createStripeSession(amount, currency, title, description, image) {\r\n return this.apiPayments.createStripeSession(amount, currency, title, description, image);\r\n }\r\n\r\n createBraintreeToken() {\r\n return this.apiPayments.createBraintreeToken();\r\n }\r\n\r\n addPayment(paymentMethod, planId, paidFor, \r\n subtotal, promoCode, total, currency, \r\n pmId, pmStatus, pmDetails) {\r\n this.zone.run(() => {\r\n let paidForAsString = JSON.stringify(paidFor);\r\n\r\n if (total == 0) {\r\n paymentMethod = PaymentMethod.None;\r\n }\r\n\r\n this.apiPayments.addPayment(\r\n paymentMethod, planId, paidForAsString, \r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n\r\n (data) => {\r\n if (!data || !data?.isPaymentValid) {\r\n this.paymentFailed(PaymentStage.External);\r\n return;\r\n }\r\n\r\n this.paymentSuccessful(PaymentStage.External);\r\n this.firePaymentAdded(data.isPaymentValid, data.paymentId);\r\n },\r\n () => {\r\n this.paymentFailed(PaymentStage.External);\r\n });\r\n });\r\n }\r\n\r\n paymentSuccessful(stage: PaymentStage) {\r\n this.setPaymentProgress(stage, false, false); \r\n } \r\n\r\n paymentFailed(stage: PaymentStage) {\r\n this.setPaymentProgress(stage, false, true); \r\n } \r\n\r\n setPaymentProgress(stage: PaymentStage, paymentInProgress, isPaymentFailed) {\r\n this.firePaymentProgress(stage, paymentInProgress, isPaymentFailed);\r\n\r\n if (!paymentInProgress && isPaymentFailed) {\r\n this.ns.error(\"Payment Failed\");\r\n } \r\n } \r\n\r\n addSubscription(sp: SubscriptionProvider, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency) {\r\n this.zone.run(() => {\r\n this.apiSubscriptions.addSubscription(sp, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency,\r\n () => {\r\n this.fireSubscriptionAdded(false, false);\r\n this.appContext.updateCurrent();\r\n },\r\n () => {\r\n this.fireSubscriptionAdded(false, true);\r\n });\r\n });\r\n } \r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 14 Aug 2024\r\n\r\n Description:\r\n Credit Card payment form via braintree integration\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport * as dropin from 'braintree-web-drop-in';\r\n\r\n//App\r\nimport { DialogBase } from '../../../../ui/components/base/dialog';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { NotificationService } from '../../../../core/notifications/services/notification-service';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-braintree-dialog',\r\n templateUrl: './braintree.component.html',\r\n standalone: false\r\n})\r\nexport class BraintreeDialog extends DialogBase {\r\n braintreeInstance: any;\r\n deviceData: any;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() title;\r\n @Input() description;\r\n @Input() image;\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService, private ns: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.ps.showBraintreeDialog$.subscribe((isOpen) => {\r\n this.isOpen = true;\r\n this.initializeEmbedForm();\r\n });\r\n }\r\n\r\n initializeEmbedForm() {\r\n const that = this;\r\n // let totalPrice = this.bs.getTotal().toString();\r\n // let currency = this.bs.currency;\r\n\r\n this.bs.createBraintreeToken().subscribe((response) => {\r\n if (response?.token) {\r\n dropin.create({\r\n authorization: response?.token,\r\n container: '#braintree-container',\r\n card: {\r\n cardholderName: true\r\n },\r\n\r\n //UNCOMMENT BELOW FOR GOOGLEPAY / VENMO\r\n // googlePay: {\r\n // merchantId: '',\r\n // transactionInfo: {\r\n // currencyCode: currency,\r\n // totalPriceStatus: 'FINAL',\r\n // totalPrice: totalPrice,\r\n // }\r\n // },\r\n // venmo: {\r\n // allowNewBrowserTab: false\r\n // },\r\n dataCollector: true\r\n }, function(createErr, instance) {\r\n if (instance) {\r\n that.braintreeInstance = instance;\r\n instance._dataCollector._instance.getDeviceData().then((deviceData) => {\r\n that.deviceData = deviceData;\r\n })\r\n }\r\n else {\r\n that.ns.error('Credit Card Payment is facing issues. Please try other payment methods.')\r\n that.closeDialog();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n submitPayment(payload) {\r\n //ps\r\n let paymentMethod = this.ps.selectedPaymentMethod;\r\n let subtotal = this.ps.subtotal;\r\n let promoCode = this.ps.promoCode;\r\n let total = this.ps.getTotal();\r\n let currency = this.ps.currency;\r\n\r\n this.bs.addPayment(paymentMethod, this.planId, this.paidFor, \r\n subtotal, promoCode, total, currency,\r\n payload.nonce, 'COMPLETED', this.deviceData);\r\n }\r\n\r\n closeDialog() {\r\n super.close();\r\n this.braintreeInstance = null;\r\n }\r\n\r\n //Events\r\n onPay() {\r\n if (this.braintreeInstance && this.deviceData) {\r\n const that = this;\r\n this.braintreeInstance.requestPaymentMethod(function(requestPaymentErr, payload) {\r\n that.submitPayment(payload);\r\n });\r\n }\r\n }\r\n\r\n onClose() {\r\n const closeDialog = this.closeDialog;\r\n\r\n if (this.braintreeInstance) {\r\n this.braintreeInstance.teardown(function(err) {\r\n closeDialog();\r\n });\r\n }\r\n else {\r\n closeDialog();\r\n }\r\n }\r\n\r\n public get visible() {\r\n return this.isOpen && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='480' [height]='560' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Credit Card</kendo-dialog-titlebar>\r\n <div class='kendo-dialog-content'>\r\n <div id=\"braintree-container\"></div>\r\n </div>\r\n <kendo-dialog-actions layout='end'>\r\n <button class='btn btn-sm btn-success' type='button' (click)='onPay()'>Pay</button>\r\n <button class='btn btn-sm btn-danger' type='button' (click)='onClose()'>Cancel</button>\r\n </kendo-dialog-actions>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n SDK:\r\n https://developer.paypal.com/sdk/js/configuration/#query-parameters\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\n\r\n//App\r\nimport { IPayPalUrlConfig } from '../models/paypal-models';\r\nimport { ScriptService } from '../../core/services/script.service';\r\nimport { IQueryParam } from '../../core/models/qs';\r\n\r\n@Injectable()\r\nexport class PayPalScriptService {\r\n private readonly paypalWindowName = 'paypal';\r\n\r\n constructor(protected ss: ScriptService) {\r\n }\r\n\r\n registerPayPalScript(config: IPayPalUrlConfig, onReady: (payPalApi: any) => void): void {\r\n this.ss.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);\r\n }\r\n\r\n destroyPayPalScript(): void {\r\n this.ss.cleanup(this.paypalWindowName);\r\n }\r\n\r\n private getUrlForConfig(config: IPayPalUrlConfig): string {\r\n const params: IQueryParam[] = [\r\n {\r\n name: 'client-id',\r\n value: config.clientId\r\n }\r\n ];\r\n\r\n if (config.locale) {\r\n params.push({\r\n name: 'locale',\r\n value: config.locale\r\n });\r\n }\r\n\r\n if (config.currency) {\r\n params.push({\r\n name: 'currency',\r\n value: config.currency\r\n });\r\n }\r\n\r\n if (config.commit) {\r\n params.push({\r\n name: 'commit',\r\n value: config.commit\r\n });\r\n }\r\n\r\n if (config.vault) {\r\n params.push({\r\n name: 'vault',\r\n value: config.vault\r\n });\r\n }\r\n\r\n if (config.intent) {\r\n params.push({\r\n name: 'intent',\r\n value: config.intent\r\n });\r\n }\r\n\r\n if(config.funding) {\r\n params.push({\r\n name:'components',\r\n value: 'buttons,funding-eligibility'\r\n })\r\n }\r\n\r\n if (config.extraParams) {\r\n params.push(...config.extraParams);\r\n }\r\n\r\n if (config.debug) {\r\n params.push({\r\n name: 'debug',\r\n value: config.debug ? 'true' : 'false'\r\n });\r\n }\r\n\r\n return `https://www.paypal.com/sdk/js${this.ss.getQueryString(params)}`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nimport {\r\n ICancelCallbackData,\r\n IClientAuthorizeCallbackData,\r\n ICreateOrderCallbackActions,\r\n IInitCallbackData,\r\n IOnApproveCallbackActions,\r\n IOnApproveCallbackData,\r\n IOnClickCallbackActions,\r\n IOnInitCallbackActions,\r\n IOnShippingChangeActions,\r\n IOnShippingChangeData,\r\n IPayPalConfig,\r\n ICreateSubscriptionCallbackActions,\r\n ICreateSubscriptionCallbackData,\r\n} from '../../../models/paypal-models';\r\nimport { PayPalScriptService } from '../../../services/paypal-script.service';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'anatoly-billing-paypal-container',\r\n template: `\r\n <div #payPalButtonContainer [id]=\"payPalButtonContainerId\"></div>\r\n `,\r\n standalone: false\r\n})\r\nexport class PayPalComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n /**\r\n * Configuration for paypal.\r\n */\r\n @Input() config?: IPayPalConfig;\r\n\r\n /**\r\n * If enabled, paypal SDK script will be loaded. Useful if you want to have multiple PayPal components on the same page\r\n * sharing base configuration. In such a case only a single component may register script.\r\n */\r\n @Input() registerScript: boolean = true;\r\n\r\n /**\r\n * Emitted when paypal script is loaded\r\n */\r\n @Output() scriptLoaded = new EventEmitter<any>();\r\n\r\n /**\r\n * Id of the element where PayPal button will be rendered\r\n */\r\n public payPalButtonContainerId?: string;\r\n\r\n private readonly ngUnsubscribe: Subject<void> = new Subject<void>();\r\n\r\n private payPalButtonContainerElem?: ElementRef;\r\n @ViewChild(\"payPalButtonContainer\", { static: false })\r\n set payPalButtonContainer(content: ElementRef) {\r\n this.payPalButtonContainerElem = content;\r\n }\r\n\r\n /**\r\n * Flag that indicates if paypal should be initialized (required for handling script load events and availability of DOM element)\r\n */\r\n private initializePayPal: boolean = true;\r\n\r\n /**\r\n * Reference to PayPal global API\r\n */\r\n private payPal: any;\r\n\r\n constructor(\r\n private paypalScriptService: PayPalScriptService,\r\n private cdr: ChangeDetectorRef,\r\n private ngZone: NgZone) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.payPalButtonContainerId) {\r\n this.payPalButtonContainerId = this.generateElementId();\r\n }\r\n\r\n // first time config setup\r\n const config = this.config;\r\n //const name = 'PayPalConfig';\r\n\r\n if (changes['config'].isFirstChange()) {\r\n if (config && this.registerScript) {\r\n this.initPayPalScript(config, (payPal) => {\r\n // store reference to paypal global script\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n });\r\n }\r\n }\r\n\r\n // changes to config\r\n if (!changes['config'].isFirstChange()) {\r\n this.reinitialize(config);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.paypalScriptService.destroyPayPalScript();\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.doPayPalCheck();\r\n }\r\n\r\n customInit(payPal: any): void {\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n }\r\n\r\n reinitialize(config: IPayPalConfig | undefined): void {\r\n this.config = config;\r\n this.payPal = undefined;\r\n this.paypalScriptService.destroyPayPalScript();\r\n this.payPalButtonContainerId = this.generateElementId();\r\n this.initializePayPal = true;\r\n\r\n if (this.payPalButtonContainerElem) {\r\n try {\r\n while (this.payPalButtonContainerElem.nativeElement.firstChild) {\r\n this.payPalButtonContainerElem.nativeElement.removeChild(\r\n this.payPalButtonContainerElem.nativeElement.firstChild\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n this.cdr.detectChanges();\r\n\r\n if (this.config) {\r\n if (!this.payPal) {\r\n this.initPayPalScript(this.config, (payPal) => {\r\n // store reference to paypal global script\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n });\r\n } else {\r\n this.doPayPalCheck();\r\n }\r\n }\r\n }\r\n\r\n private doPayPalCheck(): void {\r\n if (\r\n this.initializePayPal &&\r\n this.config &&\r\n this.payPal &&\r\n this.payPalButtonContainerElem\r\n ) {\r\n // make sure that id is also set\r\n if (this.payPalButtonContainerElem.nativeElement.id) {\r\n this.initializePayPal = false;\r\n this.initPayPal(this.config, this.payPal);\r\n }\r\n }\r\n }\r\n\r\n private initPayPalScript(\r\n config: IPayPalConfig,\r\n initPayPal: (paypal: any) => void\r\n ): void {\r\n this.paypalScriptService.registerPayPalScript(\r\n {\r\n debug: config.debug,\r\n clientId: config.clientId,\r\n locale: config.advanced?.locale,\r\n commit:\r\n config.advanced && config.advanced.commit\r\n ? config.advanced.commit\r\n : undefined,\r\n currency: config.currency,\r\n vault: config.vault,\r\n intent: config.intent,\r\n funding: config.fundingSource != undefined || config.fundingSource != null ? true : false,\r\n extraParams:\r\n config.advanced && config.advanced.extraQueryParams\r\n ? config.advanced.extraQueryParams\r\n : [],\r\n },\r\n (paypal) => {\r\n this.scriptLoaded.next(paypal);\r\n initPayPal(paypal);\r\n }\r\n );\r\n }\r\n\r\n private generateElementId(): string {\r\n return `ngx-captcha-id-${this.generateGuid()}`;\r\n }\r\n\r\n private initPayPal(config: IPayPalConfig, paypal: any): void {\r\n // Running outside angular zone prevents infinite ngDoCheck lifecycle calls\r\n this.ngZone.runOutsideAngular(() => {\r\n // https://developer.paypal.com/docs/checkout/integrate/#2-add-the-paypal-script-to-your-web-page\r\n const createOrder = (data: any, actions: ICreateOrderCallbackActions) => {\r\n return this.ngZone.run(() => {\r\n if (config.createOrderOnClient && config.createOrderOnServer) {\r\n throw Error(`Both 'createOrderOnClient' and 'createOrderOnServer' are defined.\r\n Please choose one or the other.`);\r\n }\r\n\r\n if (!config.createOrderOnClient && !config.createOrderOnServer) {\r\n throw Error(`Neither 'createOrderOnClient' or 'createOrderOnServer' are defined.\r\n Please define one of these to create order.`);\r\n }\r\n\r\n if (config.createOrderOnClient) {\r\n return actions.order.create(config.createOrderOnClient(data));\r\n }\r\n\r\n if (config.createOrderOnServer) {\r\n return config.createOrderOnServer(data);\r\n }\r\n\r\n throw Error(`Invalid state for 'createOrder'.`);\r\n });\r\n };\r\n const createSubscription = (\r\n data: ICreateSubscriptionCallbackData,\r\n actions: ICreateSubscriptionCallbackActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.createSubscriptionOnClient) {\r\n return actions.subscription.create(\r\n config.createSubscriptionOnClient(data)\r\n );\r\n }\r\n return;\r\n });\r\n };\r\n const onShippingChange = (\r\n data: IOnShippingChangeData,\r\n actions: IOnShippingChangeActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.onShippingChange) {\r\n return config.onShippingChange(data, actions);\r\n }\r\n });\r\n };\r\n\r\n const buttonsConfig = {\r\n style: config.style,\r\n fundingSource: undefined,\r\n onApprove: (\r\n data: IOnApproveCallbackData,\r\n actions: IOnApproveCallbackActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.onApprove) {\r\n config.onApprove(data, actions);\r\n }\r\n\r\n // capture on server\r\n if (config.authorizeOnServer) {\r\n return config.authorizeOnServer(data, actions);\r\n }\r\n\r\n // capture on client\r\n const onClientAuthorization = config.onClientAuthorization;\r\n if (onClientAuthorization) {\r\n actions.order\r\n .capture()\r\n .then((details: IClientAuthorizeCallbackData) => {\r\n this.ngZone.run(() => {\r\n onClientAuthorization(details);\r\n });\r\n });\r\n }\r\n });\r\n },\r\n onError: (error: any) => {\r\n this.ngZone.run(() => {\r\n if (config.onError) {\r\n config.onError(error);\r\n }\r\n });\r\n },\r\n onCancel: (data: ICancelCallbackData, actions: any) => {\r\n this.ngZone.run(() => {\r\n if (config.onCancel) {\r\n config.onCancel(data, actions);\r\n }\r\n });\r\n },\r\n onClick: (data: any, actions: IOnClickCallbackActions) => {\r\n this.ngZone.run(() => {\r\n if (config.onClick) {\r\n config.onClick(data, actions);\r\n }\r\n });\r\n },\r\n onInit: (data: IInitCallbackData, actions: IOnInitCallbackActions) => {\r\n this.ngZone.run(() => {\r\n if (config.onInit) {\r\n config.onInit(data, actions);\r\n }\r\n });\r\n },\r\n // Add the functions if they've been created in the config object\r\n // The API only allows one of the two to be set\r\n ...((config.createOrderOnClient || config.createOrderOnServer) && {\r\n createOrder,\r\n }),\r\n ...(config.createSubscriptionOnClient && { createSubscription }),\r\n // The onShippingChange callback cannot be used with subscriptions\r\n // so we only add it if it is set\r\n ...(config.onShippingChange && { onShippingChange }),\r\n };\r\n\r\n let fundSource = undefined;\r\n switch(config.fundingSource){\r\n case \"PAYPAL\":\r\n fundSource = paypal.FUNDING.PAYPAL;\r\n break;\r\n case \"CARD\":\r\n fundSource = paypal.FUNDING.CARD;\r\n break;\r\n case \"PAYLATER\":\r\n fundSource = paypal.FUNDING.PAYLATER;\r\n break;\r\n case \"CREDIT\":\r\n fundSource = paypal.FUNDING.CREDIT;\r\n break;\r\n case \"VENMO\":\r\n fundSource = paypal.FUNDING.VENMO;\r\n break;\r\n default:\r\n break;\r\n }\r\n if(fundSource != undefined)\r\n {\r\n buttonsConfig.fundingSource = fundSource;\r\n if(config.fundingSource !== \"PAYPAL\")\r\n delete buttonsConfig.style?.color\r\n }\r\n paypal.Buttons(buttonsConfig).render(`#${this.payPalButtonContainerId}`);\r\n });\r\n }\r\n\r\n private generateGuid(): string {\r\n let d = new Date().getTime(),\r\n d2 = (performance && performance.now && performance.now() * 1000) || 0;\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\r\n let r = Math.random() * 16;\r\n if (d > 0) {\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else {\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n return (c == \"x\" ? r : (r & 0x7) | 0x8).toString(16);\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Description:\r\n https://github.com/braintree/braintree-web-drop-in/issues/433\r\n It's impossible to trigger the paypal flow programmatically, as opening a popup window must be as a result of\r\n a direct user action. If it is not, the browser will usually block it.\r\n\r\n https://stackoverflow.com/questions/43276570/trigger-paypal-checkout-button-click\r\n This isn't something that's supported by the PayPal button right now. The official policy is, only a click on the button\r\n itself should open a checkout window.\r\n\r\n shipping_preference:\r\n https://developer.paypal.com/docs/api/payments/v1/?mark=shipping_preference%20#definition-application_context\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../../../core/consts/core-settings';\r\nimport { ComponentBase } from '../../../../ui/components/base/components/component';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { PaymentMethod, PaymentStage } from '../../../../core/enums/billing';\r\nimport { ICreateOrderRequest, IPayPalConfig } from '../../../models/paypal-models';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-paypal-button',\r\n templateUrl: './paypal-button.component.html',\r\n standalone: false\r\n})\r\nexport class PaypalButtonComponent extends ComponentBase {\r\n payPalConfig?: IPayPalConfig;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() paidForTitle = 'Payment for Prodiuct';\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.initPayPal();\r\n\r\n this.ps.promoCodeApplied$.subscribe((data) => {\r\n this.initPayPal();\r\n });\r\n }\r\n\r\n private initPayPal() {\r\n let that = this;\r\n let payPalSettings = AppCoreSettings.externalApi.pm.payPal;\r\n let clientId = payPalSettings.clientId;\r\n let totalPrice = this.ps.getTotal().toString();\r\n let currency = this.ps.currency;\r\n\r\n this.payPalConfig = {\r\n intent: 'capture',\r\n clientId: clientId,\r\n currency: currency,\r\n advanced: {\r\n commit: 'true',\r\n extraQueryParams: [\r\n {\r\n name: \"disable-funding\",\r\n value: \"credit,card\"\r\n }\r\n ]\r\n },\r\n style: {\r\n color: 'white'\r\n },\r\n\r\n createOrderOnClient: (data) => <ICreateOrderRequest> {\r\n intent: 'capture',\r\n application_context: {\r\n shipping_preference: \"NO_SHIPPING\"\r\n },\r\n purchase_units: [\r\n {\r\n amount: {\r\n currency_code: currency,\r\n value: totalPrice,\r\n breakdown: {\r\n item_total: {\r\n currency_code: currency,\r\n value: totalPrice\r\n }\r\n }\r\n },\r\n items: [\r\n {\r\n name: this.paidForTitle,\r\n quantity: '1',\r\n category: 'DIGITAL_GOODS',\r\n unit_amount: {\r\n currency_code: currency,\r\n value: totalPrice\r\n },\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n onApprove: (data, actions) => {\r\n return actions.order.capture().then(function (orderData) {\r\n try {\r\n //\r\n let payment = orderData.purchase_units[0].payments.captures[0];\r\n let paymentId = payment.id;\r\n let status = payment.status;\r\n let amount = payment.amount.value;\r\n let currencyCode = payment.amount.currency_code;\r\n let details = JSON.stringify(orderData);\r\n\r\n //ps\r\n let paymentMethod = that.ps.selectedPaymentMethod;\r\n let subtotal = that.ps.subtotal;\r\n let promoCode = that.ps.promoCode;\r\n let total = that.ps.getTotal();\r\n let currency = that.ps.currency;\r\n\r\n that.bs.addPayment(paymentMethod, that.planId, that.paidFor, \r\n subtotal, promoCode, total, currency,\r\n paymentId, status, details);\r\n }\r\n catch\r\n {\r\n that.bs.paymentFailed(PaymentStage.External);\r\n }\r\n });\r\n },\r\n\r\n onCancel: (data, actions) => {\r\n },\r\n\r\n onError: err => {\r\n },\r\n\r\n onClick: (data, actions) => {\r\n }\r\n };\r\n }\r\n\r\n public get visible() {\r\n return this.ps.selectedPaymentMethod == PaymentMethod.PayPal && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <anatoly-billing-paypal-container [config]='payPalConfig' />\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 04 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, NgZone } from '@angular/core';\r\n\r\n//App\r\nimport { AppCoreSettings, IsDevMode } from '../../../../core/consts/core-settings';\r\nimport { ComponentBase } from '../../../../ui/components/base/components/component';\r\nimport { ICreateSubscriptionRequest, IPayPalConfig } from '../../../models/paypal-models';\r\nimport { SubscriptionProvider } from '../../../../core/enums';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-paypal-subscribe-button',\r\n templateUrl: './paypal-subscribe-button.component.html',\r\n standalone: false\r\n})\r\nexport class PaypalSubscribeButtonComponent extends ComponentBase {\r\n private _payPalPlanId;\r\n\r\n payPalConfig?: IPayPalConfig;\r\n\r\n @Input()\r\n get payPalPlanId() {\r\n return this._payPalPlanId;\r\n }\r\n set payPalPlanId(value) {\r\n this._payPalPlanId = value;\r\n this.initPayPal();\r\n }\r\n\r\n @Input() quantity;\r\n\r\n //Plan & Price\r\n @Input() planId;\r\n @Input() addons;\r\n @Input() subtotal;\r\n @Input() promoCode;\r\n @Input() total;\r\n @Input() currency = 'USD';\r\n\r\n constructor(private bs: BillingService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n private initPayPal() {\r\n let that = this;\r\n let payPalSettings = AppCoreSettings.externalApi.pm.payPal;\r\n let clientId = payPalSettings.clientId;\r\n let planId = this.payPalPlanId;\r\n\r\n this.payPalConfig = {\r\n debug: IsDevMode,\r\n intent: 'subscription',\r\n clientId: clientId,\r\n vault: 'true',\r\n currency: 'USD',\r\n advanced: {\r\n commit: 'true',\r\n extraQueryParams: [\r\n {\r\n name: \"disable-funding\",\r\n value: \"credit,card\"\r\n }\r\n ]\r\n },\r\n style: {\r\n shape: 'rect',\r\n color: 'gold',\r\n layout: 'vertical',\r\n label: 'subscribe'\r\n },\r\n\r\n createSubscriptionOnClient: (data) => <ICreateSubscriptionRequest> {\r\n plan_id: planId,\r\n custom_id: '0',\r\n quantity: this.quantity,\r\n application_context: {\r\n shipping_preference: \"NO_SHIPPING\"\r\n }\r\n },\r\n\r\n onApprove: (data, actions) => {\r\n try {\r\n let subscriptionId = data.subscriptionID;\r\n that.bs.addSubscription(\r\n SubscriptionProvider.PayPal, subscriptionId, \r\n this.planId, this.addons, this.subtotal, this.promoCode, this.total, this.currency);\r\n }\r\n catch\r\n {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n }\r\n },\r\n\r\n onCancel: (data, actions) => {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n },\r\n\r\n onError: err => {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n },\r\n\r\n onClick: (data, actions) => {\r\n that.bs.fireSubscriptionAdded(true, false);\r\n }\r\n };\r\n }\r\n}\r\n","<anatoly-billing-paypal-container [config]='payPalConfig' />\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 5 Aug 2024\r\n\r\n Description:\r\n Credit Card payment form via stripe integration\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../../../core/consts/core-settings';\r\nimport { DialogBase } from '../../../../ui/components/base/dialog';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-stripe-dialog',\r\n templateUrl: './stripe.component.html',\r\n standalone: false\r\n})\r\nexport class StripeDialog extends DialogBase {\r\n stripe: any;\r\n stripeCheckout: any;\r\n sessionId: any;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() title;\r\n @Input() description;\r\n @Input() image;\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.ps.showStripeDialog$.subscribe(async () => {\r\n this.isOpen = true;\r\n await this.initializeEmbedForm();\r\n });\r\n }\r\n\r\n async initializeEmbedForm() {\r\n let stripePk = AppCoreSettings.external.pm.stripe.publishableKey;\r\n const that = this;\r\n\r\n this.stripe = await loadStripe(stripePk);\r\n this.stripeCheckout = await this.stripe.initEmbeddedCheckout({\r\n fetchClientSecret: async () => {\r\n const amount = that.ps.getTotal();\r\n const currency = that.ps.currency;\r\n const response: any = await firstValueFrom(that.bs.createStripeSession(amount, currency, that.title, that.description, that.image));\r\n \r\n if (response) {\r\n that.sessionId = response.sessionId;\r\n return response?.sessionSecret ? response.sessionSecret : '';\r\n }\r\n\r\n return '';\r\n },\r\n onComplete: () => {\r\n //ps\r\n let paymentMethod = that.ps.selectedPaymentMethod;\r\n let subtotal = that.ps.subtotal;\r\n let promoCode = that.ps.promoCode;\r\n let total = that.ps.getTotal();\r\n let currency = that.ps.currency;\r\n\r\n that.bs.addPayment(paymentMethod, that.planId, that.paidFor, \r\n subtotal, promoCode, total, currency,\r\n that.sessionId, 'COMPLETED', '');\r\n \r\n that.onClose();\r\n }\r\n });\r\n\r\n // Mount Checkout\r\n this.stripeCheckout.mount('#stripeCheckout');\r\n }\r\n\r\n //Events\r\n onClose() {\r\n if (this.stripeCheckout) {\r\n // Destroy Checkout instance\r\n this.stripeCheckout.destroy();\r\n }\r\n\r\n super.close();\r\n }\r\n\r\n public get visible() {\r\n return this.isOpen && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='1080' [height]='800' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Stripe</kendo-dialog-titlebar> \r\n <div class='kendo-dialog-content'>\r\n <div id=\"stripeCheckout\"></div>\r\n </div>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './buttons/buyaccess-button.component';\r\nexport * from './buttons/subscribe-plan-button.component';\r\nexport * from \"./order-summary/order-summary.component\";\r\nexport * from \"./payment-methods/payment-methods.component\";\r\nexport * from \"./payment-options/payment-options.component\";\r\n\r\n//braintree\r\nexport * from \"./pm/braintree/braintree.component\";\r\n\r\n//paypal\r\nexport * from \"./pm/paypal/paypal-button.component\";\r\nexport * from \"./pm/paypal/paypal-subscribe-button.component\";\r\nexport * from \"./pm/paypal/paypal.component\";\r\n\r\n//stripe\r\nexport * from \"./pm/stripe/stripe.component\";\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 25 May 2024\r\n\r\n Copyright (c) 2023-2024 Atlas Cross Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class BillingUtils {\r\n private static readonly CURRENCY_SYMBOLS: Record<string, string> = {\r\n GBP: '£',\r\n EUR: '€',\r\n USD: '$',\r\n JPY: '¥',\r\n CAD: 'CA$',\r\n AUD: 'A$',\r\n };\r\n\r\n public static convert2AmountWithCurrency(amount: number | string, currency: string): string {\r\n if (!amount && amount !== 0) return '';\r\n\r\n const symbol = this.CURRENCY_SYMBOLS[currency.toUpperCase()];\r\n return symbol ? `${symbol}${amount}` : `${amount} ${currency}`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//components\r\nexport * from './components/exports'\r\n\r\n//services\r\nexport * from './services/billing.service';\r\nexport * from './services/payments.service';\r\nexport * from './services/paypal-script.service';\r\n\r\n//\r\nexport * from './utils'\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class GridReadServiceBase extends BehaviorSubject<any[]> {\r\n protected data: any[] = [];\r\n protected baseReadUrl: string;\r\n protected savedReadParams: any;\r\n\r\n constructor(protected http: HttpClient) {\r\n super([]);\r\n }\r\n\r\n serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : '';\r\n }\r\n\r\n read(params?: any, success?: Function, error?: Function) {\r\n if (this.data.length) {\r\n return super.next(this.data);\r\n }\r\n\r\n var url = this.baseReadUrl;\r\n\r\n if (typeof params === 'undefined') {\r\n params = this.savedReadParams;\r\n }\r\n\r\n if (params) {\r\n url = this.baseReadUrl + `${this.serializeParams(params)}`;\r\n this.savedReadParams = params;\r\n }\r\n\r\n this.http.get(url).pipe(map(res => <any[]>res)).subscribe({\r\n next: (data) => {\r\n super.next(data);\r\n if (success) success();\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n//App\r\nimport { GridReadServiceBase } from \"./grid-read.service\";\r\n\r\n@Injectable()\r\nexport class GridEditServiceBase extends GridReadServiceBase {\r\n protected baseUrl: string;\r\n\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n private reset() {\r\n this.data = [];\r\n }\r\n\r\n resetItem(dataItem: any) {\r\n if (!dataItem) { return; }\r\n\r\n //find orignal data item\r\n const originalDataItem = this.data.find(item => item.Id === dataItem.Id);\r\n\r\n //revert changes\r\n Object.assign(originalDataItem, dataItem);\r\n super.next(this.data);\r\n }\r\n\r\n save(data: any, isNew: boolean, sucess?: Function) {\r\n const action = isNew ? 'add' : 'update';\r\n\r\n this.reset();\r\n this.post(action, data).subscribe({\r\n next: (data) => {\r\n },\r\n error: (e) => {\r\n this.read();\r\n },\r\n complete: () => {\r\n this.read();\r\n if (sucess) sucess();\r\n }\r\n });\r\n }\r\n\r\n delete(data: any, sucess?: Function) {\r\n this.reset();\r\n\r\n const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;\r\n return this.http.delete(url).subscribe({\r\n next: (data) => {\r\n this.read();\r\n if (sucess) sucess();\r\n },\r\n error: (e) => {\r\n this.read();\r\n }\r\n });\r\n }\r\n\r\n post(action: any, data?: any): Observable<any[]> {\r\n const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.post(url, data).pipe(\r\n map(res => <any[]>res)\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 31 Jul 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class CurrenciesApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/currencies`;\r\n }\r\n\r\n getCurrencies(): Observable<any> {\r\n return this.get<any>('getCurrencies');\r\n }\r\n\r\n getRates(): Observable<any> {\r\n return this.get<any>('getRates');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 8 Aug 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n//App\r\nimport { CurrenciesApiService } from './currencies-api.service';\r\nimport { AppContextService } from '../../../core/services/appcontext.service';\r\n\r\n@Injectable()\r\nexport class CurrenciesStorageService {\r\n rates;\r\n\r\n //Private Streams\r\n private _currencyUpdated = new BehaviorSubject<string>('USD');\r\n private _ratesLoaded = new BehaviorSubject<string>(null);\r\n\r\n //Public Streams\r\n readonly currencyUpdated$ = this._currencyUpdated.asObservable();\r\n readonly ratesLoaded$ = this._ratesLoaded.asObservable();\r\n\r\n defaultCurrency = 'USD';\r\n\r\n constructor(\r\n private appContext: AppContextService,\r\n private api: CurrenciesApiService) {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n //1. Check localStorage\r\n let currency = this.appContext.currency;\r\n if (!currency) {\r\n //2. If localStorage is empty => set default\r\n currency = this.defaultCurrency;\r\n this.appContext.currency = currency;\r\n }\r\n\r\n this.changeCurrency(currency);\r\n\r\n this.appContext.updated$.subscribe((context) => {\r\n let localCurrency = this.appContext.currency;\r\n if (!localCurrency) {\r\n //3. If localStorage is empty => set account currency\r\n let accountCurrency = context?.account?.currency;\r\n this.changeCurrency(accountCurrency);\r\n }\r\n });\r\n\r\n this.api.getRates().subscribe({\r\n next: (data) => {\r\n this.rates = data;\r\n this.fireRatesLoaded(data);\r\n }\r\n });\r\n }\r\n\r\n private fireUpdated(currency: string) {\r\n this._currencyUpdated.next(currency);\r\n }\r\n\r\n private fireRatesLoaded(rates) {\r\n this._ratesLoaded.next(rates);\r\n }\r\n\r\n //Public\r\n changeCurrency(currency: string) {\r\n this.appContext.currency = currency;\r\n this.fireUpdated(currency);\r\n }\r\n\r\n toDisplayPrice(price) {\r\n let currencyRate = this.currentCurrencyRateOrDefault;\r\n if (currencyRate) {\r\n let convertedPrice = price * parseFloat(currencyRate.rate);\r\n\r\n convertedPrice = +convertedPrice.toFixed(0);\r\n return currencyRate.format.replace(\"amount\", convertedPrice);\r\n }\r\n\r\n return \"$ \" + price;\r\n }\r\n\r\n public get currentCurrencyRateOrDefault() {\r\n let currency = this.appContext.currency;\r\n let rate = this.rates?.filter(lang => lang.code == currency)[0];\r\n if (!rate) {\r\n rate = this.rates?.filter(lang => lang.code == this.defaultCurrency)[0];\r\n }\r\n\r\n return rate;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jun 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class TransactionsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/transactions`;\r\n }\r\n\r\n getTransactionById(id): Observable<any> {\r\n return this.get<any>('getTransactionById', { id });\r\n }\r\n\r\n getTransactionByReceiptNum(receiptNum): Observable<any> {\r\n return this.get<any>('getTransactionByReceiptNum', { receiptNum });\r\n }\r\n\r\n getTransactions(data): Observable<any> {\r\n return this.get<any>('getTransactions', data);\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../base/api.service';\r\nimport { ApiUrl } from '../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class CoreApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/core`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 Jun 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n//App\r\nimport { ApiServiceBase } from '../base/api.service';\r\nimport { ApiUrl } from '../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class EmailsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/emails`;\r\n }\r\n\r\n sendContactUs(captcha, name, email, topic, subject, message, success?: Function, error?: Function) {\r\n return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//base\r\nexport * from './base/api.service';\r\nexport * from './base/grid/grid-read.service';\r\nexport * from './base/grid/grid-edit.service';\r\n\r\n//services/billing\r\nexport * from './services/billing/currencies-api.service';\r\nexport * from './services/billing/currencies-storage.service';\r\nexport * from './services/billing/promocodes-api.service';\r\nexport * from './services/billing/payments-api.service';\r\nexport * from './services/billing/subscriptions-api.service';\r\nexport * from './services/billing/transactions-api.service';\r\n\r\n//services\r\nexport * from './services/core-api.service';\r\nexport * from './services/emails-api.service';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"./edit.component\";\r\nimport { Convert } from \"../../../../core/exports\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class EnumEditComponentBase extends EditComponentBase implements OnInit {\r\n enumeration;\r\n items = [];\r\n sv;\r\n\r\n //Inputs\r\n @Input()\r\n get selectedValue() {\r\n return this.sv;\r\n }\r\n set selectedValue(value: any) {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n if (value != this.sv) {\r\n this.sv = value;\r\n }\r\n }\r\n @Input() defaultValue = -1;\r\n\r\n //Outputs\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n this.renderItems();\r\n }\r\n\r\n private setValues() {\r\n if (this.isNgModelBased) {\r\n if (!this.selectedValue) {\r\n this.selectedValue = this.defaultValue;\r\n }\r\n }\r\n else {\r\n let value = this.getFormValue(this.controlName);\r\n if (!value) {\r\n this.setFormValue(this.controlName, this.defaultValue);\r\n }\r\n }\r\n }\r\n\r\n private fireValueChange(value) {\r\n this.valueChange.emit(value);\r\n }\r\n\r\n private renderItems() {\r\n let one = [];\r\n let two = Convert.enumToArray(this.enumeration, true);\r\n\r\n if (this.isNgModelBased) {\r\n one = [{ value: -1, text: 'All' }];\r\n }\r\n\r\n this.items = [];\r\n this.items = one.concat(two);\r\n }\r\n\r\n //Events\r\n onChange(value) {\r\n this.fireValueChange(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../components/component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class PageBase extends ComponentBase {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"../components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class EditPageBase extends EditComponentBase {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { PageBase } from \"./page\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class PagedPageBase extends PageBase {\r\n currentFilter = null;\r\n\r\n //Items & Pagination\r\n items: any[];\r\n totalItems: number = 0;\r\n pageSize: number = 10;\r\n skipItems: number = 0;\r\n currentPage: number = 1;\r\n\r\n public loadPage?(page?: number) : void;\r\n\r\n public loadPageOne() {\r\n this.skipItems = 0;\r\n this.currentPage = 1;\r\n this.loadPage();\r\n }\r\n\r\n public reloadPage(drop2pageOne: boolean = false) {\r\n if (drop2pageOne) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.loadPage();\r\n }\r\n }\r\n\r\n public setFilter(filter: any) {\r\n this.currentFilter = filter;\r\n this.loadPageOne();\r\n }\r\n\r\n //Tos\r\n toIndex(index) {\r\n return ((this.currentPage - 1) * this.pageSize) + index + 1;\r\n }\r\n\r\n //Events\r\n onPageChange(e: any) {\r\n this.pageSize = e.take;\r\n this.skipItems = e.skip;\r\n this.currentPage = (this.skipItems / this.pageSize) + 1;\r\n\r\n this.loadPage();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { OnInit, Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"./components/component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class ListBase extends ComponentBase implements OnInit {\r\n private _currentFilter = null; \r\n\r\n //Items & Pagination\r\n items: any[];\r\n totalItems: number = 0;\r\n skipItems: number = 0;\r\n currentPage: number = 1;\r\n dataLoaded = false;\r\n\r\n //Inputs\r\n @Input() pageSize: number = 10;\r\n @Input() autoDataLoading: boolean = false;\r\n\r\n //Outputs\r\n @Output() filterRequest: EventEmitter<any> = new EventEmitter();\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n\r\n get currentFilter(){\r\n return this._currentFilter;\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n protected init() {\r\n if (this.autoDataLoading && !this.dataLoaded) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.fireFilterRequest();\r\n }\r\n }\r\n\r\n protected fireFilterRequest() {\r\n this.filterRequest.emit();\r\n }\r\n\r\n protected fireDataChange(e = null) {\r\n this.dataChange.emit(e);\r\n }\r\n\r\n //Public\r\n public loadPage?(page?: number) : void;\r\n\r\n loadPageOne() {\r\n this.skipItems = 0;\r\n this.currentPage = 1;\r\n this.dataLoaded = true;\r\n\r\n this.loadPage();\r\n }\r\n\r\n reloadPage(drop2pageOne: boolean = false) {\r\n if (drop2pageOne) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.loadPage();\r\n }\r\n }\r\n\r\n setFilter(filter: any) {\r\n if (filter) {\r\n this._currentFilter = filter;\r\n this.loadPageOne();\r\n }\r\n }\r\n\r\n //Tos\r\n toIndex(index) {\r\n return ((this.currentPage - 1) * this.pageSize) + index + 1;\r\n }\r\n\r\n //Events\r\n onPageChange(e: any) {\r\n this.pageSize = e.take;\r\n this.skipItems = e.skip;\r\n this.currentPage = (this.skipItems / this.pageSize) + 1;\r\n\r\n this.loadPage();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card',\r\n templateUrl: './card.component.html',\r\n standalone: false\r\n})\r\nexport class CardComponent extends ComponentBase {\r\n}\r\n","<div class='card {{ classes }}'>\r\n <ng-content select='card-header'></ng-content>\r\n <ng-content select='card-body'></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select='card-footer'></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-header',\r\n templateUrl: './card-header.component.html',\r\n standalone: false\r\n})\r\nexport class CardHeaderComponent extends ComponentBase {\r\n}\r\n","<div class='card-header {{ classes }}'>\r\n <div class=\"card-title\">\r\n <h3 *ngIf='title'>{{ title }}</h3>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-body',\r\n templateUrl: './card-body.component.html',\r\n standalone: false\r\n})\r\nexport class CardBodyComponent extends ComponentBase {\r\n}\r\n","<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-footer',\r\n templateUrl: './card-footer.component.html',\r\n standalone: false\r\n})\r\nexport class CardFooterComponent extends ComponentBase {\r\n}\r\n","<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, ElementRef, OnInit } from \"@angular/core\";\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControl], [formControlName]',\r\n standalone: false\r\n})\r\nexport class NativeElementDirective implements OnInit {\r\n constructor(private el: ElementRef<HTMLFormElement>, private control: NgControl) {\r\n }\r\n\r\n ngOnInit() {\r\n // sets the localization key to the control\r\n (this.control.control as any).nativeElement = this.el.nativeElement;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Feb 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-country-dropdownlist',\r\n templateUrl: './country.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class CountryDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n this.title = 'Country';\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n setValues() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.countries);\r\n }\r\n });\r\n\r\n if (this.isNgModelBased) {\r\n }\r\n else {\r\n }\r\n }\r\n}\r\n","<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <select [formControlName]='controlName' class='form-select'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 7 Nov 2023\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-language-dropdownlist',\r\n templateUrl: 'language.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class LanguageDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.languages);\r\n }\r\n }); \r\n }\r\n}\r\n","<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]='items'\r\n valueField=\"code\"\r\n textField=\"name\"\r\n [valuePrimitive]='true'\r\n [formControlName]='controlName' />\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"../components/base/components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class ValidationSummaryComponent extends EditComponentBase {\r\n constructor() {\r\n super();\r\n }\r\n\r\n private getControlTitle(control, name?: string): string {\r\n let title = undefined;\r\n if (control?.nativeElement) {\r\n title = this.getTitleAttribute(control.nativeElement);\r\n }\r\n\r\n return title ?? name;\r\n }\r\n\r\n private getTitleAttribute(nativeElement: HTMLFormElement): string {\r\n let title: string;\r\n let element;\r\n let tagName = nativeElement.tagName;\r\n\r\n switch (tagName) {\r\n // For Kendo time and date picker element title is assigned to the 4th child control.\r\n case \"KENDO-TIMEPICKER\":\r\n case \"KENDO-DATEPICKER\":\r\n element = nativeElement.children[0]?.children[0]?.children[0]?.children[0];\r\n break;\r\n\r\n // For Kendo numaric element title is assigned to the 2nd child control.\r\n case \"KENDO-NUMERICTEXTBOX\":\r\n element = nativeElement.children[0]?.children[0];\r\n break;\r\n\r\n default:\r\n element = nativeElement;\r\n break;\r\n }\r\n\r\n if (element) {\r\n title = element.getAttribute(\"formControlTitle\");\r\n if (!title) {\r\n title = element.getAttribute(\"title\");\r\n }\r\n }\r\n\r\n return title;\r\n }\r\n\r\n getFormValidationMessages(): string[] {\r\n let messages: string[] = [];\r\n\r\n Object.keys(this.formGroup.controls).forEach((name) => {\r\n let control = this.formGroup.controls[name];\r\n\r\n if ((<FormGroup>control).controls != null) {\r\n Object.keys((<FormGroup>control).controls).forEach((k) => {\r\n var child = (<FormGroup>control).controls[k];\r\n this.getValidationMessages(child, k).forEach((m) => messages.push(m));\r\n });\r\n }\r\n else {\r\n this.getValidationMessages(control, name).forEach((m) => messages.push(m));\r\n }\r\n });\r\n\r\n return messages;\r\n }\r\n\r\n getValidationMessages(control: any, name?: string, title?: string) {\r\n let messages: string[] = [];\r\n let thing;\r\n\r\n if (title) {\r\n thing = title;\r\n }\r\n else {\r\n thing = this.getControlTitle(control, name);\r\n\r\n if (!thing){\r\n thing= control.path;\r\n }\r\n }\r\n\r\n if (control.errors) {\r\n for (let errorName in control.errors) {\r\n if (control.errors.hasOwnProperty(errorName)) {\r\n switch (errorName) {\r\n case \"required\":\r\n messages.push(`${thing} is required`);\r\n break;\r\n\r\n case \"minlength\":\r\n messages.push(\r\n `${thing} must be at least ${control.errors[\"minlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"pattern\":\r\n messages.push(`${thing} contains illegal characters`);\r\n break;\r\n\r\n case \"format\":\r\n messages.push(`${thing} format mismatch`);\r\n break;\r\n\r\n case \"maxlength\":\r\n messages.push(\r\n `${thing} must have maximum ${control.errors[\"maxlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"specialcharacters\":\r\n messages.push(`${thing} contains special characters`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-item-validation-summary\",\r\n templateUrl: \"./item-validation-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class ItemValidationSummaryComponent extends ValidationSummaryComponent {\r\n}\r\n","<ul class=\"list-unstyled\" *ngIf=\"isControlInvalid(controlName)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.controls[controlName], controlName, controlTitle)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ModerationStatus } from '../../../../core/enums';\r\nimport { EnumEditComponentBase } from '../../base/components/enum-edit.component';\r\n\r\n@Component({\r\n selector: 'anatoly-moderationstatus-dropdownlist',\r\n templateUrl: './moderationstatus.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class ModerationStatusDropdownlist extends EnumEditComponentBase implements OnInit {\r\n constructor() {\r\n super();\r\n this.title = 'Moderation Status';\r\n this.enumeration = ModerationStatus;\r\n }\r\n}\r\n\r\n","<div *ngIf='isNgModelBased'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [(ngModel)]=\"sv\"\r\n (valueChange)=\"onChange($event)\" />\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [formControlName]='controlName' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle' />\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { PublishStatus } from '../../../../core/enums';\r\nimport { EnumEditComponentBase } from '../../base/components/enum-edit.component';\r\n\r\n@Component({\r\n selector: 'anatoly-publishstatus-dropdownlist',\r\n templateUrl: './publishstatus.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class PublishStatusDropdownlist extends EnumEditComponentBase implements OnInit {\r\n constructor() {\r\n super();\r\n this.title = 'Publish Status';\r\n this.enumeration = PublishStatus;\r\n }\r\n}\r\n\r\n","<div *ngIf='isNgModelBased'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [(ngModel)]=\"sv\"\r\n (valueChange)=\"onChange($event)\" />\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <kendo-dropdownlist [data]=\"items\"\r\n valueField=\"value\" textField=\"text\"\r\n [valuePrimitive]=\"true\"\r\n [formControlName]='controlName' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle' />\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, Input, OnInit} from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-timezone-dropdownlist',\r\n templateUrl: './timezone.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class TimezoneDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n @Input() disabled = false;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n this.title = 'Timezone';\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.timezones);\r\n }\r\n }); \r\n\r\n if (this.isNgModelBased) {\r\n }\r\n else {\r\n let timezone = this.getFormValue(this.controlName);\r\n if (timezone) {\r\n return;\r\n }\r\n\r\n //1. Try to set client timezone\r\n try {\r\n timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n this.setFormValue(this.controlName, timezone);\r\n }\r\n catch {\r\n }\r\n\r\n //2. Try to set context timeZone\r\n let context = this.appContext.current;\r\n timezone = context?.user?.timezone;\r\n\r\n if (timezone) {\r\n this.setFormValue(this.controlName, timezone);\r\n }\r\n }\r\n }\r\n}\r\n","<div *ngIf='isNgModelBased'>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <label *ngIf='isTitleVisible' class='col-form-label'>Timezone</label>\r\n <select [formControlName]='controlName' class='form-select' [disabled]='disabled'>\r\n <option *ngFor='let item of items' [value]='item.code'>\r\n ({{ item.offset }}) {{ item.name }}\r\n </option>\r\n </select>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { AppCoreSettings } from '../../../core/consts/core-settings';\r\n\r\nlet imageUploadUrl = AppCoreSettings?.api?.url + AppCoreSettings?.api?.imageUploadPath; \r\n\r\nexport const DefaultEditorOptions: Object = {\r\n placeholderText: \"Edit Your Content Here\",\r\n charCounterCount: true,\r\n heightMin: 100,\r\n toolbarInline: false,\r\n\r\n toolbarButtons: {\r\n moreText: {\r\n buttons: [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"strikeThrough\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"fontFamily\",\r\n \"fontSize\",\r\n \"textColor\",\r\n \"backgroundColor\",\r\n \"inlineClass\",\r\n \"inlineStyle\",\r\n ],\r\n },\r\n moreParagraph: {\r\n buttons: [\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"formatOLSimple\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"formatOL\",\r\n \"formatUL\",\r\n \"paragraphFormat\",\r\n \"paragraphStyle\",\r\n \"lineHeight\",\r\n \"outdent\",\r\n \"indent\",\r\n \"quote\",\r\n ],\r\n },\r\n moreRich: {\r\n buttons: [\r\n \"insertLink\",\r\n \"insertImage\",\r\n \"insertTable\",\r\n \"emoticons\",\r\n \"fontAwesome\",\r\n \"specialCharacters\",\r\n \"embedly\",\r\n ],\r\n },\r\n moreMisc: {\r\n buttons: [\r\n \"selectAll\",\r\n \"clearFormatting\",\r\n \"html\",\r\n \"undo\",\r\n \"redo\",\r\n \"fullscreen\",\r\n ],\r\n align: \"right\",\r\n }\r\n },\r\n\r\n /*\r\n Upload:\r\n https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload\r\n */\r\n imageUploadURL: imageUploadUrl,\r\n imageAllowedTypes: [\"jpeg\", \"jpg\", \"png\"],\r\n imageUploadParams: { uploadType: \"\", uploadParentId: \"\" }\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Global\r\ndeclare let $: any;\r\n\r\n//Node\r\nimport { AfterViewInit, Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { AppCoreSettings } from \"../../../core/consts/core-settings\";\r\nimport { EditComponentBase } from \"../base/components/edit.component\";\r\nimport { DefaultEditorOptions } from \"./defaultoptions\";\r\n\r\n@Component({\r\n template: \"\",\r\n standalone: false\r\n})\r\nexport abstract class HtmlEditorComponentBase extends EditComponentBase implements OnInit, AfterViewInit {\r\n protected froalaEditor;\r\n\r\n //Public members\r\n public options;\r\n public froalaEditorInitialized = false;\r\n public afterInitializedActions = [];\r\n\r\n //Inputs\r\n @Input() editorOptions: Object = {};\r\n\r\n constructor() {\r\n super();\r\n this.title = \"Html\";\r\n this.isTitleVisible = true;\r\n }\r\n\r\n ngOnInit() {\r\n let opt = this.editorOptions;\r\n if (typeof this.editorOptions == \"string\") {\r\n opt = JSON.parse(this.editorOptions);\r\n }\r\n\r\n let newOptions: any = $.extend({}, DefaultEditorOptions, opt);\r\n const key = AppCoreSettings.froalaEditorKey;\r\n\r\n if (key) {\r\n newOptions = $.extend(\r\n {},\r\n newOptions,\r\n JSON.parse('{ \"key\": \"' + key + '\" }')\r\n );\r\n }\r\n\r\n if (newOptions.events && newOptions.events.initialized) {\r\n newOptions.events.initialized.overridden = false;\r\n }\r\n\r\n this.options = newOptions;\r\n }\r\n\r\n ngAfterViewInit() {\r\n const that = this;\r\n setTimeout(function () {\r\n that.froalaEditorInitialized = true;\r\n that.onInitialized();\r\n }, 300);\r\n }\r\n\r\n private onInitialized() {\r\n let actions = this.afterInitializedActions;\r\n\r\n // Clear actions\r\n this.afterInitializedActions = [];\r\n\r\n if (actions) {\r\n for (let i = 0; i < actions.length; i++) {\r\n actions[i]();\r\n }\r\n }\r\n }\r\n\r\n protected getEditor() {\r\n if (this.froalaEditor) {\r\n return this.froalaEditor.getEditor();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Public Funcs\r\n doAfterInitialized(action) {\r\n const that = this;\r\n\r\n if (!this.froalaEditorInitialized) {\r\n this.afterInitializedActions.push(() => {\r\n action(that);\r\n });\r\n } else {\r\n action(that);\r\n }\r\n }\r\n\r\n initializeControl(control) {\r\n this.froalaEditor = control;\r\n this.froalaEditor.initialize();\r\n }\r\n\r\n setUploadParams(uploadType, uploadParentId) {\r\n this.doAfterInitialized(function (that) {\r\n const editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.opts.imageUploadParams.uploadType = uploadType;\r\n editor.opts.imageUploadParams.uploadParentId = uploadParentId;\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { HtmlEditorComponentBase } from \"./base-editor.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-html-editor\",\r\n templateUrl: \"./html-editor.component.html\",\r\n standalone: false\r\n})\r\nexport class HtmlEditorComponent extends HtmlEditorComponentBase {\r\n constructor() {\r\n super();\r\n }\r\n\r\n getHtml() {\r\n let editor = this.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n return editor.html.get(false);\r\n }\r\n\r\n setHtml(content) {\r\n this.doAfterInitialized(function (that) {\r\n let editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.html.set(content);\r\n });\r\n }\r\n}\r\n","<div *ngIf='isNgModelBased'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <textarea [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\r\n</div>\r\n\r\n<div *ngIf='!isNgModelBased' [formGroup]='formGroup'>\r\n <kendo-label text=\"{{ title }}\" *ngIf='isTitleVisible'></kendo-label>\r\n <textarea [froalaEditor]=\"options\" \r\n [formControlName]=\"controlName\" \r\n [attr.formControlTitle]=\"controlTitle\" \r\n (froalaInit)=\"initializeControl($event)\">\r\n </textarea>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'\r\n [controlTitle]='controlTitle' />\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'anatoly-check-icon',\r\n templateUrl: './check-icon.component.html',\r\n standalone: false\r\n})\r\nexport class CheckIconComponent {\r\n //Inputs\r\n @Input() checked: boolean = true;\r\n}\r\n","<fa-icon [icon]=\"this.checked ? 'check-circle' : 'circle-xmark'\"\r\n [ngClass]=\"checked ? 'text-success' : 'text-danger'\" />\r\n<ng-content></ng-content>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 23 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n//App\r\nimport { DataViewType } from '../../../core/enums';\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-data-grid-control-panel',\r\n templateUrl: './control-panel.component.html',\r\n standalone: false\r\n})\r\nexport class ControlPanelComponent extends ComponentBase implements OnInit {\r\n filterVisible: boolean;\r\n selectedSortBy: number;\r\n viewTypeDefault: DataViewType;\r\n\r\n //Inputs\r\n @Input() sortByItems;\r\n @Input() viewType;\r\n\r\n //Visible\r\n @Input() filterButtonVisible = false;\r\n @Input() sortByVisible = false;\r\n @Input() viewTypesVisible = false;\r\n @Input() addButtonVisible = false;\r\n\r\n //Outputs\r\n @Output() settingsChange: EventEmitter<any> = new EventEmitter();\r\n @Output() add: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n this.resetSettings();\r\n this.fireSettingsChange();\r\n }\r\n\r\n private setDefaults() {\r\n if (this.viewType) {\r\n this.viewTypeDefault = this.viewType;\r\n }\r\n else {\r\n this.viewType = DataViewType.List;\r\n this.viewTypeDefault = DataViewType.List;\r\n }\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n private fireSettingsChange() {\r\n this.settingsChange.emit(this.getSettings());\r\n }\r\n\r\n private fireAdd() {\r\n this.add.emit();\r\n }\r\n\r\n //Public\r\n resetSettings() {\r\n this.filterVisible = false;\r\n this.selectedSortBy = 1;\r\n this.viewType = this.viewTypeDefault;\r\n }\r\n\r\n getSettings() {\r\n let filterVisible = this.filterVisible;\r\n let sortBy = this.selectedSortBy;\r\n let viewType = this.viewType;\r\n\r\n return {\r\n filterVisible: filterVisible,\r\n sortBy: sortBy,\r\n viewType: viewType\r\n };\r\n }\r\n\r\n //Events\r\n onFilterToggle() {\r\n this.filterVisible = !this.filterVisible;\r\n this.fireSettingsChange();\r\n }\r\n\r\n onSortByChange() {\r\n this.fireSettingsChange();\r\n }\r\n\r\n onViewSwitch(value) {\r\n this.viewType = value;\r\n this.fireSettingsChange();\r\n }\r\n\r\n onAdd() {\r\n this.fireAdd();\r\n }\r\n}\r\n","<div class='os-control-panel'>\r\n <div class='control-wrapper'>\r\n @if (filterButtonVisible) {\r\n <div class='filter'>\r\n <a [ngClass]=\"{'active': filterVisible}\"\r\n class='btn btn-icon btn-primary'\r\n href='javascript:void(0)' \r\n (click)='onFilterToggle()'>\r\n <svg height='22' viewBox='0 0 32 32' width='20' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a> \r\n </div>\r\n }\r\n \r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class='tools'>\r\n @if (sortByVisible) {\r\n <div class='sort-by'>\r\n <h2>Sort By:</h2>\r\n <kendo-dropdownlist [data]='sortByItems'\r\n valueField='value'\r\n textField='text'\r\n [valuePrimitive]='true'\r\n [(ngModel)]='selectedSortBy'\r\n (valueChange)='onSortByChange()'>\r\n </kendo-dropdownlist>\r\n </div>\r\n }\r\n\r\n @if (viewTypesVisible) {\r\n <div class='actions'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'grid'}\"\r\n (click)=\"onViewSwitch('grid')\">\r\n <svg fill='none' height='18' viewBox='0 0 18 18' width='18' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'list'}\"\r\n (click)=\"onViewSwitch('list')\">\r\n <svg fill='none' height='15' viewBox='0 0 19 15' width='19' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'table'}\"\r\n (click)=\"onViewSwitch('table')\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\" fill='none' >\r\n <path\r\n d=\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n </div>\r\n }\r\n\r\n @if (addButtonVisible) {\r\n <div class='action-add'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)' (click)='onAdd()'>\r\n <fa-icon icon='plus'/>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-datapager',\r\n templateUrl: './datapager.component.html',\r\n standalone: false\r\n})\r\nexport class DataPagerComponent extends ComponentBase implements OnInit {\r\n //Private\r\n private _defaultPageSizes = [5, 10, 20, 30];\r\n private _width;\r\n\r\n //Public\r\n pageSizes = [];\r\n style: string;\r\n\r\n //Inputs\r\n @Input() totalItems: number = 0;\r\n @Input() pageSize: number = 0;\r\n @Input() skipItems: number = 0;\r\n\r\n @Input() pageSizeDivisor;\r\n @Input() pageSizeMax: number = 30;\r\n @Input()\r\n get width() {\r\n return this._width;\r\n }\r\n set width(value) {\r\n this._width = value;\r\n\r\n if (value) {\r\n this.style = \"width: \" + value;\r\n }\r\n }\r\n\r\n //Outputs\r\n @Output() pageChange: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.pageSizes = [];\r\n\r\n if (this.pageSizeDivisor) {\r\n for (let i = 3; i < this.pageSizeMax; i++) {\r\n let remainder = i % this.pageSizeDivisor;\r\n if (remainder == 0) {\r\n this.pageSizes.push(i);\r\n }\r\n }\r\n }\r\n else {\r\n this.pageSizes = this._defaultPageSizes;\r\n }\r\n }\r\n\r\n //Events\r\n onPageChange(e) {\r\n this.pageChange.emit(e);\r\n }\r\n}\r\n","<div class='{{ classes }}'>\r\n <kendo-datapager [total]='totalItems'\r\n [pageSize]='pageSize'\r\n [pageSizeValues]='pageSizes'\r\n [skip]='skipItems'\r\n [style]='style'\r\n (pageChange)='onPageChange($event)'>\r\n </kendo-datapager>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signin-button\",\r\n templateUrl: \"./signin-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignInButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n external = false;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n let url = MSALConfig.ui.signin;\r\n\r\n if (url) {\r\n this.external = url.indexOf('http') > -1;\r\n\r\n if (this.external) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n else {\r\n this.url = url;\r\n }\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign In</span>\r\n</ng-template>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signout-button\",\r\n templateUrl: \"./signout-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignOutButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n external = false;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n let url = MSALConfig.ui.signout;\r\n\r\n if (url) {\r\n this.external = url.indexOf('http') > -1;\r\n\r\n if (this.external) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n else {\r\n this.url = url;\r\n }\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\" *ngIf=\"external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<a [routerLink]=\"url\" class=\"{{ classes }}\" *ngIf=\"!external\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n</a>\r\n\r\n<ng-template #contentTemplate>\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Out</span>\r\n</ng-template>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Jul 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\r\n\r\n@Component({\r\n selector: 'anatoly-nodata',\r\n templateUrl: './nodata.component.html',\r\n standalone: false\r\n})\r\nexport class NodataComponent {\r\n @Input() dataLoading;\r\n @Input() dataLoaded;\r\n @Input() dataFound;\r\n\r\n @Input() icon;\r\n @Input() iconSize: SizeProp = '10x';\r\n @Input() heading: string = 'No data found';\r\n}\r\n","@if (!dataLoading && dataLoaded && !dataFound) {\r\n <div class=\"no-data\">\r\n <div class='loaded text-info'>\r\n <div *ngIf='icon'>\r\n <fa-icon [icon]=\"icon\" [size]=\"iconSize\"></fa-icon>\r\n </div>\r\n <h3 class='no-data-heading'>{{heading}}</h3>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 22 Juy 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-no-mobile-support',\r\n templateUrl:'./no-mobile-support.component.html',\r\n standalone: false\r\n})\r\nexport class NoMobileSupportComponent extends ComponentBase {\r\n @Input() logo;\r\n}\r\n","<div style=\"text-align:center; padding-top:20px;\">\r\n <img [src]='logo' alt='logo'>\r\n</div>\r\n<div style='text-align: center; margin-top:40vh;'>\r\n <div style='font-size:1.25rem;'>\r\n <b>Mobile Site Under Construction</b>\r\n </div>\r\n <div>Please Use Another Device</div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n \r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n \r\n Created:\r\n 16 Dec 2025\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\nimport { Message2UserService } from '../../../core/services/message2user.service';\r\nimport { GoServiceBase } from '../../../core/go/go.service';\r\n\r\n@Component({\r\n selector: 'anatoly-message2user',\r\n templateUrl: './message2User.component.html',\r\n standalone: false\r\n})\r\nexport class Message2UserComponent extends ComponentBase implements OnInit {\r\n show = false;\r\n message;\r\n config;\r\n \r\n constructor(private go: GoServiceBase, private mus: Message2UserService) {\r\n super();\r\n }\r\n \r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n \r\n private setDefaults() {\r\n }\r\n \r\n private setValues() {\r\n this.subs.sink = this.mus.subscribe({\r\n next: (data) => {\r\n if (!data) {\r\n return;\r\n }\r\n \r\n this.show = true;\r\n this.message = data;\r\n this.config = this.mus.getConfig(data.type);\r\n \r\n if (this.message?.timeout) {\r\n setTimeout(() => {\r\n this.show = false;\r\n }, this.message.timeout);\r\n }\r\n },\r\n });\r\n }\r\n \r\n //Events\r\n onCloseAndBlock() {\r\n this.show = false;\r\n\r\n if (this.config.go2dashboard) {\r\n this.go.dashboard();\r\n }\r\n else {\r\n this.go.home();\r\n }\r\n }\r\n \r\n onClose(){\r\n this.show = false;\r\n }\r\n}\r\n","@if (show) {\r\n <div class='message-user' [ngClass]='{show: show}'>\r\n <div class='message-user-inner '>\r\n <anatoly-card>\r\n <anatoly-card-header title=' '>\r\n <div class='card-tools'>\r\n @if (message?.block) {\r\n <a href='javascript:' class='btn btn-icon btn-info' (click)='onCloseAndBlock()'>\r\n <fa-icon icon='close' />\r\n </a>\r\n }\r\n \r\n @if (!message?.block) {\r\n <a href='javascript:' class='btn btn-icon btn-info' (click)='onClose()'>\r\n <fa-icon icon='close' />\r\n </a>\r\n }\r\n </div>\r\n </anatoly-card-header>\r\n \r\n <anatoly-card-body classes='p-0'>\r\n <div class='message-content'>\r\n <div class='message-content text-center'>\r\n @if (config?.image) {\r\n <div class='message-image mb-3'>\r\n <img [src]=\"config.image\"\r\n [alt]=\"config.title || 'Message'\"\r\n class='img-fluid'\r\n loading=\"lazy\">\r\n </div>\r\n }\r\n <div class='message-text'>\r\n <h4 class='mb-2' [ngClass]=\"'text-' + config?.color\">\r\n {{ config?.title }}\r\n </h4>\r\n <p class='mb-0'>{{ config?.message }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </anatoly-card-body>\r\n \r\n <anatoly-card-footer classes='bg-footer'>\r\n <div class='actions'>\r\n @if (message?.block) {\r\n <a href='javascript:' class='btn btn-secondary' (click)='onCloseAndBlock()'>\r\n <span>Close</span>\r\n </a>\r\n }\r\n \r\n @if (!message?.block) {\r\n <a href='javascript:' class='btn btn-secondary' (click)='onClose()'>\r\n <span>Close</span>\r\n </a>\r\n }\r\n </div>\r\n </anatoly-card-footer>\r\n </anatoly-card>\r\n </div>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 9 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../../base/components/component';\r\nimport { LoadingService } from '../../../../core/services/loading.service';\r\n\r\n@Component({\r\n selector: 'anatoly-loading',\r\n templateUrl: './loading.component.html',\r\n standalone: false\r\n})\r\nexport class LoadingComponent extends ComponentBase implements OnInit {\r\n show = false;\r\n\r\n constructor(private loadingService: LoadingService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subs.sink = this.loadingService.subscribe({\r\n next: (data) => {\r\n this.show = data;\r\n }\r\n });\r\n }\r\n}\r\n","<div id=\"pnlLoading\" *ngIf=\"show\">\r\n <span class=\"k-icon k-i-loading\"></span>\r\n</div>\r\n","export const Spinkit = {\r\n skChasingDots: 'sk-chasing-dots',\r\n skCubeGrid: 'sk-cube-grid',\r\n skDoubleBounce: 'sk-double-bounce',\r\n skRotatingPlane: 'sk-rotationg-plane',\r\n skSpinnerPulse: 'sk-spinner-pulse',\r\n skThreeBounce: 'sk-three-bounce',\r\n skWanderingCubes: 'sk-wandering-cubes',\r\n skWave: 'sk-wave',\r\n skLine: 'sk-line-material'\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, Input, OnDestroy, ViewEncapsulation} from '@angular/core';\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationError, NavigationCancel } from '@angular/router';\r\n\r\n//App\r\nimport {Spinkit} from './spinkits'\r\n\r\n@Component({\r\n selector: 'anatoly-pagespinner',\r\n templateUrl: './pagespinner.component.html',\r\n standalone: false,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PageSpinnerComponent implements OnDestroy {\r\n isSpinnerVisible = true;\r\n Spinkit = Spinkit;\r\n\r\n @Input() backgroundColor = '#2196f3';\r\n @Input() spinner = Spinkit.skLine;\r\n\r\n constructor(private router: Router) {\r\n router.events.subscribe({\r\n next:(routerEvent: Event) => {\r\n this.checkRouterEvent(routerEvent);\r\n }\r\n });\r\n }\r\n\r\n checkRouterEvent(routerEvent: Event): void {\r\n if (routerEvent instanceof NavigationStart) {\r\n this.isSpinnerVisible = true;\r\n }\r\n\r\n if (routerEvent instanceof NavigationEnd ||\r\n routerEvent instanceof NavigationCancel ||\r\n routerEvent instanceof NavigationError) {\r\n this.isSpinnerVisible = false;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isSpinnerVisible = false;\r\n}\r\n}\r\n\r\n","<div id=\"http-loader\" *ngIf=\"isSpinnerVisible\">\r\n <div class=\"loader-bg\">\r\n <div class=\"sk-line-material\" [class.colored]=\"!backgroundColor\" *ngIf=\"spinner === Spinkit.skLine\">\r\n <div class=\"sk-child sk-bounce1\" [style.background-color]='backgroundColor'></div>\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 9 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { Utils } from '../../../core/utils/utils';\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-copy-2-clipboard',\r\n templateUrl:'./copy-2-clipboard.component.html',\r\n standalone: false\r\n})\r\nexport class Copy2ClipboardComponent extends ComponentBase {\r\n @Input() tooltip = \"Copy to clipboard\";\r\n @Input() text = \"\";\r\n\r\n onCopy2Clipboard(event) {\r\n let oldTooltip = this.tooltip;\r\n this.tooltip = \"Copied\";\r\n\r\n setTimeout(() => {\r\n this.tooltip = oldTooltip;\r\n }, 1000);\r\n\r\n Utils.copyToClipBoard(event, this.text);\r\n }\r\n}\r\n","<a class=\"btn btn-icon {{ classes }}\" (click)=\"onCopy2Clipboard($event)\">\r\n <fa-icon size=\"lg\" icon=\"copy\" />\r\n</a>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, EventEmitter, Output, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../components/base/components/edit.component';\r\nimport { Utils } from '../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-urlslug',\r\n templateUrl: './urlslug.component.html',\r\n standalone: false\r\n})\r\nexport class UrlSlugComponent extends EditComponentBase implements OnInit {\r\n firstValue: boolean = true;\r\n hrefGo: string;\r\n\r\n //Inputs\r\n @Input() urlPrefix: string;\r\n @Input() isGoButtonVisible = true;\r\n\r\n //Validation\r\n @Input() watchedControlName: string;\r\n\r\n //Outputs\r\n @Output() generated: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {\r\n super();\r\n this.title = 'Permalink';\r\n }\r\n\r\n ngOnInit() {\r\n this.startWatching();\r\n }\r\n\r\n private generateUrlSlug(text) {\r\n let slugedText = Utils.slugify(text);\r\n let event = { urlSlug: slugedText };\r\n\r\n this.generated.emit(event);\r\n this.setFormValue(this.controlName, event.urlSlug);\r\n }\r\n\r\n private startWatching() {\r\n this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({\r\n next: (value) => {\r\n this.hrefGo = value;\r\n }\r\n });\r\n\r\n if (this.watchedControlName) {\r\n this.subs.sink = this.formGroup.get(this.watchedControlName).valueChanges.subscribe({\r\n next: (value) => {\r\n if (this.firstValue) {\r\n this.firstValue = false;\r\n return;\r\n }\r\n\r\n this.generateUrlSlug(value);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //Events\r\n onUrlSlugChange(){\r\n let text = this.getFormValue(this.controlName);\r\n this.generateUrlSlug(text);\r\n }\r\n}\r\n","<div class=\"form-group\" [formGroup]='formGroup' [ngClass]=\"{'has-error': isControlInvalid(controlName)}\" >\r\n <anatoly-item-validation-summary\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n [controlName]='controlName'>\r\n </anatoly-item-validation-summary>\r\n\r\n <div class=\"input-group permalink\" [ngClass]=\"classes\">\r\n <label for=\"urlPrefixId\" *ngIf='isTitleVisible'>{{ title }}</label>\r\n <div class=\"urlPrefix\">{{ urlPrefix }}</div>\r\n <input type=\"text\" class=\"form-control\" id=\"urlPrefixId\" [formControlName]='controlName' (focusout)='onUrlSlugChange()'>\r\n <a class=\"btn btn-primary\" href=\"{{urlPrefix}}{{hrefGo}}\" target=\"_blank\" *ngIf=\"isGoButtonVisible\" >Go</a>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-feature-will-be-ready',\r\n templateUrl: 'feature-will-be-ready.component.html',\r\n standalone: false\r\n})\r\nexport class FeatureWillBeReadyComponent extends ComponentBase {\r\n @Input() readyDate;\r\n}\r\n","<div class='feature-will-be-ready'>\r\n <h3 *ngIf='readyDate'>This feature will be ready in {{ readyDate }} </h3>\r\n <h3 *ngIf='!readyDate'>This feature will be available soon</h3>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 21 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-you-agree-to-our-terms',\r\n templateUrl: './you-agree-to-our-terms.component.html',\r\n standalone: false\r\n})\r\nexport class YouAgreeToOurTermsComponent extends ComponentBase {\r\n @Input() prefix;\r\n @Input() oneLine: boolean = true;\r\n}\r\n","<div class=\"you-agree-to-our-terms\">\r\n <p>\r\n {{ prefix }} you agree to our\r\n @if (!oneLine) {\r\n <br />\r\n }\r\n <a [href]=\"currentApp.oneUrl + 'legal/terms'\" target=\"_blank\" rel=\"noopener\">Terms of use</a>\r\n and\r\n <a [href]=\"currentApp.oneUrl + 'legal/privacy'\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>.\r\n </p>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//base\r\nexport * from './base/components/component';\r\nexport * from './base/components/edit.component';\r\nexport * from './base/components/enum-edit.component';\r\nexport * from './base/pages/page';\r\nexport * from './base/pages/edit.page';\r\nexport * from './base/pages/paged.page';\r\nexport * from './base/dialog';\r\nexport * from './base/list';\r\n\r\n//cards\r\nexport * from './card/card.component';\r\nexport * from './card/card-header.component';\r\nexport * from './card/card-body.component';\r\nexport * from './card/card-footer.component';\r\n\r\n//dropdownlists\r\nexport * from './dropdownlists/country/country.dropdownlist';\r\nexport * from './dropdownlists/language/language.dropdownlist';\r\nexport * from './dropdownlists/moderationstatus/moderationstatus.dropdownlist';\r\nexport * from './dropdownlists/publishstatus/publishstatus.dropdownlist';\r\nexport * from './dropdownlists/timezone/timezone.dropdownlist';\r\n\r\n//html-editor\r\nexport * from './html-editor/defaultoptions';\r\nexport * from './html-editor/base-editor.component';\r\nexport * from './html-editor/html-editor.component';\r\n\r\nexport * from './check-icon/check-icon.component';\r\nexport * from './data-grid/control-panel.component';\r\nexport * from './datapager/datapager.component';\r\nexport * from './identity/signin-button.component';\r\nexport * from './identity/signout-button.component';\r\nexport * from './identity/signup-button.component';\r\nexport * from './nodata/nodata.component';\r\nexport * from './no-mobile-support/no-mobile-support.component';\r\nexport * from './message2User/message2user.component';\r\nexport * from './spinners/loading/loading.component';\r\nexport * from './spinners/pagespinner/pagespinner.component';\r\nexport * from './copy-2-clipboard/copy-2-clipboard.component';\r\nexport * from './urlslug/urlslug.component';\r\nexport * from './feature-will-be-ready/feature-will-be-ready.component';\r\nexport * from './you-agree-to-our-terms/you-agree-to-our-terms.component';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 7 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n//App\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-form-validation-summary\",\r\n templateUrl: \"./form-validation-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class FormValidationSummaryComponent extends ValidationSummaryComponent {\r\n @Input() visible: boolean = false;\r\n @Input() customerrors: string[] = [];\r\n\r\n /*\r\n 0 - all\r\n 1 - only FormValidation messages\r\n 2 - only Custom messages\r\n */\r\n @Input() viewtype: number = 0;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n getErrors() {\r\n let messages = [];\r\n let formValidationMessages = this.getFormValidationMessages();\r\n\r\n switch(this.viewtype) {\r\n case 1:\r\n messages.push(...formValidationMessages);\r\n break;\r\n\r\n case 2:\r\n messages.push(...this.customerrors);\r\n break;\r\n\r\n default:\r\n messages.push(...formValidationMessages);\r\n messages.push(...this.customerrors);\r\n break;\r\n }\r\n\r\n return messages;\r\n }\r\n}\r\n","<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h6 class=\"box-title\">There are problems with the form</h6>\r\n <ul>\r\n <li *ngFor=\"let error of getErrors()\"><span>{{error}}</span></li>\r\n </ul>\r\n</div>\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { ReCaptchaV3Service } from 'ngx-captcha';\r\n\r\n//App\r\nimport { AppContextService } from \"../../../core/services/appcontext.service\";\r\nimport { NotificationService } from \"../../../core/notifications/services/notification-service\";\r\nimport { EmailsApiService } from '../../../data/services/emails-api.service';\r\nimport { EditComponentBase } from \"../../components/base/components/edit.component\";\r\n\r\n@Component({\r\n selector: 'anatoly-forms-contactus-form',\r\n templateUrl: './contact-us.html',\r\n standalone: false\r\n})\r\nexport class ContactUsForm extends EditComponentBase implements OnInit {\r\n isUserSignedIn: boolean = false;\r\n reCaptchaSiteKey;\r\n selectedTopic;\r\n\r\n topicList = [\r\n { value: 'Billing & Pricing' },\r\n { value: 'Legal & Privacy' },\r\n { value: 'Report abuse' },\r\n { value: 'Technical Support' },\r\n { value: 'Other' }\r\n ];\r\n\r\n //Inputs\r\n @Input() showActionButtons = true;\r\n\r\n //Outputs\r\n @Output() submit: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private reCaptcha: ReCaptchaV3Service,\r\n private fb: FormBuilder,\r\n private appContext: AppContextService,\r\n private api: EmailsApiService,\r\n private notificationService: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.createFormGroup();\r\n\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;\r\n this.selectedTopic = this.topicList[3].value;\r\n\r\n this.setFormValue('topic', this.selectedTopic);\r\n\r\n if (this.isUserSignedIn) {\r\n this.setFormValue('name', context.user.displayNameOrFullName);\r\n this.setFormValue('email', context.user.email);\r\n }\r\n });\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup = this.fb.group({\r\n name: new FormControl('', [ Validators.required ]),\r\n email: new FormControl('', [ Validators.required ]),\r\n topic: new FormControl('', [ Validators.required ]),\r\n subject: new FormControl('', [ Validators.required ]),\r\n message: new FormControl('', [ Validators.required ])\r\n });\r\n }\r\n\r\n isValid() {\r\n return this.formGroup.valid;\r\n }\r\n\r\n contactUs() {\r\n this.formSubmitted = true;\r\n if (!this.isValid()) return;\r\n\r\n const name = this.getFormValue('name');\r\n const email = this.getFormValue('email');\r\n const topic = this.selectedTopic;\r\n const subject = this.getFormValue('subject');\r\n const message = this.getFormValue('message');\r\n\r\n this.reCaptcha.execute(this.reCaptchaSiteKey, 'ContactUs', (token) => {\r\n this.api.sendContactUs(token, name, email, topic, subject, message,\r\n () => {\r\n this.formSubmitted = false;\r\n this.notificationService.success('Message has been sent successfully');\r\n this.formGroup.reset();\r\n\r\n this.submit.emit();\r\n },\r\n () => {\r\n this.notificationService.error();\r\n }\r\n );\r\n });\r\n }\r\n\r\n //Events\r\n onSubmit() {\r\n this.contactUs();\r\n }\r\n\r\n onTopicChange(event) {\r\n this.selectedTopic = event.target.value;\r\n }\r\n}\r\n","<form (ngSubmit)='onSubmit()' [formGroup]='formGroup' novalidate>\r\n <anatoly-form-validation-summary [formGroup]='formGroup'\r\n [visible]='formSubmitted && formGroup.invalid'></anatoly-form-validation-summary>\r\n\r\n <div class='contact-us'>\r\n <div class=\"row\">\r\n <div class='form-fields col-6'>\r\n <p>What can we help you with?</p>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('topic') }\" class='form-topic'>\r\n <div class='form-select-wrapper'>\r\n <label class='assistive-text'>Topic *</label>\r\n <select (change)='onTopicChange($event)' class='form-select' formControlName='topic'>\r\n <option *ngFor='let topic of topicList' [value]='topic.value'>{{ topic.value }} </option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='topic'\r\n controlTitle='topic'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('name') }\" class='form-name'>\r\n <label class='assistive-text'>Name *</label>\r\n <input class='form-control' formControlName='name' placeholder='Name *' type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='name'\r\n controlTitle='name'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('email') }\" class='form-email'>\r\n <label class='assistive-text'>E-mail * </label>\r\n <input class='form-control' formControlName='email' placeholder='E-mail *' type='text' />\r\n <p *ngIf='!isUserSignedIn'>Please indicate the email used for your MailEx login if you already have an account</p>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='email'\r\n controlTitle='email'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('subject') }\" class='form-subject'>\r\n <label class='assistive-text'>Subject *</label>\r\n <input class='form-control' formControlName='subject' placeholder='Subject *' type='text' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='subject'\r\n controlTitle='subject'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n <div class='col-6'>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('message') }\" class='form-message'>\r\n <label class='assistive-text'>Message *</label>\r\n <textarea formControlName='message' name='message' placeholder='Message *' rows='4'\r\n type='text'></textarea>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='message'\r\n controlTitle='message'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row form-footer\">\r\n <div class=\"col\">\r\n <button *ngIf='showActionButtons'\r\n [class.btn-primary]='!formGroup.invalid'\r\n class='btn btn-success'\r\n type='submit'>\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 July 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, ViewChild } from '@angular/core';\r\n\r\n//App\r\nimport { DialogBase } from '../../components/base/dialog';\r\nimport { ContactUsForm } from '../../forms/contact-us/contact-us';\r\n\r\n@Component({\r\n selector: 'anatoly-contactus-dialog',\r\n templateUrl: './contact-us.dialog.html',\r\n standalone: false\r\n})\r\nexport class ContactUsDialog extends DialogBase {\r\n @ViewChild('contactusform') contactUsForm: ContactUsForm;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n //Events\r\n onClose() {\r\n super.close();\r\n }\r\n\r\n onSubmitFire() {\r\n this.contactUsForm?.onSubmit();\r\n }\r\n\r\n onSubmit() {\r\n super.close();\r\n }\r\n}\r\n","<kendo-dialog (close)='onClose()' *ngIf='isOpen' [width]='700' title='Contact Us'>\r\n <div class=\"k-content k-window-content k-dialog-content\">\r\n <anatoly-forms-contactus-form #contactusform [showActionButtons]='false' (submit)='onSubmit()'>\r\n </anatoly-forms-contactus-form>\r\n </div>\r\n <kendo-dialog-actions class=\"k-actions\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button (click)='onSubmitFire()' class='btn btn-sm btn-success' type='button'>Submit</button>\r\n <button (click)='onClose()' class='btn btn-sm btn-danger' type='button'>Cancel </button>\r\n </div>\r\n </kendo-dialog-actions>\r\n</kendo-dialog>","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './contact-us/contact-us.dialog';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 24 Feb 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, HostBinding, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[anatoly-hover]',\r\n standalone: false\r\n})\r\nexport class HoveringDirective {\r\n @HostBinding('class.hovering')\r\n hovering = false;\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n this.hovering = true;\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n this.hovering = false;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './hover.directive';\r\nexport * from './replacer/a-replacer.directive';\r\nexport * from './replacer/image-replacer.directive';\r\nexport * from './native-element.directive';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\n\r\n//App\r\nimport { Convert } from '../../../../core/converts/convert';\r\nimport { EditComponentBase } from '../../../components/base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\ninterface CodeName {\r\n code: string,\r\n name: string\r\n}\r\n\r\n@Component({\r\n selector: 'anatoly-forms-address',\r\n templateUrl: './address.component.html',\r\n standalone: false\r\n})\r\nexport class AddressComponent extends EditComponentBase implements OnInit {\r\n //Private\r\n private _address;\r\n\r\n formGroupGenerated = false;\r\n\r\n countryData: Array<CodeName> = [];\r\n usStateData: Array<CodeName> = [];\r\n currentCountry = 'US';\r\n currentUSState = 'NY';\r\n\r\n //Inputs\r\n @Input()\r\n get address() {\r\n return this._address;\r\n }\r\n set address(value) {\r\n this._address = value;\r\n\r\n if (value) {\r\n this.init();\r\n }\r\n }\r\n\r\n //Outputs\r\n @Output() change = new EventEmitter<any>();\r\n\r\n constructor(private fb: FormBuilder, private appContext: AppContextService) {\r\n super();\r\n this.title = 'Address';\r\n }\r\n\r\n ngOnInit() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.countryData = Utils.sortArray(this.appContext.countries);\r\n this.usStateData = Utils.sortArray(this.appContext.usStates);\r\n }\r\n });\r\n\r\n this.createFormGroup();\r\n this.init();\r\n }\r\n\r\n private createFormGroup() {\r\n let isRequired = Convert.stringToBoolean(this.isRequired);\r\n\r\n if (isRequired) {\r\n this.formGroup.addControl('address_street', this.fb.control('', [Validators.required]));\r\n this.formGroup.addControl('address_street2', this.fb.control('', []));\r\n this.formGroup.addControl('address_city', this.fb.control('', [Validators.required]));\r\n this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, [Validators.required]));\r\n this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, [Validators.required]));\r\n this.formGroup.addControl('address_zipcode', this.fb.control('', [Validators.required]));\r\n }\r\n else {\r\n this.formGroup.addControl('address_street', this.fb.control('', []));\r\n this.formGroup.addControl('address_street2', this.fb.control('', []));\r\n this.formGroup.addControl('address_city', this.fb.control('', []));\r\n this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, []));\r\n this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, []));\r\n this.formGroup.addControl('address_zipcode', this.fb.control('', []));\r\n }\r\n\r\n this.formGroupGenerated = true;\r\n }\r\n\r\n private init() {\r\n if (!this.formGroupGenerated) {\r\n return;\r\n }\r\n\r\n if (this._address !== undefined) {\r\n let address = JSON.parse(this._address);\r\n\r\n this.setFormValue('address_street', address.street);\r\n this.setFormValue('address_street2', address.street2);\r\n this.setFormValue('address_city', address.city);\r\n this.setFormValue('address_stateOrRegion', address.stateOrRegion);\r\n this.setFormValue('address_zipcode', address.zipcode);\r\n this.setFormValue('address_country', address.country);\r\n }\r\n }\r\n\r\n getAddress() {\r\n const data = {\r\n street: this.getFormValue('address_street') || null,\r\n street2: this.getFormValue('address_street2') || null,\r\n city: this.getFormValue('address_city') || null,\r\n stateOrRegion: this.getFormValue('address_stateOrRegion') || null,\r\n zipcode: this.getFormValue('address_zipcode') || null,\r\n country: this.getFormValue('address_country') || null\r\n };\r\n\r\n return JSON.stringify(data);\r\n }\r\n\r\n //Events\r\n onCountryChange(event) {\r\n let country = event.target.value;\r\n this.change.emit(country);\r\n }\r\n\r\n onUSStateChange(event) {\r\n let usState = event.target.value;\r\n this.change.emit(usState);\r\n }\r\n}\r\n","<anatoly-card classes='card-outline card-primary'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title' />\r\n <anatoly-card-body [formGroup]='formGroup'>\r\n <div class=\"row\">\r\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street')}\" >\r\n <label>Street Address</label>\r\n <input type='text' class='form-control' formControlName='address_street' placeholder='Street Address'>\r\n <anatoly-item-validation-summary controlName='address_street'\r\n controlTitle='Street'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street2')}\" >\r\n <input type='text' class='form-control' formControlName='address_street2' placeholder='Apartment, suite, unit, building, floor, etc.'>\r\n <anatoly-item-validation-summary controlName='address_street2'\r\n controlTitle='Street2'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_city')}\">\r\n <label>City</label>\r\n <input type='text' class='form-control' formControlName='address_city' placeholder='City'>\r\n <anatoly-item-validation-summary controlName='address_city'\r\n controlTitle='City'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' *ngIf=\"formGroup.value.address_country == 'US'\" [ngClass]=\"{'has-error': isControlInvalid('address_stateOrRegion')}\">\r\n <label>State</label>\r\n <select class='form-control' (change)='onUSStateChange($event)' formControlName='address_stateOrRegion'>\r\n <option *ngFor='let state of usStateData' [value]='state.code'>{{state.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_stateOrRegion'\r\n controlTitle='State'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_zipcode')}\" >\r\n <label>Zipcode</label>\r\n <input type='text' class='form-control' formControlName='address_zipcode' placeholder='zipcode'>\r\n <anatoly-item-validation-summary controlName='address_zipcode'\r\n controlTitle='zipcode'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_country')}\">\r\n <label>Country</label>\r\n <select class='form-control' (change)='onCountryChange($event)' formControlName='address_country' data-placeholder='Select a Country'>\r\n <option *ngFor='let country of countryData' [value]='country.code'>{{country.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_country'\r\n controlTitle='Country'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../../components/exports';\r\n\r\n@Component({\r\n selector: 'anatoly-forms-company',\r\n templateUrl: './company.component.html',\r\n standalone: false\r\n})\r\nexport class CompanyComponent extends EditComponentBase implements OnInit {\r\n //Private\r\n private _company;\r\n\r\n formGroupGenerated = false;\r\n\r\n //Inputs\r\n @Input()\r\n get company() {\r\n return this._company;\r\n }\r\n set company(value) {\r\n this._company = value;\r\n\r\n if (value) {\r\n this.init();\r\n }\r\n }\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n this.title = 'Company / Organization';\r\n }\r\n\r\n ngOnInit() {\r\n this.createFormGroup();\r\n this.init();\r\n }\r\n\r\n private createFormGroup() {\r\n this.formGroup.addControl('company_name', this.fb.control('', []));\r\n this.formGroup.addControl('company_phone', this.fb.control('', []));\r\n this.formGroup.addControl('company_email', this.fb.control('', []));\r\n this.formGroup.addControl('company_websiteUrl', this.fb.control('', []));\r\n\r\n this.formGroupGenerated = true;\r\n }\r\n\r\n private init() {\r\n if (!this.formGroupGenerated) {\r\n return;\r\n }\r\n\r\n if (this._company !== undefined) {\r\n let company = JSON.parse(this._company);\r\n\r\n this.setFormValue('company_name', company.name);\r\n this.setFormValue('company_phone', company.phone);\r\n this.setFormValue('company_email', company.email);\r\n this.setFormValue('company_websiteUrl', company.websiteUrl);\r\n }\r\n }\r\n\r\n getCompany() {\r\n const data = {\r\n name: this.getFormValue('company_name') || null,\r\n phone: this.getFormValue('company_phone') || null,\r\n email: this.getFormValue('company_email') || null,\r\n websiteUrl: this.getFormValue('company_websiteUrl') || null\r\n };\r\n\r\n return JSON.stringify(data);\r\n }\r\n}\r\n","<anatoly-card classes='card-outline card-primary'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title' />\r\n <anatoly-card-body [formGroup]='formGroup' >\r\n <div class=\"row\">\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\r\n <label>Name</label>\r\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='company_name'\r\n controlTitle='Company Name'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\r\n <label>Phone</label>\r\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\r\n <anatoly-item-validation-summary controlName='company_phone'\r\n controlTitle='Company Phone'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\r\n <label>Email</label>\r\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\r\n <anatoly-item-validation-summary controlName='company_email'\r\n controlTitle='Company Email'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\r\n <label>Website Url</label>\r\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\r\n class='form-control' formControlName='company_websiteUrl'>\r\n <anatoly-item-validation-summary controlName='company_websiteUrl'\r\n controlTitle='Company website url'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Components\r\nexport * from './components/address/address.component';\r\nexport * from './components/company/company.component';\r\n\r\n//Forms\r\nexport * from './contact-us/contact-us';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filesize',\r\n standalone: false\r\n})\r\nexport class FileSizePipe implements PipeTransform {\r\n private units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n\r\n transform(bytes: number = 0, precision: number = 0): string {\r\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '';\r\n\r\n let unit = 0;\r\n\r\n while (bytes >= 1024) {\r\n bytes /= 1024;\r\n unit++;\r\n }\r\n\r\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"replaceText\",\r\n standalone: false\r\n})\r\nexport class ReplaceTextPipe implements PipeTransform {\r\n transform(inputData: string, search: string, replacement: string): string {\r\n if (inputData) {\r\n return inputData.replace(new RegExp(search, \"g\"), replacement);\r\n } else {\r\n return inputData;\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 27 Oct 2019\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n standalone: false\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) { }\r\n\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './filesize.pipe';\r\nexport * from './replace-text.pipe';\r\nexport * from './safeHtml.pipe';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './form-validation-summary.component';\r\nexport * from './item-validation-summary.component';\r\nexport * from './validation-summary.component';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './components/exports';\r\nexport * from './dialogs/exports';\r\nexport * from './directives/exports';\r\nexport * from './forms/exports';\r\nexport * from './pipes/exports';\r\nexport * from './validation/exports';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 June 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\n//Guards\r\nimport { StarterGuard } from './guards/starter.guard';\r\n\r\n//Localization\r\nimport { LocalizationModule } from './localization/localization.module';\r\n\r\nimport { GoServiceBase } from './go/go.service';\r\n\r\n//Services\r\nimport { BrowserService } from './services/browser.service';\r\nimport { DigitalMarketingService } from './services/dm.service';\r\nimport { GoogleAnalyticsService } from './services/google-analytics.service';\r\nimport { LoadingService } from './services/loading.service';\r\nimport { ScriptService } from './services/script.service';\r\nimport { StarterService } from './services/starter.service';\r\nimport { LocalStorageService, SessionStorageService } from './services/web-storage.service';\r\n\r\n//Logging\r\nimport { LoggingService } from './logging/logging.service';\r\n\r\n//Notifications\r\nimport { NotificationService } from './notifications/services/notification-service';\r\n\r\nexport let InjectorInstance: Injector;\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n LocalizationModule\r\n ],\r\n exports: [\r\n RouterModule,\r\n LocalizationModule\r\n ],\r\n providers: [\r\n //Guards\r\n StarterGuard,\r\n\r\n //GoService\r\n GoServiceBase,\r\n \r\n //Services\r\n BrowserService,\r\n DigitalMarketingService,\r\n GoogleAnalyticsService,\r\n LoadingService,\r\n ScriptService,\r\n StarterService,\r\n LocalStorageService,\r\n SessionStorageService,\r\n \r\n //Logging\r\n LoggingService,\r\n\r\n //Notifications\r\n NotificationService\r\n ]\r\n})\r\nexport class AnatolyCoreModule {\r\n constructor(private injector: Injector) {\r\n InjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Mar 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//Billing Services\r\nimport { CurrenciesApiService } from './services/billing/currencies-api.service';\r\nimport { CurrenciesStorageService } from './services/billing/currencies-storage.service';\r\nimport { PaymentsApiService } from './services/billing/payments-api.service';\r\nimport { PromoCodesApiService } from './services/billing/promocodes-api.service';\r\nimport { SubscriptionsApiService } from './services/billing/subscriptions-api.service';\r\nimport { TransactionsApiService } from './services/billing/transactions-api.service';\r\n\r\n//Services\r\nimport { CoreApiService } from './services/core-api.service';\r\nimport { EmailsApiService } from './services/emails-api.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n //Billing Services\r\n CurrenciesApiService,\r\n CurrenciesStorageService, \r\n PaymentsApiService,\r\n PromoCodesApiService,\r\n SubscriptionsApiService,\r\n TransactionsApiService,\r\n\r\n //Services\r\n CoreApiService,\r\n EmailsApiService\r\n ]\r\n})\r\nexport class AnatolyDataModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t2 May 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Source:\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-angular-v3-samples\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { RouterStateSnapshot } from \"@angular/router\";\r\nimport { MsalGuardAuthRequest, MsalGuardConfiguration, MsalInterceptorConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { InteractionType, IPublicClientApplication, LogLevel, PublicClientApplication, RedirectRequest } from '@azure/msal-browser';\r\n\r\n//App\r\nimport { MSALB2C, PolicyType } from './b2c';\r\nimport { MSALB2CConfig, MSALConfig } from './consts';\r\nimport { MSALStorage } from './storage';\r\nimport { MSALUtils} from './utils';\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n let protectedResourceMap = MSALUtils.getApi();\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\n/*\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/configuration.md\r\n The MsalGuard also allows you to dynamically change the authRequest at runtime. This allow you to pick a different\r\n authority for a route, or to dynamically add scopes based on the RouterStateSnapshot.\r\n\r\n Default: {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: {\r\n scopes: ['user.read']\r\n }\r\n }\r\n*/\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: (msalService: MsalService, state: RouterStateSnapshot): MsalGuardAuthRequest => {\r\n let scopes = MSALUtils.getApiScopes();\r\n let redirectTo = state.url;\r\n\r\n let request: RedirectRequest = {\r\n scopes: [...scopes]\r\n }\r\n\r\n MSALStorage.saveRedirectState(redirectTo, 'MSALGuardConfigFactory.authRequest');\r\n return request;\r\n }\r\n };\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n let authority = MSALConfig.app.auth.authority;\r\n let configuration: any = {\r\n auth: {\r\n authority: authority,\r\n clientId: MSALConfig.app.auth.clientId,\r\n redirectUri: MSALConfig.app.auth.redirectUri,\r\n postLogoutRedirectUri: MSALConfig.app.auth.postLogoutRedirectUri,\r\n navigateToLoginRequestUrl: MSALConfig.app.auth.navigateToLoginRequestUrl\r\n },\r\n cache: {\r\n cacheLocation: MSALConfig.app.cache.cacheLocation,\r\n storeAuthStateInCookie: MSALConfig.app.cache.storeAuthStateInCookie\r\n },\r\n system: {\r\n allowNativeBroker: false,\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: MSALConfig.app.system.loggerOptions.logLevel,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n }\r\n\r\n if (MSALUtils.isB2C()) {\r\n configuration.auth.authority = MSALB2C.getAuthorityByType(PolicyType.signUpSignIn);\r\n configuration.auth.knownAuthorities = [MSALB2CConfig.authorityDomain];\r\n }\r\n\r\n return new PublicClientApplication(configuration);\r\n}\r\n\r\nfunction loggerCallback(logLevel: LogLevel, message: string, containsPii: boolean) {\r\n if (containsPii) {\r\n return;\r\n }\r\n\r\n switch (logLevel) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalInterceptor, MsalModule, MsalService } from '@azure/msal-angular';\r\n\r\n//App\r\nimport { MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory } from './configs';\r\nimport { AdminGuard, AuthenticationGuard } from './guards';\r\nimport { AuthService } from './services/auth.service';\r\n\r\nconst MSALProviders = [\r\n MsalService,\r\n MsalBroadcastService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n }, \r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n\r\n //App\r\n AuthService,\r\n AuthenticationGuard,\r\n AdminGuard\r\n]\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MsalModule\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n provideHttpClient(),\r\n ...MSALProviders\r\n ]\r\n})\r\nexport class AnatolyIAMModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signin-page',\r\n templateUrl: './signin.page.html',\r\n standalone: false\r\n})\r\nexport class SignInPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.login();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signout-page',\r\n templateUrl: './signout.page.html',\r\n standalone: false\r\n})\r\nexport class SignOutPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.logout();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signup-page',\r\n templateUrl: './signup.page.html',\r\n standalone: false\r\n})\r\nexport class SignUpPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.signUp();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t2 May 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\n//Pages\r\nimport { SignInPage } from \"./pages/signin.page\";\r\nimport { SignOutPage } from \"./pages/signout.page\";\r\nimport { SignUpPage } from \"./pages/signup.page\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"signin\",\r\n component: SignInPage\r\n },\r\n {\r\n path: \"signup\",\r\n component: SignUpPage\r\n },\r\n {\r\n path: \"signout\",\r\n component: SignOutPage\r\n }\r\n];\r\n\r\nexport const IAMRouterModule = RouterModule.forChild(routes);\r\nexport const PAGES = [\r\n SignInPage,\r\n SignUpPage,\r\n SignOutPage\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\n\r\n//Routes\r\nimport { IAMRouterModule, PAGES } from \"./iam-pages.routes\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n\r\n IAMRouterModule\r\n ],\r\n exports: [\r\n ],\r\n declarations: [\r\n ...PAGES\r\n ]\r\n})\r\nexport class AnatolyIAMPagesModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 25 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\n\r\nimport {\r\n faCheckCircle,\r\n faCircleXmark,\r\n faDatabase,\r\n faCopy\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule\r\n ],\r\n exports: [\r\n FontAwesomeModule\r\n ]\r\n})\r\nexport class FaModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(\r\n faCheckCircle,\r\n faCircleXmark,\r\n faDatabase,\r\n faCopy\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//@progress\r\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { DateInputsModule } from \"@progress/kendo-angular-dateinputs\";\r\nimport { DialogsModule } from \"@progress/kendo-angular-dialog\";\r\nimport { DropDownsModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport { FormFieldModule, InputsModule } from \"@progress/kendo-angular-inputs\";\r\nimport { IntlModule } from \"@progress/kendo-angular-intl\";\r\nimport { LabelModule } from \"@progress/kendo-angular-label\";\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { PagerModule } from '@progress/kendo-angular-pager';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { RippleModule } from '@progress/kendo-angular-ripple';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { ScrollViewModule } from \"@progress/kendo-angular-scrollview\";\r\nimport { TooltipsModule } from \"@progress/kendo-angular-tooltip\";\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { UploadsModule } from \"@progress/kendo-angular-upload\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n LayoutModule,\r\n ButtonsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n LabelModule,\r\n ScrollViewModule,\r\n IntlModule,\r\n DateInputsModule,\r\n FormFieldModule,\r\n IconsModule,\r\n DialogsModule,\r\n UploadsModule,\r\n SchedulerModule,\r\n ChartsModule,\r\n GridModule,\r\n LabelModule,\r\n PagerModule,\r\n RippleModule,\r\n PopupModule,\r\n TreeViewModule,\r\n TooltipsModule\r\n ],\r\n exports: [\r\n LayoutModule,\r\n ButtonsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n LabelModule,\r\n ScrollViewModule,\r\n IntlModule,\r\n DateInputsModule,\r\n FormFieldModule,\r\n IconsModule,\r\n DialogsModule,\r\n UploadsModule,\r\n SchedulerModule,\r\n ChartsModule,\r\n GridModule,\r\n LabelModule,\r\n PagerModule,\r\n RippleModule,\r\n PopupModule,\r\n TreeViewModule,\r\n TooltipsModule\r\n ]\r\n})\r\nexport class KendoModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n //Cards\r\n CardComponent,\r\n CardHeaderComponent,\r\n CardBodyComponent,\r\n CardFooterComponent,\r\n\r\n CheckIconComponent,\r\n Copy2ClipboardComponent,\r\n ControlPanelComponent,\r\n DataPagerComponent,\r\n\r\n //Dropdownlists\r\n CountryDropdownlist,\r\n LanguageDropdownlist,\r\n ModerationStatusDropdownlist,\r\n PublishStatusDropdownlist,\r\n TimezoneDropdownlist,\r\n\r\n //EhmlEditor\r\n HtmlEditorComponent,\r\n\r\n //Identity\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n\r\n NodataComponent,\r\n NoMobileSupportComponent,\r\n Message2UserComponent,\r\n\r\n //Spinners\r\n PageSpinnerComponent,\r\n LoadingComponent,\r\n\r\n UrlSlugComponent,\r\n FeatureWillBeReadyComponent,\r\n YouAgreeToOurTermsComponent,\r\n\r\n} from './exports';\r\n\r\nexport const MAIN_COMPONENTS = [\r\n //Cards\r\n CardComponent,\r\n CardHeaderComponent,\r\n CardBodyComponent,\r\n CardFooterComponent,\r\n\r\n CheckIconComponent,\r\n Copy2ClipboardComponent,\r\n ControlPanelComponent,\r\n DataPagerComponent,\r\n\r\n\r\n //Dropdownlists\r\n CountryDropdownlist,\r\n LanguageDropdownlist,\r\n ModerationStatusDropdownlist,\r\n PublishStatusDropdownlist,\r\n TimezoneDropdownlist,\r\n\r\n //EhmlEditor\r\n HtmlEditorComponent,\r\n\r\n //Identity\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n\r\n NodataComponent,\r\n NoMobileSupportComponent,\r\n Message2UserComponent,\r\n \r\n //Spinners\r\n PageSpinnerComponent,\r\n LoadingComponent,\r\n\r\n UrlSlugComponent,\r\n FeatureWillBeReadyComponent,\r\n YouAgreeToOurTermsComponent\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n ContactUsDialog\r\n} from './exports';\r\n\r\nexport const DIALOGS = [\r\n ContactUsDialog\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { \r\n HoveringDirective,\r\n AReplacerDirective,\r\n ImageReplacerDirective,\r\n NativeElementDirective\r\n} from './exports';\r\n\r\nexport const DIRECTIVES = [\r\n HoveringDirective,\r\n AReplacerDirective,\r\n ImageReplacerDirective,\r\n NativeElementDirective\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n AddressComponent,\r\n CompanyComponent,\r\n ContactUsForm\r\n} from './exports';\r\n\r\nexport const FORMS = [\r\n AddressComponent,\r\n CompanyComponent,\r\n ContactUsForm\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe\r\n} from './exports';\r\n\r\nexport const PIPES = [\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent\r\n} from './exports';\r\n\r\nexport const VALIDATION_COMPONENTS = [\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { FERootModule } from \"angular-froala-wysiwyg\";\r\n\r\n//Modules\r\nimport { FaModule } from '../external/fa.module'\r\nimport { KendoModule } from '../external/kendo.module'\r\n\r\n//Components\r\nimport { MAIN_COMPONENTS } from './components';\r\nimport { DIALOGS } from './dialogs'\r\nimport { DIRECTIVES } from './directives';\r\nimport { FORMS} from './forms'\r\nimport { PIPES } from './pipes';\r\nimport { VALIDATION_COMPONENTS } from './validation';\r\n\r\nconst COMPONENTS = [\r\n MAIN_COMPONENTS,\r\n DIALOGS,\r\n DIRECTIVES,\r\n FORMS,\r\n PIPES,\r\n VALIDATION_COMPONENTS\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgxCaptchaModule,\r\n FERootModule,\r\n\r\n //Modules\r\n FaModule,\r\n KendoModule\r\n ],\r\n exports: [\r\n ...COMPONENTS\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n ]\r\n})\r\nexport class AnatolyUIModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n BuyAccessButtonComponent,\r\n SubscribePlanButtonComponent,\r\n OrderSummaryComponent,\r\n PaymentMethodsComponent,\r\n PaymentOptionsComponent,\r\n\r\n //PM\r\n BraintreeDialog,\r\n PaypalButtonComponent,\r\n PaypalSubscribeButtonComponent,\r\n PayPalComponent,\r\n StripeDialog\r\n} from \"./exports\";\r\n\r\nexport const COMPONENTS = [\r\n BuyAccessButtonComponent,\r\n SubscribePlanButtonComponent,\r\n OrderSummaryComponent,\r\n PaymentMethodsComponent,\r\n PaymentOptionsComponent,\r\n\r\n //PM\r\n BraintreeDialog,\r\n PaypalButtonComponent,\r\n PaypalSubscribeButtonComponent,\r\n PayPalComponent,\r\n StripeDialog\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n//Modules\r\nimport { FaModule } from '../external/fa.module'\r\nimport { KendoModule } from '../external/kendo.module'\r\nimport { AnatolyUIModule } from '../ui/ui.module'\r\n\r\n//App\r\nimport { BillingService } from './services/billing.service';\r\nimport { PaymentsService } from './services/payments.service';\r\nimport { PayPalScriptService } from './services/paypal-script.service';\r\nimport { COMPONENTS } from './components';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n\r\n FaModule,\r\n KendoModule,\r\n AnatolyUIModule\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n ],\r\n exports: [\r\n ...COMPONENTS\r\n ],\r\n providers: [\r\n BillingService,\r\n PaymentsService,\r\n PayPalScriptService \r\n ]\r\n})\r\nexport class AnatolyBillingModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Nov 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { map, Observable } from \"rxjs\";\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { resetMsalSettings } from \"../../iam/consts\";\r\nimport { ApiUrl, resetAppCoreSettings } from '../consts/core-settings';\r\nimport { SessionStorageKeys } from \"../consts/storageKeys\";\r\nimport { Stopwatch } from \"../performance/stopwatch\";\r\n\r\ndeclare const g_AppName: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ ApiUrl }/app`;\r\n this.ignoreInterceptors = true;\r\n }\r\n\r\n loadAppInitializerSettings(): Observable<any> {\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppService: loadAppInitializerSettings\");\r\n stopwatch.start();\r\n \r\n return this.get<any>('loadAppInitializerSettings').pipe(map(data => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n if (data) {\r\n let appCoreSettings = JSON.stringify(data.core);\r\n let appMSALSettings = JSON.stringify(data.msal);\r\n\r\n appCoreSettings = appCoreSettings.replace(/--APPNAME--/g, g_AppName);\r\n\r\n sessionStorage.setItem(SessionStorageKeys.appCoreSettings, appCoreSettings);\r\n sessionStorage.setItem(SessionStorageKeys.appMSALSettings, appMSALSettings);\r\n\r\n resetAppCoreSettings();\r\n resetMsalSettings();\r\n }\r\n }));\r\n }\r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { provideHttpClient } from '@angular/common/http';\r\nimport { inject, Injector, NgModule, provideAppInitializer } from '@angular/core';\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, map } from 'rxjs';\r\n\r\n//App\r\nimport { LocalizationService } from './core/localization/localization.service';\r\nimport { AppService } from './core/services/app.service';\r\nimport { AuthService } from \"./iam/services/auth.service\";\r\n\r\n//Modules\r\nimport { AnatolyCoreModule } from './core/core.module';\r\nimport { AnatolyDataModule } from './data/data.module';\r\nimport { AnatolyIAMModule } from './iam/iam.module';\r\nimport { AnatolyUIModule } from './ui/ui.module';\r\n\r\nlet InjectorInstance: Injector;\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AnatolyCoreModule,\r\n AnatolyDataModule,\r\n AnatolyIAMModule,\r\n AnatolyUIModule\r\n ],\r\n exports: [\r\n AnatolyCoreModule,\r\n AnatolyDataModule,\r\n AnatolyIAMModule,\r\n AnatolyUIModule\r\n ],\r\n providers: [\r\n provideHttpClient(),\r\n provideAppInitializer(() => {\r\n const appService = inject(AppService);\r\n return firstValueFrom(appService.loadAppInitializerSettings().pipe(map(() => {\r\n //Localization\r\n const translate = InjectorInstance.get<TranslateService>(TranslateService);\r\n const localizationService = InjectorInstance.get<LocalizationService>(LocalizationService);\r\n const lang = localizationService.configureSettings(translate);\r\n translate.use(lang);\r\n\r\n //IAM\r\n const msalInstance = InjectorInstance.get<MsalService>(MsalService);\r\n const auth = InjectorInstance.get<AuthService>(AuthService);\r\n firstValueFrom(msalInstance.initialize()).then(() => {\r\n auth.init();\r\n });\r\n })));\r\n }),\r\n\r\n AppService\r\n ] \r\n})\r\nexport class AnatolyModule {\r\n constructor(private injector: Injector) {\r\n InjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n * Public API\r\n */\r\n\r\n//Billing\r\nexport * from './lib/billing/exports';\r\n\r\n//Core\r\nexport * from './lib/core/exports';\r\n\r\n//Data\r\nexport * from './lib/data/exports';\r\n\r\n//IAM\r\nexport * from './lib/iam/exports';\r\n\r\n//UI\r\nexport * from './lib/ui/exports';\r\n\r\n//Modules\r\nexport * from './lib/core/core.module';\r\nexport * from './lib/data/data.module';\r\nexport * from './lib/iam/iam.module';\r\nexport * from './lib/iam/iam-pages.module';\r\nexport * from './lib/billing/billing.module';\r\nexport * from './lib/ui/ui.module';\r\n\r\nexport * from './lib/anatoly.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.LocalStorageService","i2.SessionStorageService","i1","uuidv4","map","i2.AuthService","i3.LoggingService","i1.AuthService","i2","i3","i2.LoadingService","i2.AppContextService","i1.StarterService","i1.LocalizationService","_c0","i1.AppContextService","_c1","i1.PaymentsService","i2.PromoCodesApiService","i3.NotificationService","i2.PaymentsApiService","i3.SubscriptionsApiService","i4.NotificationService","i1.BillingService","i2.PaymentsService","i1.ScriptService","i1.PayPalScriptService","i2.CurrenciesApiService","i1.GoServiceBase","i2.Message2UserService","i1.LoadingService","i3.AppContextService","i4.EmailsApiService","i5.NotificationService","InjectorInstance","i4","COMPONENTS","i1.CardComponent","i2.CardHeaderComponent","i3.CardBodyComponent","i4.CardFooterComponent","i5.CheckIconComponent","i6.Copy2ClipboardComponent","i7.ControlPanelComponent","i8.DataPagerComponent","i9.CountryDropdownlist","i10.LanguageDropdownlist","i11.ModerationStatusDropdownlist","i12.PublishStatusDropdownlist","i13.TimezoneDropdownlist","i14.HtmlEditorComponent","i15.SignInButtonComponent","i16.SignUpButtonComponent","i17.SignOutButtonComponent","i18.NodataComponent","i19.NoMobileSupportComponent","i20.Message2UserComponent","i21.PageSpinnerComponent","i22.LoadingComponent","i23.UrlSlugComponent","i24.FeatureWillBeReadyComponent","i25.YouAgreeToOurTermsComponent","i26.ContactUsDialog","i27.HoveringDirective","i28.AReplacerDirective","i29.ImageReplacerDirective","i30.NativeElementDirective","i31.AddressComponent","i32.CompanyComponent","i33.ContactUsForm","i34.SafeHtmlPipe","i35.ReplaceTextPipe","i36.FileSizePipe","i37.FormValidationSummaryComponent","i38.ItemValidationSummaryComponent","i1.BuyAccessButtonComponent","i2.SubscribePlanButtonComponent","i3.OrderSummaryComponent","i4.PaymentMethodsComponent","i5.PaymentOptionsComponent","i6.BraintreeDialog","i7.PaypalButtonComponent","i8.PaypalSubscribeButtonComponent","i9.PayPalComponent","i10.StripeDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;AAaE;AAEK,MAAM,kBAAkB,GAAG;AAChC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE;CAClB;AAEM,MAAM,qBAAqB,GAAG;AACnC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,UAAU;;AAGpB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,QAAQ,EAAE;CACX;;AC7BD;;;;;;;;;;;;;;;;;AAiBE;AAEF;SAGgB,kBAAkB,GAAA;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC;AACvE,IAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC;SAEgB,oBAAoB,GAAA;IAClC,eAAe,GAAG,kBAAkB,EAAE;AAEtC,IAAA,IAAI,SAAS,GAAG,CAAA,EAAG,eAAe,EAAE,SAAS,EAAE;AAE/C,IAAA,UAAU,GAAG,CAAA,EAAG,eAAe,EAAE,OAAO,EAAE;AAC1C,IAAA,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,CAAC;IACvE,UAAU,GAAG,CAAC,SAAS;AACvB,IAAA,UAAU,GAAG,eAAe,EAAE,UAAU;AAC1C;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IACnC,IAAI,MAAM,GAAG,GAAG;IAEhB,IAAI,GAAG,EAAE;AACP,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO;AACjD,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG;AAEvC,QAAA,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;IAC5C;AAEA,IAAA,OAAO,MAAM;AACf;AAEO,IAAI;AACJ,IAAI;AACJ,IAAI,SAAS,GAAY;AACzB,IAAI,UAAU,GAAY,CAAC;AAC3B,IAAI;AAKJ,MAAM,OAAO,GAAG;AAChB,MAAM,MAAM,GAAG;AAEtB,oBAAoB,EAAE;;ACnEtB;;;;;;;;;;;;;AAaE;AAEF;MAYa,cAAc,CAAA;AAOzB,IAAA,WAAA,CAAsB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAFhB,IAAA,CAAA,kBAAkB,GAAY,KAAK;QAG3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI;IACvE;AAEQ,IAAA,eAAe,CAAC,IAAU,EAAA;AAChC,QAAA,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IAC1C;;AAGA,IAAA,GAAG,CAAI,MAAc,EAAE,IAAU,EAAE,YAAa,EAAA;QAC9C,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,MAAM;QACvB;AAEA,QAAA,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAChE,GAAG,CAAC,GAAG,IAAO,GAAG,CAAC,CACnB;IACH;AAEA,IAAA,IAAI,CAAC,MAAc,EAAE,IAAU,EAAE,YAAa,EAAA;QAC5C,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,MAAM;QACvB;QAEA,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;AACrC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACnE;AAEA,IAAA,MAAM,CAAC,MAAc,EAAE,IAAU,EAAE,YAAa,EAAA;QAC9C,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,MAAM;QACvB;AAEA,QAAA,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAClE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACnE;AAEA,IAAA,MAAM,CAAC,MAAc,EAAE,IAAU,EAAE,YAAa,EAAA;QAC9C,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,MAAM;QACvB;AAEA,QAAA,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAClE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAC/D;;AAGA,IAAA,mBAAmB,CAAC,GAAW,EAAA;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5B;;AAGQ,IAAA,aAAa,CAAC,GAAW,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO;AACvC,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO;AAChD,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG;;QAGtC,IAAI,YAAY,EAAE;YAChB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;QAC3D;aACK;AACH,YAAA,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO;QAC7B;QAEA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5B;AAEA,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,eAAe,CAAC,YAAY,GAAG,QAAQ;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;IACjD;AAEA,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,GAAG,QAAQ;QAChD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;IACjD;IAEA,mBAAmB,CAAC,OAAe,EAAE,QAAgB,EAAA;QACnD,MAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;IACjD;+GA7FW,cAAc,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAd,cAAc,EAAA,CAAA;cAD1B;;;AC1BD;;;;;;;;;;;;;;AAcE;MAEW,SAAS,CAAA;AAOpB,IAAA,WAAA,CAAY,IAAI,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW;QAEvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACtC;IAEQ,WAAW,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;IAC3E;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACtB;IAEA,sBAAsB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;QACpC;AAEA,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;IACvC;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI;IAC7C;IAEA,0BAA0B,GAAA;AACxB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,0BAAA,EAA6B,OAAO,CAAA,GAAA,CAAK,CAAC;IACpE;AACD;;AC/DD;;;;;;;;;;;;;;AAcE;AAEF;AAGA,MAAM,iBAAiB,CAAA;AAGrB,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,cAAc,GAAG,YAAY,GAAG,cAAc;IAClG;IAEA,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;QAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAClC;IAEA,SAAS,CAAC,GAAG,EAAE,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClD;AAEA,IAAA,OAAO,CAAC,GAAG,EAAA;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAClC;AAEA,IAAA,SAAS,CAAC,GAAG,EAAA;QACX,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B;AAEA,IAAA,MAAM,CAAC,GAAG,EAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IACtB;AACD;AAGK,MAAO,mBAAoB,SAAQ,iBAAiB,CAAA;AACxD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,cAAc,CAAC;IACvB;oHAHW,mBAAmB,GAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;AAQK,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAC1D,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,gBAAgB,CAAC;IACzB;sHAHW,qBAAqB,GAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,qBAAqB,WAArB,qBAAqB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAArB,qBAAqB,EAAA,CAAA;cADjC;;;AC/DD;;;;;;;;;;;;;AAaE;AAEF;AAcM,MAAO,iBAAkB,SAAQ,cAAc,CAAA;AAgBnD,IAAA,WAAA,CAAsB,IAAgB,EAAY,YAAiC,EAAY,cAAqC,EAAA;QAClI,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAwB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAiC,IAAA,CAAA,cAAc,GAAd,cAAc;QAfrG,IAAA,CAAA,cAAc,GAAG,YAAY;QAC7B,IAAA,CAAA,YAAY,GAAiB,IAAI;;AAGjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;;AAGxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;;AAGhD,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;AACxD,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE;AAI9E,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,MAAM;QAC9B,IAAI,CAAC,YAAY,EAAE;IACrB;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;AAEhB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAC9B,QAAA,CAAC,CAAC;IACJ;;AAOQ,IAAA,WAAW,CAAC,IAAI,EAAA;QACtB,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B;IAEU,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;IAEQ,2BAA2B,GAAA;AACjC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1C;;IAGQ,oBAAoB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC9D;IAEQ,oBAAoB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC9D;IAEQ,oBAAoB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC9D;IAEQ,mBAAmB,GAAA;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC;IAC7D;;IAGQ,kBAAkB,GAAA;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3D;AAEQ,IAAA,kBAAkB,CAAC,KAAU,EAAA;QACnC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IAC3D;AAEQ,IAAA,YAAY,CAAC,IAAI,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B;QACF;;AAGA,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,mEAAmE,CAAC;QAClG,SAAS,CAAC,KAAK,EAAE;AAEjB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;;gBAEb,SAAS,CAAC,IAAI,EAAE;gBAChB,SAAS,CAAC,0BAA0B,EAAE;AAEtC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACzB;AACD,SAAA,CAAC;IACJ;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAEvC,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;QAEA,IAAI,eAAe,GAAG,KAAK;AAC3B,QAAA,IAAI,EAAE,GAAG,OAAO,CAAC,aAAa;QAE9B,IAAI,EAAE,EAAE;AACN,YAAA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACnD,YAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,OAAO,EAAE,EACpG,aAAa,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAElE,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE;gBACtC,eAAe,GAAG,IAAI;YACxB;QACF;aACK;YACH,eAAe,GAAG,IAAI;QACxB;QAEA,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;;IAGA,IAAI,CAAC,OAAO,GAAG,IAAI,EAAA;QACjB,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB;IACH;IAEC,qBAAqB,GAAA;AACnB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAE5B,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,EAAE;;AAEnD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;YAC3D,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACvB;QACF,CAAC,CAAC,CAAC;AAEH,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;YAC3D,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACvB;QACF,CAAC,CAAC,CAAC;AAEH,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;YAC3D,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACvB;QACF,CAAC,CAAC,CAAC;AAEH,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;YACzD,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;QACF,CAAC,CAAC,CAAC;AAEH,QAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;;AAGtE,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,mEAAmE,CAAC;QAClG,SAAS,CAAC,KAAK,EAAE;AAEjB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YAC1B,IAAI,CAAC,2BAA2B,EAAE;;YAGlC,SAAS,CAAC,IAAI,EAAE;YAChB,SAAS,CAAC,0BAA0B,EAAE;QACxC,CAAC,CAAC,CAAC;IACL;IAEA,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI;IACb;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI;IACb;IAEA,aAAa,GAAA;QACX,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;IAGA,iBAAiB,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;IAC1B;IAEA,mBAAmB,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;IAC5B;IAEC,eAAe,GAAA;QACf,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,mBAAmB,EAAE;IAC3B;;AAGC,IAAA,IAAW,OAAO,GAAA;QAChB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;IAClC;IACA,IAAW,OAAO,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IACzB;;AAGD,IAAA,IAAW,IAAI,GAAA;AACd,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;QAC1B,OAAO,OAAO,EAAE,IAAI;IACrB;;;AAIC,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACnE;IACA,IAAW,OAAO,CAAC,KAAU,EAAA;QAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC;IACnE;;AAGA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IACpE;IACA,IAAW,QAAQ,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC;IACpE;IACO,aAAa,GAAA;QAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IAC1D;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC;IACrE;IACA,IAAW,SAAS,CAAC,KAAU,EAAA;QAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;IACrE;IACO,cAAc,GAAA;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC;IAC3D;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC;IACrE;IACA,IAAW,SAAS,CAAC,KAAU,EAAA;QAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;IACrE;IACO,cAAc,GAAA;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC;IAC3D;;AAGA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC;IACrE;IACA,IAAW,SAAS,CAAC,KAAU,EAAA;QAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;IACrE;IACO,cAAc,GAAA;QACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC;IAC3D;;AAGA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IACpE;IACA,IAAW,QAAQ,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC;IACpE;IACO,aAAa,GAAA;QAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IAC1D;kHAvSW,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,mBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,qBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,iBAAiB,WAAjB,iBAAiB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAjB,iBAAiB,EAAA,CAAA;cAD7B;;;AC5BD;;;;;;;;;;;;;AAaE;AAII,SAAU,kBAAkB,CAAC,EAAE,EAAA;IACnC,IAAI,IAAI,GAAG,UAAU;AAErB,IAAA,IAAI,IAAI,IAAI,EAAE,EAAE;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjB,YAAA,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;AAChB,gBAAA,OAAO,GAAG;YACZ;QACF;IACF;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,oBAAoB,CAAC,IAAI,EAAA;IACvC,IAAI,IAAI,GAAG,UAAU;AAErB,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjB,YAAA,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;AACpB,gBAAA,OAAO,GAAG;YACZ;QACF;IACF;AAEA,IAAA,OAAO,IAAI;AACb;SAWgB,aAAa,GAAA;AAC3B,IAAA,IAAI,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC;AAC/C,IAAA,IAAI,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAElC,IAAA,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,OAAO,IAAI;IACb;IAEA,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,IAAI,EAAE,WAAW,CAAC,IAAI;AAEtB,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE;KACnC;AACH;;ACzEA;;;;;;;;;;;;;;AAcE;AAEK,MAAM,eAAe,GAAG;AAC7B,IAAA,MAAM,EAAE;;AAGH,MAAM,WAAW,GAAG;AACzB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE;;AAGF,MAAM,WAAW,GAAG;AACzB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,KAAK,EAAE;;;ACzBT;;;;;;;;;;;;;AAaE;AAEK,MAAM,QAAQ,GAAG;AACtB,IAAA,KAAK,EAAE;AACL,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,cAAc,EAAE,0BAA0B;AAC1C,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,cAAc,EAAE;AACjB;;AAGI,MAAM,eAAe,GAAG;AAC7B,IAAA,OAAO,EAAE;;;AC3BX;;;;;;;;;;;;;;;;;;AAkBE;MAEW,EAAE,CAAA;AACb;;;AAGE;IACK,OAAO,IAAI,CAAC,KAAK,EAAA;QACtB,QACE,KAAK,YAAY,IAAI;AACrB,aAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC;IAE5F;AAEA;;;AAGE;IACK,OAAO,SAAS,CAAC,IAAI,EAAA;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC9C,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B;IAEO,OAAO,WAAW,CAAC,IAAI,EAAA;AAC5B,QAAA,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B;IAEO,OAAO,iBAAiB,CAAC,GAAG,EAAA;AACjC,QAAA,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;IAC7C;IAEO,OAAO,MAAM,CAAC,KAAK,EAAA;QACxB,QAAQ,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM;IAC9D;IAEO,OAAO,WAAW,CAAC,KAAK,EAAA;AAC7B,QAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACjD;IAEO,OAAO,cAAc,CAAC,KAAK,EAAA;AAChC,QAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD;IAEO,OAAO,MAAM,CAAC,KAAK,EAAA;AACxB,QAAA,QAAQ,OAAO,KAAK,KAAK,QAAQ;IACnC;IAEO,OAAO,OAAO,CAAC,KAAK,EAAA;AACzB,QAAA,QAAQ,OAAO,KAAK,KAAK,SAAS;IACpC;IAEO,OAAO,KAAK,CAAC,KAAK,EAAA;AACvB,QAAA,QAAQ,KAAK,YAAY,KAAK;IAChC;IAEO,OAAO,UAAU,CAAC,KAAK,EAAA;AAC5B,QAAA,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAChD;IAEO,OAAO,aAAa,CAAC,KAAK,EAAA;AAC/B,QAAA,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C;IAEO,OAAO,SAAS,CAAC,KAAK,EAAA;AAC3B,QAAA,QAAQ,OAAO,KAAK,KAAK,WAAW;IACtC;AACD;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBE;;ACjHF;;;;;;;;;;;;;AAaE;MAIW,OAAO,CAAA;IACV,OAAO,GAAG,CAAC,MAAM,EAAA;AACvB,QAAA,IAAI,MAAM,GAAG,EAAE,EAAE;YACf,OAAO,GAAG,GAAG,MAAM;QACrB;AACA,QAAA,OAAO,MAAM;IACf;AAEO,IAAA,OAAO,YAAY,CAAC,WAAW,EAAE,KAAK,EAAA;QAC3C,KAAK,IAAI,CAAC,IAAI,WAAW;AAAE,YAAA,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC;AAEhE,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,WAAW,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,EAAE,WAAY,EAAA;AACpE,QAAA,MAAM,eAAe,GAAG,CAAC,KAAK,KAAI;YAChC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACxB,gBAAA,OAAO,KAAK;YACd;YAEA,IAAI,WAAW,EAAE;AACf,gBAAA,KAAK,IAAI,CAAC,IAAI,WAAW,EAAE;AACzB,oBAAA,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK;AACzB,wBAAA,OAAO,KAAK;gBAChB;YACF;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;QAED,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW;iBAChB,MAAM,CAAC,eAAe;AACtB,iBAAA,GAAG,CAAC,GAAG,KAAK;AACX,gBAAA,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;AACpB,gBAAA,IAAI,EAAE,WAAW,CAAC,GAAG;AACtB,aAAA,CAAC,CAAC;QAClB;aACK;AACH,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW;iBAChB,MAAM,CAAC,eAAe;AACtB,iBAAA,GAAG,CAAC,GAAG,KAAK;AACX,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,IAAI,EAAE,WAAW,CAAC,GAAG;AACtB,aAAA,CAAC,CAAC;QAClB;IACF;AAEO,IAAA,OAAO,aAAa,CAAC,GAAW,EAAE,YAAoB,GAAG,EAAA;QAC9D,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;QACxD;AAEA,QAAA,OAAO,EAAE;IACX;AAEO,IAAA,OAAO,gBAAgB,CAAC,GAAW,EAAE,YAAoB,GAAG,EAAA;QACjE,IAAI,GAAG,EAAE;YACP,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtF;AAEA,QAAA,OAAO,EAAE;IACX;IAEO,OAAO,cAAc,CAAC,IAAQ,EAAA;QACnC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,IAAG,OAAO,EACV;AACE,YAAA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,CAAA,CAAA,EAAI,OAAO,CAAC,UAAU,EAAE;QAClF;IACF;IAEO,OAAO,cAAc,CAAC,GAAO,EAAA;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,OAAO,CAAA,EAAG,OAAO,CAAC,MAAM,CAAA,CAAA,EAAI,OAAO,CAAC,OAAO,CAAA,CAAA,EAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,aAAa,CAAA,CAAA,EAAI,OAAO,CAAC,OAAO,CAAA,CAAA,EAAI,OAAO,CAAC,OAAO,CAAA,CAAE;IAC9H;IAEO,OAAO,eAAe,CAAC,KAAK,EAAA;QACjC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC;AACpB,gBAAA,OAAO,KAAK;YACd;AAEA,YAAA,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;gBACnB,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;AAChC,oBAAA,KAAK,MAAM;AACX,oBAAA,KAAK,KAAK;AACV,oBAAA,KAAK,GAAG;AACN,wBAAA,OAAO,IAAI;AAEb,oBAAA,KAAK,OAAO;AACZ,oBAAA,KAAK,IAAI;AACT,oBAAA,KAAK,GAAG;AACR,oBAAA,KAAK,IAAI;AACP,wBAAA,OAAO,KAAK;;YAElB;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AACD;;ACtHD;;;;;;;;;;;;;;AAcE;AAEF;;;AAGG;AACG,SAAU,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAA;AAC3C,IAAA,IAAI,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IACrC,OAAO,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5E;AAEA,IAAI,SAAS,GAAG;AACd,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,MAAM,EAAE,CAAC;CACV;AAED,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAA;AAC5B,IAAA,IAAI;QACF,IAAI,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;QACvC,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEtC,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;AACZ,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAChD;QACF;AACA,QAAA,OAAO,MAAM;IACf;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC;QACd;AACA,QAAA,MAAM,KAAK;IACb;AACF;AAEA,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAA;AAC5B,IAAA,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IACvD,IAAI,MAAM,GAAG,yCAAyC,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAGtE,IAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3E;AAEA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,EAAE;AACjB,SAAS,iBAAiB,CAAC,QAAQ,EAAA;AACjC,IAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;;QAEvB,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACvD,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAE/C,QAAA,IAAI,kBAAkB,GACtB,iBAAiB,KAAK,sBAAsB;YAC5C,iBAAiB,KAAK,qBAAqB;AAE3C,QAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG;AACnB,cAAE,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC/B,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,MAAM,EAAE,SAAS;aAClB;AACH,cAAE,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC/B,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CAAC;IACR;AAEA,IAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B;;AC5GA;;;;;;;;;;;;;;AAcE;SAIc,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAA;AAC7D,IAAA,IAAI,KAAK;AACT,IAAA,IAAI,cAAc;;IAGlB,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,CAAC;IACV;;IAGA,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;IAC/C,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,IAAI,KAAK;;IAGT,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;IAChD,IAAI,KAAK,EAAE;QACT,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,OAAO,EAAE,KAAK,GAAG,oBAAoB,CAAC;IACxC;;IAGA,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;IAClD,IAAI,KAAK,EAAE;QACT,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACrC,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,oBAAoB,GAAG,OAAO,GAAG,sBAAsB;AAC1F,QAAA,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,cAAc,GAAG,cAAc;IACrD;;AAGA,IAAA,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE;QAC7C,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACnC,QAAA,IAAI,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAChD,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,QAAA,IAAI,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC;QAE9E,OAAO,CAAC,WAAW;IACrB;AAEA,IAAA,OAAO,GAAG;AACZ;AAGA,IAAI,oBAAoB,GAAG,OAAO;AAClC,IAAI,sBAAsB,GAAG,KAAK;AAElC,IAAI,QAAQ,GAAG;AACb,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,YAAY,EAAE,wBAAwB;CACvC;AAED,SAAS,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAA;AACzE,IAAA,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;IAC5C,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;AACtD,IAAA,OAAO,OAAO;AAChB;AAEA,SAAS,SAAS,CAAC,IAAI,EAAA;AACrB,IAAA,OAAO,UAAU,CACf,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,EACd,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,eAAe,EAAE,CACvB;AACH;AAEA,SAAS,UAAU,CAAC,IAAI,EAAE,cAAc,EAAA;IACtC,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC;;AAGjD,IAAA,IAAI,KAAK,GAAG,UAAU,CACpB,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EACb,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EACd,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,CAAC,CAAC,CAAC,EACT,CAAC,CACF,CAAC,OAAO,EAAE;AAEX,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,IAAA,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;AACtB,IAAA,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IACtC,OAAO,KAAK,GAAG,IAAI;AACrB;AAEA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAA;AAC7C,IAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;;AAG5B,IAAA,IAAI,QAAQ,GAAG,OAAO,GAAG,MAAM;;AAG/B,IAAA,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;;AAGvD,IAAA,IAAI,MAAM,KAAK,EAAE,EAAE;AACjB,QAAA,OAAO,MAAM;IACf;;AAGA,IAAA,QAAQ,IAAI,EAAE,GAAG,MAAM;;AAGvB,IAAA,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;AACvD,IAAA,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,QAAA,OAAO,EAAE;IACX;;IAGA,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AACzB;AAEA,SAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,EAAA;IAC7C,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;AAC5F;AAEA,IAAI,sBAAsB,GAAG,EAAE;AAC/B,SAAS,yBAAyB,CAAC,cAAc,EAAA;IAC/C,IAAI,sBAAsB,CAAC,cAAc,CAAC;AAAE,QAAA,OAAO,IAAI;AACvD,IAAA,IAAI;AACF,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAChE,QAAA,sBAAsB,CAAC,cAAc,CAAC,GAAG,IAAI;AAC7C,QAAA,OAAO,IAAI;IACb;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK;IACd;AACF;;ACrKA;;;;;;;;;;;;;;;;;;;;;AAqBE;MAKW,WAAW,CAAA;IACf,OAAO,MAAM,CAAC,IAA4B,EAAA;AAC/C,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAEnD,QAAA,IAAI,IAAI,YAAY,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,eAAe,CAAC,EAAE;AACpF,YAAA,OAAO,IAAI;QACb;AACK,aAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,iBAAiB;YACxD,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,iBAAiB,EAAE;AACjE,YAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;QACvB;aACK;AACH,YAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC;QACtB;IACF;AAEO,IAAA,OAAO,eAAe,CAAC,IAA4B,EAAE,YAAoB,qBAAqB,EAAA;QACnG,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,QAAA,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;IACtC;IAEO,OAAO,UAAU,CAAC,SAAS,EAAA;AAChC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC/B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACzC;YAEA,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAChC,gBAAA,SAAS,GAAG,SAAS,GAAG,GAAG;YAC7B;QACF;QAEA,IAAI,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;QAEtE,IAAI,eAAe,EAAE;YACnB,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;YACxC,IAAI,kBAAkB,GAAG,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;AACrE,YAAA,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC;AACrD,YAAA,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAE5B,YAAA,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YAC3E,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;AAElG,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;IAC5B;AAyBD;;AClGD;;;;;;;;;;;;;;;;;;AAkBE;MAKW,YAAY,CAAA;AAChB,IAAA,OAAO,WAAW,CAAC,CAAS,EAAE,OAA6B,EAAA;QAChE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,GAAG;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,gBAAgB,EAAE;aACnB;QACH;QAEA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;IACrC;AACD;;ACnCD;;;;;;;;;;;;;AAaE;IAEU;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;IAKhB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;AACjB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAMlB;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;AACf,IAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;AACjB,IAAA,WAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AACpB,CAAC,EALW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;IAOX;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,aAAA,CAAA,aAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AACd,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACf,CAAC,EATW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;IAWb;AAAZ,CAAA,UAAY,YAAY,EAAA;;AAEtB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACd,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;IAMZ;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAE9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACZ,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;AClDhC;;;;;;;;;;;;;AAaE;IAEU;AAAZ,CAAA,UAAY,IAAI,EAAA;AACd,IAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,IAAA,CAAA,IAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AAChB,CAAC,EAJW,IAAI,KAAJ,IAAI,GAAA,EAAA,CAAA,CAAA;IAMJ;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;IAMZ;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAiB;AACjB,IAAA,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;AACjB,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAiB;AACjB,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAiB;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;IAOb;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAiB;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAiB;IACjB,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;AClC5B;;;;;;;;;;;;;;AAcE;MAIW,IAAI,CAAA;AAGf,IAAA,WAAA,GAAA;QAFQ,IAAA,CAAA,IAAI,GAAmB,EAAE;IAElB;IAEf,GAAG,CAAC,GAAG,aAA6B,EAAA;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAC7C;IAEA,IAAI,IAAI,CAAC,YAA0B,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAC9B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;IAChB;AACD;;ACnCD;;;;;;;;;;;;;AAaE;AAEF;MAOa,WAAW,CAAA;AAItB,IAAA,WAAA,GAAA;;AAFU,QAAA,IAAA,CAAA,IAAI,GAAS,IAAI,IAAI,EAAE;IAGjC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;IACzB;4GATW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,WAAW,WAAX,WAAW,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAX,WAAW,EAAA,CAAA;cADvB;;;ACrBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,aAAc,SAAQ,WAAW,CAAA;;AAQ5C,IAAA,IAAc,UAAU,GAAA;QACtB,IAAI,CAAC,iBAAiB,EAAE;QACxB,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,WAAA,CAAsB,KAAqB,EAAY,MAAc,EAAA;AACnE,QAAA,KAAK,EAAE;QADa,IAAA,CAAA,KAAK,GAAL,KAAK;QAA4B,IAAA,CAAA,MAAM,GAAN,MAAM;QAZrD,IAAA,CAAA,WAAW,GAAG,KAAK;;QAIjB,IAAA,CAAA,SAAS,GAAG,KAAK;IAU3B;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;IACF;AAEA,IAAA,QAAQ,CAAC,QAAe,EAAE,MAAyB,EAAE,SAAkB,KAAK,EAAA;AAC1E,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAK;YAC/C,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,EAAE;YACvB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;IAC7B;IAEA,cAAc,GAAA;AACX,QAAA,MAAc,CAAC,QAAQ,CAAC,MAAM,EAAE;IACnC;IAEA,IAAI,CAAC,SAAkB,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;IACnD;IAEA,SAAS,CAAC,SAAkB,KAAK,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC;IAClE;;IAGA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAC;IAC5D;;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;IACzD;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACvD;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACvD;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACvD;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACvD;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACvD;8GAlFW,aAAa,EAAA,EAAA,CAAA,QAAA,CAAAC,IAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,aAAa,WAAb,aAAa,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAb,aAAa,EAAA,CAAA;cADzB;;;ACxBD;;;;;;;;;;;;;;AAcE;MAIW,IAAI,CAAA;AACR,IAAA,OAAO,OAAO,GAAA;QACnB,OAAOC,EAAM,EAAE;IACjB;AACD;;ACtBD;;;;;;;;;;;;;;;;;AAiBE;AAEK,MAAM,eAAe,GAAG;;AAE7B,IAAA,UAAU,EAAE;;CAGb;MAEY,WAAW,CAAA;AACf,IAAA,OAAO,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAA;QAClE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC;QACF;QAEA,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,CAAA,gCAAA,EAAmC,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAE,CAAC;IACtF;IAEO,OAAO,gBAAgB,CAAC,QAAgB,EAAA;QAC7C,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAA,oCAAA,EAAuC,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAE,CAAC;AAExF,QAAA,OAAO,UAAU;IACnB;IAEO,OAAO,kBAAkB,CAAC,QAAgB,EAAA;AAC/C,QAAA,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC;AACnD,QAAA,OAAO,CAAC,GAAG,CAAC,gDAAgD,QAAQ,CAAA,CAAE,CAAC;IACzE;AACD;;AC/CD;;;;;;;;;;;;;;;;;AAiBE;MAIW,YAAY,CAAA;AAChB,IAAA,OAAO,MAAM,CAAC,MAAM,EAAE,QAAgB,EAAA;QAC3C,IAAI,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACvD,IAAI,UAAU,EAAE;AACd,YAAA,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACxC,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/B;IACF;AACD;;AC7BD;;;;;;;;;;;;;;;;AAgBE;AAEF;SAGgB,eAAe,GAAA;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC;AACvE,IAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC;SAEgB,iBAAiB,GAAA;AAC/B,IAAA,IAAI,YAAY,GAAG,eAAe,EAAE;IAEpC,UAAU,GAAG,YAAY;AACzB,IAAA,aAAa,GAAG,UAAU,EAAE,GAAG;AAC/B,IAAA,aAAa,GAAI,UAAU,EAAE,GAAG;AAClC;AAEO,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,aAAa;;ACpCxB;;;;;;;;;;;;;;;;;AAiBE;AAEF;MAMa,SAAS,CAAA;AACb,IAAA,OAAO,KAAK,GAAA;QACjB,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,KAAK;IACd;;AAGO,IAAA,OAAO,iBAAiB,GAAA;AAC7B,QAAA,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,oBAAoB,GAAG,UAAU;IACpG;AAEO,IAAA,OAAO,MAAM,GAAA;AAClB,QAAA,IAAI,GAAG,GAAG,IAAI,GAAG,EAAyB;QAE1C,IAAI,aAAa,EAAE;YACjB,IAAI,GAAG,GAAG,aAAa;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;QAC9B;AAEA,QAAA,OAAO,GAAG;IACZ;AAEO,IAAA,OAAO,YAAY,GAAA;QACxB,IAAI,MAAM,GAAG,EAAE;QAEf,IAAI,aAAa,EAAE;YACjB,IAAI,GAAG,GAAG,aAAa;AACvB,YAAA,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;AAC9B,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AACD;;AC9DD;;;;;;;;;;;;;;;;;AAiBE;AAEF;MAGa,OAAO,CAAA;IACX,OAAO,kBAAkB,CAAC,IAAI,EAAA;QACnC,IAAI,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;QAC1C,OAAO,MAAM,EAAE,SAAS;IAC1B;IAEO,OAAO,eAAe,CAAC,IAAI,EAAA;AAChC,QAAA,IAAI,QAAQ,GAAG,aAAa,EAAE,QAAQ;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAExB,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;AACvB,gBAAA,OAAO,MAAM;YACf;QACF;AAEA,QAAA,OAAO,IAAI;IACb;AACD;;AC5CD;;;;;;;;;;;;;;;;;AAiBE;AAEK,MAAM,UAAU,GAAG;AACxB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,aAAa,EAAE;CAChB;;ACxBD;;;;;;;;;;;;;;;;;AAiBE;;AC2BI,MAAO,WAAY,SAAQ,cAAc,CAAA;IAS7C,WAAA,CACY,IAAgB,EAClB,MAAc,EACd,UAA6B,EAG7B,eAAuC,EACvC,WAAwB,EACxB,oBAA0C,EAAA;QAClD,KAAK,CAAC,IAAI,CAAC;QARD,IAAA,CAAA,IAAI,GAAJ,IAAI;QACN,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,UAAU,GAAV,UAAU;QAGV,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,oBAAoB,GAApB,oBAAoB;AAhBb,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;IAkBtD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;IAEQ,WAAW,GAAA;IACnB;AAEA;;;;;;;;;;;;AAYE;IACM,QAAQ,GAAA;;QAEd,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;QACxE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC;AAE5E,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC;AACpD,YAAA,IAAI,EAAE,CAAC,MAA4B,KAAI;AACrC,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,kCAAA,CAAoC,CAAC;YACnD,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,EAAE;QACtD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CACvC,MAAM,CAAC,CAAC,GAAiB,KACvB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,cAAc;;AAG1C,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,aAAa;AACzC,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,eAAe;;AAG3C,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,aAAa;AACzC,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,qBAAqB;;AAGjD,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,cAAc;;AAG1C,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,aAAa;AACzC,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,qBAAqB;AACjD,YAAA,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,kBAAkB,CAC/C,EACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AAEhC,aAAA,SAAS,CAAC,CAAC,GAAiB,KAAI;AAC/B,YAAA,QAAQ,GAAG,CAAC,SAAS;gBACnB,KAAK,SAAS,CAAC,cAAc;AAC3B,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,8BAAA,CAAgC,CAAC;oBAC7C;gBAEF,KAAK,SAAS,CAAC,aAAa;gBAC5B,KAAK,SAAS,CAAC,eAAe;AAC5B,oBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,wBAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG;oBAChC;oBACA;gBAEF,KAAK,SAAS,CAAC,aAAa;gBAC5B,KAAK,SAAS,CAAC,qBAAqB;AAClC,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;wBACtB;oBACF;;;AAIA,oBAAA,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9D,wBAAA,IAAI,wBAAwB,GAAoC;AAC5D,4BAAA,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS;AAC7C,4BAAA,MAAM,EAAE,EAAE;yBACb;AAED,wBAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;oBACtC;oBAAC;oBACD;gBAEF,KAAK,SAAS,CAAC,cAAc;oBAC3B;gBAEF,KAAK,SAAS,CAAC,aAAa;gBAC5B,KAAK,SAAS,CAAC,qBAAqB;gBACpC,KAAK,SAAS,CAAC,kBAAkB;AAC/B,oBAAA,IAAI,OAAO,GAAG,GAAG,CAAC,OAA+B;oBACjD,IAAI,CAAC,OAAO,EAAE;wBACZ;oBACF;AAEA,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;wBACtB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC3D;oBACF;;AAGA,oBAAA,IAAI,KAAK,GAAG,OAAO,CAAC,aAA0C;AAE9D;;;;AAIG;oBACH,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;wBAC5F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC7D;AAEA;;;;AAIG;oBACH,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;wBAChF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC7D;AAEA;;;;;;;AAOG;oBACH,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;wBACzF,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAoB,KAChF,OAAO,CAAC,aAAa,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG;AACxC,4BAAA,OAAO,CAAC,aAAa,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG;6BACtC,OAAO,CAAC,aAA2C,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI;AACxF,gCAAA,OAAO,CAAC,aAA2C,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAC9F;AAET,wBAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;oBACzC;AAEA;;;;;;;;;AASG;oBACH,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;wBAC9F,IAAI,CAAC,mBAAmB,EAAE;oBAC5B;oBAEA;;AAGJ,YAAA,OAAO,GAAG;AACZ,QAAA,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CACtC,MAAM,CAAC,CAAC,MAAyB,KAC/B,MAAM,KAAK,iBAAiB,CAAC,OAAO;AACpC,YAAA,MAAM,KAAK,iBAAiB,CAAC,IAAI,CAClC,EACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AAEhC,aAAA,SAAS,CAAC,CAAC,MAAyB,KAAI;YACvC,QAAQ,MAAM;AACZ;;AAEG;gBACH,KAAK,iBAAiB,CAAC,OAAO;AAC5B,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,mCAAA,CAAqC,CAAC;oBAClD;AAEF;;AAEE;gBACF,KAAK,iBAAiB,CAAC,IAAI;AACzB,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,gCAAA,CAAkC,CAAC;oBAE/C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,yDAAyD,CAAC;oBAE3F,IAAI,CAAC,wBAAwB,EAAE;AAC/B,oBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;oBAC/B;;AAEN,QAAA,CAAC,CAAC;IACN;IAEQ,wBAAwB,GAAA;QAC9B,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE;QAEzD,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzD;IACF;AAEQ,IAAA,OAAO,CAAC,KAAe,EAAA;AAC7B,QAAA,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,KAAK,eAAe,CAAC,KAAK;QACvE;AAEA,QAAA,OAAO,KAAK;IACd;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,MAAM,EAAE,SAAS,CAAC,YAAY;SAC/B;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CACrDC,KAAG,CAAC,QAAQ,IAAG;gBACb,OAAO,QAAQ,GAAG,QAAQ,CAAC,WAAW,GAAG,IAAI;YAC/C,CAAC,CAAC,CACH;QACH;aACK;AACH,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CACxDA,KAAG,CAAC,MAAK;AACP,gBAAA,OAAO,IAAI;YACb,CAAC,CAAC,CACH;QACH;IACF;;IAGA,IAAI,GAAA;QACF,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,wBAAwB,EAAE;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE;IACrD;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AAC/B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE3C,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC,QAAQ;QAC/B;QAEA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;IAC/B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AAC/B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE3C,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,EAAE;QACzF;QAEA,OAAO,IAAI,GAAG,IAAI,CAAC,qBAAqB,GAAG,EAAE;IAC/C;IAEA,cAAc,GAAA;;AAEZ;;AAEE;AACF,QAAA,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE;YAC7B,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;YACvC,IAAI,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;YAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;AACvC,YAAA,IAAI,gBAAkC;YAEtC,IAAI,KAAK,EAAE;AACT,gBAAA,gBAAgB,GAAG;AACjB,oBAAA,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE;AAChC,oBAAA,SAAS,EAAE;iBACZ;YACH;iBACK,IAAI,GAAG,EAAE;AACZ,gBAAA,gBAAgB,GAAG;AACjB,oBAAA,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE;AAChC,oBAAA,GAAG,EAAE;iBACN;YACH;;AAGA,YAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;YAC5C,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;YACvC;AAEA,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACtDA,KAAG,CAAC,QAAQ,IAAG;gBACb,OAAO,CAAC,QAAQ,EAAE;;AAGlB,gBAAA,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC;gBAE5D,OAAO,QAAQ,CAAC,WAAW;AAC7B,YAAA,CAAC,CAAC,EACF,UAAU,CAAC,KAAK,IAAG;gBACjB,OAAO,CAAC,QAAQ,EAAE;;AAGlB,gBAAA,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC;AAChE,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAEpB,gBAAA,IAAI,KAAK,YAAY,4BAA4B,EAAE;AACjD,oBAAA,OAAO,IAAI,CAAC,YAAY,EAAE;gBAC5B;AAEA,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,CACH;QACH;;AAGA,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAC3C,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,aAAa,GAAkB;AACjC,gBAAA,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE;AAChC,gBAAA,OAAO,EAAE;aACV;AAED,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,IAAI,CAC5DA,KAAG,CAAC,QAAQ,IAAG;gBACb,OAAO,QAAQ,CAAC,WAAW;AAC7B,YAAA,CAAC,CAAC,EACF,UAAU,CAAC,KAAK,IAAG;AACjB,gBAAA,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC;AAE7D,gBAAA,IAAI,KAAK,YAAY,4BAA4B,EAAE;AACjD,oBAAA,OAAO,IAAI,CAAC,YAAY,EAAE;gBAC5B;AAEA,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,CACH;QACH;AAEA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;AAEA,IAAA,mBAAmB,CAAC,OAAQ,EAAA;AAC1B,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACrB,YAAA,IAAI,uBAAuB,GAAoC;AAC7D,gBAAA,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAC5C,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,MAAM,EAAE,WAAW,CAAC,KAAK;AACzB,gBAAA,OAAO,EAAE;aACV;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACrC;aACK;QACL;IACF;IAEA,KAAK,CAAC,eAAgD,EAAE,KAAe,EAAA;AACrE,QAAA,IAAI,cAAc,GAAQ,IAAI,CAAC,eAAe,CAAC,WAAW;QAC1D,IAAI,WAAW,GAAG,IAAI;QAEtB,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,IAAI,uBAAuB,GAAoC;AAC7D,gBAAA,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAC5C,gBAAA,MAAM,EAAE;aACT;YAED,eAAe,GAAG,uBAAuB;QAC3C;QAEA,IAAI,cAAc,EAAE;AAClB,YAAA,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClF;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,eAAe,EAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,QAA8B,KAAI;oBAC/H,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,gBAAA,CAAC,CAAC;YACJ;iBACK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,QAA8B,KAAI;oBACxF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,gBAAA,CAAC,CAAC;YACJ;QACF;aACK;YACH,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,eAAe,EAAqB,CAAC;YAC3F;iBACK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC;YACjD;QACF;IACF;AAEA,IAAA,MAAM,CAAC,KAAe,EAAA;AACpB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE3C,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AACpG,gBAAA,CAAC,CAAC;YACJ;iBACK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5E,gBAAA,CAAC,CAAC;YACJ;QACF;aACK;YACH,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YAC7D;iBACK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;YACnC;QACF;IACF;;IAGA,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,IAAI;IAC7D;;IAGA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,KAAK;IACd;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW;IACrE;;IAGA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,iBAAiB,GAAoC;AACvD,YAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;AACtC,YAAA,MAAM,EAAE;SACT;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC/B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,sBAAsB,GAAoC;AAC5D,YAAA,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS;AAC3C,YAAA,MAAM,EAAE;SACT;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACpC;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,wBAAwB,GAAoC;AAC9D,YAAA,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS;AAC7C,YAAA,MAAM,EAAE;SACT;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;IACtC;AA7fW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,mBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,KAAA,iBAAA,IAAA,WAAW,oGAcZ,iBAAiB,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAdhB,WAAW,EAAA,OAAA,EAAX,WAAW,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA;;iFAEP,WAAW,EAAA,CAAA;cAHvB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;sBAeI,MAAM;uBAAC,iBAAiB;;;AC1D7B;;;;;;;;;;;;;;AAcE;AAEF;MAMa,cAAc,CAAA;AACzB,IAAA,WAAA,GAAA;IACA;AAEA,IAAA,IAAI,CAAC,IAAI,EAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB;AAEA,IAAA,IAAI,CAAC,IAAI,EAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB;AAEA,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IACtB;+GAdW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;;iFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA;;;ACrBD;;;;;;;;;;;;;AAaE;AAaI,MAAO,iBAAkB,SAAQ,aAAa,CAAA;AAClD,IAAA,WAAA,CAAsB,KAAqB,EAAY,MAAc,EAAY,WAAwB,EAAY,MAAsB,EAAA;AACzI,QAAA,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;QADA,IAAA,CAAA,KAAK,GAAL,KAAK;QAA4B,IAAA,CAAA,MAAM,GAAN,MAAM;QAAoB,IAAA,CAAA,WAAW,GAAX,WAAW;QAAyB,IAAA,CAAA,MAAM,GAAN,MAAM;IAE3H;IAEQ,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAA;QACxD,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,EAAE;QACV;;QAGA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,GAAG,CAAC;QAEvD,IAAI,QAAQ,EAAE;;YAGZ,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACnC,YAAA,CAAC,CAAC,MAAM,GAAG,QAAQ;AACnB,YAAA,CAAC,CAAC,IAAI,GAAG,GAAG;YACZ,CAAC,CAAC,KAAK,EAAE;QACX;aACK;AACH,YAAA,QAAQ,CAAC,IAAI,GAAG,GAAG;QACrB;IACF;;AAGA,IAAA,YAAY,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAA;AAClF,QAAA,IAAI,WAAW;QAEf,IAAI,UAAU,EAAE;AACd,YAAA,WAAW,GAAG,kBAAkB,CAAC,CAAC,UAAU,CAAC;QAC/C;aACK;AACH,YAAA,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC;QACrC;QAEA,IAAI,WAAW,EAAE;YACf,IAAI,GAAG,GAAW,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI;AAExD,YAAA,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,MAAM;YAC7D;iBACK,IAAI,IAAI,EAAE;AACb,gBAAA,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI;YAC9C;iBACK,IAAI,MAAM,EAAE;AACf,gBAAA,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,MAAM;YACnF;AAEA,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAAE;gBAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;AACjD,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;gBAExB,IAAI,OAAO,EAAE;oBACX,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,kBAAkB,GAAG,CAAA,OAAA,EAAU,OAAO,CAAC,QAAQ,EAAE;gBACjF;gBAEA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC3C;iBACK;gBACH,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC3C;QACF;IACF;kHAhEW,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAAF,IAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAG,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,iBAAiB,WAAjB,iBAAiB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAjB,iBAAiB,EAAA,CAAA;cAD7B;;;ACzBD;;;;;;;;;;;;;;;;;AAiBE;AAEF;MASa,UAAU,CAAA;AACrB,IAAA,WAAA,CAAoB,IAAiB,EAAA;QAAjB,IAAA,CAAA,IAAI,GAAJ,IAAI;IACxB;IAEQ,WAAW,GAAA;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC;IAEA,WAAW,CAAC,IAA4B,EAAE,KAA0B,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;IAEA,gBAAgB,CAAC,KAA6B,EAAE,KAA0B,EAAA;AACxE,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;QAC3B;AAEA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;2GAlBW,UAAU,EAAA,EAAA,CAAA,QAAA,CAAAC,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,UAAU,WAAV,UAAU,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAV,UAAU,EAAA,CAAA;cADtB;;;ACCK,MAAO,mBAAoB,SAAQ,SAAS,CAAA;IAGhD,WAAA,CAEE,eAAuC,EACvC,oBAA0C,EAC1C,WAAwB,EACxB,QAAkB,EAClB,MAAc,EAAA;QAEd,KAAK,CAAC,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;IACzC;AAEQ,IAAA,kBAAkB,CAAC,KAA6B,EAAA;AACtD,QAAA,IAAI,eAAe,GAAI,KAAK,CAAC,IAAY,CAAC,eAAe;QACzD,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,eAAe,IAAI,eAAe,CAAC,QAAQ;IACrF;IAEA,WAAW,CAAC,KAA6B,EAAE,KAA0B,EAAA;AACnE,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;IACxC;AAvBW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,2BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,KAAA,iBAAA,IAAA,mBAAmB,cAIpB,iBAAiB,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAL,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAM,IAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAJhB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;sBAKI,MAAM;uBAAC,iBAAiB;;;AChC7B;;;;;;;;;;;;;;;;AAgBE;;AChBF;;;;;;;;;;;;;;AAcE;AAEF;;AChBA;;;;;;;;;;;;;;AAcE;AAEF;AAOM,MAAO,cAAe,SAAQ,eAAwB,CAAA;AAM1D,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,KAAK,CAAC;QANN,IAAA,CAAA,OAAO,GAAG,CAAC;;QAGZ,IAAA,CAAA,SAAS,GAAG,KAAK;IAIxB;AAEQ,IAAA,UAAU,CAAC,EAAY,EAAE,OAAO,GAAG,GAAG,EAAA;QAC5C,IAAI,IAAI,GAAG,IAAI;QACf,UAAU,CAAC,MAAK;AACb,YAAA,IAAI,EAAE;gBAAE,EAAE,CAAC,IAAI,CAAC;QACnB,CAAC,EACD,OAAO,CAAC;IACV;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,OAAO,EAAE;AAEd,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;YACrB;QACF;QAEA,IAAI,CAAC,OAAO,EAAE;AAEd,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;AACrB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,CAAC,UAAkB,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACxB,CAAC,EACD,OAAO,CAAC;IACV;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClB;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC;IAClB;+GAzDW,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;;iFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACtBD;;;;;;;;;;;;;;;AAeE;AAEF;MAca,sBAAsB,CAAA;AAqBjC,IAAA,WAAA,CACY,WAAwB,EACxB,cAA8B,EAC9B,MAAsB,EAAA;QAFtB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,MAAM,GAAN,MAAM;AAvBR,QAAA,IAAA,CAAA,qBAAqB,GAAG;YAChC,aAAa;SACd;AAES,QAAA,IAAA,CAAA,4BAA4B,GAAG;YACvC,QAAQ;YACR,MAAM;YACN,OAAO;YACP;SACD;AAES,QAAA,IAAA,CAAA,mBAAmB,GAAG;YAC9B,QAAQ;YACR;SACD;AAES,QAAA,IAAA,CAAA,gBAAgB,GAAG;YAC3B;SACD;IAMD;AAEQ,IAAA,iBAAiB,CAAC,OAAyB,EAAE,IAAiB,EAAE,eAAwB,EAAA;QAC9F,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,YAAA,IAAI,EAAE,CAAC,KAAqB,KAAI;AAC9B,gBAAA,IAAI,KAAK,YAAY,YAAY,EAAE;AACjC,oBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACpC;YACF,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACpC;AACD,SAAA,CAAC,CAAC;IACL;IAEQ,KAAK,CAAC,GAAW,EAAE,KAAa,EAAA;QACtC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,YAAA,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK;QAC1B;AAEA,QAAA,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK;IAC1B;IAEA,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAChD,QAAA,IAAI,YAAY,GAAG,eAAe,EAAE,GAAG,EAAE,OAAO;AAChD,QAAA,IAAI,WAAW,GAAG,eAAe,EAAE,GAAG,EAAE,QAAQ;AAChD,QAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;AACpD,QAAA,IAAI,eAAe,GAAG,CAAC,gBAAgB;QACvC,IAAI,cAAc,GAAG,KAAK;QAC1B,IAAI,0BAA0B,GAAG,IAAI;;AAGrC,QAAA,IAAI,WAAW,GAAG,GAAG,CAAC,GAAG;QACzB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE;;QAGpC,IAAI,CAAC,gBAAgB,EAAE;AACrB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAEnD,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAChC,eAAe,GAAG,KAAK;oBACvB;gBACF;YACF;QACF;;AAGA,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACrC,YAAA,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC9C,cAAc,GAAG,IAAI;gBACrB;YACF;QACF;;QAGA,IAAI,cAAc,EAAE;YAClB,0BAA0B,GAAG,KAAK;QACpC;aACK;AACH,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjE,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAE1D,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAChC,0BAA0B,GAAG,KAAK;oBAClC;gBACF;YACF;QACF;;QAGA,IAAI,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,YAAA,0BAA0B,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;QACrE;;QAGA,IAAI,MAAM,GAAG,WAAW;;QAGxB,IAAI,YAAY,EAAE;AAChB,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACxC,gBAAA,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAA,MAAM,GAAG,MAAM,GAAG,WAAW;oBAC7B;gBACF;YACF;QACF;;QAGA,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACzD,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;QACvC;;AAGA,QAAA,IAAI,GAAG,GAAG,aAAa,EAAE;QACzB,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;QAC7C;;QAGA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAChC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC3E,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;AAE3E,QAAA,IACA;AACE,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;YAEpC,IAAI,0BAA0B,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAa,KAAI;oBACvE,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;oBACnF;oBAEA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC;gBAC3D,CAAC,CAAC,CAAC;YACL;iBACK;gBACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC;YAC3D;QACF;QACA,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC;AAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;QACpC;IACF;;AAGA,IAAA,cAAc,CAAC,eAAwB,EAAA;QACrC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAC5B;IACF;AAEA,IAAA,YAAY,CAAC,eAAwB,EAAA;QACnC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAC5B;IACF;uHAtKW,sBAAsB,EAAA,EAAA,CAAA,QAAA,CAAAF,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAG,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAJ,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,sBAAsB,WAAtB,sBAAsB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAtB,sBAAsB,EAAA,CAAA;cADlC;;;AC9BD;;;;;;;;;;;;;;AAcE;AAEI,SAAU,oBAAoB,CAAC,YAAiB,EAAE,UAAkB,EAAA;IACxE,IAAI,YAAY,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,CAAA,EAAG,UAAU,CAAA,iCAAA,EAAoC,UAAU,CAAA,+BAAA,CAAiC,CAC7F;IACH;AACF;;ACQM,MAAO,cAAe,SAAQ,cAAc,CAAA;AAChD,IAAA,WAAA,CAAsB,IAAgB,EAAY,UAA6B,EAAY,MAAsB,EAAA;QAC/G,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAwB,IAAA,CAAA,UAAU,GAAV,UAAU;QAA+B,IAAA,CAAA,MAAM,GAAN,MAAM;IAEjG;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACrC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;;AAElC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC;AAE9F,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,YAAA,OAAO,EAAE,CAAC,OAAO,CAAC;QACpB;;AAGA,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,gEAAgE,CAAC;QAC/F,SAAS,CAAC,KAAK,EAAE;AAEjB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,MAAM;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;;YAElD,SAAS,CAAC,IAAI,EAAE;YAChB,SAAS,CAAC,0BAA0B,EAAE;YAEtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,CAAC;IACL;IAEA,wBAAwB,GAAA;;AAEtB,QAAA,IAAI,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE;;QAGrD,IAAI,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;QAChE,IAAI,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;;QAGhE,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;;QAGxD,IAAI,aAAa,GAAG,EAAE;QACtB,IAAI,MAAM,GAAoB,IAAI;AAElC,QAAA,IAAI,kBAAkB;AAAE,YAAA,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC9D,QAAA,IAAI,kBAAkB;AAAE,YAAA,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC9D,QAAA,IAAI,cAAc;AAAE,YAAA,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAEtD;;;;;;;AAOE;AACF,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,IAAI,cAAc,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC;YAC5C,MAAM,GAAG,QAAQ,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QAC3D;aACK;YACH,MAAM,GAAG,oBAAoB;QAC/B;;AAGA,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,6DAA6D,CAAC;QAC5F,SAAS,CAAC,KAAK,EAAE;AAEjB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;;YAE1B,SAAS,CAAC,IAAI,EAAE;YAChB,SAAS,CAAC,0BAA0B,EAAE;QACxC,CAAC,CAAC,CAAC;IACL;+GAzEW,cAAc,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAK,iBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAL,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAd,cAAc,EAAA,CAAA;cAD1B;;;AC7BD;;;;;;;;;;;;;;AAcE;AAEF;MAUa,YAAY,CAAA;AACvB,IAAA,WAAA,CAAsB,OAAuB,EAAA;QAAvB,IAAA,CAAA,OAAO,GAAP,OAAO;IAC7B;IAEQ,wBAAwB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,CACjD,QAAQ,CAAC,MAAK;AACZ,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,CACH;IACH;IAEA,WAAW,CAAC,IAA4B,EAAE,KAA0B,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE;IACxC;IAEA,gBAAgB,CAAC,KAA6B,EAAE,KAA0B,EAAA;AACxE,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE;QACxC;AAEA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;6GAtBW,YAAY,EAAA,EAAA,CAAA,QAAA,CAAAM,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,YAAY,WAAZ,YAAY,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAZ,YAAY,EAAA,CAAA;cADxB;;;ACzBD;;;;;;;;;;;;;;;;;AAiBE;AAEF;MAqBa,mBAAmB,CAAA;AAW9B,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;AAVrB,QAAA,IAAA,CAAA,IAAI,GAAS,IAAI,IAAI,EAAE;;QAIvB,IAAA,CAAA,kBAAkB,GAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC5C,IAAA,CAAA,eAAe,GAAG,IAAI;;AAGpB,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE;AAG1D,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACnD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;IACzB;IAEQ,MAAM,CAAC,GAAW,EAAE,IAAI,EAAA;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,MAAM,EAAA;AACpD,YAAA,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;AAClE,QAAA,CAAC,CAAC;IACJ;;AAEA,IAAA,iBAAiB,CAAC,SAA2B,EAAA;AAC3C,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe;AAE/B,QAAA,IAAI;;AAEF,YAAA,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,EAAE;AAC9C,YAAA,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,eAAe;;YAGzE,IAAI,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;AAErC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAsB,KAAI;AAChF,gBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,MAAM;QACN;AAEA,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,qBAAqB,CAAC,SAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;IACpC;AAEA,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;IACrC;AAEA,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9B;IAEA,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;IACxC;;IAGA,gBAAgB,GAAA;AACd,QAAA,IAAI,SAAc;AAElB,QAAA,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AAC/B,YAAA,KAAK,IAAI;AACP,gBAAA,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC5B;AAEF,YAAA;AACE,gBAAA,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;;AAGhC,QAAA,OAAO,SAAS;IAClB;;IAGA,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACnC;AAEA,IAAA,oBAAoB,CAAC,KAAK,EAAE,SAAA,GAAoB,eAAe,CAAC,MAAM,EAAA;QACpE,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,cAAc;QACvB;QAEA,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;IACpD;AAEA,IAAA,gBAAgB,CAAC,KAAK,EAAE,SAAA,GAAoB,WAAW,CAAC,MAAM,EAAA;QAC5D,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,cAAc;QACvB;QAEA,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;IACpD;AAEA,IAAA,gBAAgB,CAAC,KAAK,EAAE,SAAA,GAAoB,WAAW,CAAC,KAAK,EAAA;QAC3D,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,cAAc;QACvB;QAEA,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;IACpD;;AAGA,IAAA,yBAAyB,CAAC,KAAK,EAAE,SAAA,GAAoB,eAAe,CAAC,MAAM,EAAA;QACzE,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC;IAChD;AAEA,IAAA,qBAAqB,CAAC,KAAK,EAAE,SAAA,GAAoB,WAAW,CAAC,MAAM,EAAA;QACjE,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC;IAC5C;AAEA,IAAA,qBAAqB,CAAC,KAAK,EAAE,SAAA,GAAoB,WAAW,CAAC,KAAK,EAAA;QAChE,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC;IAC5C;;;IAIA,oBAAoB,CAAC,YAAoB,EAAE,cAAsB,EAAA;QAC/D,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;QAChD,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;AAEpD,QAAA,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAA,OAAO,cAAc;QACvB;QAEA,OAAO,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IACnE;AAEA,IAAA,yBAAyB,CAAC,KAAa,EAAA;QACrC,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AACrB,YAAA,OAAO,cAAc;QACvB;QAEA,OAAO,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;IACnD;oHA3JW,mBAAmB,EAAA,EAAA,CAAA,QAAA,CAAAV,IAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAAnB,mBAAmB,EAAA,OAAA,EAAnB,mBAAmB,CAAA,IAAA,EAAA,UAAA,EAFlB,MAAM,EAAA,CAAA,CAAA;;iFAEP,mBAAmB,EAAA,CAAA;cAH/B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAUE;;;ACjDH;;;;;;;;;;;;;AAaE;AAEF;MAWa,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,eAAoC,EAAA;QAApC,IAAA,CAAA,eAAe,GAAf,eAAe;IACnC;AAEA,IAAA,SAAS,CAAC,SAAiB,EAAE,OAAe,IAAI,EAAE,SAAiB,IAAI,EAAA;QACrE,IAAI,CAAC,SAAS,EAAE;YACd;QACF;QAEA,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,IAAI;QACb;;AAGA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAC1D;;AAGA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,SAAS,CAAC;QAC7D;;AAGA,QAAA,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACzD;;AAGA,QAAA,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACzD;;;AAIA,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,SAAS,CAAC;QAClE;;AAGA,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAC9D;;AAGA,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAC9D;;;;AAKA,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC;QACrE;;AAGA,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,SAAS,CAAC;QAClE;;AAGA,QAAA,OAAO,SAAS;IAClB;6GA/DW,YAAY,EAAA,EAAA,CAAA,iBAAA,CAAAW,mBAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kFAAZ,YAAY,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;iFAAZ,YAAY,EAAA,CAAA;cALxB,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACJ,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACzBD;;;;;;;;;;;;;AAaE;AAEF;AAWM,SAAU,sBAAsB,CAAC,UAAsB,EAAA;AAC3D,IAAA,IAAI,eAAe,GAAG,kBAAkB,EAAE;AAC1C,IAAA,IAAI,GAAG,GAAG,eAAe,CAAC,aAAa;AACvC,IAAA,IAAI,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO;AAC9C,IAAA,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG;AACpC,IAAA,IAAI,OAAO,GAAG,UAAU,IAAI,OAAO;IAEnC,IAAI,YAAY,EAAE;QAChB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;IAC3D;AAEA,IAAA,OAAO,IAAI,mBAAmB,CAAC,UAAU,EAAE,CAAA,EAAG,GAAG,CAAA,CAAA,CAAG,EAAE,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAC;AAC7E;AAEA,IAAI,6BAAuC;SAC3B,uBAAuB,GAAA;IACrC,IAAI,CAAC,6BAA6B,EAAE;AAClC,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;IAC7D;AAEA,IAAA,OAAO,6BAA6B;AACtC;MAwBa,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAC1B,QAAA,6BAA6B,GAAG,IAAI,CAAC,QAAQ;IAC/C;mHAHW,kBAAkB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;mEAAlB,kBAAkB,EAAA,CAAA,CAAA;AALlB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;YACT,gBAAgB;YAChB;SACD,EAAA,OAAA,EAAA,CAlBC,eAAe,CAAC,OAAO,CAAC;AACtB,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,UAAU,EAAE,sBAAsB;oBAClC,IAAI,EAAE,CAAC,UAAU;AAClB;AACF,aAAA,CAAC,EAGF,eAAe,CAAA,EAAA,CAAA,CAAA;;iFAWN,kBAAkB,EAAA,CAAA;cAtB9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,eAAe,CAAC,OAAO,CAAC;AACtB,wBAAA,MAAM,EAAE;AACN,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,sBAAsB;4BAClC,IAAI,EAAE,CAAC,UAAU;AAClB;qBACF;AACF,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,eAAe;oBACf;AACD,iBAAA;AACD,gBAAA,YAAY,EAAE;oBACZ;AACD,iBAAA;AACD,gBAAA,SAAS,EAAE;oBACT,gBAAgB;oBAChB;AACD;AACF,aAAA;;wFACY,kBAAkB,EAAA,EAAA,YAAA,EAAA,CAP3B,YAAY,CAAA,EAAA,OAAA,EAAA,CAAAX,IAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAJZ,eAAe;QACf,YAAY,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC7DhB;;;;;;;;;;;;;AAaE;AAEF;MAIa,SAAS,CAAA;AACb,IAAA,WAAW,mBAAmB,GAAA;QACnC,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC,GAAG,CAAsB,mBAAmB,CAAC;AAClF,QAAA,OAAO,EAAE;IACX;AAEO,IAAA,OAAO,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAE,UAAmB,EAAA;;;;;AAK9E,QAAA,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE;YACtB,OAAO,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAC/D;;;QAIA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC;AACrE,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,GAAG;IACZ;AACD;;AC3CD;;;;;;;;;;;;;;;;;;AAkBE;AAEF;MAOa,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAC5B;AAEA,IAAA,WAAW,CAAC,KAAK,EAAA;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;AACxD,QAAA,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;;AAG3B,QAAA,MAAM,KAAK;IACb;mHAVW,kBAAkB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,kBAAkB,WAAlB,kBAAkB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAlB,kBAAkB,EAAA,CAAA;cAD9B;;;AC1BD;;;;;;;;;;;;;;AAcE;AAEF;MAMa,MAAM,CAAA;AACV,IAAA,OAAO,UAAU,CAAC,IAAI,EAAE,KAAM,EAAE,iBAAkB,EAAE,gBAAiB,EAAE,aAAc,EAAE,YAAa,EAAA;AACzG,QAAA,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACxC,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,0BAA0B,CAAC;QAC5E,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,4CAA4C,CAAC;QACtH,gBAAgB,GAAI,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,EAAE,2CAA2C,CAAC;QAEpH,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE,SAAS;YACf,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,gBAAgB,EAAE;SACnB;AACA,aAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACf,YAAA,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,IAAI,aAAa,EAAE;AACjB,oBAAA,aAAa,EAAE;gBACjB;YACF;;iBAEK,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAClG,IAAI,YAAY,EAAE;AAChB,oBAAA,YAAY,EAAE;gBAChB;YACF;AACF,QAAA,CAAC,CAAC;IACJ;;AAEO,IAAA,OAAO,IAAI,CAAC,IAAI,EAAE,MAAc,EAAE,KAAM,EAAA;QAC7C,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;QAChD,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB;AAClE,SAAA,CAAC;IACJ;AAEO,IAAA,OAAO,OAAO,CAAC,IAAI,EAAE,MAAc,EAAE,KAAM,EAAA;QAChD,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;QAChD,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB;AAClE,SAAA,CAAC;IACJ;AAEO,IAAA,OAAO,KAAK,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAA;QAC/C,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,4BAA4B,CAAC;QAC9E,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC;QAEvE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB;AAClE,SAAA,CAAC;IACJ;IAEO,OAAO,OAAO,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAE,aAAc,EAAA;QACjE,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,oCAAoC,CAAC;QACtF,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,kBAAkB;SAClE;aACA,IAAI,CAAC,MAAK;YACT,IAAI,aAAa,EAAE;AACjB,gBAAA,aAAa,EAAE;YACjB;AACF,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,OAAO,MAAM,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAA;QAChD,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAkC,CAAC;QACpF,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,yBAAyB,CAAC;QAE3E,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;AACL,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;IACJ;;AAGO,IAAA,OAAO,cAAc,GAAA;QAC1B,IAAI,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,8BAA8B,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpB;;AAEO,IAAA,OAAO,sBAAsB,GAAA;QAClC,IAAI,IAAI,GAAG,eAAe;QAC1B,IAAI,KAAK,GAAG,yBAAyB;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACjC;;AACD;;AChID;;;;;;;;;;;;;;AAcE;;ACdF;;;;;;;;;;;;;;AAcE;AAEF;MAQa,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;IACjC;AAEA,IAAA,IAAI,CAAC,IAAI,EAAE,MAAc,EAAE,KAAM,EAAA;QAC/B,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,QAAA,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AACnC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAI,EAAE,MAAc,EAAE,KAAM,EAAA;QAClC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,QAAA,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AACtC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;IACJ;AAEA,IAAA,KAAK,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAA;QACjC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,4BAA4B,CAAC;AAC9E,QAAA,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAA;QACnC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,oCAAoC,CAAC;AACtF,QAAA,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AACtC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,IAAK,EAAE,MAAc,EAAE,KAAM,EAAA;QAClC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAkC,CAAC;AACpF,QAAA,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AACnC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;IACJ;;IAGA,cAAc,GAAA;QACZ,IAAI,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,8BAA8B,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpB;IAEA,sBAAsB,GAAA;QACpB,IAAI,IAAI,GAAG,eAAe;QAC1B,IAAI,KAAK,GAAG,yBAAyB;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACjC;oHAjEW,mBAAmB,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAAnB,mBAAmB,EAAA,OAAA,EAAnB,mBAAmB,CAAA,IAAA,EAAA,UAAA,EADP,MAAM,EAAA,CAAA,CAAA;;iFAClB,mBAAmB,EAAA,CAAA;cAD/B,UAAU;eAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;MC8DnB,cAAc,CAAA;AAKzB,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;;AAHpB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;QAG9C,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,IAAI,GAAA;QACV,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B;;IAGO,QAAQ,GAAA;QACb,OAAO,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;IACnD;IAEO,IAAI,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAC9B;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS;AAAE,YAAA,OAAO,KAAK;AAE3C,QAAA,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,oBAAoB;AACpB,YAAA,cAAc;AACd,YAAA,aAAa;AACb,YAAA,gBAAgB;AAChB,YAAA,eAAe;AACf,YAAA,kBAAkB;AAClB,YAAA,0BAA0B;AAC1B,YAAA,2BAA2B;AAC3B,YAAA,eAAe;AACf,YAAA,gBAAgB;AAChB,YAAA,qBAAqB;AACrB,QAAA,GAAG,CACJ;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS;AAAE,YAAA,OAAO,KAAK;AAE3C,QAAA,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,OAAO;AACP,YAAA,sBAAsB;YACtB,8BAA8B;AAC9B,YAAA,mBAAmB;AACnB,YAAA,mBAAmB;AACnB,YAAA,kCAAkC;AAClC,YAAA,aAAa;AACb,YAAA,mBAAmB;AACnB,YAAA,2BAA2B;AAC3B,YAAA,iBAAiB;AACjB,YAAA,WAAW;AACX,YAAA,OAAO;AACP,QAAA,GAAG,CACJ;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACzC;IAEO,gBAAgB,GAAA;QACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;IAC3C;IAEO,cAAc,GAAA;;QAEnB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;QAGxD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAE3C,QAAA,OAAO,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;IACtC;IAEO,SAAS,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACjC;AAEA,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;IAC1C;+GA9FW,cAAc,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;;iFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACpFD;;;;;;;;;;;;;;AAcE;AAEF;MAQa,uBAAuB,CAAA;AAGlC,IAAA,WAAA,CAAoB,KAAY,EAAU,IAAU,EAA4B,GAAQ,EAAA;QAApE,IAAA,CAAA,KAAK,GAAL,KAAK;QAAiB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAkC,IAAA,CAAA,GAAG,GAAH,GAAG;AAF3E,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAuB;IAGzD;AAEA,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,iBAAiB,CAAC,IAAa,EAAA;QAC7B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7D;aACK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC3C;IACF;AAEA,IAAA,cAAc,CAAC,QAAiB,EAAA;QAC9B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC9D;aACK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACxC;IACF;AAEA,IAAA,cAAc,CAAC,eAAiC,EAAA;QAC9C,IAAI,CAAC,sBAAsB,EAAE;QAE7B,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,eAAe,CAAC,OAAO,CAAC,OAAO,IAAG;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACxC,IAAI,GAAG,EAAE;oBACP,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;oBACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;gBACrC;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AACzC,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE;AACzB,gBAAA,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;IAC/B;AAEQ,IAAA,aAAa,CAAC,OAAuB,EAAA;AAC3C,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,OAAO,CAAA,KAAA,EAAQ,OAAO,CAAC,IAAI,EAAE;QAC/B;AACK,aAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,CAAA,SAAA,EAAY,OAAO,CAAC,QAAQ,EAAE;QACvC;AACK,aAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AAC1B,YAAA,OAAO,CAAA,UAAA,EAAa,OAAO,CAAC,SAAS,EAAE;QACzC;QAEA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;IAClC;AAEA,IAAA,eAAe,CAAC,GAAY,EAAA;AAC1B,QAAA,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG;AACrD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AACxE,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAqB,KAAI;AAC9C,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,IAAI,GAAoB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACxB;AAEA,IAAA,kBAAkB,CAAC,GAAY,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG;AACrD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,IAAI,GAAoB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA,qBAAA,CAAuB,CAAC,IAAI,IAAI;AAEnF,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAoB;AACxD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACxB;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;IACnC;AAEA,IAAA,mBAAmB,CAAC,MAA8E,EAAA;QAChG,MAAM,QAAQ,GAAqB,EAAE;AAErC,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC9D,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE;AAEA,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AAC1E,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7E;AAEA,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC9D,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE;AAEA,QAAA,IAAI,MAAM,CAAC,GAAG,EAAE;AACd,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5D;AAEA,QAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEvE,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC/B;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;AAEtC,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,qBAAqB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB;AAC9F,YAAA,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE;SAC/E;AAED,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAG;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC/B,QAAA,CAAC,CAAC;IACJ;AAzIW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,+BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,KAAA,iBAAA,IAAA,uBAAuB,+DAG4B,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAH3D,uBAAuB,EAAA,OAAA,EAAvB,uBAAuB,CAAA,IAAA,EAAA,UAAA,EAFtB,MAAM,EAAA,CAAA,CAAA;;iFAEP,uBAAuB,EAAA,CAAA;cAHnC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;sBAIwD,MAAM;uBAAC,QAAQ;;;AC3BxE;;;;;;;;;;;;;;;;;;;;;AAqBE;AAEF;MAMa,sBAAsB,CAAA;AAGjC,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;IAC1B;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/C,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,gBAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,oBAAA,IAAI,IAAI,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAC/C,wBAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;oBAC7B;gBACF;YACF;AACD,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QACjC;IACF;AAEA,IAAA,KAAK,CAAC,IAAY,EAAE,MAAM,GAAG,IAAI,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ;QACF;AAEA,QAAA,IAAI;YACF,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;YAChC;iBACK;AACH,gBAAA,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YACxB;QACF;QACA,OAAO,GAAG,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC;QACpD;IACF;AAEA,IAAA,IAAY,EAAE,GAAA;AACZ,QAAA,IAAI,EAAE,GAAS,MAAO,CAAC,IAAI;AAC3B,QAAA,OAAO,EAAE;IACX;uHA9CW,sBAAsB,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,sBAAsB,WAAtB,sBAAsB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAtB,sBAAsB,EAAA,CAAA;cADlC;;;AC5BD;;;;;;;;;;;;;;AAcE;AAEF;MAOa,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;AAaS,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AAmE3D,IAAA;;AAhES,IAAA,iBAAiB,CAAC,cAAc,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,cAAc,GAAG,IAAI;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE;IAC7B;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,gBAAA,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAE9E,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;;;AAI7C,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B;YACF;AACD,SAAA,CAAC;IACJ;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE;IAC7B;;AAGO,IAAA,aAAa,CAAC,cAAc,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAChB,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAChC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC5B,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAChC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/B,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EACrC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,EACjC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAChC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,EACpC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAC5B;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;QAEtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;gBACb,IAAI,CAAC,UAAU,EAAE;YACnB;AACD,SAAA,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;IACrC;AAEO,IAAA,gBAAgB,CAAC,cAAc,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAEzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE;IACnB;4GA5EW,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;uEAAX,WAAW,EAAA,OAAA,EAAX,WAAW,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA;;iFAEP,WAAW,EAAA,CAAA;cAHvB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACtBD;;;;;;;;;;;;;;AAcE;AAEF;MAOa,aAAa,CAAA;AACxB,IAAA,WAAA,CAAsB,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;IAC1B;AAEQ,IAAA,SAAS,CAAC,SAAiB,EAAA;QACjC,OAAO,CAAA,eAAA,EAAkB,SAAS,CAAA,CAAE;IACtC;AAEA,IAAA,cAAc,CAAC,GAAW,EAAE,SAAiB,EAAE,OAAiC,EAAA;AAC9E,QAAA,MAAM,iBAAiB,GAAI,MAAc,CAAC,SAAS,CAAC;QAEpD,IAAI,iBAAiB,EAAE;;AAErB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;gBACjB,OAAO,CAAC,iBAAiB,CAAC;AAC5B,YAAA,CAAC,CAAC;YACF;QACF;;QAGA,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACnD,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,UAAU,CAAC,SAAS,GAAG,EAAE;AACzB,QAAA,UAAU,CAAC,MAAM,GAAG,MAAK;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,OAAO,CAAE,MAAc,CAAC,SAAS,CAAC,CAAC;AACrC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;AACD,QAAA,UAAU,CAAC,GAAG,GAAG,GAAG;AACpB,QAAA,UAAU,CAAC,KAAK,GAAG,IAAI;AACvB,QAAA,UAAU,CAAC,KAAK,GAAG,IAAI;;AAGvB,QAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;IAClE;AAEA,IAAA,OAAO,CAAC,SAAiB,EAAA;;AAEvB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,MAAM,EAAE;QACvB;IACF;AAEA,IAAA,cAAc,CAAC,WAA0B,EAAA;QACvC,IAAI,WAAW,GAAG,EAAE;AAEpB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,EAAE;gBACT,WAAW,IAAI,GAAG;YACtB;iBAAO;gBACH,WAAW,IAAI,GAAG;YACtB;YAEA,WAAW,IAAI,CAAA,EAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAA,CAAE;QAC3D;AAEA,QAAA,OAAO,WAAW;IACpB;8GA5DW,aAAa,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,aAAa,WAAb,aAAa,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAb,aAAa,EAAA,CAAA;cADzB;;;ACtBD;;;;;;;;;;;;;AAaE;AAEF;MAIa,YAAY,CAAA;AAKvB,IAAA,WAAA,CAAY,IAAY,EAAE,KAAc,EAAE,OAAQ,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AACD;AAYK,MAAO,mBAAoB,SAAQ,eAA6B,CAAA;AAGpE,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,IAAI,CAAC;IACb;AAEA,IAAA,IAAI,CAAC,OAAO,EAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IAC1D;IAEA,MAAM,CAAC,IAAY,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,GAAG,IAAI,EAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpB;oHAlBW,mBAAmB,GAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;;ACxCD;;;;;;;;;;;;;;AAcE;MAIW,GAAG,CAAA;;AAEN,IAAA,OAAO,GAAG,CAAC,IAAiB,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAA,GAAmB,IAAI,EAAA;QAC9E,IAAI,OAAO,GAAG,EAAE;QAChB,IAAI,QAAQ,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI;AAEnD,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvB;;;;AAIE;gBAEF,IAAI,QAAQ,EAAE;oBACZ,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtC,wBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB;gBACF;qBACK;AACH,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpB;YACF;QACF;AAEA,QAAA,OAAO,OAAO;IAChB;;IAGO,OAAO,KAAK,CAAC,QAAuB,EAAA;QACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,QAAQ,CAAC,CAAC,CAAC;IACpB;IAEO,OAAO,GAAG,CAAC,QAAuB,EAAA;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AACrC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,MAAM,CAAC,IAAiB,EAAA;AACpC,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa;AACtC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU;AAEhC,QAAA,OAAO,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,EAAE,GAAG,aAAa,GAAG,IAAI;IACxE;AAEO,IAAA,OAAO,OAAO,CAAC,IAAiB,EAAE,QAAQ,GAAG,IAAI,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC;IACrD;IAEO,OAAO,cAAc,CAAC,QAAgB,EAAA;AAC3C,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;AACxB,QAAA,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE;IACvC;AAEO,IAAA,OAAO,IAAI,CAAC,IAAI,EAAE,QAAgB,EAAA;AACvC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE;IACrC;IAEO,OAAO,MAAM,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB;QACF;QAEA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,gBAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;YACrC;YAEA;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,IAAI;QACR,IAAI,CAAC,GAAG,CAAC;AAET,QAAA,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;YACnC;QACF;IACF;AAEO,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C;IAEO,OAAO,IAAI,CAAC,IAAI,EAAA;AACrB,QAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;IAChB;IAEO,OAAO,IAAI,CAAC,IAAI,EAAA;AACrB,QAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;IAChB;AAEO,IAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAA;AACjC,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;QACxB,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAEtC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;QACd;IACF;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCE;AAEK,IAAA,OAAO,QAAQ,CAAC,IAAoB,EAAE,UAAU,EAAA;QACrD,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC9B;AAEO,IAAA,OAAO,WAAW,CAAC,IAAoB,EAAE,UAAU,EAAA;QACxD,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;IACjC;AAEO,IAAA,OAAO,QAAQ,CAAC,IAAoB,EAAE,SAAS,EAAA;QACpD,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC7B;AACD;;ACrLD;;;;;;;;;;;;;;AAcE;MAEW,OAAO,CAAA;AACV,IAAA,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAA;AAC/B,QAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC,EAEvD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,OAAO,OAAO,KAAK,IAAI,GAAG,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnF;IAEO,OAAO,cAAc,CAAC,IAAI,EAAA;QAC/B,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IAChD;IAEO,OAAO,MAAM,CAAC,IAAI,EAAA;QACvB,IAAI,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;AACxC,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,IAAI;AAEtB,QAAA,OAAO,KAAK;IACd;AAEO,IAAA,OAAO,QAAQ,GAAA;AACpB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAC7B;AAEO,IAAA,OAAO,KAAK,GAAA;AACjB,QAAA,IACA;AACE,YAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,YAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5D;QACA,OAAM,CAAC,EACP;QACA;IACF;IAEO,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAA;AAC/D,QAAA,IACA;YACE,IAAI,GAAG,GAAG,IAAI;YACd,IAAI,MAAM,GAAE,IAAI;AAEhB,YAAA,GAAG,GAAG,GAAG,GAAG,IAAI;AAChB,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACnC,gBAAA,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC;AAEA,YAAA,GAAG,GAAG,GAAG,GAAG,IAAI;AAChB,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACnC,gBAAA,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC;AAEA,YAAA,IAAI,MAAM,IAAI,MAAM,EAAE;gBACpB,IAAI,YAAY,EAAE;AAChB,oBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBAC/B,YAAY,CAAC,KAAK,EAAE;oBACpB,cAAc,CAAC,KAAK,EAAE;gBACxB;AAEA,gBAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM;YAC/B;iBACK;AACH,gBAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YAC5D;QACF;QACA,OAAM,CAAC,EACP;QACA;IACF;AAEO,IAAA,OAAO,UAAU,GAAA;AACtB,QAAA,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1B,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzC,QAAA,OAAO,OAAO;IAChB;;AAGO,IAAA,OAAO,eAAe,GAAA;QAC3B,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnD;AAEO,IAAA,OAAO,QAAQ,GAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC7B;AACD;;ACtGD;;;;;;;;;;;;;;AAcE;MAEW,KAAK,CAAA;AACT,IAAA,OAAO,eAAe,CAAC,KAAU,EAAE,GAAW,EAAA;QACnD,KAAK,CAAC,cAAc,EAAE;QAEtB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACjD,QAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC/B,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACvB,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACtB,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC1B,QAAA,MAAM,CAAC,KAAK,GAAG,GAAG;AAClB,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE;QACd,MAAM,CAAC,MAAM,EAAE;AACf,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC;AAEO,IAAA,OAAO,YAAY,CAAC,IAAY,EAAE,GAAW,EAAA;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;QACf,IAAI,CAAC,KAAK,EAAE;IACd;AAEO,IAAA,OAAO,gBAAgB,CAAC,KAAW,EAAE,QAAgB,EAAA;AAC1D,QAAA,MAAM,GAAG,GAAI,MAAM,CAAC,SAAiB;AAErC,QAAA,IAAI,GAAG,CAAC,gBAAgB,EAAE;AACxB,YAAA,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACvC;aACK;YACH,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;AACrD,YAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC3C;IACF;AAEA;;;AAGE;IACK,OAAO,OAAO,CAAC,IAAY,EAAE,MAAA,GAAiB,EAAE,EAAE,OAAA,GAAkB,EAAE,EAAA;QAC3E,MAAM,CAAC,GAAG,iFAAiF;QAC3F,MAAM,CAAC,GAAG,iFAAiF;AAC3F,QAAA,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAEhD;;;AAGE;QACF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QAExC,IAAI,MAAM,GAAG;AACV,aAAA,QAAQ;AACR,aAAA,WAAW;AACX,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACtB,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACxB,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEtB,QAAA,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO;IAClC;AAEO,IAAA,OAAO,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK;IAC9D;IAEO,OAAO,SAAS,CAAC,KAAK,EAAA;AAC3B,QAAA,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChG;AACD;;ACxFD;;;;;;;;;;;;;;AAcE;AAEF;;AChBA;;;;;;;;;;;;;AAaE;;ACbF;;;;;;;;;;;;;AAaE;AAEF;MAUsB,aAAa,CAAA;AAmBjC,IAAA,WAAA,GAAA;QAlBU,IAAA,CAAA,SAAS,GAAG,KAAK;AACjB,QAAA,IAAA,CAAA,IAAI,GAAS,IAAI,IAAI,EAAE;;QAGvB,IAAA,CAAA,WAAW,GAAY,IAAI;QAC3B,IAAA,CAAA,UAAU,GAAY,KAAK;QAC3B,IAAA,CAAA,SAAS,GAAY,KAAK;;AAM3B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,IAAI;QAEhB,IAAA,CAAA,KAAK,GAAG,EAAE;QACV,IAAA,CAAA,cAAc,GAAY,IAAI;QAC9B,IAAA,CAAA,UAAU,GAAY,KAAK;QAGlC,IAAI,CAAC,YAAY,EAAE;IACrB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,EAAE;IACnC;IAEA,QAAQ,GAAA;IACR;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;IACzB;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;IACrC;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;IAEA,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAChC;IAEA,kBAAkB,CAAC,QAAiB,IAAI,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;8GArDoB,aAAa,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAb,aAAa,EAAA,CAAA;cAHlC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE;AACX,aAAA;;kBAcE;;kBACA;;kBACA;;kBACA;;kBACA;;kFAjBmB,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACzBnC;;;;;;;;;;;;;AAaE;AAEF;MAQsB,qBAAqB,CAAA;IACzC,WAAA,CAAoB,EAAc,EAAU,QAAmB,EAAA;QAA3C,IAAA,CAAA,EAAE,GAAF,EAAE;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACpD;IAEU,eAAe,CAAC,IAAY,EAAE,GAAW,EAAA;QACjD,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC;IACF;IAEU,YAAY,CAAC,IAAY,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;IAChE;sHAboB,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAArB,qBAAqB,EAAA,CAAA,CAAA;;iFAArB,qBAAqB,EAAA,CAAA;cAF1C,SAAS;eAAC,EACV;;;ACtBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,kBAAmB,SAAQ,qBAAqB,CAAA;IAG3D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QAC5C;IACF;AAEQ,IAAA,OAAO,CAAC,KAAK,EAAA;QACnB,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;YACrC;iBACK;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;YAClC;QACF;IACF;AAtBW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,+BAAA,CAAA,CAAA,OAAA,SAAA,0BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,+BAAA,KAAA,+BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,kBAAkB,yBAAlB,kBAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,GAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA;;iFAAlB,kBAAkB,EAAA,CAAA;cAJ9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAEE,KAAK;mBAAC,MAAM;;;AC1Bf;;;;;;;;;;;;;;AAcE;AAEF;;;ICfE,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD;IACrD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFY,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAlC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAY;IACE,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAIhD,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA8D;IAC5D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFkB,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAxC,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,MAAA,CAAA,GAAA,CAAkB;IACJ,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAKhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAO;IAAA,EAAA,CAAA,YAAA,EAAO;;;IADlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC3C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;;;IAA7B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAA,EAAA,CAA2B;;ADkB9B,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AALxD,IAAA,WAAA,GAAA;;QAOE,IAAA,CAAA,QAAQ,GAAG,KAAK;AAkBjB,IAAA;IAdC,QAAQ,GAAA;AACN,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM;QAE9B,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAExC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACjD;iBACK;AACH,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG;YAChB;QACF;IACF;AAnBW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,kCAAA,CAAA,CAAA,OAAA,SAAA,6BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,kCAAA,KAAA,kCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,qBAAqB,yBAArB,qBAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAY,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC5BlC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAIO,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIhC;;YARS,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,CAAc;YAIR,EAAA,CAAA,SAAA,EAAe;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAe;;;iFDwB/C,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAErB,KAAK,EAAA,QAAA,EAAA,odAAA,EAAA;;kBAMhB;;kFAJU,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BlC;;;;;;;;;;;;;;AAcE;AAEF;;ICfE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA8C;IAC5C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAA6D;IAC/D,EAAA,CAAA,YAAA,EAAM;;;IAGJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAmF;IACjF,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,aAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IAET,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACiC;AAAzB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAC9B,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,WAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IARX,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAiD;AAK/C,IAJA,2FAAmF,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAKlD;IAGnC,EAAA,CAAA,YAAA,EAAM;;;IARkD,EAAA,CAAA,SAAA,EAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,aAAA,CAA2B;IAI1B,EAAA,CAAA,SAAA,EAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,aAAA,CAA2B;;;IAVtF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4C;AAK1C,IAJA,+EAA8C,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAIG;IAUnD,EAAA,CAAA,YAAA,EAAM;;;IAdE,EAAA,CAAA,SAAA,EAAsC;IAAtC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,cAAA,IAAA,MAAA,CAAA,aAAA,CAAsC;IAItC,EAAA,CAAA,SAAA,EAAyC;IAAzC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,IAAA,MAAA,CAAA,iBAAA,CAAyC;;MDsBpC,wBAAwB,CAAA;AAanC,IAAA,WAAA,CAAoB,UAA6B,EAAA;QAA7B,IAAA,CAAA,UAAU,GAAV,UAAU;QAZ9B,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,aAAa,GAAG,CAAC,CAAC;QAIT,IAAA,CAAA,iBAAiB,GAAY,KAAK;QAClC,IAAA,CAAA,aAAa,GAAY,KAAK;;AAG7B,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE;IAG5D;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;YAC7C,IAAI,CAAC,OAAO,EAAE;gBACZ;YACF;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;AAE5C,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM;YACrC;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC5B,QAAA,CAAC,CAAC;IACJ;;IAGA,YAAY,GAAA;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;yHA5CW,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAAC,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC3BrC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4C;;YAAtB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;;;iFD2B7B,wBAAwB,EAAA,CAAA;cALpC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,cAEhC,KAAK,EAAA,QAAA,EAAA,qkBAAA,EAAA;;kBAQhB;;kBACA;;kBACA;;kBAGA;;kFAXU,wBAAwB,EAAA,EAAA,SAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3BrC;;;;;;;;;;;;;;AAcE;AAEF;;ICfE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA8C;IAC5C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAA6D;IAC/D,EAAA,CAAA,YAAA,EAAM;;;IAGJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAmF;IACjF,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,aAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAET,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAsF;IACpF,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,aAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;;IAET,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACiC;AAAzB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAC9B,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,aAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAZX,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAiD;IAC/C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAmF,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAIG,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAKrD;IAGnC,EAAA,CAAA,YAAA,EAAM;;;IAZkD,EAAA,CAAA,SAAA,EAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,aAAA,CAA2B;IAI1B,EAAA,CAAA,SAAA,EAA6B;IAA7B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,eAAA,CAA6B;IAI7B,EAAA,CAAA,SAAA,EAAsD;IAAtD,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,aAAA,IAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,eAAA,CAAsD;;;IAdjH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4C;AAK1C,IAJA,mFAA8C,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAIG;IAcnD,EAAA,CAAA,YAAA,EAAM;;;IAlBE,EAAA,CAAA,SAAA,EAAsC;IAAtC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,cAAA,IAAA,MAAA,CAAA,aAAA,CAAsC;IAItC,EAAA,CAAA,SAAA,EAAyC;IAAzC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,IAAA,MAAA,CAAA,iBAAA,CAAyC;;MDsBpC,4BAA4B,CAAA;AAcvC,IAAA,WAAA,CAAoB,UAA6B,EAAA;QAA7B,IAAA,CAAA,UAAU,GAAV,UAAU;QAb9B,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,aAAa,GAAG,CAAC,CAAC;QAClB,IAAA,CAAA,eAAe,GAAG,CAAC,CAAC;QAIX,IAAA,CAAA,iBAAiB,GAAY,KAAK;QAClC,IAAA,CAAA,aAAa,GAAY,KAAK;;AAG7B,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE;IAG5D;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;YAC7C,IAAI,CAAC,OAAO,EAAE;gBACZ;YACF;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;AAE5C,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM;gBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;YACtD;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC5B,QAAA,CAAC,CAAC;IACJ;;IAGA,YAAY,GAAA;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;6HA9CW,4BAA4B,EAAA,EAAA,CAAA,iBAAA,CAAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,uCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC3BzC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4C;;YAAtB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;;;iFD2B7B,4BAA4B,EAAA,CAAA;cALxC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uCAAuC,cAErC,KAAK,EAAA,QAAA,EAAA,4uBAAA,EAAA;;kBAShB;;kBACA;;kBACA;;kBAGA;;kFAZU,4BAA4B,EAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3BzC;;;;;;;;;;;;;;;;;AAiBE;AAEF;MAKa,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;QAIE,IAAA,CAAA,QAAQ,GAAG,CAAC;QACZ,IAAA,CAAA,SAAS,GAAG,IAAI;QAChB,IAAA,CAAA,eAAe,GAAG,IAAI;QACtB,IAAA,CAAA,WAAW,GAAG,IAAI;QAClB,IAAA,CAAA,QAAQ,GAAG,KAAK;;AAGR,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAO;AACrC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAG1D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAO;AACrC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAG1D,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAO;AACxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;AAqFzE,IAAA;IAnFS,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;IACjB;;IAGQ,oBAAoB,GAAA;QAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C;;IAGA,IAAI,GAAA;QACF,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAE5B,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;AACzB,YAAA,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW;QACxC;AACK,aAAA,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;AAClC,YAAA,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;YAC/D,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC;;AAGA,QAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;QAG/B,OAAO,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;IACpC;AAEA,IAAA,cAAc,CAAC,IAAI,EAAA;QACjB,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;AAE1B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C;AACK,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACxB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACtB;QAEA,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACxB,YAAA,OAAO,GAAG,GAAG,IAAI,CAAC,WAAW;QAC/B;AACK,aAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,eAAe,GAAG,GAAG;QACnC;AAEA,QAAA,OAAO,IAAI;IACb;IAEA,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEA,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtC;IAEA,2BAA2B,GAAA;AACzB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;IACvC;gHAvGW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,eAAe,WAAf,eAAe,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAf,eAAe,EAAA,CAAA;cAD3B;;;ACvBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,oBAAqB,SAAQ,cAAc,CAAA;AACtD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,qBAAqB;IAC/C;AAEA,IAAA,YAAY,CAAC,IAAI,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAM,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD;qHARW,oBAAoB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,oBAAoB,WAApB,oBAAoB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAApB,oBAAoB,EAAA,CAAA;cADhC;;;ACxBD;;;;;;;;;;;;;;AAcE;AAEF;;;;;ICGQ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkE,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CACxC,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CACiE;IAApE,EAAA,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;IAA1C,EAAA,CAAA,YAAA,EAAuF;IACvF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAiD;AAA7B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,yBAAkB,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA,CAAK;IAAA,EAAA,CAAA,YAAA,EAAS,EAC3D,EACF;;;IALsB,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAqC;IAE1C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;IAAvB,EAAA,CAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;;ADUhD,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAKtD,IAAA,WAAA,CACS,EAAmB,EAClB,GAAyB,EACzB,EAAuB,EAAA;AAC/B,QAAA,KAAK,EAAE;QAHA,IAAA,CAAA,EAAE,GAAF,EAAE;QACD,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,EAAE,GAAF,EAAE;QAPZ,IAAA,CAAA,aAAa,GAAG,KAAK;IASrB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;IACjB;;IAGA,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;IAC3B;;IAGA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa;IAC1C;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC;YACzC;QACF;QAEA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;AAC9C,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;gBAClB,IAAI,CAAC,IAAI,EAAE;AACT,oBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;oBACnC;gBACF;AAEA,gBAAA,QAAQ,IAAI,CAAC,MAAM;oBACjB,KAAK,kBAAkB,CAAC,KAAK;AAC3B,wBAAA,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE;AAE9C,wBAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC;wBAChD;oBAEF,KAAK,kBAAkB,CAAC,QAAQ;AAC9B,wBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;wBACnC;oBAEF,KAAK,kBAAkB,CAAC,WAAW;AACjC,wBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC;wBAC3C;AAEF,oBAAA;AACE,wBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;wBACnC;;YAEN,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YACjB,CAAC;AACF,SAAA,CAAC;IACJ;sHAvEW,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAAC,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,oBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AC5B5B,YAHN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACS,aACC,CAAA,CAAA,EAAA,IAAA,CAClB;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,eAAA,CAAa;YAAA,EAAA,CAAA,YAAA,EAAK,EAClB,EACF;AAEJ,YADF,8BAAuB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACM;YACzB,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;AAGvB,YADF,8BAAsB,CAAA,CAAA,EAAA,MAAA,CACd;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAA,CAAS;YAAA,EAAA,CAAA,YAAA,EAAO;YAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,CAAQ;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAkB;AAClD,YADkD,iBAAS,EACrD;YACN,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAA2B;YAC3B,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAgG;AAA9B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAAS,uBAAmB,CAAA,CAAA,CAAA,CAAC;YAC7F,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAwB;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,mBAAA,CAAiB;AAC3C,YAD2C,iBAAO,EAC5C;YAEN,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqB;YASrB,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAA2B;AAEzB,YADF,gCAAuB,CAAA,EAAA,EAAA,MAAA,CACf;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,sBAAA,CAAoB;YAAA,EAAA,CAAA,YAAA,EAAO;YACjC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,CAAQ;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAc;AACxB,YADwB,iBAAS,EAC3B;YACN,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAA2B;AAEzB,YADF,gCAAmB,CAAA,EAAA,EAAA,MAAA,CACX;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,CAAM;YAAA,EAAA,CAAA,YAAA,EAAO;YACnB,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,CAAQ;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAgB;AAIhC,YAJgC,iBAAS,EAC7B,EACF,EACF,EACF;;YA5BgC,EAAA,CAAA,SAAA,CAAA,EAAA,CAAkB;YAAlB,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,CAAA,QAAA,CAAkB;YAGtB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqC;YAArC,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAE,KAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAqC;YAIjE,EAAA,CAAA,SAAA,CAAA,CAAA,CAOC;YAPD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,aAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAOC;YAKS,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;YAAd,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,QAAA,CAAc;YAKd,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgB;YAAhB,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAAgB;;;iFDJnB,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,k1CAAA,EAAA;;kFAEN,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE/BlC;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,sBAAuB,SAAQ,qBAAqB,CAAA;IAG/D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;QAC1C;IACF;AAEQ,IAAA,MAAM,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IACpC;AAfW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,mCAAA,CAAA,CAAA,OAAA,SAAA,8BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,mCAAA,KAAA,mCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,sBAAsB,yBAAtB,sBAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA;;iFAAtB,sBAAsB,EAAA,CAAA;cAJlC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAEE,KAAK;mBAAC,KAAK;;;AC1Bd;;;;;;;;;;;;;;AAcE;AAEF;;;ICNU,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAqE;AAAjE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,+BAAqB,CAAA,CAAA,CAAA,CAAA,CAAC;IACjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAM;IACzD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsB;IACpB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAiG;AAErG,IADE,iBAAM,EACH;;;IAL+B,EAAA,CAAA,WAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAAgC;IACxC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyB;IAAzB,EAAA,CAAA,kBAAA,CAAA,WAAA,EAAA,OAAA,CAAA,KAAA,CAAyB;IAE5C,EAAA,CAAA,SAAA,CAAA,CAAA,CAAyD;AAAC,IAA1D,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,EAAA,CAAA,cAAA,CAAA,oCAAA,EAAA,OAAA,CAAA,IAAA,EAAA,MAAA,CAAyD,EAAA,EAAA,CAAA,aAAA,CAAA,CAAA,KAAA,EAAC,iDAAiC,CAAA;;ADgBxG,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AA0BxD,IAAA,WAAA,CAAmB,EAAmB,EAAA;AACpC,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,EAAE,GAAF,EAAE;AAzBrB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,EAAE,EAAE,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC1E,YAAA,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxE,YAAA,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxE,YAAA,EAAE,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACtE,YAAA;gBACE,EAAE,EAAE,aAAa,CAAC,QAAQ;AAC1B,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;gBACE,EAAE,EAAE,aAAa,CAAC,SAAS;AAC3B,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;gBACE,EAAE,EAAE,aAAa,CAAC,MAAM;AACxB,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF;IAID;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;QACjB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CACzC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAClC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,EAAE,CAAC,qBAAqB,GAAG,UAAU,CAAC,EAAE;IAC/C;AAEQ,IAAA,SAAS,KAAI;;AAGrB,IAAA,eAAe,CAAC,aAAa,EAAA;;AAE3B,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;;AAGpE,QAAA,aAAa,CAAC,QAAQ,GAAG,IAAI;QAC7B,IAAI,CAAC,EAAE,CAAC,qBAAqB,GAAG,aAAa,CAAC,EAAE;IAClD;wHApDW,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAAC,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC1B9B,YAHN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACA,aACC,CAAA,CAAA,EAAA,IAAA,CAClB;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,yBAAA,CAAuB;YAAA,EAAA,CAAA,YAAA,EAAK,EAC5B,EACF;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACe,CAAA,CAAA,EAAA,IAAA,CAC9B;YACF,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,yBAAA,CAOC;AAIT,YAHM,EAAA,CAAA,YAAA,EAAK,EACD,EACF,EACF;;YAXE,EAAA,CAAA,SAAA,CAAA,CAAA,CAOC;YAPD,EAAA,CAAA,UAAA,CAAA,GAAA,CAAA,cAAA,CAOC;;;iFDaI,uBAAuB,EAAA,CAAA;cALnC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,gtBAAA,EAAA;;kFAEN,uBAAuB,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE7BpC;;;;;;;;;;;;;;AAcE;AAEF;;AAaM,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAOxD,IAAA,WAAA,CAAmB,EAAmB,EAAA;AACpC,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,EAAE,GAAF,EAAE;AAFX,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE;IAIxD;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,EAAE,CAAC,mBAAmB,GAAG,WAAW,CAAC,WAAW;IACvD;AAEQ,IAAA,SAAS,KAAI;;AAGrB,IAAA,mBAAmB,CAAC,EAAE,EAAA;AACpB,QAAA,IAAI,CAAC,EAAE,CAAC,mBAAmB,GAAG,EAAE;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;wHA1BW,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC5BlC,YADF,8BAA6B,CAAA,CAAA,EAAA,IAAA,CACvB;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,iBAAA,CAAe;YAAA,EAAA,CAAA,YAAA,EAAK;YACxB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8G;YAAzG,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAS,GAAA,CAAA,mBAAA,CAAoB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;AAEjC,YADF,8BAAkB,CAAA,CAAA,EAAA,IAAA,CACZ;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,YAAA,CAAU;YAAA,EAAA,CAAA,YAAA,EAAK;YACnB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,CAAG;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,gBAAA,CAAc;AACnB,YADmB,iBAAI,EACjB;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmB;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAkB;AACvC,YADuC,iBAAM,EACvC;YAEN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAA+G;YAA1G,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAS,GAAA,CAAA,mBAAA,CAAoB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;AAEjC,YADF,+BAAkB,CAAA,EAAA,EAAA,IAAA,CACZ;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAA,CAAW;YAAA,EAAA,CAAA,YAAA,EAAK;YACpB,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,CAAG;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAA0C;AAC/C,YAD+C,iBAAI,EAC7C;YACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAmB;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAmB;YAAA,EAAA,CAAA,YAAA,EAAM,EACxC,EACF;;YAfkC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoD;YAApD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAH,KAAA,EAAA,GAAA,CAAA,EAAA,CAAA,mBAAA,IAAA,CAAA,CAAA,CAAoD;YAKrE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkB;YAAlB,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,WAAA,CAAkB;YAGD,EAAA,CAAA,SAAA,EAAoD;YAApD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,EAAA,CAAA,mBAAA,IAAA,CAAA,CAAA,CAAoD;YAGnF,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0C;YAA1C,EAAA,CAAA,kBAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,aAAA,EAAA,SAAA,CAA0C;YAE5B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;YAAnB,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,YAAA,CAAmB;;;iFDc7B,uBAAuB,EAAA,CAAA;cALnC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,gqBAAA,EAAA;;kBAGhB;;kBACA;;kBACA;;kBAEA;;kFALU,uBAAuB,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE7BpC;;;;;;;;;;;;;;AAcE;AAEF;AAWM,MAAgB,iBAAkB,SAAQ,aAAa,CAAA;AAW3D;;;AAGE;AACF,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ;IAChC;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW;IAC1B;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;QA9BC,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,UAAU,GAAG,KAAK;QAInB,IAAA,CAAA,aAAa,GAAY,KAAK;QAC9B,IAAA,CAAA,WAAW,GAAW,IAAI;QAC1B,IAAA,CAAA,YAAY,GAAW,IAAI;AAyBlC,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU;IACnC;AAEA,IAAA,cAAc,CAAC,IAAY,EAAE,QAAA,GAAsB,IAAI,EAAA;QACrD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC/C;AAEA,IAAA,gBAAgB,CAAC,IAAY,EAAE,QAAA,GAAsB,IAAI,EAAA;QACvD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,IAAI,EAAE,EAAE;AAC7C,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;QAC7C,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,KAAK;QACd;QAEA,IAAI,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QAE1B,IAAI,OAAO,EAAE;YACX,QACE,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;QAEnF;AAEA,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,YAAY,CAAC,IAAI,EAAE,QAAA,GAAsB,IAAI,EAAA;AAC3C,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;QAC7C,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK;IAChC;AAEA,IAAA,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAsB,IAAI,EAAA;AAClD,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;QAC7C,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACnC;AAEA,IAAA,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,WAAsB,IAAI,EAAA;AAC3D,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;AAC7C,QAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK;IAC/C;IAEA,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAsB,IAAI,EAAA;AAClE,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;AAC7C,QAAA,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClD;AAEA;;;;;AAKG;AACH,IAAA,UAAU,CACR,IAAY,EACZ,WAA4B,EAC5B,WAAsB,IAAI,EAAA;AAE1B,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;AAC7C,QAAA,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;IAClC;AAEA;;;;AAIG;AACH,IAAA,aAAa,CAAC,IAAY,EAAE,QAAA,GAAsB,IAAI,EAAA;AACpD,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;AAE7C,QAAA,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;QACxB;IACF;AAEA;;;;;AAKG;AACH,IAAA,iBAAiB,CACf,SAAe,EACf,eAIQ,EACR,cAA6D,EAAA;QAE7D,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;IACpE;AAEA;;;;;AAKG;AACH,IAAA,eAAe,CAAC,WAAmB,EAAE,GAAO,EAAE,WAAsB,IAAI,EAAA;AACtE,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;QAC7C,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;IACrC;AAEA;;;;AAIG;AACH,IAAA,eAAe,CAAC,WAAmB,EAAE,QAAA,GAAsB,IAAI,EAAA;AAC7D,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;AAC7C,QAAA,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnD;kHArJoB,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAjB,iBAAiB,EAAA,CAAA;cAHtC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE;AACX,aAAA;;kBAOE;;kBACA;;kBACA;;kBACA;;kFATmB,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC3BvC;;;;;;;;;;;;;;AAcE;AAEF;AAWM,MAAgB,UAAW,SAAQ,iBAAiB,CAAA;AAOxD,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;IACA,IAAI,MAAM,CAAC,KAAK,EAAA;QACd,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,EAAE;YACvB;AAEA,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACtB;AAMA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;QA1BD,IAAA,CAAA,OAAO,GAAG,KAAK;;QAGvB,IAAA,CAAA,UAAU,GAAqB,SAAS;;AAmB9B,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE;AAC9C,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE;IAIxD;IAIA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;IACpB;IAEA,KAAK,CAAC,cAAmB,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/B;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB;2GA7CoB,UAAU,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAV,UAAU,EAAA,CAAA;cAJ/B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAQE;;kBAiBA;;kBACA;;kFAzBmB,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC3BhC;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,kBAAmB,SAAQ,cAAc,CAAA;AACpD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,mBAAmB;IAC7C;;IAGA,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAA;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC;IACjG;;IAGA,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAS,sBAAsB,CAAC;IACjD;AAEA,IAAA,UAAU,CACR,aAAa,EAAE,MAAM,EAAE,OAAO;;AAG9B,IAAA,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ;;AAGpC,IAAA,IAAI,EAAE,QAAQ,EAAE,SAAS,EAEzB,OAAkB,EAAE,KAAgB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7B,aAAa,EAAE,MAAM,EAAE,OAAO;;AAG9B,YAAA,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ;;YAGpC,IAAI,EAAE,QAAQ,EAAE,SAAS;AAC1B,SAAA,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACnB,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;mHA1CW,kBAAkB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,kBAAkB,WAAlB,kBAAkB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAlB,kBAAkB,EAAA,CAAA;cAD9B;;;ACxBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,uBAAwB,SAAQ,cAAc,CAAA;AACzD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,wBAAwB;IAClD;AAEA,IAAA,gBAAgB,CAAC,IAAS,EAAA;QACxB,OAAO,IAAI,CAAC,GAAG,CAAQ,kBAAkB,EAAE,IAAI,CAAC;IAClD;AAEA,IAAA,eAAe,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAC3G,OAAkB,EAAE,KAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,oBAAoB,EAAE,iBAAiB;YACvC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SAC7C,CAAC,CAAC,SAAS,CAAC;AACX,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;AAEA,IAAA,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EACtE,OAAkB,EAAE,KAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SAC7C,CAAC,CAAC,SAAS,CAAC;AACX,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;AAEA,IAAA,kBAAkB,CAAC,oBAAoB,EAAE,cAAc,EAAE,OAAkB,EAAE,KAAgB,EAAA;AAC3F,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;AAClF,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;wHAhDW,uBAAuB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,uBAAuB,WAAvB,uBAAuB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAvB,uBAAuB,EAAA,CAAA;cADnC;;;ACxBD;;;;;;;;;;;;;AAaE;AAEF;MAYa,cAAc,CAAA;IAazB,WAAA,CACU,IAAY,EACZ,UAA6B,EAC7B,WAA+B,EAC/B,gBAAyC,EACzC,EAAuB,EAAA;QAJvB,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,EAAE,GAAF,EAAE;;AAhBJ,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAO;AACjC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;;AAGlD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAO;AACpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;;AAGxD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAO;AACtC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAQpE;;IAGA,gBAAgB,CAAC,cAAc,EAAE,SAAS,EAAA;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;IACxD;AAEA,IAAA,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAA;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;IAC/E;IAEA,qBAAqB,CAAC,iBAAiB,EAAE,aAAa,EAAA;QACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACpE;IAEA,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC;IAC1F;IAEA,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;IAChD;AAEA,IAAA,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAC9B,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EACpC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YACjB,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAE7C,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,gBAAA,aAAa,GAAG,aAAa,CAAC,IAAI;YACpC;YAEA,IAAI,CAAC,WAAW,CAAC,UAAU,CACzB,aAAa,EAAE,MAAM,EAAE,eAAe;;AAGtC,YAAA,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ;;YAGpC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAEzB,CAAC,IAAI,KAAI;gBACP,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE;AAClC,oBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC;oBACzC;gBACF;AAEA,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;YAC5D,CAAC,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC3C,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,iBAAiB,CAAC,KAAmB,EAAA;QACnC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IAC9C;AAEA,IAAA,aAAa,CAAC,KAAmB,EAAA;QAC/B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IAC7C;AAEA,IAAA,kBAAkB,CAAC,KAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAA;QACxE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,eAAe,CAAC;AAEnE,QAAA,IAAI,CAAC,iBAAiB,IAAI,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACjC;IACF;AAEA,IAAA,eAAe,CAAC,EAAwB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAA;AAC/G,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YACjB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAC/G,MAAK;AACH,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;AACxC,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACjC,CAAC,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;AACzC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;+GAvGW,cAAc,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,iBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAK,kBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,uBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAd,cAAc,EAAA,CAAA;cAD1B;;;AC1BD;;;;;;;;;;;;;;;;AAgBE;AAEF;;;AChBI,IADF,8BAAwC,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CACmD;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IACtF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,uBAAA,CAAuB;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,sBAAA,CAAoB;IAAA,EAAA,CAAA,YAAA,EAAwB;IACnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoC;IACtC,EAAA,CAAA,YAAA,EAAM;AAEJ,IADF,+CAAmC,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACsC;AAAlB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,KAAA,CAAG;IAAA,EAAA,CAAA,YAAA,EAAS;IACnF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAyE;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAAC,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,CAAM;AAGrF,IAHqF,EAAA,CAAA,YAAA,EAAS,EACnE,EACV,EACX;;;IAVU,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAa,CAAA,QAAA,EAAA,GAAA,CAAe,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAA0B;;AD+BlE,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAU7C,IAAA,WAAA,CAAoB,EAAkB,EAAU,EAAmB,EAAU,EAAuB,EAAA;AAClG,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAA0B,IAAA,CAAA,EAAE,GAAF,EAAE;QAA2B,IAAA,CAAA,EAAE,GAAF,EAAE;IAE/E;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAChD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YAClB,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACJ;IAEA,mBAAmB,GAAA;QACjB,MAAM,IAAI,GAAG,IAAI;;;QAIjB,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACpD,YAAA,IAAI,QAAQ,EAAE,KAAK,EAAE;gBACnB,MAAM,CAAC,MAAM,CAAC;oBACZ,aAAa,EAAE,QAAQ,EAAE,KAAK;AAC9B,oBAAA,SAAS,EAAE,sBAAsB;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,cAAc,EAAE;AACjB,qBAAA;;;;;;;;;;;;;AAcD,oBAAA,aAAa,EAAE;iBAChB,EAAE,UAAS,SAAS,EAAE,QAAQ,EAAA;oBAC7B,IAAI,QAAQ,EAAE;AACZ,wBAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ;AACjC,wBAAA,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,KAAI;AACpE,4BAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC9B,wBAAA,CAAC,CAAC;oBACJ;yBACK;AACH,wBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,yEAAyE,CAAC;wBACxF,IAAI,CAAC,WAAW,EAAE;oBACpB;AACF,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,aAAa,CAAC,OAAO,EAAA;;AAEnB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB;AACjD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC/B,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AAC9B,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAE/B,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EACxC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EACpC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;IACjE;IAEA,WAAW,GAAA;QACT,KAAK,CAAC,KAAK,EAAE;AACb,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;IAC/B;;IAGA,KAAK,GAAA;QACH,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAI;YACjB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,UAAS,iBAAiB,EAAE,OAAO,EAAA;AAC7E,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7B,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;AAEpC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAS,GAAG,EAAA;AAC1C,gBAAA,WAAW,EAAE;AACf,YAAA,CAAC,CAAC;QACJ;aACK;AACH,YAAA,WAAW,EAAE;QACf;IACF;AAEA,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC9C;gHA/GW,eAAe,EAAA,EAAA,CAAA,iBAAA,CAAAC,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAL,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,QAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YCjC5B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAe;;YAAf,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;;;iFDoBY,eAAe,EAAA,CAAA;cAL3B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,cAEhC,KAAK,EAAA,QAAA,EAAA,wpBAAA,EAAA;;kBAMhB;;kBACA;;kBACA;;kBACA;;kBACA;;kFARU,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AEjC5B;;;;;;;;;;;;;;;;AAgBE;AAEF;MASa,mBAAmB,CAAA;AAG9B,IAAA,WAAA,CAAsB,EAAiB,EAAA;QAAjB,IAAA,CAAA,EAAE,GAAF,EAAE;QAFP,IAAA,CAAA,gBAAgB,GAAG,QAAQ;IAG5C;IAEA,oBAAoB,CAAC,MAAwB,EAAE,OAAiC,EAAA;AAC9E,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtF;IAEA,mBAAmB,GAAA;QACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACxC;AAEQ,IAAA,eAAe,CAAC,MAAwB,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAkB;AAC1B,YAAA;AACI,gBAAA,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC;AACjB;SACJ;AAED,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC;AACjB,aAAA,CAAC;QACN;AAEA,QAAA,IAAG,MAAM,CAAC,OAAO,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAC,YAAY;AACjB,gBAAA,KAAK,EAAE;AACR,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC;AAEA,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG;AAClC,aAAA,CAAC;QACJ;QAEA,OAAO,CAAA,6BAAA,EAAgC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA,CAAE;IACzE;oHA5EW,mBAAmB,EAAA,EAAA,CAAA,QAAA,CAAAM,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;;AC1BD;;;;;;;;;;;;;AAaE;;MA4CW,eAAe,CAAA;IAyB1B,IACI,qBAAqB,CAAC,OAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO;IAC1C;AAYA,IAAA,WAAA,CACU,mBAAwC,EACxC,GAAsB,EACtB,MAAc,EAAA;QAFd,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,MAAM,GAAN,MAAM;AArChB;;;AAGG;QACM,IAAA,CAAA,cAAc,GAAY,IAAI;AAEvC;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO;AAO/B,QAAA,IAAA,CAAA,aAAa,GAAkB,IAAI,OAAO,EAAQ;AAQnE;;AAEG;QACK,IAAA,CAAA,gBAAgB,GAAY,IAAI;IAWxC;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACjC,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACzD;;AAGA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;;QAG1B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,EAAE;AACrC,YAAA,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;gBACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAM,KAAI;;AAEvC,oBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;oBACpB,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,CAAC,CAAC;YACJ;QACF;;QAGA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3B;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;IAC/B;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,UAAU,CAAC,MAAW,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,YAAY,CAAC,MAAiC,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,QAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;AAC9C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACvD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAE5B,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAClC,YAAA,IAAI;gBACF,OAAO,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,UAAU,EAAE;AAC9D,oBAAA,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,WAAW,CACtD,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,UAAU,CACxD;gBACH;YACF;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACtB;QACF;AAEA,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAExB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAI;;AAE5C,oBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;oBACpB,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,CAAC,CAAC;YACJ;iBAAO;gBACL,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;IACF;IAEQ,aAAa,GAAA;QACnB,IACE,IAAI,CAAC,gBAAgB;AACrB,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,yBAAyB,EAC9B;;YAEA,IAAI,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,EAAE;AACnD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAC3C;QACF;IACF;IAEQ,gBAAgB,CACtB,MAAqB,EACrB,UAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAC3C;YACE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM;YAC/B,MAAM,EACJ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;AACjC,kBAAE,MAAM,CAAC,QAAQ,CAAC;AAClB,kBAAE,SAAS;YACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,YAAA,OAAO,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;YACzF,WAAW,EACT,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;AACjC,kBAAE,MAAM,CAAC,QAAQ,CAAC;AAClB,kBAAE,EAAE;SACT,EACD,CAAC,MAAM,KAAI;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,UAAU,CAAC,MAAM,CAAC;AACpB,QAAA,CAAC,CACF;IACH;IAEQ,iBAAiB,GAAA;AACvB,QAAA,OAAO,kBAAkB,IAAI,CAAC,YAAY,EAAE,EAAE;IAChD;IAEQ,UAAU,CAAC,MAAqB,EAAE,MAAW,EAAA;;AAEnD,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;;AAEjC,YAAA,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,OAAoC,KAAI;AACtE,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;oBAC1B,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,EAAE;AAC5D,wBAAA,MAAM,KAAK,CAAC,CAAA;AAC4B,mDAAA,CAAA,CAAC;oBAC3C;oBAEA,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;AAC9D,wBAAA,MAAM,KAAK,CAAC,CAAA;AACwC,+DAAA,CAAA,CAAC;oBACvD;AAEA,oBAAA,IAAI,MAAM,CAAC,mBAAmB,EAAE;AAC9B,wBAAA,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC/D;AAEA,oBAAA,IAAI,MAAM,CAAC,mBAAmB,EAAE;AAC9B,wBAAA,OAAO,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBACzC;AAEA,oBAAA,MAAM,KAAK,CAAC,CAAA,gCAAA,CAAkC,CAAC;AACjD,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AACD,YAAA,MAAM,kBAAkB,GAAG,CACzB,IAAqC,EACrC,OAA2C,KACzC;AACF,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AAC1B,oBAAA,IAAI,MAAM,CAAC,0BAA0B,EAAE;AACrC,wBAAA,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAChC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,CACxC;oBACH;oBACA;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AACD,YAAA,MAAM,gBAAgB,GAAG,CACvB,IAA2B,EAC3B,OAAiC,KAC/B;AACF,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AAC1B,oBAAA,IAAI,MAAM,CAAC,gBAAgB,EAAE;wBAC3B,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC/C;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AAED,YAAA,MAAM,aAAa,GAAG;gBACpB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,gBAAA,aAAa,EAAE,SAAS;AACxB,gBAAA,SAAS,EAAE,CACT,IAA4B,EAC5B,OAAkC,KAChC;AACF,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AAC1B,wBAAA,IAAI,MAAM,CAAC,SAAS,EAAE;AACpB,4BAAA,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;wBACjC;;AAGA,wBAAA,IAAI,MAAM,CAAC,iBAAiB,EAAE;4BAC5B,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;wBAChD;;AAGA,wBAAA,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB;wBAC1D,IAAI,qBAAqB,EAAE;AACzB,4BAAA,OAAO,CAAC;AACL,iCAAA,OAAO;AACP,iCAAA,IAAI,CAAC,CAAC,OAAqC,KAAI;AAC9C,gCAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;oCACnB,qBAAqB,CAAC,OAAO,CAAC;AAChC,gCAAA,CAAC,CAAC;AACJ,4BAAA,CAAC,CAAC;wBACN;AACF,oBAAA,CAAC,CAAC;gBACJ,CAAC;AACD,gBAAA,OAAO,EAAE,CAAC,KAAU,KAAI;AACtB,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,wBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,4BAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;wBACvB;AACF,oBAAA,CAAC,CAAC;gBACJ,CAAC;AACD,gBAAA,QAAQ,EAAE,CAAC,IAAyB,EAAE,OAAY,KAAI;AACpD,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,wBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,4BAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;wBAChC;AACF,oBAAA,CAAC,CAAC;gBACJ,CAAC;AACD,gBAAA,OAAO,EAAE,CAAC,IAAS,EAAE,OAAgC,KAAI;AACvD,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,wBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,4BAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;wBAC/B;AACF,oBAAA,CAAC,CAAC;gBACJ,CAAC;AACD,gBAAA,MAAM,EAAE,CAAC,IAAuB,EAAE,OAA+B,KAAI;AACnE,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,wBAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,4BAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;wBAC9B;AACF,oBAAA,CAAC,CAAC;gBACJ,CAAC;;;gBAGD,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,KAAK;oBAChE,WAAW;iBACZ,CAAC;gBACF,IAAI,MAAM,CAAC,0BAA0B,IAAI,EAAE,kBAAkB,EAAE,CAAC;;;gBAGhE,IAAI,MAAM,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,CAAC;aACrD;YAED,IAAI,UAAU,GAAG,SAAS;AAC1B,YAAA,QAAO,MAAM,CAAC,aAAa;AACzB,gBAAA,KAAK,QAAQ;AACX,oBAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;oBAClC;AACF,gBAAA,KAAK,MAAM;AACT,oBAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI;oBAChC;AACF,gBAAA,KAAK,UAAU;AACb,oBAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ;oBACpC;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;oBAClC;AACF,gBAAA,KAAK,OAAO;AACV,oBAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK;oBACjC;AACF,gBAAA;oBACE;;AAEJ,YAAA,IAAG,UAAU,IAAI,SAAS,EAC1B;AACE,gBAAA,aAAa,CAAC,aAAa,GAAG,UAAU;AACxC,gBAAA,IAAG,MAAM,CAAC,aAAa,KAAK,QAAQ;AAClC,oBAAA,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK;YACrC;AACA,YAAA,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,uBAAuB,CAAA,CAAE,CAAC;AAC1E,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAC1B,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC;QACxE,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;YACnE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;gBACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;YACxB;iBAAO;gBACL,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;gBACrB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;YAC1B;YACA,OAAO,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;AACtD,QAAA,CAAC,CAAC;IACJ;gHA5UW,eAAe,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;YAJxB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAiE;;YAArC,EAAA,CAAA,UAAA,CAAA,IAAA,EAAA,GAAA,CAAA,uBAAA,CAA8B;;;iFAIjD,eAAe,EAAA,CAAA;cAR3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;gBACT,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,gBAAA,QAAQ,EAAE,kCAAkC;AAC5C,gBAAA,QAAQ,EAAE,CAAA;;AAET,EAAA,CAAA;AACD,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAKE;;kBAMA;;kBAKA;;kBAUA,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;kFAzB1C,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACzD5B;;;;;;;;;;;;;;;;;;;;;;;;;AAyBE;AAEF;;IC1BE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,CAA4D;;;IAA1B,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,YAAA,CAAuB;;AD0CrD,MAAO,qBAAsB,SAAQ,aAAa,CAAA;IAOtD,WAAA,CAAoB,EAAkB,EAAU,EAAmB,EAAA;AACjE,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAA0B,IAAA,CAAA,EAAE,GAAF,EAAE;QAFzC,IAAA,CAAA,YAAY,GAAG,sBAAsB;IAI9C;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,UAAU,EAAE;QAEjB,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YAC3C,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,IAAI,IAAI,GAAG,IAAI;QACf,IAAI,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM;AAC1D,QAAA,IAAI,QAAQ,GAAG,cAAc,CAAC,QAAQ;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAC9C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;QAE/B,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,gBAAgB,EAAE;AAChB,oBAAA;AACE,wBAAA,IAAI,EAAE,iBAAiB;AACvB,wBAAA,KAAK,EAAE;AACR;AACF;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE;AACR,aAAA;AAED,YAAA,mBAAmB,EAAE,CAAC,IAAI,MAA2B;AACnD,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,mBAAmB,EAAE;AACtB,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA;AACE,wBAAA,MAAM,EAAE;AACN,4BAAA,aAAa,EAAE,QAAQ;AACvB,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,SAAS,EAAE;AACT,gCAAA,UAAU,EAAE;AACV,oCAAA,aAAa,EAAE,QAAQ;AACvB,oCAAA,KAAK,EAAE;AACR;AACF;AACF,yBAAA;AACD,wBAAA,KAAK,EAAE;AACL,4BAAA;gCACE,IAAI,EAAE,IAAI,CAAC,YAAY;AACvB,gCAAA,QAAQ,EAAE,GAAG;AACb,gCAAA,QAAQ,EAAE,eAAe;AACzB,gCAAA,WAAW,EAAE;AACX,oCAAA,aAAa,EAAE,QAAQ;AACvB,oCAAA,KAAK,EAAE;AACR,iCAAA;AACF;AACF;AACF;AACF;aACF,CAAA;AAED,YAAA,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;gBAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,SAAS,EAAA;AACrD,oBAAA,IAAI;;AAEF,wBAAA,IAAI,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,wBAAA,IAAI,SAAS,GAAG,OAAO,CAAC,EAAE;AAC1B,wBAAA,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM;AAC3B,wBAAA,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK;AACjC,wBAAA,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa;wBAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;AAGvC,wBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB;AACjD,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC/B,wBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS;wBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AAC9B,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAE/B,wBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EACxC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EACpC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;oBAChD;AACA,oBAAA,MACA;wBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC;oBAC9C;AACF,gBAAA,CAAC,CAAC;YACJ,CAAC;AAED,YAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;YAC5B,CAAC;YAED,OAAO,EAAE,GAAG,IAAG;YACf,CAAC;AAED,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;YAC3B;SACD;IACH;AAEA,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;IACxF;sHA7HW,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAAH,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC3ClC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,CAAe;;YAAf,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;;;iFDyCY,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,4FAAA,EAAA;;kBAKhB;;kBACA;;kBACA;;kFALU,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3ClC;;;;;;;;;;;;;AAaE;AAEF;AAeM,MAAO,8BAA+B,SAAQ,aAAa,CAAA;AAK/D,IAAA,IACI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;IAC3B;IACA,IAAI,YAAY,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,UAAU,EAAE;IACnB;AAYA,IAAA,WAAA,CAAoB,EAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAFb,IAAA,CAAA,QAAQ,GAAG,KAAK;IAIzB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;IACjB;IAEQ,UAAU,GAAA;QAChB,IAAI,IAAI,GAAG,IAAI;QACf,IAAI,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM;AAC1D,QAAA,IAAI,QAAQ,GAAG,cAAc,CAAC,QAAQ;AACtC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY;QAE9B,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,gBAAgB,EAAE;AAChB,oBAAA;AACE,wBAAA,IAAI,EAAE,iBAAiB;AACvB,wBAAA,KAAK,EAAE;AACR;AACF;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,KAAK,EAAE;AACR,aAAA;AAED,YAAA,0BAA0B,EAAE,CAAC,IAAI,MAAkC;AACjE,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,mBAAmB,EAAE;AACtB;aACF,CAAA;AAED,YAAA,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;AAC3B,gBAAA,IAAI;AACF,oBAAA,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc;AACxC,oBAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CACrB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAC3C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACvF;AACA,gBAAA,MACA;oBACE,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC5C;YACF,CAAC;AAED,YAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;gBAC1B,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;YAC5C,CAAC;YAED,OAAO,EAAE,GAAG,IAAG;gBACb,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;YAC5C,CAAC;AAED,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAI;gBACzB,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC;YAC5C;SACD;IACH;+HArGW,8BAA8B,EAAA,EAAA,CAAA,iBAAA,CAAAD,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,yCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC9B3C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,CAA4D;;YAA1B,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,GAAA,CAAA,YAAA,CAAuB;;;iFD8B5C,8BAA8B,EAAA,CAAA;cAL1C,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yCAAyC,cAEvC,KAAK,EAAA,QAAA,EAAA,sEAAA,EAAA;;kBAOhB;;kBASA;;kBAGA;;kBACA;;kBACA;;kBACA;;kBACA;;kBACA;;kFAtBU,8BAA8B,EAAA,EAAA,SAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,uEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE9B3C;;;;;;;;;;;;;;;;AAgBE;AAEF;;;AChBI,IADF,8BAAwC,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CACoD;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IACvF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,uBAAA,CAAuB;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,iBAAA,CAAe;IAAA,EAAA,CAAA,YAAA,EAAwB;IAC9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B;IACjC,EAAA,CAAA,YAAA,EAAM,EACO,EACX;;;IANU,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,IAAA,CAAc,CAAA,QAAA,EAAA,GAAA,CAAe,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAA0B;;ADgCnE,MAAO,YAAa,SAAQ,UAAU,CAAA;IAW1C,WAAA,CAAoB,EAAkB,EAAU,EAAmB,EAAA;AACjE,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAA0B,IAAA,CAAA,EAAE,GAAF,EAAE;IAElD;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAW;AAC7C,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;AAClC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,mBAAmB,GAAA;QACvB,IAAI,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc;QAChE,MAAM,IAAI,GAAG,IAAI;QAEjB,IAAI,CAAC,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC3D,iBAAiB,EAAE,YAAW;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AACjC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACjC,gBAAA,MAAM,QAAQ,GAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEnI,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;AACnC,oBAAA,OAAO,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,GAAG,EAAE;gBAC9D;AAEA,gBAAA,OAAO,EAAE;YACX,CAAC;YACD,UAAU,EAAE,MAAK;;AAEf,gBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB;AACjD,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC/B,gBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS;gBACjC,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AAC9B,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAE/B,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EACxC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EACpC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;gBAEnD,IAAI,CAAC,OAAO,EAAE;YAChB;AACD,SAAA,CAAC;;AAGF,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC9C;;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;;AAEvB,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAC/B;QAEA,KAAK,CAAC,KAAK,EAAE;IACf;AAEA,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC9C;6GA5EW,YAAY,EAAA,EAAA,CAAA,iBAAA,CAAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YClCzB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAe;;YAAf,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CASC;;;iFDyBY,YAAY,EAAA,CAAA;cALxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,qYAAA,EAAA;;kBAOhB;;kBACA;;kBACA;;kBACA;;kBACA;;kFATU,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AElCzB;;;;;;;;;;;;;AAaE;;ACbF;;;;;;;;;;;;;AAaE;MAEW,YAAY,CAAA;AACC,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAA2B;AACjE,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,GAAG,EAAE,IAAI;KACV,CAAC;AAEK,IAAA,OAAO,0BAA0B,CAAC,MAAuB,EAAE,QAAgB,EAAA;AAChF,QAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC5D,QAAA,OAAO,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAG,MAAM,CAAA,CAAE,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,QAAQ,EAAE;IAChE;;;AC9BF;;;;;;;;;;;;;AAaE;AAEF;;ACfA;;;;;;;;;;;;;AAaE;AAEF;AASM,MAAO,mBAAoB,SAAQ,eAAsB,CAAA;AAK7D,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,EAAE,CAAC;QADW,IAAA,CAAA,IAAI,GAAJ,IAAI;QAJhB,IAAA,CAAA,IAAI,GAAU,EAAE;IAM1B;AAEA,IAAA,eAAe,CAAC,IAAU,EAAA;AACxB,QAAA,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IAC1C;AAEA,IAAA,IAAI,CAAC,MAAY,EAAE,OAAkB,EAAE,KAAgB,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B;AAEA,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW;AAE1B,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,GAAG,IAAI,CAAC,eAAe;QAC/B;QAEA,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM;QAC/B;QAEA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAW,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,gBAAA,IAAI,OAAO;AAAE,oBAAA,OAAO,EAAE;YACxB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;oHAtCW,mBAAmB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;;ACvBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAG1D,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;IAE1B;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;IAChB;AAEA,IAAA,SAAS,CAAC,QAAa,EAAA;QACrB,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;;QAGzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;;AAGxE,QAAA,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AACzC,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB;AAEA,IAAA,IAAI,CAAC,IAAS,EAAE,KAAc,EAAE,MAAiB,EAAA;QAC/C,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ;QAEvC,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;YACf,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;gBACX,IAAI,CAAC,IAAI,EAAE;YACb,CAAC;YACD,QAAQ,EAAE,MAAK;gBACb,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,IAAI,MAAM;AAAE,oBAAA,MAAM,EAAE;YACtB;AACD,SAAA,CAAC;IACJ;IAEA,MAAM,CAAC,IAAS,EAAE,MAAiB,EAAA;QACjC,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,OAAA,EAAU,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AACrC,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;gBACb,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,IAAI,MAAM;AAAE,oBAAA,MAAM,EAAE;YACtB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;gBACX,IAAI,CAAC,IAAI,EAAE;YACb;AACD,SAAA,CAAC;IACJ;IAEA,IAAI,CAAC,MAAW,EAAE,IAAU,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CACnC,GAAG,CAAC,GAAG,IAAW,GAAG,CAAC,CACvB;IACH;oHA3DW,mBAAmB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAnB,mBAAmB,EAAA,CAAA;cAD/B;;;ACxBD;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAO,oBAAqB,SAAQ,cAAc,CAAA;AACtD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,qBAAqB;IAC/C;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAM,eAAe,CAAC;IACvC;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,GAAG,CAAM,UAAU,CAAC;IAClC;qHAZW,oBAAoB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,oBAAoB,WAApB,oBAAoB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAApB,oBAAoB,EAAA,CAAA;cADhC;;;ACzBD;;;;;;;;;;;;;AAaE;AAEF;MASa,wBAAwB,CAAA;IAanC,WAAA,CACU,UAA6B,EAC7B,GAAyB,EAAA;QADzB,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,GAAG,GAAH,GAAG;;AAXL,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,KAAK,CAAC;AACrD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC;;AAG/C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AACvD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;QAExD,IAAA,CAAA,eAAe,GAAG,KAAK;QAKrB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,SAAS,GAAA;;AAEf,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;QACvC,IAAI,CAAC,QAAQ,EAAE;;AAEb,YAAA,QAAQ,GAAG,IAAI,CAAC,eAAe;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ;QACrC;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAC7C,YAAA,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC5C,IAAI,CAAC,aAAa,EAAE;;AAElB,gBAAA,IAAI,eAAe,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ;AAChD,gBAAA,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B;AACD,SAAA,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtC;AAEQ,IAAA,eAAe,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;;AAGA,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC5B;AAEA,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,4BAA4B;QACpD,IAAI,YAAY,EAAE;YAChB,IAAI,cAAc,GAAG,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC;YAE1D,cAAc,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC9D;QAEA,OAAO,IAAI,GAAG,KAAK;IACrB;AAEA,IAAA,IAAW,4BAA4B,GAAA;AACrC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzE;AAEA,QAAA,OAAO,IAAI;IACb;yHAjFW,wBAAwB,EAAA,EAAA,CAAA,QAAA,CAAAT,iBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAY,oBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,wBAAwB,WAAxB,wBAAwB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAxB,wBAAwB,EAAA,CAAA;cADpC;;;ACvBD;;;;;;;;;;;;;AAaE;AAEF;AAUM,MAAO,sBAAuB,SAAQ,cAAc,CAAA;AACxD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,uBAAuB;IACjD;AAEA,IAAA,kBAAkB,CAAC,EAAE,EAAA;QACnB,OAAO,IAAI,CAAC,GAAG,CAAM,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC;IACpD;AAEA,IAAA,0BAA0B,CAAC,UAAU,EAAA;QACnC,OAAO,IAAI,CAAC,GAAG,CAAM,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC;IACpE;AAEA,IAAA,eAAe,CAAC,IAAI,EAAA;QAClB,OAAO,IAAI,CAAC,GAAG,CAAM,iBAAiB,EAAE,IAAI,CAAC;IAC/C;uHAhBW,sBAAsB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,sBAAsB,WAAtB,sBAAsB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAtB,sBAAsB,EAAA,CAAA;cADlC;;;ACxBD;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAO,cAAe,SAAQ,cAAc,CAAA;AAChD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,OAAO;IACjC;+GAJW,cAAc,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAd,cAAc,EAAA,CAAA;cAD1B;;;ACzBD;;;;;;;;;;;;;;AAcE;AAEF;AASM,MAAO,gBAAiB,SAAQ,cAAc,CAAA;AAClD,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,SAAS;IACnC;AAEA,IAAA,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAkB,EAAE,KAAgB,EAAA;QAC/F,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7F,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,CAAC,KAAI;AACX,gBAAA,IAAI,KAAK;oBAAE,KAAK,CAAC,CAAC,CAAC;YACrB;AACD,SAAA,CAAC;IACJ;iHAfW,gBAAgB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,gBAAgB,WAAhB,gBAAgB,CAAA,IAAA,EAAA,CAAA,CAAA;;iFAAhB,gBAAgB,EAAA,CAAA;cAD5B;;;ACxBD;;;;;;;;;;;;;AAaE;AAEF;;ACfA;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAgB,qBAAsB,SAAQ,iBAAiB,CAAA;AAHrE,IAAA,WAAA,GAAA;;QAKE,IAAA,CAAA,KAAK,GAAG,EAAE;QAiBD,IAAA,CAAA,YAAY,GAAG,CAAC,CAAC;;AAGhB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE;AA6C9D,IAAA;;AA7DC,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,EAAE;IAChB;IACA,IAAI,aAAa,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,KAAK,EAAE;YACV;QACF;AAEA,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,EAAE,GAAG,KAAK;QACjB;IACF;IAMA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;YACxC;QACF;aACK;YACH,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;YACxD;QACF;IACF;AAEQ,IAAA,eAAe,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9B;IAEQ,WAAW,GAAA;QACjB,IAAI,GAAG,GAAG,EAAE;AACZ,QAAA,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpC;AAEA,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;IAC9B;;AAGA,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IAC7B;AAlEoB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,kCAAA,CAAA,CAAA,OAAA,SAAA,6BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,kCAAA,KAAA,kCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,qBAAqB,yBAArB,qBAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAArB,qBAAqB,EAAA,CAAA;cAH1C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE;AACX,aAAA;;kBAOE;;kBAaA;;kBAGA;;kFAtBmB,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC1B3C;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAgB,QAAS,SAAQ,aAAa,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,qBAAA,CAAA,CAAA,OAAA,SAAA,gBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,qBAAA,KAAA,qBAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,QAAQ,yBAAR,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAR,QAAQ,EAAA,CAAA;cAJ7B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kFACqB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC1B9B;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAgB,YAAa,SAAQ,iBAAiB,CAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,yBAAA,CAAA,CAAA,OAAA,SAAA,oBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,yBAAA,KAAA,yBAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,YAAY,yBAAZ,YAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAZ,YAAY,EAAA,CAAA;cAJjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kFACqB,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC1BlC;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAgB,aAAc,SAAQ,QAAQ,CAAA;AAJpD,IAAA,WAAA,GAAA;;QAKE,IAAA,CAAA,aAAa,GAAG,IAAI;QAIpB,IAAA,CAAA,UAAU,GAAW,CAAC;QACtB,IAAA,CAAA,QAAQ,GAAW,EAAE;QACrB,IAAA,CAAA,SAAS,GAAW,CAAC;QACrB,IAAA,CAAA,WAAW,GAAW,CAAC;AAqCxB,IAAA;IAjCQ,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEO,UAAU,CAAC,eAAwB,KAAK,EAAA;QAC7C,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE;QACpB;aACK;YACH,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AAEO,IAAA,SAAS,CAAC,MAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;QAC3B,IAAI,CAAC,WAAW,EAAE;IACpB;;AAGA,IAAA,OAAO,CAAC,KAAK,EAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC;IAC7D;;AAGA,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;IACjB;AA5CoB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,0BAAA,CAAA,CAAA,OAAA,SAAA,qBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,0BAAA,KAAA,0BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,aAAa,yBAAb,aAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAb,aAAa,EAAA,CAAA;cAJlC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kFACqB,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC1BnC;;;;;;;;;;;;;;AAcE;AAEF;AAUM,MAAgB,QAAS,SAAQ,aAAa,CAAA;AAJpD,IAAA,WAAA,GAAA;;QAKU,IAAA,CAAA,cAAc,GAAG,IAAI;QAI7B,IAAA,CAAA,UAAU,GAAW,CAAC;QACtB,IAAA,CAAA,SAAS,GAAW,CAAC;QACrB,IAAA,CAAA,WAAW,GAAW,CAAC;QACvB,IAAA,CAAA,UAAU,GAAG,KAAK;;QAGT,IAAA,CAAA,QAAQ,GAAW,EAAE;QACrB,IAAA,CAAA,eAAe,GAAY,KAAK;;AAG/B,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE;AACrD,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE;AAmE7D,IAAA;AAjEC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;IAC5B;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,EAAE;IACb;IAEU,IAAI,GAAA;QACZ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE;QACpB;aACK;YACH,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;IAEU,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IAC3B;IAEU,cAAc,CAAC,CAAC,GAAG,IAAI,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB;IAKA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QAEtB,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEA,UAAU,CAAC,eAAwB,KAAK,EAAA;QACtC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE;QACpB;aACK;YACH,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AAEA,IAAA,SAAS,CAAC,MAAW,EAAA;QACnB,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM;YAC5B,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;;AAGA,IAAA,OAAO,CAAC,KAAK,EAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC;IAC7D;;AAGA,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;IACjB;AAlFoB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,qBAAA,CAAA,CAAA,OAAA,SAAA,gBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,qBAAA,KAAA,qBAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,QAAQ,yBAAR,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAR,QAAQ,EAAA,CAAA;cAJ7B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAYE;;kBACA;;kBAGA;;kBACA;;kFAhBmB,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC1B9B;;;;;;;;;;;;;AAaE;AAEF;;;AAWM,MAAO,aAAc,SAAQ,aAAa,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,0BAAA,CAAA,CAAA,OAAA,SAAA,qBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,0BAAA,KAAA,0BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,aAAa,yBAAb,aAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAX,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC1B1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAgC;YAC9B,EAAA,CAAA,YAAA,CAAA,CAAA,CAA8C;YAC9C,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAA4C;YAC5C,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAyB;YACzB,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAA8C;YAChD,EAAA,CAAA,YAAA,EAAM;;AALD,YAAA,EAAA,CAAA,UAAA,CAAA,uCAA0B,CAAA;;;iFD0BlB,aAAa,EAAA,CAAA;cALzB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cAEZ,KAAK,EAAA,QAAA,EAAA,yOAAA,EAAA;;kFAEN,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1B1B;;;;;;;;;;;;;AAaE;AAEF;;;ICbI,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAkB;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAAhB,EAAA,CAAA,SAAA,EAAW;IAAX,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAW;;ADwB3B,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,gCAAA,CAAA,CAAA,OAAA,SAAA,2BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,gCAAA,KAAA,gCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,mBAAmB,yBAAnB,mBAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAF,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;ACzB9B,YADF,2BAAuC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACb;YACtB,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAkB;YACpB,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;YAC3B,EAAA,CAAA,YAAA,EAAM;;AALD,YAAA,EAAA,CAAA,UAAA,CAAA,8CAAiC,CAAA;YAE7B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAW;YAAX,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,KAAA,CAAW;;;iFDwBP,mBAAmB,EAAA,CAAA;cAL/B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cAEnB,KAAK,EAAA,QAAA,EAAA,4KAAA,EAAA;;kFAEN,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BhC;;;;;;;;;;;;;AAaE;AAEF;;AAWM,MAAO,iBAAkB,SAAQ,aAAa,CAAA;AAAvC,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,8BAAA,CAAA,CAAA,OAAA,SAAA,yBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,8BAAA,KAAA,8BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,iBAAiB,yBAAjB,iBAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC1B9B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAqC;YACnC,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;YAC3B,EAAA,CAAA,YAAA,EAAM;;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,4CAA+B,CAAA;;;iFD0BvB,iBAAiB,EAAA,CAAA;cAL7B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAEjB,KAAK,EAAA,QAAA,EAAA,oFAAA,EAAA;;kFAEN,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1B9B;;;;;;;;;;;;;AAaE;AAEF;;AAWM,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,gCAAA,CAAA,CAAA,OAAA,SAAA,2BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,gCAAA,KAAA,gCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,mBAAmB,yBAAnB,mBAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC1BhC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAuC;YACrC,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;YAC3B,EAAA,CAAA,YAAA,EAAM;;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,8CAAiC,CAAA;;;iFD0BzB,mBAAmB,EAAA,CAAA;cAL/B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cAEnB,KAAK,EAAA,QAAA,EAAA,sFAAA,EAAA;;kFAEN,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BhC;;;;;;;;;;;;;AAaE;AAEF;MAQa,sBAAsB,CAAA;IACjC,WAAA,CAAoB,EAA+B,EAAU,OAAkB,EAAA;QAA3D,IAAA,CAAA,EAAE,GAAF,EAAE;QAAuC,IAAA,CAAA,OAAO,GAAP,OAAO;IACpE;IAEA,QAAQ,GAAA;;AAEL,QAAA,IAAI,CAAC,OAAO,CAAC,OAAe,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;IACrE;uHAPW,sBAAsB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAZ,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,aAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;iFAAtB,sBAAsB,EAAA,CAAA;cAJlC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,kCAAkC;AAC5C,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACtBD;;;;;;;;;;;;;AAaE;AAEF;;ICfA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,CACM;;;IAGJ,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;IAE7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuD;IACrD,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAF0B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,IAAA,CAAmB;IACpD,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,IAAA,EAAA,GAAA,CACF;;;IALJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA4D;IAC1D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuD;AAI3D,IADE,iBAAS,EACL;;;IAPuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IACjB,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IAC7C,EAAA,CAAA,SAAA,EAA+B;IAA/B,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,MAAA,CAAA,WAAA,CAA+B;IACZ,EAAA,CAAA,SAAA,EAAQ;IAAR,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,CAAQ;;ADsB/B,MAAO,mBAAoB,SAAQ,iBAAiB,CAAA;AAGxD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,UAAU,GAAV,UAAU;AAE5B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;IACxB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACzD;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;QACzB;aACK;QACL;IACF;oHAvBW,mBAAmB,EAAA,EAAA,CAAA,iBAAA,CAAAa,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,8BAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ACzBhC,YAHA,oEAA4B,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAGyB;;YAH/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YAGpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFDyBd,mBAAmB,EAAA,CAAA;cAL/B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,cAE5B,KAAK,EAAA,QAAA,EAAA,0XAAA,EAAA;;kFAEN,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BhC;;;;;;;;;;;;;;AAcE;AAEF;;IChBA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,CACM;;;IAGJ,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAIsD;IACxD,EAAA,CAAA,YAAA,EAAM;;;IAPuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IACjB,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACjC,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,KAAA,CAAc,CAAA,gBAAA,EAAA,IAAA,CAGS,CAAA,iBAAA,EAAA,MAAA,CAAA,WAAA,CACQ;;ADoB/C,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AAGzD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,UAAU,GAAV,UAAU;IAE9B;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACzD;AACD,SAAA,CAAC;IACJ;qHAbW,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC1BjC,YAHA,qEAA4B,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAGyB;;YAH/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YAGpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFD0Bd,oBAAoB,EAAA,CAAA;cALhC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,8aAAA,EAAA;;kFAEN,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE7BjC;;;;;;;;;;;;;;AAcE;AAEF;AAWM,MAAgB,0BAA2B,SAAQ,iBAAiB,CAAA;AACxE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;IACT;IAEQ,eAAe,CAAC,OAAO,EAAE,IAAa,EAAA;QAC5C,IAAI,KAAK,GAAG,SAAS;AACrB,QAAA,IAAI,OAAO,EAAE,aAAa,EAAE;YAC1B,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC;QACvD;QAEA,OAAO,KAAK,IAAI,IAAI;IACtB;AAEQ,IAAA,iBAAiB,CAAC,aAA8B,EAAA;AACtD,QAAA,IAAI,KAAa;AACjB,QAAA,IAAI,OAAO;AACX,QAAA,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO;QAEnC,QAAQ,OAAO;;AAEb,YAAA,KAAK,kBAAkB;AACvB,YAAA,KAAK,kBAAkB;gBACrB,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC1E;;AAGF,YAAA,KAAK,sBAAsB;AACzB,gBAAA,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAChD;AAEF,YAAA;gBACE,OAAO,GAAG,aAAa;gBACvB;;QAGJ,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAChD,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;YACvC;QACF;AAEA,QAAA,OAAO,KAAK;IACd;IAEA,yBAAyB,GAAA;QACvB,IAAI,QAAQ,GAAa,EAAE;AAE3B,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACpD,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE3C,YAAA,IAAgB,OAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE;AACzC,gBAAA,MAAM,CAAC,IAAI,CAAa,OAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;oBACvD,IAAI,KAAK,GAAe,OAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvE,gBAAA,CAAC,CAAC;YACJ;iBACK;gBACH,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5E;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,qBAAqB,CAAC,OAAY,EAAE,IAAa,EAAE,KAAc,EAAA;QAC/D,IAAI,QAAQ,GAAa,EAAE;AAC3B,QAAA,IAAI,KAAK;QAET,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,KAAK;QACf;aACK;YACH,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC;YAE3C,IAAI,CAAC,KAAK,EAAC;AACT,gBAAA,KAAK,GAAE,OAAO,CAAC,IAAI;YACrB;QACF;AAEA,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,KAAK,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;gBACpC,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBAC5C,QAAQ,SAAS;AACf,wBAAA,KAAK,UAAU;AACb,4BAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA,YAAA,CAAc,CAAC;4BACrC;AAEF,wBAAA,KAAK,WAAW;AACd,4BAAA,QAAQ,CAAC,IAAI,CACX,CAAA,EAAG,KAAK,qBAAqB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA,WAAA,CAAa,CACrF;4BACD;AAEF,wBAAA,KAAK,SAAS;AACZ,4BAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA,4BAAA,CAA8B,CAAC;4BACrD;AAEF,wBAAA,KAAK,QAAQ;AACX,4BAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA,gBAAA,CAAkB,CAAC;4BACzC;AAEF,wBAAA,KAAK,WAAW;AACd,4BAAA,QAAQ,CAAC,IAAI,CACX,CAAA,EAAG,KAAK,sBAAsB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA,WAAA,CAAa,CACtF;4BACD;AAEF,wBAAA,KAAK,mBAAmB;AACtB,4BAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA,4BAAA,CAA8B,CAAC;4BACrD;;gBAEN;YACF;QACF;AAEA,QAAA,OAAO,QAAQ;IACjB;2HAtHoB,0BAA0B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAA1B,0BAA0B,EAAA,CAAA;cAJ/C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kFACqB,0BAA0B,EAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC3BhD;;;;;;;;;;;;;;AAcE;AAEF;;ACdI,IADF,0BAA4G,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CACjF;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAW;AACtC,IADsC,iBAAO,EACxC;;;IADsB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAW;IAAX,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAW;;;IAFxC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAgE;IAC9D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAA4G;IAG9G,EAAA,CAAA,YAAA,EAAK;;;IAHmB,EAAA,CAAA,SAAA,EAAoF;IAApF,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,SAAA,CAAA,QAAA,CAAA,MAAA,CAAA,WAAA,CAAA,EAAA,MAAA,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAoF;;AD0BtG,MAAO,8BAA+B,SAAQ,0BAA0B,CAAA;AAAjE,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,2CAAA,CAAA,CAAA,OAAA,SAAA,sCAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,2CAAA,KAAA,2CAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,8BAA8B,yBAA9B,8BAA8B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC3B3C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAgE;;YAArC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,WAAA,CAAA,CAAmC;;;iFD2BjD,8BAA8B,EAAA,CAAA;cAL1C,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,2QAAA,EAAA;;kFAEN,8BAA8B,EAAA,EAAA,SAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3B3C;;;;;;;;;;;;;AAaE;AAEF;;ICdE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA4B;IAC1B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAIuD;IADnC,EAAA,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,uFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,qFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;AACtD,IALE,iBAIuD,EACnD;;;IAN6B,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACjC,EAAA,CAAA,SAAA,EAAc;AAEd,IAFA,mCAAc,CAAA,gBAAA,EAAA,IAAA,CAES;IACvB,EAAA,CAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAgB;;;IAKpC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;AAKvD,IAJA,wCAGsD,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAIW;IACnE,EAAA,CAAA,YAAA,EAAM;;;IAVuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IACjB,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACjC,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,KAAA,CAAc,CAAA,gBAAA,EAAA,IAAA,CAES,CAAA,iBAAA,EAAA,MAAA,CAAA,WAAA,CACQ;IAClB,EAAA,CAAA,SAAA,EAAuB;AAGvB,IAHA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CACQ,mCACJ,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CACE;;ADS1D,MAAO,4BAA6B,SAAQ,qBAAqB,CAAA;AACrE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB;IACrC;6HALW,4BAA4B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,uCAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,aAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AClBzC,YATA,6EAA4B,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CASyB;;YAT/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YASpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFDkBd,4BAA4B,EAAA,CAAA;cALxC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uCAAuC,cAErC,KAAK,EAAA,QAAA,EAAA,6/BAAA,EAAA;;kFAEN,4BAA4B,EAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,mFAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3BzC;;;;;;;;;;;;;AAaE;AAEF;;ICdE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA4B;IAC1B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAIuD;IADnC,EAAA,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,oFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,kFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;AACtD,IALE,iBAIuD,EACnD;;;IAN6B,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACjC,EAAA,CAAA,SAAA,EAAc;AAEd,IAFA,mCAAc,CAAA,gBAAA,EAAA,IAAA,CAES;IACvB,EAAA,CAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAgB;;;IAKpC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;AAKvD,IAJA,wCAGsD,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAIW;IACnE,EAAA,CAAA,YAAA,EAAM;;;IAVuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IACjB,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACjC,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,KAAA,CAAc,CAAA,gBAAA,EAAA,IAAA,CAES,CAAA,iBAAA,EAAA,MAAA,CAAA,WAAA,CACQ;IAClB,EAAA,CAAA,SAAA,EAAuB;AAGvB,IAHA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CACQ,mCACJ,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CACE;;ADS1D,MAAO,yBAA0B,SAAQ,qBAAqB,CAAA;AAClE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,gBAAgB;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,aAAa;IAClC;0HALW,yBAAyB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAzB,yBAAyB,EAAA,SAAA,EAAA,CAAA,CAAA,oCAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,aAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AClBtC,YATA,0EAA4B,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CASyB;;YAT/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YASpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFDkBd,yBAAyB,EAAA,CAAA;cALrC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oCAAoC,cAElC,KAAK,EAAA,QAAA,EAAA,6/BAAA,EAAA;;kFAEN,yBAAyB,EAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,6EAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3BtC;;;;;;;;;;;;;;AAcE;AAEF;;IChBA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,CACM;;;IAGJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAqD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAQ;IAAA,EAAA,CAAA,YAAA,EAAQ;;;IAEnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuD;IACrD,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAF0B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,IAAA,CAAmB;IACpD,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,IAAA,EAAA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,CAAA,IAAA,EAAA,GAAA,CACF;;;IALJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAqD;IACrD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAkF;IAChF,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAuD;AAI3D,IADE,iBAAS,EACL;;;IAPuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IAC1C,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IACpB,EAAA,CAAA,SAAA,EAA+B;AAAqB,IAApD,oDAA+B,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAA0C;IACtD,EAAA,CAAA,SAAA,EAAQ;IAAR,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,CAAQ;;ADuB/B,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AAKzD,IAAA,WAAA,CAAoB,UAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,UAAU,GAAV,UAAU;QAFrB,IAAA,CAAA,QAAQ,GAAG,KAAK;AAIvB,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;IACzB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACzD;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;QACzB;aACK;YACH,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YAClD,IAAI,QAAQ,EAAE;gBACZ;YACF;;AAGA,YAAA,IAAI;gBACF,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;gBAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC/C;AACA,YAAA,MAAM;YACN;;AAGA,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACrC,YAAA,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ;YAElC,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC/C;QACF;IACF;qHA7CW,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC1BjC,YAHA,qEAA4B,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAGyB;;YAH/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YAGpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFD0Bd,oBAAoB,EAAA,CAAA;cALhC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,kaAAA,EAAA;;kBAKhB;;kFAHU,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE7BjC;;;;;;;;;;;;;AAaE;AAIF,IAAI,cAAc,GAAG,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,eAAe,EAAE,GAAG,EAAE,eAAe;AAE/E,MAAM,oBAAoB,GAAW;AAC1C,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,aAAa,EAAE,KAAK;AAEpB,IAAA,cAAc,EAAE;AACd,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE;gBACP,MAAM;gBACN,QAAQ;gBACR,WAAW;gBACX,eAAe;gBACf,WAAW;gBACX,aAAa;gBACb,YAAY;gBACZ,UAAU;gBACV,WAAW;gBACX,iBAAiB;gBACjB,aAAa;gBACb,aAAa;AACd,aAAA;AACF,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE;gBACP,WAAW;gBACX,aAAa;gBACb,gBAAgB;gBAChB,YAAY;gBACZ,cAAc;gBACd,UAAU;gBACV,UAAU;gBACV,iBAAiB;gBACjB,gBAAgB;gBAChB,YAAY;gBACZ,SAAS;gBACT,QAAQ;gBACR,OAAO;AACR,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE;gBACP,YAAY;gBACZ,aAAa;gBACb,aAAa;gBACb,WAAW;gBACX,aAAa;gBACb,mBAAmB;gBACnB,SAAS;AACV,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE;gBACP,WAAW;gBACX,iBAAiB;gBACjB,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,YAAY;AACb,aAAA;AACD,YAAA,KAAK,EAAE,OAAO;AACf;AACF,KAAA;AAED;;;AAGE;AACF,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,iBAAiB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IACzC,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;;;ACvEzD;AAYM,MAAgB,uBAAwB,SAAQ,iBAAiB,CAAA;AAWrE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAPF,IAAA,CAAA,uBAAuB,GAAG,KAAK;QAC/B,IAAA,CAAA,uBAAuB,GAAG,EAAE;;QAG1B,IAAA,CAAA,aAAa,GAAW,EAAE;AAIjC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC5B;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa;AAC5B,QAAA,IAAI,OAAO,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE;YACzC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC;AAEA,QAAA,IAAI,UAAU,GAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,CAAC;AAC7D,QAAA,MAAM,GAAG,GAAG,eAAe,CAAC,eAAe;QAE3C,IAAI,GAAG,EAAE;YACP,UAAU,GAAG,CAAC,CAAC,MAAM,CACnB,EAAE,EACF,UAAU,EACV,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,GAAG,KAAK,CAAC,CACvC;QACH;QAEA,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;YACtD,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK;QAClD;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU;IAC3B;IAEA,eAAe,GAAA;QACb,MAAM,IAAI,GAAG,IAAI;AACjB,QAAA,UAAU,CAAC,YAAA;AACT,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;YACnC,IAAI,CAAC,aAAa,EAAE;QACtB,CAAC,EAAE,GAAG,CAAC;IACT;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,uBAAuB;;AAG1C,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;QAEjC,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,gBAAA,OAAO,CAAC,CAAC,CAAC,EAAE;YACd;QACF;IACF;IAEU,SAAS,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;QACtC;AAEA,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,kBAAkB,CAAC,MAAM,EAAA;QACvB,MAAM,IAAI,GAAG,IAAI;AAEjB,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACjC,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAK;gBACrC,MAAM,CAAC,IAAI,CAAC;AACd,YAAA,CAAC,CAAC;QACJ;aAAO;YACL,MAAM,CAAC,IAAI,CAAC;QACd;IACF;AAEA,IAAA,iBAAiB,CAAC,OAAO,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAChC;IAEA,eAAe,CAAC,UAAU,EAAE,cAAc,EAAA;AACxC,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,EAAA;AACpC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;YAC/B,IAAI,OAAO,MAAM,IAAI,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClD;YACF;YAEA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU;YACrD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc;AAC/D,QAAA,CAAC,CAAC;IACJ;wHAlGoB,uBAAuB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAvB,uBAAuB,EAAA,CAAA;cAJ5C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAUE;;kFATmB,uBAAuB,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC9B7C;;;;;;;;;;;;;AAaE;AAEF;;ICdE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA4B;IAC1B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAA4E;AAAzC,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAc,gCAAyB,CAAA,CAAA,CAAA,CAAA,CAAC;AAC7E,IAD8E,iBAAW,EACnF;;;IAF6B,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IAC3C,EAAA,CAAA,SAAA,EAAwB;IAAxB,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,MAAA,CAAA,OAAA,CAAwB;;;IAIlC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAqE;;;AAAxD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,8BAAkB,CAAA;;;;IADjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqD;IACnD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAuD;IACvD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAGmD;AAAzC,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAc,gCAAyB,CAAA,CAAA,CAAA,CAAA,CAAC;IAClD,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,CAAA;IAAA,EAAA,CAAA,YAAA,EAAW;IACX,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAGiE;IACnE,EAAA,CAAA,YAAA,EAAM;;;IAXuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB;IACjB,EAAA,CAAA,SAAA,EAAoB;IAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAoB;IAC3C,EAAA,CAAA,SAAA,EAAwB;AACxB,IADA,6CAAwB,CAAA,iBAAA,EAAA,MAAA,CAAA,WAAA,CACO;;IAIR,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AAGvB,IAHA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAuB,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CACQ,mCACJ,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CACE;;ADW1D,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAC9D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;IACT;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;QAC7B,IAAI,OAAO,MAAM,IAAI,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;YAClD;QACF;QAEA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B;AAEA,IAAA,OAAO,CAAC,OAAO,EAAA;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,EAAA;AACpC,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;YAC7B,IAAI,OAAO,MAAM,IAAI,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClD;YACF;AAEA,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1B,QAAA,CAAC,CAAC;IACJ;oHAvBW,mBAAmB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ACrBhC,YALA,oEAA4B,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAKyB;;YAL/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YAKpB,EAAA,CAAA,SAAA,EAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;;;iFDqBd,mBAAmB,EAAA,CAAA;cAL/B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cAEnB,KAAK,EAAA,QAAA,EAAA,61BAAA,EAAA;;kFAEN,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BhC;;;;;;;;;;;;;;AAcE;AAEF;;MAQa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;;QAOW,IAAA,CAAA,OAAO,GAAY,IAAI;AACjC,IAAA;mHAHY,kBAAkB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,kBAAA,EAAAD,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCxB/B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CACgE;YAChE,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;;AADhB,YADA,oEAAuD,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,GAAA,cAAA,GAAA,aAAA,CACH;;;iFDuBhD,kBAAkB,EAAA,CAAA;cAL9B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAElB,KAAK,EAAA,QAAA,EAAA,2KAAA,EAAA;;kBAIhB;;kFAFU,kBAAkB,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AExB/B;;;;;;;;;;;;;AAaE;AAEF;;;;;ACXQ,IADF,8BAAoB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAIa;AAA3B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;;IAC5B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmF;IACjF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAEuB;IACzB,EAAA,CAAA,YAAA,EAAM,EACJ,EACA;;;IAVD,EAAA,CAAA,SAAA,EAAqC;IAArC,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAE,KAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAqC;;;;AAoBtC,IADF,8BAAqB,CAAA,CAAA,EAAA,IAAA,CACf;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAQ;IAAA,EAAA,CAAA,YAAA,EAAK;IACjB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,EAAA,CAKqD;IADjC,EAAA,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,wFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,cAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,cAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAA4B;AAC5B,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,sFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,uBAAgB,CAAA,CAAA,CAAA,CAAA,CAAC;AAEtD,IADE,iBAAqB,EACjB;;;IAPgB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAoB;AAGpB,IAHA,yCAAoB,CAAA,gBAAA,EAAA,IAAA,CAGG;IACvB,EAAA,CAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,cAAA,CAA4B;;;;AAQhD,IADF,8BAAqB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAGe;IAA/B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAa,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;;IAC/B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA+F;AAmB7F,IAlBA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAKoB,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAMA,eAMA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAMA;AAExB,IADE,iBAAM,EACJ;;IACJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAEkC;IAA/B,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAa,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;;IAC/B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA+F;IAC7F,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAEuB;AAE3B,IADE,iBAAM,EACJ;;IACJ,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAEmC;IAAhC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAa,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;;IAChC,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAkG;IAChG,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAEuB;IACzB,EAAA,CAAA,YAAA,EAAM,EACJ,EACA;;;IA/CD,EAAA,CAAA,SAAA,EAA0C;IAA1C,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,CAA0C;IA8B1C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA0C;IAA1C,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,CAA0C;IAS1C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2C;IAA3C,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,OAAA,CAAA,CAA2C;;;;AAa9C,IADF,8BAAwB,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAC0D;AAAlB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,cAAO,CAAA,CAAA,CAAA,CAAA,CAAC;IAC7E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAsB;AAE1B,IADE,iBAAI,EACA;;ADlER,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AALxD,IAAA,WAAA,GAAA;;;QAeW,IAAA,CAAA,mBAAmB,GAAG,KAAK;QAC3B,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,gBAAgB,GAAG,KAAK;;AAGvB,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE;AACtD,QAAA,IAAA,CAAA,GAAG,GAAsB,IAAI,YAAY,EAAE;AAmEtD,IAAA;IAjEC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;QACtC;aACK;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,IAAI;QAC1C;IACF;IAEQ,SAAS,GAAA;IACjB;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9C;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACjB;;IAGA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;IACtC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa;AACtC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc;AAChC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAE5B,OAAO;AACL,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE;SACX;IACH;;IAGA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa;QACxC,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,OAAO,EAAE;IAChB;AAnFW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,kCAAA,CAAA,CAAA,OAAA,SAAA,6BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,kCAAA,KAAA,kCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,qBAAqB,yBAArB,qBAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAF,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,UAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,GAAA,EAAA,8ZAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,aAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,GAAA,EAAA,+GAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,GAAA,CAAA,EAAA,CAAA,GAAA,EAAA,0HAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,GAAA,CAAA,EAAA,CAAA,GAAA,EAAA,0HAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,GAAA,CAAA,EAAA,CAAA,GAAA,EAAA,qIAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,GAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,GAAA,EAAA,iqBAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,4BAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,GAAA,EAAA,8OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,MAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,UAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AC1BhC,YADF,8BAA8B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACC;YAC3B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA2B;YAe3B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAK;YACH,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;YAC3B,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmB;YACjB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqB;YAarB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwB;YAqDxB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwB;YAO1B,EAAA,CAAA,YAAA,EAAM,EACF,EACF;;YA/FF,EAAA,CAAA,SAAA,CAAA,CAAA,CAaC;YAbD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;YAOC,EAAA,CAAA,SAAA,CAAA,CAAA,CAWC;YAXD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,aAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAWC;YAED,EAAA,CAAA,SAAA,EAmDC;YAnDD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,gBAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAmDC;YAED,EAAA,CAAA,SAAA,EAMC;YAND,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,gBAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAMC;;;iFDnEM,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,4xKAAA,EAAA;;kBAQhB;;kBACA;;kBAGA;;kBACA;;kBACA;;kBACA;;kBAGA;;kBACA;;kFAjBU,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3BlC;;;;;;;;;;;;;;AAcE;AAEF;AAWM,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AALrD,IAAA,WAAA,GAAA;;;QAOU,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;;QAI3C,IAAA,CAAA,SAAS,GAAG,EAAE;;QAIL,IAAA,CAAA,UAAU,GAAW,CAAC;QACtB,IAAA,CAAA,QAAQ,GAAW,CAAC;QACpB,IAAA,CAAA,SAAS,GAAW,CAAC;QAGrB,IAAA,CAAA,WAAW,GAAW,EAAE;;AAcvB,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE;AAsB7D,IAAA;AAnCC,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IACA,IAAI,KAAK,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QAEnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK;QAChC;IACF;IAKA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe;AACxC,gBAAA,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxB;YACF;QACF;aACK;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB;QACzC;IACF;;AAGA,IAAA,YAAY,CAAC,CAAC,EAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB;AAlDW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,+BAAA,CAAA,CAAA,OAAA,SAAA,0BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,+BAAA,KAAA,+BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,kBAAkB,yBAAlB,kBAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC1B7B,YADF,2BAA2B,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAM4B;AAApC,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAAc,wBAAoB,CAAA,CAAA,CAAA,CAAC;AAEtD,YADE,iBAAkB,EACd;;YARD,EAAA,CAAA,UAAA,CAAA,GAAA,CAAA,OAAA,CAAqB;YAKP,EAAA,CAAA,SAAA,EAAe;YAAf,EAAA,CAAA,UAAA,CAAA,GAAA,CAAA,KAAA,CAAe;AADf,YAHA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,UAAA,CAAoB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACC,iCACO,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CACV;;;iFDuBxB,kBAAkB,EAAA,CAAA;cAL9B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAEjB,KAAK,EAAA,QAAA,EAAA,uVAAA,EAAA;;kBAYhB;;kBACA;;kBACA;;kBAEA;;kBACA;;kBACA;;kBAaA;;kFA7BU,kBAAkB,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3B/B;;;;;;;;;;;;;;AAcE;AAEF;;;ICfE,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD;IACrD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFY,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAlC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAY;IACE,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAIhD,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA8D;IAC5D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFkB,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAxC,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,MAAA,CAAA,GAAA,CAAkB;IACJ,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAKhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAO;IAAA,EAAA,CAAA,YAAA,EAAO;;;IADlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC3C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;;;IAA7B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAA,EAAA,CAA2B;;ADkB9B,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AALxD,IAAA,WAAA,GAAA;;QAOE,IAAA,CAAA,QAAQ,GAAG,KAAK;AAkBjB,IAAA;IAdC,QAAQ,GAAA;AACN,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM;QAE9B,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAExC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACjD;iBACK;AACH,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG;YAChB;QACF;IACF;AAnBW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,kCAAA,CAAA,CAAA,OAAA,SAAA,6BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,kCAAA,KAAA,kCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,qBAAqB,yBAArB,qBAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC5BlC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAIO,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIhC;;YARS,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,CAAc;YAIR,EAAA,CAAA,SAAA,EAAe;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAe;;;iFDwB/C,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAErB,KAAK,EAAA,QAAA,EAAA,odAAA,EAAA;;kBAMhB;;kFAJU,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BlC;;;;;;;;;;;;;;AAcE;AAEF;;;ICfE,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD;IACrD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFY,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAlC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAY;IACE,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAIhD,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAiE;;;IADnE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA8D;IAC5D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;IACpD,EAAA,CAAA,YAAA,EAAI;;;;IAFkB,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IAAxC,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,MAAA,CAAA,GAAA,CAAkB;IACJ,EAAA,CAAA,SAAA,EAAiC;IAAjC,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,kBAAA,CAAiC;;;IAKhD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAoC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAQ;IAAA,EAAA,CAAA,YAAA,EAAO;;;IADnD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;IAAA,EAAA,CAAA,YAAA,EAAO;IAC3C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAoC;;;IAA7B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAA,EAAA,CAA2B;;ADkB9B,MAAO,sBAAuB,SAAQ,aAAa,CAAA;AALzD,IAAA,WAAA,GAAA;;QAOE,IAAA,CAAA,QAAQ,GAAG,KAAK;AAkBjB,IAAA;IAdC,QAAQ,GAAA;AACN,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,OAAO;QAE/B,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAExC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACjD;iBACK;AACH,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG;YAChB;QACF;IACF;AAnBW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,mCAAA,CAAA,CAAA,OAAA,SAAA,8BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,mCAAA,KAAA,mCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,sBAAsB,yBAAtB,sBAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC5BnC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuD,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAIO,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAIhC;;YARS,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,CAAc;YAIR,EAAA,CAAA,SAAA,EAAe;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAe;;;iFDwB/C,sBAAsB,EAAA,CAAA;cALlC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cAEtB,KAAK,EAAA,QAAA,EAAA,qdAAA,EAAA;;kBAMhB;;kFAJU,sBAAsB,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BnC;;;;;;;;;;;;;;AAcE;AAEF;;;ICbM,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAkB;IAChB,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAmD;IACrD,EAAA,CAAA,YAAA,EAAM;;;IADK,EAAA,CAAA,SAAA,EAAa;AAAC,IAAd,kCAAa,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,CAAkB;;;AAF5C,IADF,8BAAqB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACW;IAC5B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkB;IAGlB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAA4B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,EAAK;IAC5C,EAAA,CAAA,YAAA,CAAA,CAAA,CAAyB;AAE7B,IADE,iBAAM,EACF;;;IANI,EAAA,CAAA,SAAA,CAAA,CAAA,CAAU;IAAV,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAU;IAGY,EAAA,CAAA,SAAA,CAAA,CAAA,CAAW;IAAX,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,OAAA,CAAW;;MDmBhC,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;QAWW,IAAA,CAAA,QAAQ,GAAa,KAAK;QAC1B,IAAA,CAAA,OAAO,GAAW,eAAe;AAC3C,IAAA;gHARY,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCzB5B,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgD;;YAAhD,EAAA,CAAA,aAAA,CAAA,CAAA,GAAA,CAAA,WAAA,IAAA,GAAA,CAAA,UAAA,IAAA,CAAA,GAAA,CAAA,SAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAUC;;;iFDeY,eAAe,EAAA,CAAA;cAL3B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAEd,KAAK,EAAA,QAAA,EAAA,gWAAA,EAAA;;kBAGhB;;kBACA;;kBACA;;kBAEA;;kBACA;;kBACA;;kFAPU,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AEzB5B;;;;;;;;;;;;;AAaE;AAEF;AAWM,MAAO,wBAAyB,SAAQ,aAAa,CAAA;AAA9C,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,qCAAA,CAAA,CAAA,OAAA,SAAA,gCAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,qCAAA,KAAA,qCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,wBAAwB,yBAAxB,wBAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC1BrC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkD;YAChD,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6B;YAC/B,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAChB,CAAA,CAAA,EAAA,GAAA,CAC3B;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,gCAAA,CAA8B;AACnC,YADmC,iBAAI,EACjC;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAK;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,2BAAA,CAAyB;AAChC,YADgC,iBAAM,EAChC;;YAPC,EAAA,CAAA,SAAA,EAAY;YAAZ,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA,aAAA,CAAY;;;iFDyBN,wBAAwB,EAAA,CAAA;cALpC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,cAEzB,KAAK,EAAA,QAAA,EAAA,gTAAA,EAAA;;kBAGhB;;kFADU,wBAAwB,EAAA,EAAA,SAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,oEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BrC;;;;;;;;;;;;;AAaE;AAEF;;;;;ICRc,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAgF;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,wBAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC7E,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAwB;IAC1B,EAAA,CAAA,YAAA,EAAI;;;;IAIJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAwE;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IACrE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAwB;IAC1B,EAAA,CAAA,YAAA,EAAI;;;IASF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC;IAC9B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAGoB;IACtB,EAAA,CAAA,YAAA,EAAM;;;IAJC,EAAA,CAAA,SAAA,EAAoB;AACpB,IADA,2DAAoB,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,KAAA,IAAA,SAAA,CACa;;;;IAmB1C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA4E;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,wBAAiB,CAAA,CAAA,CAAA,CAAA,CAAC;IACzE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA,CAAK;AACb,IADa,iBAAO,EAChB;;;;IAIJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAoE;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IACjE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA,CAAK;AACb,IADa,iBAAO,EAChB;;;AAhDR,IAJR,8BAAmD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAChB,CAAA,CAAA,EAAA,cAAA,CACjB,6BACwB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACV;IACtB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAsB;IAMtB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAuB;AAM3B,IADE,iBAAM,EACc;IAEtB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAiC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACF,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACc;IACvC,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqB;AASnB,IADF,+BAA0B,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAC6B;IACnD,EAAA,CAAA,MAAA,CAAA,EAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAK;IACL,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAgB;IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAqB;IAAA,EAAA,CAAA,YAAA,EAAI,EACrC,EACF;IACN,EAAA,CAAA,YAAA,CAAA,EAAA,CAAyB;AAE7B,IADE,iBAAM,EACY;AAGlB,IADF,gDAAyC,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAClB;IACnB,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAsB;IAMtB,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAuB;AASjC,IAJQ,iBAAM,EACc,EACT,EACX,EACF;;;IA1DoB,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAwB;IAKxC,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;IAJD,EAAA,CAAA,aAAA,CAAA,CAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,KAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAIC;IAED,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,EAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAIC;IAOC,EAAA,CAAA,SAAA,CAAA,CAAA,CAOC;IAPD,EAAA,CAAA,aAAA,CAAA,CAAA,MAAA,CAAA,MAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,MAAA,CAAA,KAAA,IAAA,EAAA,GAAA,CAAA,CAAA,CAOC;IAEkB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmC;IAAnC,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,OAAA,IAAA,MAAA,CAAA,MAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAmC;IAClD,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,GAAA,CACF;IACgB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqB;IAArB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,MAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAqB;IASzC,EAAA,CAAA,SAAA,CAAA,CAAA,CAIC;IAJD,EAAA,CAAA,aAAA,CAAA,CAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,KAAA,IAAA,EAAA,GAAA,CAAA,CAAA,CAIC;IAED,EAAA,CAAA,SAAA,EAIC;IAJD,EAAA,CAAA,aAAA,CAAA,EAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAIC;;AD1BP,MAAO,qBAAsB,SAAQ,aAAa,CAAA;IAKtD,WAAA,CAAqB,EAAiB,EAAU,GAAwB,EAAA;AACtE,QAAA,KAAK,EAAE;QADY,IAAA,CAAA,EAAE,GAAF,EAAE;QAAyB,IAAA,CAAA,GAAG,GAAH,GAAG;QAJnD,IAAA,CAAA,IAAI,GAAG,KAAK;IAMZ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,WAAW,GAAA;IACnB;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;gBACb,IAAI,CAAC,IAAI,EAAE;oBACT;gBACF;AAEA,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5C,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;oBACzB,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACnB,oBAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC1B;YACF,CAAC;AACF,SAAA,CAAC;IACJ;;IAGA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AAEjB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;QACrB;aACK;AACH,YAAA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;IACnB;sHAnDW,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAAc,aAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,kBAAA,EAAAf,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,KAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,SAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,KAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,KAAA,EAAA,UAAA,EAAA,UAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,CAAA,EAAA,KAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YC5BlC,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAY;;YAAZ,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CA4DC;;;iFDhCY,qBAAqB,EAAA,CAAA;cALjC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,cAEpB,KAAK,EAAA,QAAA,EAAA,isEAAA,EAAA;;kFAEN,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BlC;;;;;;;;;;;;;;AAcE;AAEF;;IChBA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;IAChC,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAwC;IAC1C,EAAA,CAAA,YAAA,EAAM;;AD0BA,MAAO,gBAAiB,SAAQ,aAAa,CAAA;AAGjD,IAAA,WAAA,CAAoB,cAA8B,EAAA;AAChD,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,cAAc,GAAd,cAAc;QAFlC,IAAA,CAAA,IAAI,GAAG,KAAK;IAIZ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAC7C,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;YAClB;AACD,SAAA,CAAC;IACJ;iHAbW,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAAgB,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC5B7B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC;;YAAZ,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAU;;;iFD4BnB,gBAAgB,EAAA,CAAA;cAL5B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAEf,KAAK,EAAA,QAAA,EAAA,sGAAA,EAAA;;kFAEN,gBAAgB,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BtB,MAAM,OAAO,GAAG;AACrB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,eAAe,EAAE,oBAAoB;AACrC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE;CACT;;ACVD;;;;;;;;;;;;;;AAcE;AAEF;;ICdM,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoG;IAChG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkF;IACtF,EAAA,CAAA,YAAA,EAAM;;;IAFwB,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,CAAA,MAAA,CAAA,eAAA,CAAkC;IAC3B,EAAA,CAAA,SAAA,EAA0C;IAA1C,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,eAAA,CAA0C;;;AAFnF,IADF,8BAA+C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACtB;IACnB,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoG;AAI1G,IADE,iBAAM,EACF;;;IAJkE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAgC;IAAhC,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,KAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAgC;;MD2B3F,oBAAoB,CAAA;AAO/B,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;QAN1B,IAAA,CAAA,gBAAgB,GAAG,IAAI;QACvB,IAAA,CAAA,OAAO,GAAG,OAAO;QAER,IAAA,CAAA,eAAe,GAAG,SAAS;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,OAAO,CAAC,MAAM;AAG7B,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AACpB,YAAA,IAAI,EAAC,CAAC,WAAkB,KAAI;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACtC;AACH,SAAA,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAC,WAAkB,EAAA;AACjC,QAAA,IAAI,WAAW,YAAY,eAAe,EAAE;AACxC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAChC;QAEA,IAAI,WAAW,YAAY,aAAa;AACpC,YAAA,WAAW,YAAY,gBAAgB;YACvC,WAAW,YAAY,eAAe,EAAE;AACxC,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QACjC;IACH;IAEA,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IAC/B;qHA7Ba,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAA5B,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,YAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC7BjC,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+C;;YAAxB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,gBAAA,CAAsB;;;iFD6BhC,oBAAoB,EAAA,CAAA;cANhC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EAEnB,KAAK,EAAA,aAAA,EACF,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,oVAAA,EAAA;;kBAMpC;;kBACA;;kFALU,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE7BjC;;;;;;;;;;;;;;AAcE;AAEF;AAYM,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAL1D,IAAA,WAAA,GAAA;;QAMW,IAAA,CAAA,OAAO,GAAG,mBAAmB;QAC7B,IAAA,CAAA,IAAI,GAAG,EAAE;AAYnB,IAAA;AAVC,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;QAEvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU;QAC3B,CAAC,EAAE,IAAI,CAAC;QAER,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;IACzC;AAbW,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,oCAAA,CAAA,CAAA,OAAA,SAAA,+BAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,oCAAA,KAAA,oCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,uBAAuB,yBAAvB,uBAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC5BpC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAyE;AAAnC,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,OAAS,4BAAwB,CAAA,CAAA,CAAA,CAAC;YACtE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAiC;YACnC,EAAA,CAAA,YAAA,EAAI;;AAFD,YAAA,EAAA,CAAA,UAAA,CAAA,+CAAkC,CAAA;;;iFD4BxB,uBAAuB,EAAA,CAAA;cALnC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cAExB,KAAK,EAAA,QAAA,EAAA,sIAAA,EAAA;;kBAGhB;;kBACA;;kFAFU,uBAAuB,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,kEAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5BpC;;;;;;;;;;;;;;AAcE;AAEF;;;ICRI,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAgD;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAW;IAAA,EAAA,CAAA,YAAA,EAAQ;;;IAAnB,EAAA,CAAA,SAAA,EAAW;IAAX,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAW;;;IAG3D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAqG;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,CAAE;IAAA,EAAA,CAAA,YAAA,EAAI;;;AAAhF,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,0DAA8B,EAAA,EAAA,CAAA,aAAA,CAAA;;ADiBvD,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAcrD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAdT,IAAA,CAAA,UAAU,GAAY,IAAI;QAKjB,IAAA,CAAA,iBAAiB,GAAG,IAAI;;AAMvB,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE;AAIzD,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW;IAC1B;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE;IACtB;AAEQ,IAAA,eAAe,CAAC,IAAI,EAAA;QAC1B,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACpC,QAAA,IAAI,KAAK,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE;AAEnC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAG,KAAK,CAAC,OAAO,CAAC;IACrD;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;AAC3E,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACrB;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;AAClF,gBAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;wBACvB;oBACF;AAEA,oBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC7B;AACD,aAAA,CAAC;QACJ;IACF;;IAGA,eAAe,GAAA;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IAC5B;iHAxDW,gBAAgB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,WAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,KAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,KAAA,EAAA,aAAA,CAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC5B7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0G;YACxG,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAIkC;YAElC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuD;YACrD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAgD;YAChD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuB;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;YAAA,EAAA,CAAA,YAAA,EAAM;YAC5C,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAwH;AAA/B,YAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,SAAA,mDAAA,GAAA,EAAA,OAAY,qBAAiB,CAAA,CAAA,CAAA,CAAC;YAAvH,EAAA,CAAA,YAAA,EAAwH;YACxH,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAqG;AAEzG,YADE,iBAAM,EACF;;AAb0C,YAAxB,yCAAuB,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAY,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,WAAA,CAAA,CAAA,CAAyD;YAEpG,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,CACJ;YAGM,EAAA,CAAA,SAAA,EAAmB;YAAnB,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAmB;YAC1B,EAAA,CAAA,SAAA,EAAoB;YAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YACvB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;YAAf,EAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,SAAA,CAAe;YACmB,EAAA,CAAA,SAAA,EAA+B;YAA/B,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,GAAA,CAAA,WAAA,CAA+B;YACb,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAuB;;;iFDiBzF,gBAAgB,EAAA,CAAA;cAL5B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAEf,KAAK,EAAA,QAAA,EAAA,2wBAAA,EAAA;;kBAOhB;;kBACA;;kBAGA;;kBAGA;;kFAZU,gBAAgB,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5B7B;;;;;;;;;;;;;AAaE;AAEF;;ICdE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAsB;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAA8C;IAAA,EAAA,CAAA,YAAA,EAAK;;;IAAnD,EAAA,CAAA,SAAA,EAA8C;IAA9C,EAAA,CAAA,kBAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,SAAA,EAAA,GAAA,CAA8C;;;IACpE,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAuB;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,qCAAA,CAAmC;IAAA,EAAA,CAAA,YAAA,EAAK;;ADwB3D,MAAO,2BAA4B,SAAQ,aAAa,CAAA;AAAjD,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,wCAAA,CAAA,CAAA,OAAA,SAAA,mCAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,wCAAA,KAAA,wCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,2BAA2B,yBAA3B,2BAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC1BxC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmC;AAEjC,YADA,0EAAsB,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CACC;YACzB,EAAA,CAAA,YAAA,EAAM;;YAFC,EAAA,CAAA,SAAA,EAAe;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAe;YACf,EAAA,CAAA,SAAA,EAAgB;YAAhB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,SAAA,CAAgB;;;iFDwBV,2BAA2B,EAAA,CAAA;cALvC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAE7B,KAAK,EAAA,QAAA,EAAA,uMAAA,EAAA;;kBAGhB;;kFADU,2BAA2B,EAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BxC;;;;;;;;;;;;;AAaE;AAEF;;ICXM,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,CAAM;;ADsBN,MAAO,2BAA4B,SAAQ,aAAa,CAAA;AAL9D,IAAA,WAAA,GAAA;;QAOW,IAAA,CAAA,OAAO,GAAY,IAAI;AACjC,IAAA;AAHY,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,wCAAA,CAAA,CAAA,OAAA,SAAA,mCAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,wCAAA,KAAA,wCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,2BAA2B,yBAA3B,2BAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA;oEAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,gCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ACzBtC,YADF,8BAAoC,CAAA,CAAA,EAAA,GAAA,CAC/B;YACD,EAAA,CAAA,MAAA,CAAA,CAAA,CACA;YAAA,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAAgB;YAGhB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA6E;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,cAAA,CAAY;YAAA,EAAA,CAAA,YAAA,EAAI;YAC7F,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA,CACA;YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAA+E;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,gBAAA,CAAc;YAAA,EAAA,CAAA,YAAA,EAAI;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA,CACnG;AACF,YADE,iBAAI,EACA;;YARF,EAAA,CAAA,SAAA,CAAA,CAAA,CACA;YADA,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,MAAA,EAAA,oBAAA,CACA;YAAA,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,CAAA,GAAA,CAAA,OAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YACE,EAAA,CAAA,SAAA,EAA0C;YAA1C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,MAAA,GAAA,aAAA,EAAA,EAAA,CAAA,aAAA,CAA0C;YAE1C,EAAA,CAAA,SAAA,CAAA,CAAA,CAA4C;YAA5C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,MAAA,GAAA,eAAA,EAAA,EAAA,CAAA,aAAA,CAA4C;;;iFDkBtC,2BAA2B,EAAA,CAAA;cALvC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,cAE9B,KAAK,EAAA,QAAA,EAAA,qYAAA,EAAA;;kBAGhB;;kBACA;;kFAFU,2BAA2B,EAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,8EAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE1BxC;;;;;;;;;;;;;;AAcE;AAEF;;AChBA;;;;;;;;;;;;;;AAcE;AAEF;;ACb0C,IAAtC,0BAAsC,CAAA,CAAA,EAAA,MAAA,CAAM;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAS;AAAO,IAAP,iBAAO,EAAK;;;IAArB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAS;IAAT,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAS;;;AAFvD,IADF,8BAAoD,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAC5B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,kCAAA,CAAgC;IAAA,EAAA,CAAA,YAAA,EAAK;IAC3D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAI;IACF,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAsC;AAE1C,IADE,iBAAK,EACD;;;IAFoB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAc;;ADwBlC,MAAO,8BAA+B,SAAQ,0BAA0B,CAAA;AAW5E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAXA,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,YAAY,GAAa,EAAE;AAEpC;;;;AAIE;QACO,IAAA,CAAA,QAAQ,GAAW,CAAC;IAI7B;IAEA,SAAS,GAAA;QACP,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,IAAI,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE;AAE7D,QAAA,QAAO,IAAI,CAAC,QAAQ;AAClB,YAAA,KAAK,CAAC;AACJ,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC;gBACxC;AAEF,YAAA,KAAK,CAAC;gBACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBACnC;AAEF,YAAA;AACE,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBACnC;;AAGJ,QAAA,OAAO,QAAQ;IACjB;+HAnCW,8BAA8B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,iCAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC3B3C,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoD;;YAAf,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAa;;;iFD2BrC,8BAA8B,EAAA,CAAA;cAL1C,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,cAE/B,KAAK,EAAA,QAAA,EAAA,+OAAA,EAAA;;kBAGhB;;kBACA;;kBAOA;;kFATU,8BAA8B,EAAA,EAAA,SAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3B3C;;;;;;;;;;;;;;AAcE;AAEF;;;ICJc,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA8D;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAkB;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAAjD,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,KAAA,CAAqB;IAAC,EAAA,CAAA,SAAA,EAAkB;IAAlB,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,QAAA,CAAA,KAAA,EAAA,GAAA,CAAkB;;;IAqBpF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,CAA2B;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,qFAAA,CAAmF;IAAA,EAAA,CAAA,YAAA,EAAI;;;IAiClH,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAGsB;IACpB,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAJD,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,CAAA,MAAA,CAAA,SAAA,CAAA,OAAA,CAAwC;;ADnCpD,MAAO,aAAc,SAAQ,iBAAiB,CAAA;IAmBlD,WAAA,CACU,SAA6B,EAC7B,EAAe,EACf,UAA6B,EAC7B,GAAqB,EACrB,mBAAwC,EAAA;AAChD,QAAA,KAAK,EAAE;QALC,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QAvB7B,IAAA,CAAA,cAAc,GAAY,KAAK;AAI/B,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,EAAE,KAAK,EAAE,mBAAmB,EAAE;YAC9B,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC5B,EAAE,KAAK,EAAE,cAAc,EAAE;YACzB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YAC9B,EAAE,KAAK,EAAE,OAAO;SACjB;;QAGQ,IAAA,CAAA,iBAAiB,GAAG,IAAI;;AAGvB,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE;IASxD;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;QAEtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;YAC7C,IAAI,CAAC,OAAO,EAAE;gBACZ;YACF;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;AAC5C,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,kBAAkB;YAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;YAE5C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AAE9C,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC7D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAChD;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAE,UAAU,CAAC,QAAQ,CAAE,CAAC;YAClD,KAAK,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAE,UAAU,CAAC,QAAQ,CAAE,CAAC;YACnD,KAAK,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAE,UAAU,CAAC,QAAQ,CAAE,CAAC;YACnD,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAE,UAAU,CAAC,QAAQ,CAAE,CAAC;YACrD,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAE,UAAU,CAAC,QAAQ,CAAE;AACrD,SAAA,CAAC;IACJ;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK;IAC7B;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAE5C,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC,KAAK,KAAI;AACnE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAChE,MAAK;AACH,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AACtE,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAEtB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB,CAAC,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;AAClC,YAAA,CAAC,CACF;AACH,QAAA,CAAC,CAAC;IACJ;;IAGA,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,aAAa,CAAC,KAAK,EAAA;QACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;IACzC;8GAhGW,aAAa,EAAA,EAAA,CAAA,iBAAA,CAAAZ,IAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA6B,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,gBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAb,aAAa,EAAA,SAAA,EAAA,CAAA,CAAA,8BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,YAAA,EAAA,EAAA,EAAA,CAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,EAAA,GAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YChC1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiE;AAA3D,YAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAY,cAAU,CAAA,CAAA,CAAA,CAAC;YAC3B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CACkH;AAK5G,YAHN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACL,aACgB,CAAA,CAAA,EAAA,GAAA,CAC1B;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,4BAAA,CAA0B;YAAA,EAAA,CAAA,YAAA,EAAI;YACjC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8E,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAC3C,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CACD;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAA,CAAO;YAAA,EAAA,CAAA,YAAA,EAAQ;YAC7C,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAqF;AAA7E,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,gDAAA,CAAA,MAAA,EAAA,EAAA,OAAU,yBAAqB,CAAA,CAAA,CAAA,CAAC;YACtC,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA8D;YAChE,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAIkC;AAEtC,YADE,iBAAM,EACF;AAEJ,YADF,gCAA4E,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAC5C;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,CAAM;YAAA,EAAA,CAAA,YAAA,EAAQ;AAE5C,YADA,6BAAoF,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAKlD;YACpC,EAAA,CAAA,YAAA,EAAM;AAEJ,YADF,gCAA8E,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAC9C;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAA,CAAS;YAAA,EAAA,CAAA,YAAA,EAAQ;YAC/C,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAyF;YACzF,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;YAC3B,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAIkC;YACpC,EAAA,CAAA,YAAA,EAAM;AAEJ,YADF,gCAAkF,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAClD;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAA,CAAS;YAAA,EAAA,CAAA,YAAA,EAAQ;AAE/C,YADA,6BAA4F,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAK1D;AAGtC,YAFE,iBAAM,EAEF;YACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAmB,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CACiE,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAClD;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAA,CAAS;YAAA,EAAA,CAAA,YAAA,EAAQ;AAG/C,YAFA,gCACiC,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAKC;YACpC,EAAA,CAAA,YAAA,EAAM,EACF,EACF;AAEF,YADF,gCAA6B,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CACV;YACf,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAGsB;AAMhC,YAHQ,EAAA,CAAA,YAAA,EAAM,EACJ,EACF,EACD;;YA3EuB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAuB;YAClB,EAAA,CAAA,SAAA,EAAuB;AACvB,YADA,yCAAuB,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,IAAA,GAAA,CAAA,SAAA,CAAA,OAAA,CACuB;YAMpE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqD;YAArD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAnB,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,CAAA,CAAqD;YAI1B,EAAA,CAAA,SAAA,CAAA,CAAA,CAAY;YAAZ,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAY;YAEP,EAAA,CAAA,SAAA,EAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAM/D,EAAA,CAAA,SAAA,EAAoD;YAApD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA,CAAoD;YAGtB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAK7D,EAAA,CAAA,SAAA,EAAqD;YAArD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,CAAA,CAAqD;YAGpD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAqB;YAArB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,cAAA,CAAqB;YACQ,EAAA,CAAA,SAAA,EAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAK7D,EAAA,CAAA,SAAA,EAAuD;YAAvD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,CAAA,CAAuD;YAGzB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAQ7D,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuD;YAAvD,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,CAAA,CAAuD;YAIzB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YASvD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAuB;;;iFDlC7B,aAAa,EAAA,CAAA;cALzB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,cAE5B,KAAK,EAAA,QAAA,EAAA,qpIAAA,EAAA;;kBAgBhB;;kBAGA;;kFAjBU,aAAa,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AEhC1B;;;;;;;;;;;;;AAaE;AAEF;;;;ICfA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkF;AAApE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;AAE7B,IADF,8BAAyD,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,CACwC;AAAtB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,sFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAU,iBAAU,CAAA,CAAA,CAAA,CAAA,CAAC;AAEhG,IADE,iBAA+B,EAC3B;IACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAwC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACE,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CACwC;AAAtE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,qBAAc,CAAA,CAAA,CAAA,CAAA,CAAC;IAA8C,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,QAAA,CAAM;IAAA,EAAA,CAAA,YAAA,EAAS;IAC7F,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAwE;AAAhE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAA6C,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAO;AAGrF,IAHqF,EAAA,CAAA,YAAA,EAAS,EACpF,EACe,EACV;;IAXkC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAa;IAEb,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2B;IAA3B,EAAA,CAAA,UAAA,CAAA,mBAAA,EAAA,KAAA,CAA2B;;ADyBtE,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAG7C,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;IACT;;IAGA,OAAO,GAAA;QACL,KAAK,CAAC,KAAK,EAAE;IACf;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE;IAChC;IAEA,QAAQ,GAAA;QACN,KAAK,CAAC,KAAK,EAAE;IACf;gHAlBW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;YC3B5B,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkF;;YAA/C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,MAAA,CAAY;;;iFD2BlC,eAAe,EAAA,CAAA;cAL3B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cAExB,KAAK,EAAA,QAAA,EAAA,wpBAAA,EAAA;;kBAGhB,SAAS;mBAAC,eAAe;;kFADf,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE3B5B;;;;;;;;;;;;;AAaE;;ACbF;;;;;;;;;;;;;AAaE;AAEF;MAOa,iBAAiB,CAAA;AAJ9B,IAAA,WAAA,GAAA;QAME,IAAA,CAAA,QAAQ,GAAG,KAAK;AAWjB,IAAA;IARC,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;IAGA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;kHAZW,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAjB,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAA,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,CAAA,CAAG,CAAA,YAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,OAAjB,GAAA,CAAA,YAAA,EAAc,CAAA,CAAA,CAAA,CAAG;;YAAjB,EAAA,CAAA,WAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAiB;;;iFAAjB,iBAAiB,EAAA,CAAA;cAJ7B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,UAAU,EAAE;AACb,aAAA;;kBAEE,WAAW;mBAAC,gBAAgB;;kBAG5B,YAAY;mBAAC,YAAY;;kBAKzB,YAAY;mBAAC,YAAY;;;AC/B5B;;;;;;;;;;;;;AAaE;;ACbF;;;;;;;;;;;;;;AAcE;AAEF;;;ICfE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAA8D;;;IAAlB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAe;;;IAkCnD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA+D;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAA5C,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,IAAA,CAAoB;IAAC,EAAA,CAAA,SAAA,EAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAc;;;;AAF/E,IADF,8BAAwJ,CAAA,CAAA,EAAA,OAAA,CAC/I;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA,CAAK;IAAA,EAAA,CAAA,YAAA,EAAQ;IACpB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAwG;AAA3E,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,yDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAU,8BAAuB,CAAA,CAAA,CAAA,CAAA,CAAC;IAC7D,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA+D;IACjE,EAAA,CAAA,YAAA,EAAS;IACT,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,EAAA,CAIkC;IACpC,EAAA,CAAA,YAAA,EAAM;;;IAV6E,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,uBAAA,CAAA,CAAA,CAAoE;IAGzH,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAc;IAIT,EAAA,CAAA,SAAA,EAAuB;AACvB,IADA,4CAAuB,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CACQ;;;IAe9D,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAmE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAgB;IAAA,EAAA,CAAA,YAAA,EAAS;;;IAAhD,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,UAAA,CAAA,IAAA,CAAsB;IAAC,EAAA,CAAA,SAAA,EAAgB;IAAhB,EAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,IAAA,CAAgB;;ADnBvF,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;;AAYrD,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QAErB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAKA,WAAA,CAAoB,EAAe,EAAU,UAA6B,EAAA;AACxE,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAAuB,IAAA,CAAA,UAAU,GAAV,UAAU;QAvBvD,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAE1B,IAAA,CAAA,WAAW,GAAoB,EAAE;QACjC,IAAA,CAAA,WAAW,GAAoB,EAAE;QACjC,IAAA,CAAA,cAAc,GAAG,IAAI;QACrB,IAAA,CAAA,cAAc,GAAG,IAAI;;AAgBX,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAIxC,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;IACxB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjD,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC7D,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC9D;AACD,SAAA,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,eAAe,GAAA;QACrB,IAAI,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;QAEzD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/G,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F;aACK;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC5F,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACtF,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE;AAEA,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAEvC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,OAAO,CAAC,aAAa,CAAC;YACjE,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC;QACvD;IACF;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,IAAI;YACnD,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,IAAI;YACrD,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,IAAI;YAC/C,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,IAAI;YACjE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,IAAI;YACrD,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI;SAClD;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B;;AAGA,IAAA,eAAe,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B;AAEA,IAAA,eAAe,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B;iHA1GW,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAAZ,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAS,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,aAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YCpC7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;YAChD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAA8D;AAIxD,YAHN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAA2C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACxB,aACwE,CAAA,CAAA,EAAA,OAAA,CAC9E;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,gBAAA,CAAc;YAAA,EAAA,CAAA,YAAA,EAAQ;AAE7B,YADA,2BAAsG,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAKpE;YACpC,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwF;AAEtF,YADA,4BAAsI,CAAA,EAAA,EAAA,iCAAA,EAAA,CAAA,CAKpG;AAEtC,YADE,iBAAM,EACF;YACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAiB,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CACgF,CAAA,EAAA,EAAA,OAAA,CACtF;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAA,CAAI;YAAA,EAAA,CAAA,YAAA,EAAQ;AAEnB,YADA,6BAA0F,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAKxD;YACpC,EAAA,CAAA,YAAA,EAAM;YACN,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAwJ;AAYtJ,YADF,+BAAmG,CAAA,EAAA,EAAA,OAAA,CAC1F;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAA,CAAO;YAAA,EAAA,CAAA,YAAA,EAAQ;AAEtB,YADA,6BAAgG,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAK9D;YACpC,EAAA,CAAA,YAAA,EAAM;AAEJ,YADF,+BAAkG,CAAA,EAAA,EAAA,OAAA,CACzF;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAA,CAAO;YAAA,EAAA,CAAA,YAAA,EAAQ;YACtB,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAsI;AAAzG,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,OAAU,2BAAuB,CAAA,CAAA,CAAA,CAAC;YAC7D,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAmE;YACrE,EAAA,CAAA,YAAA,EAAS;YACT,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAIkC;AAI1C,YAHM,EAAA,CAAA,YAAA,EAAM,EACF,EACY,EACP;;YAhES,EAAA,CAAA,SAAA,EAAoB;YAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YACvB,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAuB;YAEd,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6D;YAA7D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAG,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,CAAA,CAA6D;YAKlD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAG1C,EAAA,CAAA,SAAA,EAA8D;YAA9D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA,CAA8D;YAInD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAK/B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA2D;YAA3D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,CAAA,CAA2D;YAK3D,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAG9B,EAAA,CAAA,SAAA,EAA6C;YAA7C,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,KAAA,CAAA,eAAA,IAAA,IAAA,CAA6C;YAW9C,EAAA,CAAA,SAAA,EAA8D;YAA9D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA,CAA8D;YAK9D,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAG/B,EAAA,CAAA,SAAA,EAA8D;YAA9D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA,CAA8D;YAGjE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;YAAd,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,WAAA,CAAc;YAIX,EAAA,CAAA,SAAA,EAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;;;iFDxB3D,gBAAgB,EAAA,CAAA;cAL5B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAErB,KAAK,EAAA,QAAA,EAAA,qoIAAA,EAAA;;kBAchB;;kBAaA;;kFAzBU,gBAAgB,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AEpC7B;;;;;;;;;;;;;;AAcE;AAEF;;;ICfE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAA8D;;;IAAlB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAe;;AD2BvD,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;;AAOrD,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QAErB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,EAAE;QACb;IACF;AAEA,IAAA,WAAA,CAAoB,EAAe,EAAA;AACjC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,EAAE,GAAF,EAAE;QAftB,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAiBxB,QAAA,IAAI,CAAC,KAAK,GAAG,wBAAwB;IACvC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAExE,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAEvC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,UAAU,CAAC;QAC7D;IACF;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,IAAI;YAC/C,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,IAAI;YACjD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,IAAI;YACjD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI;SACxD;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B;iHA9DW,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAAZ,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,SAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC5B7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAkD;YAChD,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAA8D;AAIxD,YAHN,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAA4C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACxB,aAC2E,CAAA,CAAA,EAAA,OAAA,CAClF;YAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,MAAA,CAAI;YAAA,EAAA,CAAA,YAAA,EAAQ;AAEnB,YADA,2BAAkG,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,CAKhE;YACpC,EAAA,CAAA,YAAA,EAAM;AAEJ,YADF,8BAA4F,CAAA,EAAA,EAAA,OAAA,CACnF;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAA,CAAK;YAAA,EAAA,CAAA,YAAA,EAAQ;AAEpB,YADA,4BAAmG,CAAA,EAAA,EAAA,iCAAA,EAAA,CAAA,CAKjE;AAErC,YADC,iBAAM,EACD;YACN,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAiB,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CACiF,CAAA,EAAA,EAAA,OAAA,CACxF;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAA,CAAK;YAAA,EAAA,CAAA,YAAA,EAAQ;AAEpB,YADA,6BAAqG,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAKnE;YACpC,EAAA,CAAA,YAAA,EAAM;AAEJ,YADF,+BAAsG,CAAA,EAAA,EAAA,OAAA,CAC7F;YAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAA,CAAW;YAAA,EAAA,CAAA,YAAA,EAAQ;AAG1B,YAFA,6BACiE,CAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,CAK/B;AAI1C,YAHM,EAAA,CAAA,YAAA,EAAM,EACD,EACW,EACP;;YA5CS,EAAA,CAAA,SAAA,EAAoB;YAApB,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAoB;YACvB,EAAA,CAAA,SAAA,EAAuB;YAAvB,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAuB;YAER,EAAA,CAAA,SAAA,CAAA,CAAA,CAA4D;YAA5D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,CAAA,CAA4D;YAKvD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAGpC,EAAA,CAAA,SAAA,EAA6D;YAA7D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,CAAA,CAA6D;YAKxD,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAK/B,EAAA,CAAA,SAAA,CAAA,CAAA,CAA6D;YAA7D,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,CAAA,CAA6D;YAK7D,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;YAG/B,EAAA,CAAA,SAAA,EAAkE;YAAlE,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,oBAAA,CAAA,CAAA,CAAkE;YAMlE,EAAA,CAAA,SAAA,CAAA,CAAA,CAAuB;AACvB,YADA,yCAAuB,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CACQ;;;iFDZ3D,gBAAgB,EAAA,CAAA;cAL5B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAErB,KAAK,EAAA,QAAA,EAAA,suFAAA,EAAA;;kBAShB;;kFAPU,gBAAgB,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AE5B7B;;;;;;;;;;;;;AAaE;AAEF;;ACfA;;;;;;;;;;;;;;AAcE;AAEF;MAOa,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAcxD,IAAA;AAZC,IAAA,SAAS,CAAC,KAAA,GAAgB,CAAC,EAAE,YAAoB,CAAC,EAAA;AAChD,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;QAEnE,IAAI,IAAI,GAAG,CAAC;AAEZ,QAAA,OAAO,KAAK,IAAI,IAAI,EAAE;YACpB,KAAK,IAAI,IAAI;AACb,YAAA,IAAI,EAAE;QACR;AAEA,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3D;6GAdW,YAAY,GAAA,CAAA,CAAA,CAAA,CAAA;kFAAZ,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;iFAAZ,YAAY,EAAA,CAAA;cAJxB,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACJ,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACtBD;;;;;;;;;;;;;;AAcE;AAEF;MAOa,eAAe,CAAA;AAC1B,IAAA,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,WAAmB,EAAA;QAC9D,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC;QAChE;aAAO;AACL,YAAA,OAAO,SAAS;QAClB;IACF;gHAPW,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;qFAAf,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;iFAAf,eAAe,EAAA,CAAA;cAJ3B,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACJ,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACtBD;;;;;;;;;;;;;;AAcE;AAEF;MAQa,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAkB;AAE/C,IAAA,SAAS,CAAC,KAAK,EAAA;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC;IACtD;6GALW,YAAY,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kFAAZ,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;iFAAZ,YAAY,EAAA,CAAA;cAJxB,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACJ,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACvBD;;;;;;;;;;;;;;AAcE;;ACdF;;;;;;;;;;;;;;AAcE;;ACdF;;;;;;;;;;;;;;AAcE;;ACdF;;;;;;;;;;;;;;AAcE;AAEF;AA6BO,IAAIgC;MAqCE,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAC1B,QAAAA,kBAAgB,GAAG,IAAI,CAAC,QAAQ;IAClC;kHAHW,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;mEAAjB,iBAAiB,EAAA,CAAA,CAAA;AAxBjB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;;YAET,YAAY;;YAGZ,aAAa;;YAGb,cAAc;YACd,uBAAuB;YACvB,sBAAsB;YACtB,cAAc;YACd,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,qBAAqB;;YAGrB,cAAc;;YAGd;AACD,SAAA,EAAA,OAAA,EAAA,CA/BC,YAAY;YACZ,YAAY;YACZ,YAAY,CAAC,OAAO,EAAE;AACtB,YAAA,kBAAkB,EAGlB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA;;iFA0BT,iBAAiB,EAAA,CAAA;cAnC7B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,YAAY;oBACZ,YAAY,CAAC,OAAO,EAAE;oBACtB;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ;AACD,iBAAA;AACD,gBAAA,SAAS,EAAE;;oBAET,YAAY;;oBAGZ,aAAa;;oBAGb,cAAc;oBACd,uBAAuB;oBACvB,sBAAsB;oBACtB,cAAc;oBACd,aAAa;oBACb,cAAc;oBACd,mBAAmB;oBACnB,qBAAqB;;oBAGrB,cAAc;;oBAGd;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,iBAAiB,cAjC1B,YAAY;QACZ,YAAY,EAAAhC,IAAA,CAAA,YAAA,EAEZ,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,YAAY;QACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACxDtB;;;;;;;;;;;;;AAaE;AAEF;MAkCa,iBAAiB,CAAA;kHAAjB,iBAAiB,GAAA,CAAA,CAAA,CAAA,CAAA;mEAAjB,iBAAiB,EAAA,CAAA,CAAA;AAdjB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;;YAET,oBAAoB;YACpB,wBAAwB;YACxB,kBAAkB;YAClB,oBAAoB;YACpB,uBAAuB;YACvB,sBAAsB;;YAGtB,cAAc;YACd;AACD,SAAA,EAAA,OAAA,EAAA,CAdC,YAAY,CAAA,EAAA,CAAA,CAAA;;iFAgBH,iBAAiB,EAAA,CAAA;cAlB7B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP;AACD,iBAAA;AACD,gBAAA,SAAS,EAAE;;oBAET,oBAAoB;oBACpB,wBAAwB;oBACxB,kBAAkB;oBAClB,oBAAoB;oBACpB,uBAAuB;oBACvB,sBAAsB;;oBAGtB,cAAc;oBACd;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,iBAAiB,cAhB1B,YAAY,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACjChB;;;;;;;;;;;;;;;;;;;;AAoBE;SAac,4BAA4B,GAAA;AAC1C,IAAA,IAAI,oBAAoB,GAAG,SAAS,CAAC,MAAM,EAAE;IAE7C,OAAO;QACL,eAAe,EAAE,eAAe,CAAC,QAAQ;QACzC;KACD;AACH;AAEA;;;;;;;;;;;AAWE;SACc,sBAAsB,GAAA;IACpC,OAAO;QACL,eAAe,EAAE,eAAe,CAAC,QAAQ;AACzC,QAAA,WAAW,EAAE,CAAC,WAAwB,EAAE,KAA0B,KAA0B;AAC1F,YAAA,IAAI,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE;AACrC,YAAA,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG;AAE1B,YAAA,IAAI,OAAO,GAAoB;AAC7B,gBAAA,MAAM,EAAE,CAAC,GAAG,MAAM;aACnB;AAED,YAAA,WAAW,CAAC,iBAAiB,CAAC,UAAU,EAAE,oCAAoC,CAAC;AAC/E,YAAA,OAAO,OAAO;QAChB;KACD;AACH;SAEgB,mBAAmB,GAAA;IACjC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;AAC7C,IAAA,IAAI,aAAa,GAAQ;AACvB,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;AACtC,YAAA,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW;AAC5C,YAAA,qBAAqB,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB;AAChE,YAAA,yBAAyB,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa;AACjD,YAAA,sBAAsB,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,aAAa,EAAE;gBACb,cAAc;gBACd,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ;AACtD,gBAAA,iBAAiB,EAAE;AACpB;AACF;KACF;AAED,IAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACrB,QAAA,aAAa,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;QAClF,aAAa,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC;IACvE;AAEA,IAAA,OAAO,IAAI,uBAAuB,CAAC,aAAa,CAAC;AACnD;AAEA,SAAS,cAAc,CAAC,QAAkB,EAAE,OAAe,EAAE,WAAoB,EAAA;IAC/E,IAAI,WAAW,EAAE;QACf;IACF;IAEA,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB;QAEF,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QAEF,KAAK,QAAQ,CAAC,OAAO;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB;QAEF,KAAK,QAAQ,CAAC,OAAO;AACnB,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;;AAEN;;AC7HA;;;;;;;;;;;;;;;;;AAiBE;AAEF;AAYA,MAAM,aAAa,GAAG;IACpB,WAAW;IACX,oBAAoB;AACpB,IAAA;AACE,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,KAAK,EAAE;AACR,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE;AACb,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,UAAU,EAAE;AACb,KAAA;;IAGD,WAAW;IACX,mBAAmB;IACnB;CACD;MAeY,gBAAgB,CAAA;iHAAhB,gBAAgB,GAAA,CAAA,CAAA,CAAA,CAAA;mEAAhB,gBAAgB,EAAA,CAAA,CAAA;AALhB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;AACT,YAAA,iBAAiB,EAAE;AACnB,YAAA,GAAG;AACJ,SAAA,EAAA,OAAA,EAAA,CATC,YAAY;YACZ,YAAY;YACZ,UAAU,CAAA,EAAA,CAAA,CAAA;;iFASD,gBAAgB,EAAA,CAAA;cAb5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,YAAY;oBACZ;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE,EACR;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,iBAAiB,EAAE;AACnB,oBAAA,GAAG;AACJ;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,cAXzB,YAAY;QACZ,YAAY;QACZ,UAAU,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC9Dd;;;;;;;;;;;;;;;;;AAiBE;AAEF;AAYM,MAAO,UAAW,SAAQ,QAAQ,CAAA;AACtC,IAAA,WAAA,CAAoB,IAAiB,EAAA;AACnC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,IAAI,GAAJ,IAAI;IAExB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACnB;2GAPW,UAAU,EAAA,EAAA,CAAA,iBAAA,CAAAK,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAV,UAAU,EAAA,CAAA;cALtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAEf,KAAK,EAAA,QAAA,EAAA,EAAA,EAAA;;kFAEN,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC/BvB;;;;;;;;;;;;;;;;;AAiBE;AAEF;AAYM,MAAO,WAAY,SAAQ,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAoB,IAAiB,EAAA;AACnC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,IAAI,GAAJ,IAAI;IAExB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACpB;4GAPW,WAAW,EAAA,EAAA,CAAA,iBAAA,CAAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAX,WAAW,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAX,WAAW,EAAA,CAAA;cALvB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAEhB,KAAK,EAAA,QAAA,EAAA,EAAA,EAAA;;kFAEN,WAAW,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC/BxB;;;;;;;;;;;;;;;;;AAiBE;AAEF;AAYM,MAAO,UAAW,SAAQ,QAAQ,CAAA;AACtC,IAAA,WAAA,CAAoB,IAAiB,EAAA;AACnC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,IAAI,GAAJ,IAAI;IAExB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACpB;2GAPW,UAAU,EAAA,EAAA,CAAA,iBAAA,CAAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;oEAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAAV,UAAU,EAAA,CAAA;cALtB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAEf,KAAK,EAAA,QAAA,EAAA,EAAA,EAAA;;kFAEN,UAAU,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC/BvB;;;;;;;;;;;;;;;;;AAiBE;AAEF;AAQA,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE;AACZ;CACF;AAEM,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrD,MAAM,KAAK,GAAG;IACnB,UAAU;IACV,UAAU;IACV;CACD;;AC/CD;;;;;;;;;;;;;;;;;AAiBE;AAEF;MAqBa,qBAAqB,CAAA;sHAArB,qBAAqB,GAAA,CAAA,CAAA,CAAA,CAAA;mEAArB,qBAAqB,EAAA,CAAA,CAAA;uEAX9B,YAAY;YACZ,YAAY;YAEZ,eAAe,CAAA,EAAA,CAAA,CAAA;;iFAQN,qBAAqB,EAAA,CAAA;cAbjC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,YAAY;oBAEZ;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE,EACR;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,GAAG;AACJ;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,qBAAqB,mEAX9B,YAAY;QACZ,YAAY,EAAA4B,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AC9BhB;;;;;;;;;;;;;AAaE;AAEF;MAqBa,QAAQ,CAAA;AACnB,IAAA,WAAA,CAAY,OAAsB,EAAA;QAChC,OAAO,CAAC,QAAQ,CACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,MAAM,CACP;IACH;yGARW,QAAQ,EAAA,EAAA,CAAA,QAAA,CAAAjC,IAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;mEAAR,QAAQ,EAAA,CAAA,CAAA;uEAPjB,YAAY;AACZ,YAAA,iBAAiB,EAGjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;;iFAGR,QAAQ,EAAA,CAAA;cATpB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,QAAQ,cAPjB,YAAY;AACZ,QAAA,iBAAiB,aAGjB,iBAAiB,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACjCrB;;;;;;;;;;;;;AAaE;AAEF;MA2Ea,WAAW,CAAA;4GAAX,WAAW,GAAA,CAAA,CAAA,CAAA,CAAA;mEAAX,WAAW,EAAA,CAAA,CAAA;uEAhDpB,YAAY;YAEZ,YAAY;YACZ,aAAa;YACb,eAAe;YACf,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,UAAU;YACV,gBAAgB;YAChB,eAAe;YACf,WAAW;YACX,aAAa;YACb,aAAa;YACb,eAAe;YACf,YAAY;YACZ,UAAU;YACV,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;YACX,cAAc;AACd,YAAA,cAAc,EAGd,YAAY;YACZ,aAAa;YACb,eAAe;YACf,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,UAAU;YACV,gBAAgB;YAChB,eAAe;YACf,WAAW;YACX,aAAa;YACb,aAAa;YACb,eAAe;YACf,YAAY;YACZ,UAAU;YACV,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;YACX,cAAc;YACd,cAAc,CAAA,EAAA,CAAA,CAAA;;iFAGL,WAAW,EAAA,CAAA;cAlDvB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBAEZ,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,YAAY;oBACZ,WAAW;oBACX,gBAAgB;oBAChB,UAAU;oBACV,gBAAgB;oBAChB,eAAe;oBACf,WAAW;oBACX,aAAa;oBACb,aAAa;oBACb,eAAe;oBACf,YAAY;oBACZ,UAAU;oBACV,WAAW;oBACX,WAAW;oBACX,YAAY;oBACZ,WAAW;oBACX,cAAc;oBACd;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,YAAY;oBACZ,WAAW;oBACX,gBAAgB;oBAChB,UAAU;oBACV,gBAAgB;oBAChB,eAAe;oBACf,WAAW;oBACX,aAAa;oBACb,aAAa;oBACb,eAAe;oBACf,YAAY;oBACZ,UAAU;oBACV,WAAW;oBACX,WAAW;oBACX,YAAY;oBACZ,WAAW;oBACX,cAAc;oBACd;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,WAAW,cAhDpB,YAAY;QAEZ,YAAY;QACZ,aAAa;QACb,eAAe;QACf,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,UAAU;QACV,gBAAgB;QAChB,eAAe;QACf,WAAW;QACX,aAAa;QACb,aAAa;QACb,eAAe;QACf,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,cAAc;AACd,QAAA,cAAc,aAGd,YAAY;QACZ,aAAa;QACb,eAAe;QACf,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,UAAU;QACV,gBAAgB;QAChB,eAAe;QACf,WAAW;QACX,aAAa;QACb,aAAa;QACb,eAAe;QACf,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,cAAc;QACd,cAAc,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACvFlB;;;;;;;;;;;;;;AAcE;AA2CK,MAAM,eAAe,GAAG;;IAE7B,aAAa;IACb,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IAEnB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;;IAIlB,mBAAmB;IACnB,oBAAoB;IACpB,4BAA4B;IAC5B,yBAAyB;IACzB,oBAAoB;;IAGpB,mBAAmB;;IAGnB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IAEtB,eAAe;IACf,wBAAwB;IACxB,qBAAqB;;IAGrB,oBAAoB;IACpB,gBAAgB;IAEhB,gBAAgB;IAChB,2BAA2B;IAC3B;CACD;;AChGD;;;;;;;;;;;;;AAaE;AAMK,MAAM,OAAO,GAAG;IACrB;CACD;;ACrBD;;;;;;;;;;;;;AAaE;AASK,MAAM,UAAU,GAAG;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;IACtB;CACD;;AC3BD;;;;;;;;;;;;;AAaE;AAQK,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,gBAAgB;IAChB;CACD;;ACzBD;;;;;;;;;;;;;;AAcE;AAQK,MAAM,KAAK,GAAG;IACnB,YAAY;IACZ,eAAe;IACf;CACD;;AC1BD;;;;;;;;;;;;;;AAcE;AAOK,MAAM,qBAAqB,GAAG;IACnC,8BAA8B;IAC9B;CACD;;ACxBD;;;;;;;;;;;;;;AAcE;AAEF;AAoBA,MAAMkC,YAAU,GAAG;IACjB,eAAe;IACf,OAAO;IACP,UAAU;IACV,KAAK;IACL,KAAK;IACL;CACD;MAsBY,eAAe,CAAA;gHAAf,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;mEAAf,eAAe,EAAA,CAAA,CAAA;uEAlBxB,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,WAAW;YACX,gBAAgB;YAChB,YAAY;;YAGZ,QAAQ;YACR,WAAW,CAAA,EAAA,CAAA,CAAA;;iFASF,eAAe,EAAA,CAAA;cApB3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,YAAY;oBACZ,mBAAmB;oBACnB,WAAW;oBACX,gBAAgB;oBAChB,YAAY;;oBAGZ,QAAQ;oBACR;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAGA;AACJ,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,GAAGA;AACJ;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,eAAe,q1BAlBxB,YAAY;QACZ,YAAY;QACZ,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,YAAY;;QAGZ,QAAQ;QACR,WAAW,CAAA,EAAA,OAAA,EAAA,CAAAC,aAAA,EAAAC,mBAAA,EAAAC,iBAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,uBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,mBAAA,EAAAC,oBAAA,EAAAC,4BAAA,EAAAC,yBAAA,EAAAC,oBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,eAAA,EAAAC,wBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,2BAAA,EAAAC,2BAAA,EAAAC,eAAA,EAAAC,iBAAA,EAAAC,kBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,YAAA,EAAAC,8BAAA,EAAAC,8BAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACxDf;;;;;;;;;;;;;AAaE;AAiBK,MAAM,UAAU,GAAG;IACxB,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,uBAAuB;IACvB,uBAAuB;;IAGvB,eAAe;IACf,qBAAqB;IACrB,8BAA8B;IAC9B,eAAe;IACf;CACD;;AC3CD;;;;;;;;;;;;;;AAcE;AAEF;MAsCa,oBAAoB,CAAA;qHAApB,oBAAoB,GAAA,CAAA,CAAA,CAAA,CAAA;mEAApB,oBAAoB,EAAA,CAAA,CAAA;AANpB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;YACT,cAAc;YACd,eAAe;YACf;AACD,SAAA,EAAA,OAAA,EAAA,CAlBC,YAAY;YACZ,mBAAmB;YACnB,WAAW;YAEX,QAAQ;YACR,WAAW;YACX,eAAe,CAAA,EAAA,CAAA,CAAA;;iFAcN,oBAAoB,EAAA,CAAA;cAtBhC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,mBAAmB;oBACnB,WAAW;oBAEX,QAAQ;oBACR,WAAW;oBACX;AACD,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,GAAG;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG;AACJ,iBAAA;AACD,gBAAA,SAAS,EAAE;oBACT,cAAc;oBACd,eAAe;oBACf;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,oBAAoB,sQApB7B,YAAY;QACZ,mBAAmB;QACnB,WAAW;QAEX,QAAQ;QACR,WAAW;QACX,eAAe,CAAA,EAAA,OAAA,EAAA,CAAAC,wBAAA,EAAAC,4BAAA,EAAAC,qBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,8BAAA,EAAAC,eAAA,EAAAC,YAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;ACRb,MAAO,UAAW,SAAQ,cAAc,CAAA;AAC5C,IAAA,WAAA,CAAsB,IAAgB,EAAA;QACpC,KAAK,CAAC,IAAI,CAAC;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAI,MAAO,MAAM;AAChC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEA,0BAA0B,GAAA;;AAExB,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,2DAA2D,CAAC;QAC1F,SAAS,CAAC,KAAK,EAAE;AAEjB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAM,4BAA4B,CAAC,CAAC,IAAI,CAAChF,KAAG,CAAC,IAAI,IAAG;;YAEjE,SAAS,CAAC,IAAI,EAAE;YAChB,SAAS,CAAC,0BAA0B,EAAE;YAEtC,IAAI,IAAI,EAAE;gBACR,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/C,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAE/C,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;gBAEpE,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,EAAE,eAAe,CAAC;gBAC3E,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,EAAE,eAAe,CAAC;AAE3E,gBAAA,oBAAoB,EAAE;AACtB,gBAAA,iBAAiB,EAAE;YACrB;QACF,CAAC,CAAC,CAAC;IACL;2GA9BW,UAAU,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uEAAV,UAAU,EAAA,OAAA,EAAV,UAAU,CAAA,IAAA,EAAA,UAAA,EAFT,MAAM,EAAA,CAAA,CAAA;;iFAEP,UAAU,EAAA,CAAA;cAHtB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;AC/BD;;;;;;;;;;;;;AAaE;AAEF;AAmBA,IAAI,gBAA0B;MAuCjB,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAC1B,QAAA,gBAAgB,GAAG,IAAI,CAAC,QAAQ;IAClC;8GAHW,aAAa,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;mEAAb,aAAa,EAAA,CAAA,CAAA;AAvBZ,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;AACV,YAAA,iBAAiB,EAAE;YACnB,qBAAqB,CAAC,MAAK;AACzB,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,gBAAA,OAAO,cAAc,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAACA,KAAG,CAAC,MAAK;;oBAE1E,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAmB,gBAAgB,CAAC;oBAC1E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAsB,mBAAmB,CAAC;oBAC1F,MAAM,IAAI,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC;AAC7D,oBAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;;oBAGnB,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAc,WAAW,CAAC;oBACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAc,WAAW,CAAC;oBAC3D,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;wBAClD,IAAI,CAAC,IAAI,EAAE;AACb,oBAAA,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;YAEF;AACD,SAAA,EAAA,OAAA,EAAA,CAjCC,YAAY;YACZ,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,eAAe,EAGf,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,eAAe,CAAA,EAAA,CAAA,CAAA;;iFAyBN,aAAa,EAAA,CAAA;cArCzB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,iBAAiB;oBACjB,iBAAiB;oBACjB,gBAAgB;oBAChB;AACD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,iBAAiB;oBACjB,iBAAiB;oBACjB,gBAAgB;oBAChB;AACD,iBAAA;AACA,gBAAA,SAAS,EAAE;AACV,oBAAA,iBAAiB,EAAE;oBACnB,qBAAqB,CAAC,MAAK;AACzB,wBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,wBAAA,OAAO,cAAc,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAACA,KAAG,CAAC,MAAK;;4BAE1E,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAmB,gBAAgB,CAAC;4BAC1E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAsB,mBAAmB,CAAC;4BAC1F,MAAM,IAAI,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC;AAC7D,4BAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;;4BAGnB,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAc,WAAW,CAAC;4BACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAc,WAAW,CAAC;4BAC3D,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;gCAClD,IAAI,CAAC,IAAI,EAAE;AACb,4BAAA,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,CAAC;AACN,oBAAA,CAAC,CAAC;oBAEF;AACD;AACF,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,aAAa,cAnCtB,YAAY;QACZ,iBAAiB;QACjB,iBAAiB;QACjB,gBAAgB;AAChB,QAAA,eAAe,aAGf,iBAAiB;QACjB,iBAAiB;QACjB,gBAAgB;QAChB,eAAe,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;AChDnB;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"osovitny-anatoly.mjs","sources":["../../../projects/anatoly/src/lib/core/consts/storageKeys.ts","../../../projects/anatoly/src/lib/core/consts/core-settings.ts","../../../projects/anatoly/src/lib/data/base/api.service.ts","../../../projects/anatoly/src/lib/core/performance/stopwatch.ts","../../../projects/anatoly/src/lib/core/services/web-storage.service.ts","../../../projects/anatoly/src/lib/core/services/appcontext.service.ts","../../../projects/anatoly/src/lib/core/consts/app-settings.ts","../../../projects/anatoly/src/lib/core/consts/formats.ts","../../../projects/anatoly/src/lib/core/consts/ga.ts","../../../projects/anatoly/src/lib/core/is.ts","../../../projects/anatoly/src/lib/core/converts/convert.ts","../../../projects/anatoly/src/lib/core/converts/tz/tzTokenizeDate.ts","../../../projects/anatoly/src/lib/core/converts/tz/tzParseTimezone.ts","../../../projects/anatoly/src/lib/core/converts/dateConvert.ts","../../../projects/anatoly/src/lib/core/converts/xmlFormatter.ts","../../../projects/anatoly/src/lib/core/enums/billing.ts","../../../projects/anatoly/src/lib/core/enums/enums.ts","../../../projects/anatoly/src/lib/core/subs.ts","../../../projects/anatoly/src/lib/core/services/base/service.ts","../../../projects/anatoly/src/lib/core/go/go.service.ts","../../../projects/anatoly/src/lib/core/guid.ts","../../../projects/anatoly/src/lib/iam/storage.ts","../../../projects/anatoly/src/lib/iam/redirect.ts","../../../projects/anatoly/src/lib/iam/consts.ts","../../../projects/anatoly/src/lib/iam/utils.ts","../../../projects/anatoly/src/lib/iam/b2c/b2c.ts","../../../projects/anatoly/src/lib/iam/b2c/consts.ts","../../../projects/anatoly/src/lib/iam/b2c/index.ts","../../../projects/anatoly/src/lib/iam/services/auth.service.ts","../../../projects/anatoly/src/lib/core/logging/logging.service.ts","../../../projects/anatoly/src/lib/core/go/apps-go.service.ts","../../../projects/anatoly/src/lib/iam/guards/admin.guard.ts","../../../projects/anatoly/src/lib/iam/guards/authentication.guard.ts","../../../projects/anatoly/src/lib/iam/guards/index.ts","../../../projects/anatoly/src/lib/iam/exports.ts","../../../projects/anatoly/src/lib/core/services/loading.service.ts","../../../projects/anatoly/src/lib/core/interceptors/httpInterceptor.ts","../../../projects/anatoly/src/lib/core/guards/once-import.guard.ts","../../../projects/anatoly/src/lib/core/services/starter.service.ts","../../../projects/anatoly/src/lib/core/guards/starter.guard.ts","../../../projects/anatoly/src/lib/core/localization/localization.service.ts","../../../projects/anatoly/src/lib/core/localization/localize.pipe.ts","../../../projects/anatoly/src/lib/core/localization/localization.module.ts","../../../projects/anatoly/src/lib/core/localization/utils.ts","../../../projects/anatoly/src/lib/core/logging/globalErrorHandler.ts","../../../projects/anatoly/src/lib/core/notifications/alerts.ts","../../../projects/anatoly/src/lib/core/notifications/interfaces/notification.ts","../../../projects/anatoly/src/lib/core/notifications/services/notification-service.ts","../../../projects/anatoly/src/lib/core/services/browser.service.ts","../../../projects/anatoly/src/lib/core/services/dm.service.ts","../../../projects/anatoly/src/lib/core/services/google-analytics.service.ts","../../../projects/anatoly/src/lib/core/services/idle.service.ts","../../../projects/anatoly/src/lib/core/services/script.service.ts","../../../projects/anatoly/src/lib/core/services/message2user.service.ts","../../../projects/anatoly/src/lib/core/dom.ts","../../../projects/anatoly/src/lib/core/utils/qsutils.ts","../../../projects/anatoly/src/lib/core/utils/utils.ts","../../../projects/anatoly/src/lib/core/exports.ts","../../../projects/anatoly/src/lib/core/enums/index.ts","../../../projects/anatoly/src/lib/ui/components/base/components/component.ts","../../../projects/anatoly/src/lib/ui/directives/replacer/replacer.base.directive.ts","../../../projects/anatoly/src/lib/ui/directives/replacer/a-replacer.directive.ts","../../../projects/anatoly/src/lib/ui/components/identity/signup-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signup-button.component.html","../../../projects/anatoly/src/lib/billing/components/buttons/buyaccess-button.component.ts","../../../projects/anatoly/src/lib/billing/components/buttons/buyaccess-button.component.html","../../../projects/anatoly/src/lib/billing/components/buttons/subscribe-plan-button.component.ts","../../../projects/anatoly/src/lib/billing/components/buttons/subscribe-plan-button.component.html","../../../projects/anatoly/src/lib/billing/services/payments.service.ts","../../../projects/anatoly/src/lib/data/services/billing/promocodes-api.service.ts","../../../projects/anatoly/src/lib/billing/components/order-summary/order-summary.component.ts","../../../projects/anatoly/src/lib/billing/components/order-summary/order-summary.component.html","../../../projects/anatoly/src/lib/ui/directives/replacer/image-replacer.directive.ts","../../../projects/anatoly/src/lib/billing/components/payment-methods/payment-methods.component.ts","../../../projects/anatoly/src/lib/billing/components/payment-methods/payment-methods.component.html","../../../projects/anatoly/src/lib/billing/components/payment-options/payment-options.component.ts","../../../projects/anatoly/src/lib/billing/components/payment-options/payment-options.component.html","../../../projects/anatoly/src/lib/ui/components/base/components/edit.component.ts","../../../projects/anatoly/src/lib/ui/components/base/dialog.ts","../../../projects/anatoly/src/lib/data/services/billing/payments-api.service.ts","../../../projects/anatoly/src/lib/data/services/billing/subscriptions-api.service.ts","../../../projects/anatoly/src/lib/billing/services/billing.service.ts","../../../projects/anatoly/src/lib/billing/components/pm/braintree/braintree.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/braintree/braintree.component.html","../../../projects/anatoly/src/lib/billing/services/paypal-script.service.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-button.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-button.component.html","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-subscribe-button.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/paypal/paypal-subscribe-button.component.html","../../../projects/anatoly/src/lib/billing/components/pm/stripe/stripe.component.ts","../../../projects/anatoly/src/lib/billing/components/pm/stripe/stripe.component.html","../../../projects/anatoly/src/lib/billing/components/exports.ts","../../../projects/anatoly/src/lib/billing/utils.ts","../../../projects/anatoly/src/lib/billing/exports.ts","../../../projects/anatoly/src/lib/data/base/grid/grid-read.service.ts","../../../projects/anatoly/src/lib/data/base/grid/grid-edit.service.ts","../../../projects/anatoly/src/lib/data/services/billing/currencies-api.service.ts","../../../projects/anatoly/src/lib/data/services/billing/currencies-storage.service.ts","../../../projects/anatoly/src/lib/data/services/billing/transactions-api.service.ts","../../../projects/anatoly/src/lib/data/services/core-api.service.ts","../../../projects/anatoly/src/lib/data/services/emails-api.service.ts","../../../projects/anatoly/src/lib/data/exports.ts","../../../projects/anatoly/src/lib/ui/components/base/components/enum-edit.component.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/page.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/edit.page.ts","../../../projects/anatoly/src/lib/ui/components/base/pages/paged.page.ts","../../../projects/anatoly/src/lib/ui/components/base/list.ts","../../../projects/anatoly/src/lib/ui/components/card/card.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-header.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-header.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-body.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-body.component.html","../../../projects/anatoly/src/lib/ui/components/card/card-footer.component.ts","../../../projects/anatoly/src/lib/ui/components/card/card-footer.component.html","../../../projects/anatoly/src/lib/ui/directives/native-element.directive.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/country/country.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/country/country.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/language/language.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/language/language.dropdownlist.html","../../../projects/anatoly/src/lib/ui/validation/validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/item-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/item-validation-summary.component.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.ts","../../../projects/anatoly/src/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.html","../../../projects/anatoly/src/lib/ui/components/html-editor/defaultoptions.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/base-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.component.html","../../../projects/anatoly/src/lib/ui/components/check-icon/check-icon.component.ts","../../../projects/anatoly/src/lib/ui/components/check-icon/check-icon.component.html","../../../projects/anatoly/src/lib/ui/components/data-grid/control-panel.component.ts","../../../projects/anatoly/src/lib/ui/components/data-grid/control-panel.component.html","../../../projects/anatoly/src/lib/ui/components/datapager/datapager.component.ts","../../../projects/anatoly/src/lib/ui/components/datapager/datapager.component.html","../../../projects/anatoly/src/lib/ui/components/identity/signin-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signin-button.component.html","../../../projects/anatoly/src/lib/ui/components/identity/signout-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signout-button.component.html","../../../projects/anatoly/src/lib/ui/components/nodata/nodata.component.ts","../../../projects/anatoly/src/lib/ui/components/nodata/nodata.component.html","../../../projects/anatoly/src/lib/ui/components/no-mobile-support/no-mobile-support.component.ts","../../../projects/anatoly/src/lib/ui/components/no-mobile-support/no-mobile-support.component.html","../../../projects/anatoly/src/lib/ui/components/message2User/message2user.component.ts","../../../projects/anatoly/src/lib/ui/components/message2User/message2User.component.html","../../../projects/anatoly/src/lib/ui/components/spinners/loading/loading.component.ts","../../../projects/anatoly/src/lib/ui/components/spinners/loading/loading.component.html","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/spinkits.ts","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/pagespinner.component.ts","../../../projects/anatoly/src/lib/ui/components/spinners/pagespinner/pagespinner.component.html","../../../projects/anatoly/src/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.ts","../../../projects/anatoly/src/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.html","../../../projects/anatoly/src/lib/ui/components/urlslug/urlslug.component.ts","../../../projects/anatoly/src/lib/ui/components/urlslug/urlslug.component.html","../../../projects/anatoly/src/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.ts","../../../projects/anatoly/src/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.html","../../../projects/anatoly/src/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.ts","../../../projects/anatoly/src/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.html","../../../projects/anatoly/src/lib/ui/components/exports.ts","../../../projects/anatoly/src/lib/ui/validation/form-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/form-validation-summary.component.html","../../../projects/anatoly/src/lib/ui/forms/contact-us/contact-us.ts","../../../projects/anatoly/src/lib/ui/forms/contact-us/contact-us.html","../../../projects/anatoly/src/lib/ui/dialogs/contact-us/contact-us.dialog.ts","../../../projects/anatoly/src/lib/ui/dialogs/contact-us/contact-us.dialog.html","../../../projects/anatoly/src/lib/ui/dialogs/exports.ts","../../../projects/anatoly/src/lib/ui/directives/hover.directive.ts","../../../projects/anatoly/src/lib/ui/directives/exports.ts","../../../projects/anatoly/src/lib/ui/forms/components/address/address.component.ts","../../../projects/anatoly/src/lib/ui/forms/components/address/address.component.html","../../../projects/anatoly/src/lib/ui/forms/components/company/company.component.ts","../../../projects/anatoly/src/lib/ui/forms/components/company/company.component.html","../../../projects/anatoly/src/lib/ui/forms/exports.ts","../../../projects/anatoly/src/lib/ui/pipes/filesize.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/replace-text.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/safeHtml.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/exports.ts","../../../projects/anatoly/src/lib/ui/validation/exports.ts","../../../projects/anatoly/src/lib/ui/exports.ts","../../../projects/anatoly/src/lib/core/core.module.ts","../../../projects/anatoly/src/lib/data/data.module.ts","../../../projects/anatoly/src/lib/iam/configs.ts","../../../projects/anatoly/src/lib/iam/iam.module.ts","../../../projects/anatoly/src/lib/iam/pages/signin.page.ts","../../../projects/anatoly/src/lib/iam/pages/signout.page.ts","../../../projects/anatoly/src/lib/iam/pages/signup.page.ts","../../../projects/anatoly/src/lib/iam/iam-pages.routes.ts","../../../projects/anatoly/src/lib/iam/iam-pages.module.ts","../../../projects/anatoly/src/lib/external/fa.module.ts","../../../projects/anatoly/src/lib/external/kendo.module.ts","../../../projects/anatoly/src/lib/ui/components/index.ts","../../../projects/anatoly/src/lib/ui/dialogs/index.ts","../../../projects/anatoly/src/lib/ui/directives/index.ts","../../../projects/anatoly/src/lib/ui/forms/index.ts","../../../projects/anatoly/src/lib/ui/pipes/index.ts","../../../projects/anatoly/src/lib/ui/validation/index.ts","../../../projects/anatoly/src/lib/ui/ui.module.ts","../../../projects/anatoly/src/lib/billing/components/index.ts","../../../projects/anatoly/src/lib/billing/billing.module.ts","../../../projects/anatoly/src/lib/core/services/app.service.ts","../../../projects/anatoly/src/lib/anatoly.module.ts","../../../projects/anatoly/src/public-api.ts","../../../projects/anatoly/src/osovitny-anatoly.ts"],"sourcesContent":["/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const SessionStorageKeys = {\r\n appCoreSettings: 'appCoreSettings',\r\n appMSALSettings: 'appMSALSettings'\r\n};\r\n\r\nexport const AppContextStorageKeys = {\r\n version: 'version',\r\n currency: 'currency',\r\n\r\n //Lists\r\n countries: 'countries',\r\n languages: 'languages',\r\n timezones: 'timezones',\r\n usStates: 'usStates'\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Examples:\r\n https://github.com/microsoft/TypeScript/blob/main/src/server/editorServices.ts\r\n https://github.com/microsoft/TypeScript/blob/main/src/compiler/core.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { SessionStorageKeys } from \"./storageKeys\";\r\n\r\nexport function getAppCoreSettings() {\r\n const json = sessionStorage.getItem(SessionStorageKeys.appCoreSettings);\r\n return json ? JSON.parse(json) : null;\r\n}\r\n\r\nexport function resetAppCoreSettings() {\r\n AppCoreSettings = getAppCoreSettings();\r\n\r\n let isDevMode = `${AppCoreSettings?.isDevMode}`;\r\n\r\n AppVersion = `${AppCoreSettings?.version}`;\r\n IsDevMode = (isDevMode && (isDevMode == 'True' || isDevMode == 'true'));\r\n IsProdMode = !IsDevMode;\r\n ClientApps = AppCoreSettings?.clientApps; \r\n}\r\n\r\nexport enum AssetGroupType {\r\n App = 1,\r\n Lib = 2,\r\n External\r\n}\r\n\r\n/*\r\n formatAssetsUrl builds a typed asset URL and delegates to formatUrl.\r\n\r\n Output pattern: {base}/{AppName}/assets/{assetGroup}/{assetType}/{file}\r\n\r\n assetGroup tokens:\r\n App → {AppName} e.g. \"am\"\r\n Lib → {LibName} e.g. \"@nexl\"\r\n External → external/{libname}\r\n\r\n assetType:\r\n jsons - JSON data files\r\n l10n - localization files\r\n images - image files\r\n\r\n Examples (AppName = \"am\", LibName = \"@nexl\", CDN disabled):\r\n App → /am/assets/am/jsons/countries.json?v=1\r\n Lib → /am/assets/@nexl/l10n/en.json?v=1\r\n External→ /am/assets/external/anatoly/jsons/file.json?v=1\r\n\r\n Examples (CDN = \"https://cdn.novaexpress.ai\"):\r\n App → https://cdn.novaexpress.ai/am/assets/am/jsons/countries.json\r\n Lib → https://cdn.novaexpress.ai/am/assets/@nexl/l10n/en.json\r\n External→ https://cdn.novaexpress.ai/am/assets/external/anatoly/jsons/file.json\r\n*/\r\nexport function formatAssetsUrl(assetGroupType: AssetGroupType, url: string): string {\r\n const path = url.replace(/^\\/+/, '');\r\n\r\n switch (assetGroupType) {\r\n case AssetGroupType.App:\r\n return formatUrl(`assets/{AppName}/${path}`);\r\n\r\n case AssetGroupType.Lib:\r\n return formatUrl(`assets/{LibName}/${path}`);\r\n\r\n case AssetGroupType.External:\r\n return formatUrl(`assets/external/${path}`);\r\n\r\n default:\r\n return url;\r\n }\r\n}\r\n\r\n/*\r\n formatUrl resolves a relative URL to its final form.\r\n\r\n Output pattern: {base}/{AppName}/{url}\r\n\r\n Tokens in url are resolved before building the path:\r\n {AppName} → AppName (e.g. \"am\")\r\n {LibName} → LibName (e.g. \"@nexl\")\r\n\r\n base:\r\n CDN disabled → \"\" (relative URL, e.g. /am/assets/...)\r\n CDN enabled → \"https://cdn.novaexpress.ai\"\r\n\r\n Absolute URLs (starting with \"http\") are returned as-is.\r\n*/\r\nexport function formatUrl(url: string): string {\r\n if (!url) {\r\n return \"\";\r\n }\r\n\r\n if (url.startsWith(\"http\")) {\r\n return url;\r\n }\r\n\r\n if (!AppCoreSettings) {\r\n return url;\r\n }\r\n\r\n const version = AppCoreSettings.version;\r\n const isCDNEnabled = AppCoreSettings.cdn?.enabled;\r\n const cdnUrl = AppCoreSettings.cdn?.url;\r\n\r\n const resolved = url\r\n .replace('{AppName}', AppName ?? '')\r\n .replace('{LibName}', LibName ?? '');\r\n\r\n const base = (isCDNEnabled && cdnUrl)\r\n ? cdnUrl.replace(/\\/+$/, '')\r\n : '';\r\n\r\n const fullUrl = base + '/' + AppName + '/' + resolved.replace(/^\\/+/, '');\r\n\r\n if (fullUrl.endsWith('.json')) {\r\n return fullUrl + '?v=' + version;\r\n }\r\n\r\n return fullUrl;\r\n}\r\n\r\nexport let AppCoreSettings;\r\nexport let AppVersion;\r\nexport let IsDevMode: boolean = true;\r\nexport let IsProdMode: boolean = !IsDevMode;\r\nexport let ClientApps;\r\n\r\n//Set global vars\r\ndeclare const g_AppName: any;\r\ndeclare const g_LibName: any;\r\ndeclare const g_ApiUrl: any;\r\nexport const AppName = g_AppName;\r\nexport const LibName = g_LibName;\r\nexport const ApiUrl = g_ApiUrl;\r\n\r\nresetAppCoreSettings();\r\n\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n//App\r\nimport { AssetGroupType, formatAssetsUrl } from '../../core/consts/core-settings';\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class ApiServiceBase {\r\n private _httpNoInterceptors: HttpClient;\r\n\r\n //Protected\r\n protected baseUrl: string;\r\n protected ignoreInterceptors: boolean = false;\r\n\r\n constructor(protected http: HttpClient) { \r\n this._httpNoInterceptors = new HttpClient(inject(HttpBackend));\r\n }\r\n\r\n get _http(): HttpClient {\r\n return this.ignoreInterceptors ? this._httpNoInterceptors : this.http;\r\n }\r\n\r\n private serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : \"\";\r\n }\r\n\r\n //api\r\n get<T>(action: string, data?: any, responseType?): Observable<T> {\r\n if (!responseType) {\r\n responseType = 'json';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.get<T>(url, { responseType: responseType }).pipe(\r\n map(res => <T>res)\r\n );\r\n }\r\n\r\n post(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}`;\r\n return this._http.post(url, data, { responseType: responseType });\r\n }\r\n\r\n postQS(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.post(url, null, { responseType: responseType });\r\n }\r\n\r\n delete(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this._http.delete(url, { responseType: responseType });\r\n }\r\n\r\n //gets\r\n getExternalTextFile(url: string): Observable<any> {\r\n return this._http.get(url);\r\n }\r\n\r\n //Json Files\r\n getJsonFile(fileName: string): Observable<any> {\r\n return this._http.get(formatAssetsUrl(AssetGroupType.App, `jsons/${fileName}`));\r\n }\r\n\r\n getLibJsonFile(fileName: string): Observable<any> {\r\n return this._http.get(formatAssetsUrl(AssetGroupType.Lib, `jsons/${fileName}`));\r\n }\r\n\r\n getExternalJsonFile(libname: string, fileName: string): Observable<any> {\r\n return this._http.get(formatAssetsUrl(AssetGroupType.External, `${libname}/jsons/${fileName}`));\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Apr 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Stopwatch {\r\n private name;\r\n private startTime;\r\n private stopTime;\r\n private running;\r\n private performance;\r\n\r\n constructor(name) {\r\n this.name = name;\r\n this.startTime = 0;\r\n this.stopTime = 0;\r\n this.running = false;\r\n this.performance = !!window.performance;\r\n\r\n console.log(this.name + ' started.');\r\n }\r\n\r\n private currentTime() {\r\n return this.performance ? window.performance.now() : new Date().getTime();\r\n }\r\n\r\n start() {\r\n this.startTime = this.currentTime();\r\n this.running = true;\r\n }\r\n\r\n stop() {\r\n this.stopTime = this.currentTime();\r\n this.running = false;\r\n }\r\n\r\n getElapsedMilliseconds() {\r\n if (this.running) {\r\n this.stopTime = this.currentTime();\r\n }\r\n\r\n return this.stopTime - this.startTime;\r\n }\r\n\r\n getElapsedSeconds() {\r\n return this.getElapsedMilliseconds() / 1000;\r\n }\r\n\r\n printElapsedAsMilliseconds() {\r\n let elapsed = this.getElapsedMilliseconds();\r\n console.log(`${this.name} stopped. Execution time: ${elapsed} ms`);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Injectable} from '@angular/core';\r\n\r\nclass WebStorageService {\r\n storage: Storage;\r\n\r\n constructor(storage: string) {\r\n this.storage = storage === 'local' || storage === 'localStorage' ? localStorage : sessionStorage;\r\n }\r\n\r\n setItem(key, value) {\r\n this.storage.setItem(key, value);\r\n }\r\n\r\n setObject(key, value) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n getItem(key) {\r\n return this.storage.getItem(key);\r\n }\r\n\r\n getObject(key) {\r\n let value = this.storage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(value);\r\n }\r\n\r\n remove(key) {\r\n this.storage.removeItem(key);\r\n }\r\n\r\n clear() {\r\n this.storage.clear();\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class LocalStorageService extends WebStorageService {\r\n constructor() {\r\n super('localStorage');\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class SessionStorageService extends WebStorageService {\r\n constructor() {\r\n super('sessionStorage');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Subscription, Observable, forkJoin } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n//App\r\nimport { ApiUrl } from '../consts/core-settings';\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { LocalStorageService, SessionStorageService } from './web-storage.service'\r\nimport { Stopwatch } from '../performance/stopwatch';\r\nimport { AppContextStorageKeys } from '../consts/storageKeys';\r\n\r\n@Injectable()\r\nexport class AppContextService extends ApiServiceBase {\r\n private storageKeyName = 'appContext';\r\n private subscription: Subscription = null;\r\n\r\n //updated\r\n private _updated = new BehaviorSubject<any>(null);\r\n readonly updated$ = this._updated.asObservable();\r\n\r\n //userUpdated\r\n private _userUpdated = new BehaviorSubject<any>(null);\r\n readonly userUpdated$ = this._userUpdated.asObservable();\r\n\r\n //standardJsonFilesLoaded\r\n private _standardJsonFilesLoaded = new BehaviorSubject<any>(null);\r\n readonly standardJsonFilesLoaded$ = this._standardJsonFilesLoaded.asObservable(); \r\n\r\n constructor(protected http: HttpClient, protected localStorage: LocalStorageService, protected sessionStorage: SessionStorageService) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/app`;\r\n this.internalInit();\r\n }\r\n\r\n private internalInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n\r\n this.contextUpdated(this.current);\r\n this.updated$.subscribe((context) => {\r\n this.contextUpdated(context);\r\n });\r\n }\r\n\r\n protected setDefaults?() : void;\r\n protected setValues?() : void;\r\n protected contextUpdated?(context) : void;\r\n\r\n //fires\r\n private fireUpdated(data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this._updated.next(data);\r\n }\r\n\r\n protected fireUserUpdated() {\r\n this._userUpdated.next(null);\r\n }\r\n\r\n private fireStandardJsonFilesLoaded() {\r\n this._standardJsonFilesLoaded.next(null);\r\n } \r\n\r\n //API\r\n private getCountriesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'countries.json');\r\n } \r\n\r\n private getLanguagesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'languages.json');\r\n } \r\n\r\n private getTimezonesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'timezones.json');\r\n }\r\n\r\n private getUSStatesJsonFile(): Observable<any> {\r\n return this.getExternalJsonFile('anatoly', 'usStates.json');\r\n }\r\n\r\n //Session\r\n private getCurrent4Session() {\r\n return this.sessionStorage.getObject(this.storageKeyName);\r\n }\r\n\r\n private setCurrent2Session(value: any) {\r\n this.sessionStorage.setObject(this.storageKeyName, value);\r\n }\r\n\r\n private dataReceived(data) {\r\n this.current = data;\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n\r\n private getCurrentContext() {\r\n if (this.subscription != null) {\r\n return;\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppContextService: Requesting a new AppContext\");\r\n stopwatch.start();\r\n\r\n this.subscription = this.get('getCurrentContext', null).subscribe({\r\n next: (data) => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n this.dataReceived(data);\r\n }\r\n });\r\n }\r\n\r\n private updateCurrentIfExpired() {\r\n let context = this.getCurrent4Session();\r\n\r\n if (!context) {\r\n return;\r\n }\r\n\r\n let shouldBeUpdated = false;\r\n let lr = context.lastRequested;\r\n\r\n if (lr) {\r\n let now = new Date();\r\n let lastRequested = new Date(context.lastRequested);\r\n let in60Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(),\r\n lastRequested.getHours(), lastRequested.getMinutes() + 60, 0, 0);\r\n\r\n if (in60Mins.getTime() < now.getTime()) {\r\n shouldBeUpdated = true;\r\n }\r\n }\r\n else {\r\n shouldBeUpdated = true;\r\n }\r\n\r\n if (shouldBeUpdated) {\r\n this.updateCurrent();\r\n }\r\n }\r\n\r\n //Public\r\n init(context = null) {\r\n if (context) {\r\n this.current = context;\r\n }\r\n\t}\r\n\r\n loadStandardJsonFiles(): Observable<any> {\r\n let countries = this.countries;\r\n let languages = this.languages;\r\n let timezones = this.timezones;\r\n let usStates = this.usStates;\r\n\r\n if (countries && languages && timezones && usStates) {\r\n //VadimOS: that means NO action requried, just we have everything in place\r\n return null;\r\n }\r\n\r\n let countries$ = this.getCountriesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.countries = data;\r\n }\r\n }));\r\n\r\n let languages$ = this.getLanguagesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.languages = data;\r\n }\r\n }));\r\n\r\n let timezones$ = this.getTimezonesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.timezones = data;\r\n }\r\n })); \r\n\r\n let usStates$ = this.getUSStatesJsonFile().pipe(map(data => {\r\n if (data) {\r\n this.usStates = data;\r\n }\r\n })); \r\n\r\n let tasks$ = forkJoin([countries$, languages$, timezones$, usStates$]);\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppContextService: loading standard json files\");\r\n stopwatch.start();\r\n\r\n return tasks$.pipe(tap(() => {\r\n this.fireStandardJsonFilesLoaded();\r\n\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds(); \r\n }));\r\n } \r\n\r\n loadRequiredJsonFiles(): Observable<any> {\r\n return null;\r\n }\r\n\r\n loadRequiredItems(): Observable<any> {\r\n return null;\r\n }\r\n\r\n updateCurrent() {\r\n this.getCurrentContext();\r\n }\r\n\r\n //Storage\r\n clearLocalStorage() {\r\n\t\tthis.localStorage.clear();\r\n\t}\r\n\r\n\tclearSessionStorage() {\r\n\t\tthis.sessionStorage.clear();\r\n\t}\r\n\r\n clearWebStorage() {\r\n\t\tthis.clearLocalStorage();\r\n\t\tthis.clearSessionStorage();\r\n\t}\r\n\r\n //current\r\n public get current() {\r\n this.updateCurrentIfExpired();\r\n return this.getCurrent4Session();\r\n }\r\n public set current(value: any) {\r\n this.setCurrent2Session(value);\r\n this.fireUpdated(value);\r\n }\r\n\r\n //user\r\n\tpublic get user() {\r\n\t\tlet current = this.current;\r\n\t\treturn current?.user;\r\n\t}\r\n\r\n /* Storage Caching ----------------------------------------------------------BEGIN */\r\n //version => localStorage\r\n public get version() {\r\n return this.localStorage.getObject(AppContextStorageKeys.version);\r\n }\r\n public set version(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.version, value);\r\n }\r\n\r\n //currency => localStorage\r\n public get currency() {\r\n return this.localStorage.getObject(AppContextStorageKeys.currency);\r\n }\r\n public set currency(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.currency, value);\r\n }\r\n public clearCurrency() {\r\n this.localStorage.remove(AppContextStorageKeys.currency);\r\n }\r\n\r\n //countries => localStorage\r\n public get countries() {\r\n return this.localStorage.getObject(AppContextStorageKeys.countries);\r\n }\r\n public set countries(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.countries, value);\r\n }\r\n public clearCountries() {\r\n this.localStorage.remove(AppContextStorageKeys.countries);\r\n }\r\n\r\n //languages => localStorage\r\n public get languages() {\r\n return this.localStorage.getObject(AppContextStorageKeys.languages);\r\n }\r\n public set languages(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.languages, value);\r\n }\r\n public clearLanguages() {\r\n this.localStorage.remove(AppContextStorageKeys.languages);\r\n }\r\n\r\n //timezones => localStorage\r\n public get timezones() {\r\n return this.localStorage.getObject(AppContextStorageKeys.timezones);\r\n }\r\n public set timezones(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.timezones, value);\r\n }\r\n public clearTimezones() {\r\n this.localStorage.remove(AppContextStorageKeys.timezones);\r\n } \r\n\r\n //usStates => localStorage\r\n public get usStates() {\r\n return this.localStorage.getObject(AppContextStorageKeys.usStates);\r\n }\r\n public set usStates(value: any) {\r\n this.localStorage.setObject(AppContextStorageKeys.usStates, value);\r\n }\r\n public clearUSStates() {\r\n this.localStorage.remove(AppContextStorageKeys.usStates);\r\n } \r\n /* Storage Caching ----------------------------------------------------------END */\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { AppName, ClientApps } from \"./core-settings\";\r\n\r\nexport function getAppSettingsById(id) {\r\n let apps = ClientApps;\r\n\r\n if (apps && id) {\r\n for (let i = 0; i < apps.length; i++) {\r\n let app = apps[i];\r\n\r\n if (app.id == id) {\r\n return app;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getAppSettingsByName(name) {\r\n let apps = ClientApps;\r\n\r\n if (apps && name) {\r\n for (let i = 0; i < apps.length; i++) {\r\n let app = apps[i];\r\n\r\n if (app.name == name) {\r\n return app;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport interface ICurrentApp {\r\n id: number;\r\n root: string;\r\n\r\n //ApplicationOne\r\n one: any;\r\n oneUrl: string;\r\n}\r\n\r\nexport function getCurrentApp(): ICurrentApp {\r\n let appSettings = getAppSettingsByName(AppName);\r\n let appOne = getAppSettingsById(1);\r\n\r\n if (!appSettings || !appOne) {\r\n return null;\r\n }\r\n \r\n return {\r\n id: appSettings.id,\r\n root: appSettings.root,\r\n\r\n one: appOne,\r\n oneUrl: appOne?.baseUrl + appOne?.root\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const dateTimeFormats = {\r\n medium: 'dd MMM yyyy HH:mm'\r\n};\r\n\r\nexport const dateFormats = {\r\n medium: \"dd MMM yyyy\",\r\n short: \"dd/MM/yyyy\"\r\n};\r\n\r\nexport const timeFormats = {\r\n medium: \"HH:mm:ss\",\r\n short: \"HH:mm\"\r\n};\r\n","\r\n\r\n/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const GAEvents = {\r\n login: {\r\n signin: 'osa_login_signin',\r\n signin_success: 'osa_login_signin_success',\r\n signup: 'osa_login_signup',\r\n signup_success: 'osa_login_signup_success'\r\n }\r\n};\r\n\r\nexport const GABillingEvents = {\r\n payment: 'osa_billing_payment'\r\n};\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 09 Feb 2024\r\n\r\n Sources:\r\n https://playcode.io/javascript\r\n https://github.com/date-fns/date-fns/blob/main/src/isDate/index.ts\r\n https://github.com/date-fns/date-fns/blob/main/src/isValid/index.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class is {\r\n /**\r\n * @name isDate\r\n * @summary Is the given value a date?\r\n */\r\n public static date(value) {\r\n return (\r\n value instanceof Date ||\r\n (typeof value === \"object\" && Object.prototype.toString.call(value) === \"[object Date]\")\r\n );\r\n }\r\n\r\n /**\r\n * @name isDateValid\r\n * @summary Is the given date valid?\r\n */\r\n public static dateValid(date): boolean {\r\n if (!is.date(date) && typeof date !== \"number\") {\r\n return false;\r\n }\r\n\r\n let d = new Date(date);\r\n return !isNaN(Number(d));\r\n }\r\n\r\n public static dateInvalid(date): boolean {\r\n return !is.dateValid(date);\r\n }\r\n\r\n public static objectNullOrEmpty(obj) {\r\n return !obj || Object.keys(obj).length == 0;\r\n }\r\n\r\n public static string(value) {\r\n return (typeof value === 'string' || value instanceof String);\r\n }\r\n\r\n public static emptyString(value) {\r\n return (is.string(value) && (value.length == 0));\r\n }\r\n\r\n public static notEmptyString(value) {\r\n return (is.string(value) && (value.length > 0));\r\n }\r\n\r\n public static number(value) {\r\n return (typeof value === 'number');\r\n }\r\n\r\n public static boolean(value) {\r\n return (typeof value === 'boolean');\r\n }\r\n\r\n public static array(value) {\r\n return (value instanceof Array);\r\n }\r\n\r\n public static emptyArray(value) {\r\n return (is.array(value) && (value.length == 0));\r\n }\r\n\r\n public static notEmptyArray(value) {\r\n return (is.array(value) && (value.length > 0));\r\n }\r\n\r\n public static undefined(value) {\r\n return (typeof value === 'undefined');\r\n }\r\n}\r\n\r\n/*\r\nis = {\r\n DONE string: function (obj) { return (typeof obj === 'string'); },\r\n DONE emptyString: function (obj) { return (is.string(obj) && (obj.length == 0)); },\r\n DONE nonEmptyString: function (obj) { return (is.string(obj) && (obj.length > 0)); },\r\n DONE number: function (obj) { return (typeof obj === 'number'); },\r\n DONE bool: function (obj) { return (typeof obj === 'boolean'); },\r\n DONE array: function (obj) { return (obj instanceof Array); },\r\n DONE emptyArray: function (obj) { return (is.array(obj) && (obj.length == 0)); },\r\n DONE notEmptyArray: function (obj) { return (is.array(obj) && (obj.length > 0)); },\r\n DONE undefined: function (obj) { return (typeof obj === 'undefined'); },\r\n\r\n 'null': function (obj) { return (obj === null); },\r\n notNull: function (obj) { return (obj !== null); },\r\n invalid: function (obj) { return (is['null'](obj) || is.undefined(obj)); },\r\n valid: function (obj) { return (!is['null'](obj) && !is.undefined(obj)); },\r\n\r\n document: function (obj) { return (obj === document); },\r\n window: function (obj) { return (obj === window); },\r\n element: function (obj) { return (obj instanceof HTMLElement); },\r\n event: function (obj) { return (obj instanceof Event); },\r\n link: function (obj) { return (is.element(obj) && (obj.tagName == 'A')); }\r\n};\r\n*/\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 June 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { is } from \"../is\";\r\n\r\nexport class Convert {\r\n private static pad(number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n\r\n public static enumToString(enumeration, value) {\r\n for (let k in enumeration) if (enumeration[k] == value) return k;\r\n\r\n return null;\r\n }\r\n\r\n public static enumToArray(enumeration, valueAsInt = true, notIncludes?) {\r\n const notIncludeFiler = (value) => {\r\n if (isNaN(Number(value))) {\r\n return false;\r\n }\r\n\r\n if (notIncludes) {\r\n for (let i in notIncludes) {\r\n if (notIncludes[i] == value)\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (valueAsInt) {\r\n return Object.keys(enumeration)\r\n .filter(notIncludeFiler)\r\n .map(key => ({\r\n value: parseInt(key),\r\n text: enumeration[key]\r\n }));\r\n }\r\n else {\r\n return Object.keys(enumeration)\r\n .filter(notIncludeFiler)\r\n .map(key => ({\r\n value: key,\r\n text: enumeration[key]\r\n }));\r\n }\r\n }\r\n\r\n public static stringToArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public static stringToIntArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element).map(value => parseInt(value));\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public static company2String(comp:any):string {\r\n let company = JSON.parse(comp);\r\n if(company)\r\n {\r\n return `${company.name} ${company.phone} ${company.email} ${company.websiteUrl}`;\r\n }\r\n }\r\n\r\n public static address2String(adr:any):string {\r\n let address = JSON.parse(adr);\r\n return `${address.street} ${address.street2} ${address.city} ${address.stateOrRegion} ${address.zipcode} ${address.country}`;\r\n }\r\n\r\n public static stringToBoolean(value) {\r\n if (value) {\r\n if (is.boolean(value)){\r\n return value;\r\n }\r\n\r\n if (is.string(value)){\r\n switch (value.toLowerCase().trim()) {\r\n case \"true\":\r\n case \"yes\":\r\n case \"1\":\r\n return true;\r\n \r\n case \"false\":\r\n case \"no\":\r\n case \"0\":\r\n case null:\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n/**\r\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\r\n * `date` as it will be rendered in the `timeZone`.\r\n */\r\nexport function tzTokenizeDate(date, timeZone) {\r\n var dtf = getDateTimeFormat(timeZone)\r\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\r\n}\r\n\r\nvar typeToPos = {\r\n year: 0,\r\n month: 1,\r\n day: 2,\r\n hour: 3,\r\n minute: 4,\r\n second: 5,\r\n}\r\n\r\nfunction partsOffset(dtf, date) {\r\n try {\r\n var formatted = dtf.formatToParts(date)\r\n var filled = []\r\n for (var i = 0; i < formatted.length; i++) {\r\n var pos = typeToPos[formatted[i].type]\r\n\r\n if (pos >= 0) {\r\n filled[pos] = parseInt(formatted[i].value, 10)\r\n }\r\n }\r\n return filled\r\n } catch (error) {\r\n if (error instanceof RangeError) {\r\n return [NaN]\r\n }\r\n throw error\r\n }\r\n}\r\n\r\nfunction hackyOffset(dtf, date) {\r\n var formatted = dtf.format(date).replace(/\\u200E/g, '')\r\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted)\r\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\r\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\r\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\r\n}\r\n\r\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\r\n// to get deterministic local date/time output according to the `en-US` locale which\r\n// can be used to extract local time parts as necessary.\r\nvar dtfCache = {}\r\nfunction getDateTimeFormat(timeZone) {\r\n if (!dtfCache[timeZone]) {\r\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\r\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\r\n hour12: false,\r\n timeZone: 'America/New_York',\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n }).format(new Date('2014-06-25T04:00:00.123Z'))\r\n\r\n var hourCycleSupported =\r\n testDateFormatted === '06/25/2014, 00:00:00' ||\r\n testDateFormatted === '06/25/2014 00:00:00'\r\n\r\n dtfCache[timeZone] = hourCycleSupported\r\n ? new Intl.DateTimeFormat('en-US', {\r\n hour12: false,\r\n timeZone: timeZone,\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n })\r\n : new Intl.DateTimeFormat('en-US', {\r\n hourCycle: 'h23',\r\n timeZone: timeZone,\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n })\r\n }\r\n\r\n return dtfCache[timeZone]\r\n}\r\n\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { tzTokenizeDate } from \"./tzTokenizeDate\"\r\n\r\nexport function tzParseTimezone(timezoneString, date, isUtcDate) {\r\n var token\r\n var absoluteOffset\r\n\r\n // Empty string\r\n if (!timezoneString) {\r\n return 0\r\n }\r\n\r\n // Z\r\n token = patterns.timezoneZ.exec(timezoneString)\r\n if (token) {\r\n return 0\r\n }\r\n\r\n var hours\r\n\r\n // ±hh\r\n token = patterns.timezoneHH.exec(timezoneString)\r\n if (token) {\r\n hours = parseInt(token[1], 10)\r\n\r\n if (!validateTimezone(hours)) {\r\n return NaN\r\n }\r\n\r\n return -(hours * MILLISECONDS_IN_HOUR)\r\n }\r\n\r\n // ±hh:mm or ±hhmm\r\n token = patterns.timezoneHHMM.exec(timezoneString)\r\n if (token) {\r\n hours = parseInt(token[1], 10)\r\n var minutes = parseInt(token[2], 10)\r\n\r\n if (!validateTimezone(hours, minutes)) {\r\n return NaN\r\n }\r\n\r\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\r\n return hours > 0 ? -absoluteOffset : absoluteOffset\r\n }\r\n\r\n // IANA time zone\r\n if (isValidTimezoneIANAString(timezoneString)) {\r\n date = new Date(date || Date.now())\r\n var utcDate = isUtcDate ? date : toUtcDate(date);\r\n var offset = calcOffset(utcDate, timezoneString);\r\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString)\r\n\r\n return -fixedOffset\r\n }\r\n\r\n return NaN\r\n}\r\n\r\n\r\nvar MILLISECONDS_IN_HOUR = 3600000\r\nvar MILLISECONDS_IN_MINUTE = 60000\r\n\r\nvar patterns = {\r\n timezone: /([Z+-].*)$/,\r\n timezoneZ: /^(Z)$/,\r\n timezoneHH: /^([+-]\\d{2})$/,\r\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/,\r\n}\r\n\r\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\r\n var utcDate = new Date(0)\r\n utcDate.setUTCFullYear(fullYear, month, day)\r\n utcDate.setUTCHours(hour, minute, second, millisecond)\r\n return utcDate\r\n}\r\n\r\nfunction toUtcDate(date) {\r\n return newDateUTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n date.getMilliseconds()\r\n )\r\n}\r\n\r\nfunction calcOffset(date, timezoneString) {\r\n var tokens = tzTokenizeDate(date, timezoneString)\r\n\r\n // ms dropped because it's not provided by tzTokenizeDate\r\n var asUTC = newDateUTC(\r\n tokens[0],\r\n tokens[1] - 1,\r\n tokens[2],\r\n tokens[3] % 24,\r\n tokens[4],\r\n tokens[5],\r\n 0\r\n ).getTime()\r\n\r\n var asTS = date.getTime()\r\n var over = asTS % 1000\r\n asTS -= over >= 0 ? over : 1000 + over\r\n return asUTC - asTS\r\n}\r\n\r\nfunction fixOffset(date, offset, timezoneString) {\r\n var localTS = date.getTime()\r\n\r\n // Our UTC time is just a guess because our offset is just a guess\r\n var utcGuess = localTS - offset\r\n\r\n // Test whether the zone matches the offset for this ts\r\n var o2 = calcOffset(new Date(utcGuess), timezoneString)\r\n\r\n // If so, offset didn't change, and we're done\r\n if (offset === o2) {\r\n return offset\r\n }\r\n\r\n // If not, change the ts by the difference in the offset\r\n utcGuess -= o2 - offset\r\n\r\n // If that gives us the local time we want, we're done\r\n var o3 = calcOffset(new Date(utcGuess), timezoneString)\r\n if (o2 === o3) {\r\n return o2\r\n }\r\n\r\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\r\n return Math.max(o2, o3)\r\n}\r\n\r\nfunction validateTimezone(hours, minutes = null) {\r\n return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59))\r\n}\r\n\r\nvar validIANATimezoneCache = {}\r\nfunction isValidTimezoneIANAString(timeZoneString) {\r\n if (validIANATimezoneCache[timeZoneString]) return true\r\n try {\r\n new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString })\r\n validIANATimezoneCache[timeZoneString] = true\r\n return true\r\n } catch (error) {\r\n return false\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 09 Feb 2024\r\n\r\n Source:\r\n https://github.com/date-fns/date-fns/blob/main/src/toDate/index.ts\r\n\r\n tz:\r\n https://www.npmjs.com/package/date-fns-tz\r\n https://github.com/marnusw/date-fns-tz/blob/master/src/utcToZonedTime/index.js\r\n https://github.com/marnusw/date-fns-tz/blob/master/src/_lib/tzParseTimezone/index.js\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { tzParseTimezone } from \"./tz/tzParseTimezone\";\r\nimport { format } from 'date-fns';\r\n\r\nexport class DateConvert {\r\n public static toDate(date: Date | number | string): Date {\r\n const argStr = Object.prototype.toString.call(date);\r\n\r\n if (date instanceof Date || (typeof date === \"object\" && argStr === \"[object Date]\")) {\r\n return date;\r\n }\r\n else if (typeof date === \"number\" || argStr === \"[object Number]\" ||\r\n typeof date === \"string\" || argStr === \"[object String]\") {\r\n return new Date(date);\r\n }\r\n else {\r\n return new Date(NaN);\r\n }\r\n }\r\n\r\n public static toFormattedDate(date: Date | number | string, formatStr: string = 'yyyy-MM-dd HH:mm:ss' ){\r\n const parsedDate = this.toDate(date);\r\n return format(parsedDate, formatStr);\r\n }\r\n\r\n public static utcToLocal(dirtyDate): Date {\r\n if (typeof dirtyDate === 'string') {\r\n if (dirtyDate.indexOf(\"T\") > -1) {\r\n dirtyDate = dirtyDate.replace(\"T\", \" \");\r\n }\r\n\r\n if (dirtyDate.indexOf(\"Z\") == -1) {\r\n dirtyDate = dirtyDate + \"Z\";\r\n }\r\n }\r\n\r\n let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n if (browserTimeZone) {\r\n let date = DateConvert.toDate(dirtyDate);\r\n let offsetMilliseconds = tzParseTimezone(browserTimeZone, date, true);\r\n let d = new Date(date.getTime() - offsetMilliseconds);\r\n let resultDate = new Date(0);\r\n\r\n resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\r\n resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\r\n\r\n return resultDate;\r\n }\r\n\r\n return new Date(dirtyDate);\r\n }\r\n\r\n /*\r\n VadimOS: Anatoly please have a look\r\n\r\n public static localToUtc(value: Date): Date | null {\r\n if (value) {\r\n return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(),\r\n value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds()\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static utcToLocal(value: Date): Date | null {\r\n if (value) {\r\n return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(),\r\n value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds())\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n */\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Sep 2022\r\n\r\n Code:\r\n https://www.npmjs.com/package/js-beautify\r\n https://beautifier.io\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport js_beautify from 'js-beautify'\r\nimport { HTMLBeautifyOptions } from 'js-beautify'\r\n\r\nexport class XmlFormatter {\r\n public static toPrettyXML(s: string, options?: HTMLBeautifyOptions): string {\r\n if (!options) {\r\n options = {\r\n indent_size: 2,\r\n indent_char: \" \",\r\n wrap_line_length: 110\r\n }\r\n }\r\n\r\n return js_beautify.html(s, options);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport enum DiscountCodeType {\r\n Standard = 1,\r\n UseOnce = 2\r\n}\r\n\r\nexport enum DiscountCodeStatus {\r\n Exist = 1,\r\n NotFound = 2,\r\n AlreadyUsed = 3\r\n}\r\n\r\nexport enum PaymentType {\r\n FullPayment = 1,\r\n WeeklyPayment = 2,\r\n BiWeeklyPayment = 3,\r\n MonthlyPayment = 4\r\n}\r\n\r\nexport enum PaymentMethod {\r\n None = 1,\r\n Wallet = 2,\r\n CreditCard = 3,\r\n PayPal = 4,\r\n Stripe = 5,\r\n Venmo = 6,\r\n ApplePay = 7,\r\n GooglePay = 8\r\n}\r\n\r\nexport enum PaymentStage {\r\n //PayPal/Stripe\r\n External = 1,\r\n Internal = 2\r\n}\r\n\r\nexport enum SubscriptionProvider\r\n{\r\n Product = 1,\r\n PayPal = 2,\r\n Stripe = 3\r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n \r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport enum Mode {\r\n View = 1,\r\n Edit = 2,\r\n Moderation = 3\r\n}\r\n\r\nexport enum DataViewType {\r\n Grid = 'grid',\r\n List = 'list',\r\n Table = 'table'\r\n}\r\n\r\nexport enum PublishStatus {\r\n Draft = 1, //viewable by owner ONLY\r\n PendingReview = 2, //via RequestPublishing\r\n Published = 3, //viewable by everyone\r\n Archived = 4 \r\n}\r\n\r\nexport enum ModerationStatus {\r\n Draft = 1, //item is saved\r\n PendingReview = 2, //item is in review\r\n Approved = 3, //item is approved by Moderator\r\n Rejected = 4 //item is rejected by Moderator \r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport class Subs {\r\n private subs: Subscription[] = [];\r\n\r\n constructor() {}\r\n\r\n add(...subscriptions: Subscription[]) {\r\n this.subs = this.subs.concat(subscriptions);\r\n }\r\n\r\n set sink(subscription: Subscription) {\r\n this.subs.push(subscription);\r\n }\r\n\r\n unsubscribe() {\r\n this.subs.forEach((sub) => sub && sub.unsubscribe());\r\n this.subs = [];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Dec 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n\r\n//App\r\nimport { Subs } from '../../subs';\r\n\r\n@Injectable()\r\nexport class ServiceBase implements OnDestroy {\r\n //protected\r\n protected subs: Subs = new Subs();\r\n \r\n constructor() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 17 Jun 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\r\n\r\n//App\r\nimport { getCurrentApp, ICurrentApp } from '../consts/app-settings';\r\nimport { IsDevMode } from '../consts/core-settings';\r\nimport { ServiceBase } from '../services/base/service';\r\n\r\n@Injectable()\r\nexport class GoServiceBase extends ServiceBase {\r\n private initialized = false;\r\n private _currentApp: ICurrentApp;\r\n\r\n //protected\r\n protected isDevMode = false;\r\n\r\n //gets\r\n protected get currentApp(): ICurrentApp {\r\n this.ensureInitialized();\r\n return this._currentApp;\r\n }\r\n \r\n constructor(protected route: ActivatedRoute, protected router: Router) {\r\n super();\r\n }\r\n\r\n private ensureInitialized() {\r\n if (!this.initialized) {\r\n this.isDevMode = IsDevMode;\r\n this._currentApp = getCurrentApp();\r\n this.initialized = true;\r\n }\r\n } \r\n\r\n navigate(commands: any[], extras?: NavigationExtras, reload: boolean = false) {\r\n this.router.navigate(commands, extras).then(() => {\r\n if (reload) {\r\n this.locationReload();\r\n } \r\n });\r\n }\r\n\r\n getHomeUrl() {\r\n return this.currentApp.root;\r\n } \r\n\r\n locationReload() {\r\n (window as any).location.reload();\r\n }\r\n\r\n home(reload: boolean = false) {\r\n this.navigate([this.currentApp.root], {}, reload);\r\n }\r\n \r\n dashboard(reload: boolean = false) {\r\n this.navigate([this.currentApp.root + '/dashboard'], {}, reload);\r\n }\r\n\r\n //Accounts\r\n accountClosed() {\r\n this.navigate([this.currentApp.root + '/accounts/closed']);\r\n } \r\n\r\n //Errors\r\n error() {\r\n this.navigate([this.currentApp.root + '/errors/error']);\r\n }\r\n\r\n //401 Unauthorized\r\n error401() { \r\n this.navigate([this.currentApp.root + '/errors/401']);\r\n }\r\n\r\n //402 Payment Required\r\n error402() { \r\n this.navigate([this.currentApp.root + '/errors/402']);\r\n }\r\n\r\n //403 Forbidden\r\n error403() { \r\n this.navigate([this.currentApp.root + '/errors/403']);\r\n }\r\n\r\n //404 Not Found\r\n error404() { \r\n this.navigate([this.currentApp.root + '/errors/404']);\r\n }\r\n\r\n //500 Internal Server Error\r\n error500() { \r\n this.navigate([this.currentApp.root + '/errors/500']);\r\n } \r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport class Guid {\r\n public static newGuid() {\r\n return uuidv4();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const MSALStorageKeys = {\r\n //LocalStorage\r\n redirectTo: 'msal.app.redirectTo'\r\n\r\n //SessionStorage\r\n}\r\n\r\nexport class MSALStorage {\r\n public static saveRedirectState(redirectTo: string, calledBy: string) {\r\n if (redirectTo.indexOf('iam') >= 0) {\r\n return;\r\n }\r\n\r\n localStorage.setItem(MSALStorageKeys.redirectTo, redirectTo);\r\n console.log(`msal.app: redirect state saved: ${redirectTo}. Called by: ${calledBy}`);\r\n }\r\n\r\n public static getRedirectState(calledBy: string) {\r\n let redirectTo = localStorage.getItem(MSALStorageKeys.redirectTo);\r\n console.log(`msal.app: redirect state requested: ${redirectTo}. Called by: ${calledBy}`);\r\n\r\n return redirectTo;\r\n }\r\n\r\n public static clearRedirectState(calledBy: string) {\r\n localStorage.removeItem(MSALStorageKeys.redirectTo);\r\n console.log(`msal.app: redirect state cleared. Called by: ${calledBy}`);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { MSALStorage } from './storage';\r\n\r\nexport class MSALRedirect {\r\n public static handle(router, calledBy: string) {\r\n let redirectTo = MSALStorage.getRedirectState(calledBy);\r\n if (redirectTo) {\r\n MSALStorage.clearRedirectState(calledBy);\r\n router.navigate([redirectTo]);\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { SessionStorageKeys } from \"../core/consts/storageKeys\";\r\n\r\nexport function getMsalSettings() {\r\n const json = sessionStorage.getItem(SessionStorageKeys.appMSALSettings);\r\n return json ? JSON.parse(json) : null;\r\n}\r\n\r\nexport function resetMsalSettings() {\r\n let msalSettings = getMsalSettings();\r\n\r\n MSALConfig = msalSettings;\r\n MSALApiConfig = MSALConfig?.api;\r\n MSALB2CConfig = MSALConfig?.b2c; \r\n}\r\n\r\nexport let MSALConfig;\r\nexport let MSALApiConfig;\r\nexport let MSALB2CConfig;\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t27 Nov 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { BrowserUtils } from '@azure/msal-browser';\r\n\r\n//App\r\nimport { MSALApiConfig, MSALB2CConfig } from './consts';\r\n\r\nexport class MSALUtils {\r\n public static isB2C() {\r\n if (MSALB2CConfig) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Don't perform initial navigation in iframes or popups\r\n public static initialNavigation() {\r\n return !BrowserUtils.isInIframe() && !BrowserUtils.isInPopup() ? 'enabledNonBlocking' : 'disabled';\r\n }\r\n\r\n public static getApi() : Map<string, Array<string>> {\r\n let map = new Map<string, Array<string>>();\r\n\r\n if (MSALApiConfig) {\r\n let api = MSALApiConfig;\r\n map.set(api.uri, api.scopes);\r\n }\r\n\r\n return map;\r\n }\r\n\r\n public static getApiScopes() : any[] {\r\n let scopes = []; \r\n\r\n if (MSALApiConfig) {\r\n let api = MSALApiConfig;\r\n for (const scope of api.scopes) {\r\n scopes.push(scope);\r\n }\r\n }\r\n \r\n return scopes;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { MSALB2CConfig } from '../consts';\r\n\r\nexport class MSALB2C {\r\n public static getAuthorityByType(type) {\r\n let policy = MSALB2C.getPolicyByType(type);\r\n return policy?.authority;\r\n }\r\n\r\n public static getPolicyByType(type) {\r\n let policies = MSALB2CConfig?.policies;\r\n if (!policies) {\r\n return null;\r\n }\r\n\r\n for (let i = 0; i < policies.length; i++) {\r\n let policy = policies[i];\r\n\r\n if (policy.type == type) {\r\n return policy;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const PolicyType = {\r\n signUpSignIn: 'signUpSignIn',\r\n signUp: 'signUp',\r\n editProfile: 'editProfile',\r\n resetPassword: 'resetPassword'\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './b2c';\r\nexport * from './consts';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, Subject, catchError, filter, map, of, takeUntil } from 'rxjs';\r\nimport { MSAL_GUARD_CONFIG, MsalBroadcastService, MsalGuardConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { AccountInfo, AuthenticationResult, EventMessage, EventType, IdTokenClaims, InteractionRequiredAuthError,\r\n InteractionStatus, InteractionType, PopupRequest, PromptValue, RedirectRequest, SilentRequest, SsoSilentRequest\r\n} from '@azure/msal-browser';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { AppContextService } from '../../core/services/appcontext.service';\r\nimport { MSALRedirect } from '../redirect';\r\nimport { MSALUtils } from '../utils';\r\nimport { MSALB2C, PolicyType } from '../b2c';\r\nimport { QSUtils } from '../../core/exports';\r\n\r\ntype IdTokenClaimsWithPolicyId = IdTokenClaims & {\r\n acr?: string,\r\n tfp?: string,\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService extends ApiServiceBase implements OnDestroy {\r\n private readonly msalDestroying$ = new Subject<void>();\r\n\r\n //B2C Policies\r\n private signUpSignInPolicy\r\n private signUpPolicy;\r\n private editProfilePolicy;\r\n private resetPasswordPolicy;\r\n\r\n constructor(\r\n protected http: HttpClient,\r\n private router: Router,\r\n private appContext: AppContextService,\r\n\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MsalGuardConfiguration,\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService) {\r\n super(http);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.msalDestroying$.next(undefined);\r\n this.msalDestroying$.complete();\r\n }\r\n\r\n private setDefaults() {\r\n } \r\n\r\n /*\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/samples/msal-angular-v3-samples/angular-b2c-sample-app/src/app/app.component.ts\r\n\r\n Token Validation:\r\n https://jwt.io\r\n\r\n Token types:\r\n https://learn.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\r\n ID token - A JWT that contains claims that you can use to identify users in your application\r\n Access token - A JWT that contains claims that you can use to identify the granted permissions to your APIs.\r\n Access tokens are signed, but they aren't encrypted\r\n Refresh token - Refresh tokens are used to acquire new ID tokens and access tokens in an OAuth 2.0 flow.\r\n */\r\n private initMSAL() {\r\n //B2C\r\n this.signUpSignInPolicy = MSALB2C.getPolicyByType(PolicyType.signUpSignIn);\r\n this.signUpPolicy = MSALB2C.getPolicyByType(PolicyType.signUp);\r\n this.editProfilePolicy = MSALB2C.getPolicyByType(PolicyType.editProfile);\r\n this.resetPasswordPolicy = MSALB2C.getPolicyByType(PolicyType.resetPassword);\r\n\r\n this.msalService.handleRedirectObservable().subscribe({\r\n next: (result: AuthenticationResult) => {\r\n console.log(`iam.msal: handleRedirectObservable`);\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n\r\n this.msalService.instance.enableAccountStorageEvents();\r\n this.msalBroadcastService.msalSubject$.pipe(\r\n filter((msg: EventMessage) =>\r\n msg.eventType === EventType.INITIALIZE_END ||\r\n\r\n //ACCOUNT_ADDED and ACCOUNT_REMOVED events emitted when a user logs in or out of another tab or window\r\n msg.eventType === EventType.ACCOUNT_ADDED ||\r\n msg.eventType === EventType.ACCOUNT_REMOVED ||\r\n\r\n //Login Failure\r\n msg.eventType === EventType.LOGIN_FAILURE ||\r\n msg.eventType === EventType.ACQUIRE_TOKEN_FAILURE ||\r\n\r\n //LogOut\r\n msg.eventType === EventType.LOGOUT_SUCCESS ||\r\n\r\n //LogIn\r\n msg.eventType === EventType.LOGIN_SUCCESS ||\r\n msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS ||\r\n msg.eventType === EventType.SSO_SILENT_SUCCESS\r\n ),\r\n takeUntil(this.msalDestroying$)\r\n )\r\n .subscribe((msg: EventMessage) => {\r\n switch (msg.eventType) {\r\n case EventType.INITIALIZE_END:\r\n console.log(`iam.msal: INITIALIZE_END fired`);\r\n break;\r\n\r\n case EventType.ACCOUNT_ADDED:\r\n case EventType.ACCOUNT_REMOVED:\r\n if (this.msalService.instance.getAllAccounts().length === 0) {\r\n window.location.pathname = \"/\";\r\n }\r\n break;\r\n\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n //Check for forgot password error. Learn more about AAD error codes at\r\n //https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes\r\n if (msg.error && msg.error.message.indexOf('AADB2C90118') > -1) {\r\n let resetPasswordFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.resetPasswordPolicy.authority,\r\n scopes: [],\r\n };\r\n\r\n this.login(resetPasswordFlowRequest);\r\n };\r\n break;\r\n\r\n case EventType.LOGOUT_SUCCESS:\r\n break;\r\n\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n let payload = msg.payload as AuthenticationResult;\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n if (!MSALUtils.isB2C()) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n return;\r\n }\r\n\r\n //B2C\r\n let token = payload.idTokenClaims as IdTokenClaimsWithPolicyId\r\n\r\n /**\r\n *\r\n * signUpSignIn\r\n *\r\n */\r\n if (token.acr === this.signUpSignInPolicy.name || token.tfp === this.signUpSignInPolicy.name) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n }\r\n\r\n /**\r\n *\r\n * signUpPolicy\r\n *\r\n */\r\n if (token.acr === this.signUpPolicy.name || token.tfp === this.signUpPolicy.name) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n }\r\n\r\n /**\r\n *\r\n * editProfile\r\n *\r\n * For the purpose of setting an active account for UI update, we want to consider only the auth response resulting\r\n * from SUSI flow. \"acr\" claim in the id token tells us the policy (NOTE: newer policies may use the \"tfp\" claim instead).\r\n * To learn more about B2C tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\r\n */\r\n if (token.acr === this.editProfilePolicy.name || token.tfp === this.editProfilePolicy.name) {\r\n const signInAccount = this.msalService.instance.getAllAccounts().find((account: AccountInfo) =>\r\n account.idTokenClaims?.oid === token.oid &&\r\n account.idTokenClaims?.sub === token.sub &&\r\n ((account.idTokenClaims as IdTokenClaimsWithPolicyId).acr === this.signUpSignInPolicy.name ||\r\n (account.idTokenClaims as IdTokenClaimsWithPolicyId).tfp === this.signUpSignInPolicy.name)\r\n );\r\n\r\n this.forceReauthenticate(signInAccount);\r\n }\r\n\r\n /**\r\n *\r\n * resetPassword\r\n *\r\n * Below we are checking if the user is returning from the reset password flow.\r\n * If so, we will ask the user to reauthenticate with their new password.\r\n * If you do not want this behavior and prefer your users to stay signed in instead,\r\n * you can replace the code below with the same pattern used for handling the return from\r\n * profile edit flow\r\n */\r\n if (token.acr === this.resetPasswordPolicy.name || token.tfp === this.resetPasswordPolicy.name) {\r\n this.forceReauthenticate();\r\n }\r\n\r\n break;\r\n }\r\n\r\n return msg;\r\n });\r\n\r\n this.msalBroadcastService.inProgress$.pipe(\r\n filter((status: InteractionStatus) =>\r\n status === InteractionStatus.Startup ||\r\n status === InteractionStatus.None\r\n ),\r\n takeUntil(this.msalDestroying$)\r\n )\r\n .subscribe((status: InteractionStatus) => {\r\n switch (status) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n case InteractionStatus.Startup:\r\n console.log(`iam.msal: InteractionStatus.Startup`);\r\n break;\r\n\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n case InteractionStatus.None:\r\n console.log(`iam.msal: InteractionStatus.None`);\r\n\r\n MSALRedirect.handle(this.router, 'msalBroadcastService.inProgress$ InteractionStatus.None');\r\n\r\n this.checkAndSetActiveAccount();\r\n this.appContext.updateCurrent();\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private checkAndSetActiveAccount() {\r\n let activeAccount = this.msalService.instance.getActiveAccount();\r\n let accounts = this.msalService.instance.getAllAccounts();\r\n\r\n if (!activeAccount && accounts.length > 0) {\r\n this.msalService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n\r\n private isPopup(popup?: boolean) {\r\n if (typeof popup === \"undefined\") {\r\n return this.msalGuardConfig.interactionType === InteractionType.Popup;\r\n }\r\n\r\n return popup;\r\n }\r\n\r\n private acquireToken(): Observable<string> {\r\n let request = {\r\n scopes: MSALUtils.getApiScopes()\r\n }\r\n\r\n if (this.isPopup()) {\r\n return this.msalService.acquireTokenPopup(request).pipe(\r\n map(response => {\r\n return response ? response.accessToken : null;\r\n })\r\n );\r\n }\r\n else {\r\n return this.msalService.acquireTokenRedirect(request).pipe(\r\n map(() => {\r\n return null;\r\n })\r\n );\r\n }\r\n }\r\n\r\n //Public funcs\r\n init() {\r\n this.setDefaults();\r\n this.initMSAL();\r\n }\r\n\r\n getActiveAccount(): AccountInfo | null {\r\n this.checkAndSetActiveAccount();\r\n return this.msalService.instance.getActiveAccount();\r\n }\r\n\r\n getUserEmail() {\r\n let user = this.appContext.user;\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (activeAccount) {\r\n return activeAccount.username;\r\n }\r\n\r\n return user ? user.Email : '';\r\n }\r\n\r\n getUserName() {\r\n let user = this.appContext.user;\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (activeAccount) {\r\n return activeAccount.name ? activeAccount.name : user ? user.displayNameOrFullName : '';\r\n }\r\n\r\n return user ? user.displayNameOrFullName : '';\r\n }\r\n\r\n getAccessToken(): Observable<string> {\r\n //1. Check SSO\r\n /*\r\n https://learn.microsoft.com/en-us/entra/identity-platform/msal-js-sso\r\n */\r\n if (QSUtils.isSSOinProgress()) {\r\n let cls = QSUtils.getValueByName(\"cls\");\r\n let login = QSUtils.getValueByName(\"login\");\r\n let sid = QSUtils.getValueByName(\"sid\");\r\n let ssoSilentRequest: SsoSilentRequest;\r\n\r\n if (login) {\r\n ssoSilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n loginHint: login\r\n };\r\n }\r\n else if (sid) {\r\n ssoSilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n sid: sid\r\n };\r\n }\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO in progress\");\r\n if (cls) {\r\n QSUtils.clearKey(\"cls=1\", true, true);\r\n }\r\n\r\n return this.msalService.ssoSilent(ssoSilentRequest).pipe(\r\n map(response => {\r\n QSUtils.clearSSO();\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO have been successfully done\");\r\n\r\n return response.accessToken;\r\n }),\r\n catchError(error => {\r\n QSUtils.clearSSO();\r\n\r\n //Logging\r\n console.log(\"iam.msal.sso: SSO silent token acquisition failed\");\r\n console.error(error);\r\n\r\n if (error instanceof InteractionRequiredAuthError) {\r\n return this.acquireToken();\r\n }\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n //2. if isUserAuthenticated\r\n let activeAccount = this.getActiveAccount();\r\n if (activeAccount) {\r\n let silentRequest: SilentRequest = {\r\n scopes: MSALUtils.getApiScopes(),\r\n account: activeAccount\r\n };\r\n\r\n return this.msalService.acquireTokenSilent(silentRequest).pipe(\r\n map(response => {\r\n return response.accessToken;\r\n }),\r\n catchError(error => {\r\n console.log(\"iam.msal.sso: Silent token acquisition failed.\");\r\n\r\n if (error instanceof InteractionRequiredAuthError) {\r\n return this.acquireToken();\r\n }\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n return of(null);\r\n }\r\n\r\n forceReauthenticate(account?) {\r\n if (MSALUtils.isB2C()) {\r\n let signUpSignInFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpSignInPolicy.authority,\r\n scopes: [],\r\n prompt: PromptValue.LOGIN, // force user to reauthenticate with their new password\r\n account: account\r\n };\r\n\r\n this.login(signUpSignInFlowRequest);\r\n }\r\n else {\r\n }\r\n }\r\n\r\n login(userFlowRequest?: RedirectRequest | PopupRequest, popup?: boolean) {\r\n let authRequestCfg: any = this.msalGuardConfig.authRequest;\r\n let authRequest = null;\r\n\r\n if (!userFlowRequest) {\r\n let signUpSignInFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpSignInPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n userFlowRequest = signUpSignInFlowRequest;\r\n }\r\n\r\n if (authRequestCfg) {\r\n authRequest = authRequestCfg(this.msalService, this.router.routerState.snapshot);\r\n }\r\n\r\n if (this.isPopup(popup)) {\r\n if (authRequest) {\r\n this.msalService.loginPopup({ ...authRequest, ...userFlowRequest } as PopupRequest).subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n else {\r\n this.msalService.loginPopup(userFlowRequest).subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n }\r\n else {\r\n if (authRequest) {\r\n this.msalService.loginRedirect({ ...authRequest, ...userFlowRequest } as RedirectRequest);\r\n }\r\n else {\r\n this.msalService.loginRedirect(userFlowRequest);\r\n }\r\n }\r\n }\r\n\r\n logout(popup?: boolean) {\r\n let activeAccount = this.getActiveAccount();\r\n\r\n if (this.isPopup(popup)) {\r\n if (activeAccount) {\r\n this.msalService.logoutPopup({ account: activeAccount, mainWindowRedirectUri: \"/\" }).subscribe(() => {\r\n });\r\n }\r\n else {\r\n this.msalService.logoutPopup({ mainWindowRedirectUri: \"/\" }).subscribe(() => {\r\n });\r\n }\r\n }\r\n else {\r\n if (activeAccount) {\r\n this.msalService.logoutRedirect({ account: activeAccount });\r\n }\r\n else {\r\n this.msalService.logoutRedirect();\r\n }\r\n }\r\n }\r\n\r\n //MSAL check\r\n isUserAuthenticated(): boolean {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n //MSAL + appContext check\r\n isUserSignedIn(): boolean {\r\n if (!this.isUserAuthenticated()) {\r\n return false;\r\n }\r\n\r\n if (this.appContext.current.isUserSignedIn && this.appContext.user) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isUserAdmin(): boolean {\r\n return this.isUserSignedIn() && this.appContext.current.isUserAdmin;\r\n }\r\n\r\n //B2C\r\n signUp() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let signUpFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.signUpPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(signUpFlowRequest);\r\n }\r\n\r\n editProfile() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let editProfileFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.editProfilePolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(editProfileFlowRequest);\r\n }\r\n\r\n resetPassword() {\r\n if (!MSALUtils.isB2C()) {\r\n return;\r\n }\r\n\r\n let resetPasswordFlowRequest: RedirectRequest | PopupRequest = {\r\n authority: this.resetPasswordPolicy.authority,\r\n scopes: []\r\n };\r\n\r\n this.login(resetPasswordFlowRequest);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LoggingService {\r\n constructor() {\r\n }\r\n\r\n info(info) {\r\n console.info(info);\r\n }\r\n\r\n warn(info) {\r\n console.warn(info);\r\n }\r\n\r\n error(error) {\r\n console.error(error);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 18 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n//App\r\nimport { GoServiceBase } from './go.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AuthService } from '../../iam/services/auth.service';\r\nimport { getAppSettingsById } from '../consts/app-settings';\r\nimport { Guid } from '../guid';\r\n\r\n@Injectable()\r\nexport class AppsGoServiceBase extends GoServiceBase {\r\n constructor(protected route: ActivatedRoute, protected router: Router, protected authService: AuthService, protected logger: LoggingService) {\r\n super(route, router);\r\n }\r\n\r\n private redirectToUrl(url, inNewTab = false, action = null) {\r\n if (action) {\r\n action();\r\n }\r\n\r\n //Logging\r\n this.logger.info('AppsGoService.redirectToUrl: ' + url);\r\n\r\n if (inNewTab) {\r\n //window.open(url, '_blank'); => blocks\r\n\r\n let a = document.createElement('a');\r\n a.target = '_blank';\r\n a.href = url;\r\n a.click();\r\n }\r\n else {\r\n location.href = url;\r\n }\r\n }\r\n\r\n //Public\r\n redirect2App(redirectTo, path = null, params = null, inNewTab = false, action = null) {\r\n let appSettings;\r\n\r\n if (redirectTo) {\r\n appSettings = getAppSettingsById(+redirectTo);\r\n }\r\n else {\r\n appSettings = getAppSettingsById(1);\r\n }\r\n\r\n if (appSettings) {\r\n let url: string = appSettings.baseUrl + appSettings.root;\r\n\r\n if (path && params) {\r\n url += (url.endsWith('/') ? \"\" : \"/\") + path + \"?\" + params;\r\n }\r\n else if (path) {\r\n url += (url.endsWith('/') ? \"\" : \"/\") + path;\r\n }\r\n else if (params) {\r\n url = (url.endsWith('/') ? url.substring(0, url.length - 1) : url) + \"?\" + params;\r\n }\r\n\r\n if (this.authService.isUserAuthenticated()) {\r\n let account = this.authService.getActiveAccount();\r\n let sid = Guid.newGuid();\r\n\r\n if (account) {\r\n url += (params ? '&' : '?') + `action=sso&sid=${sid}&login=${account.username}`;\r\n }\r\n\r\n this.redirectToUrl(url, inNewTab, action);\r\n }\r\n else {\r\n this.redirectToUrl(url, inNewTab, action);\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class AdminGuard implements CanActivate, CanActivateChild {\r\n constructor(private auth: AuthService) {\r\n }\r\n\r\n private isUserAdmin(): Observable<boolean> {\r\n\t\treturn of(this.auth.isUserAdmin());\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n return this.isUserAdmin();\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n if (route.component) {\r\n return this.isUserAdmin();\r\n }\r\n\r\n return of(true);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Oct 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Location } from \"@angular/common\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from \"@angular/router\";\r\nimport { MsalBroadcastService, MsalGuard, MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { InteractionType } from \"@azure/msal-browser\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AuthenticationGuard extends MsalGuard implements CanActivate {\r\n private _msalGuardConfig: MsalGuardConfiguration;\r\n\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG)\r\n msalGuardConfig: MsalGuardConfiguration,\r\n msalBroadcastService: MsalBroadcastService,\r\n authService: MsalService,\r\n location: Location,\r\n router: Router\r\n ) {\r\n super(msalGuardConfig, msalBroadcastService, authService, location, router);\r\n this._msalGuardConfig = msalGuardConfig;\r\n }\r\n\r\n private setInteractionType(route: ActivatedRouteSnapshot) {\r\n let interactionType = (route.data as any).interactionType;\r\n this._msalGuardConfig.interactionType = interactionType || InteractionType.Redirect;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {\r\n this.setInteractionType(route);\r\n return super.canActivate(route, state);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n QA\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './admin.guard';\r\nexport * from './authentication.guard';\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 27 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//guards\r\nexport * from './guards';\r\n\r\n//services\r\nexport * from './services/auth.service';\r\n\r\n//utils\r\nexport * from './utils';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingService extends BehaviorSubject<boolean> {\r\n private counter = 0;\r\n\r\n //Public\r\n public isFreezed = false;\r\n\r\n constructor() {\r\n super(false);\r\n }\r\n\r\n private setTimeout(fn: Function, timeout = 500) {\r\n let that = this;\r\n setTimeout(() => {\r\n if (fn) fn(that);\r\n }, \r\n timeout);\r\n }\r\n\r\n show() {\r\n this.counter++;\r\n\r\n this.setTimeout((that) => {\r\n if (that.counter > 0) {\r\n that.next(true);\r\n }\r\n });\r\n }\r\n\r\n hide() {\r\n if (this.counter <= 0) {\r\n return;\r\n }\r\n\r\n this.counter--;\r\n\r\n this.setTimeout((that) => {\r\n if (that.counter == 0) {\r\n that.next(false);\r\n }\r\n });\r\n }\r\n\r\n freeze(timeout: number = 1000) {\r\n this.isFreezed = true;\r\n\r\n this.setTimeout((that) => {\r\n that.isFreezed = false;\r\n },\r\n timeout);\r\n }\r\n\r\n reset() {\r\n if (this.counter > 0) {\r\n this.next(false);\r\n }\r\n\r\n this.counter = 0;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 25 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {mergeMap, tap} from 'rxjs/operators';\r\nimport {Observable} from 'rxjs';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../consts/core-settings';\r\nimport { LoadingService } from '../services/loading.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AuthService } from '../../iam/exports';\r\nimport { getCurrentApp } from '../consts/app-settings';\r\n\r\n@Injectable()\r\nexport class AnatolyHttpInterceptor implements HttpInterceptor {\r\n protected longRunningExceptions = [\r\n 'chunkupload',\r\n ];\r\n\r\n protected authorizationTokenExceptions = [\r\n 'assets',\r\n 'dist',\r\n 'blobs',\r\n 'loadAppInitializerSettings'\r\n ];\r\n\r\n protected autoCDNSASTokenUrls = [\r\n 'chunks',\r\n 'l10n'\r\n ];\r\n\r\n protected externalSiteUrls = [\r\n 'azurewebsites.net'\r\n ];\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n protected loadingService: LoadingService,\r\n protected logger: LoggingService) {\r\n }\r\n\r\n private handleHttpRequest(request: HttpRequest<any>, next: HttpHandler, loadingRequired: boolean): Observable<HttpEvent<any>>{\r\n return next.handle(request).pipe(tap({\r\n next: (event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n },\r\n error: (err: any) => {\r\n this.logger.error(err);\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n }));\r\n }\r\n\r\n private setQS(url: string, value: string): string {\r\n if (url.indexOf('?') > -1) {\r\n return url + '&' + value;\r\n }\r\n\r\n return url + '?' + value;\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n let isCDNEnabled = AppCoreSettings?.cdn?.enabled;\r\n let cdnSasToken = AppCoreSettings?.cdn?.sasToken;\r\n let isLoadingFreezed = this.loadingService.isFreezed;\r\n let loadingRequired = !isLoadingFreezed;\r\n let isExternalSite = false;\r\n let authorizationTokenRequired = true;\r\n\r\n //Urls\r\n let originalUrl = req.url;\r\n let url = req.url.toLowerCase();\r\n let lowerCaseUrl = url.toLowerCase();\r\n\r\n //1. longRunning tasks\r\n if (!isLoadingFreezed) { \r\n for (var i = 0; i < this.longRunningExceptions.length; i++) { \r\n let e = this.longRunningExceptions[i].toLowerCase();\r\n\r\n if (lowerCaseUrl.indexOf(e) >= 0) {\r\n loadingRequired = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //2. Check is site External?\r\n for (const i of this.externalSiteUrls) {\r\n if (url.indexOf(this.externalSiteUrls[i]) >= 0) {\r\n isExternalSite = true;\r\n break;\r\n }\r\n }\r\n\r\n //3. Is Authorization Token Required\r\n if (isExternalSite) {\r\n authorizationTokenRequired = false;\r\n }\r\n else {\r\n for (var i = 0; i < this.authorizationTokenExceptions.length; i++) { \r\n let e = this.authorizationTokenExceptions[i].toLowerCase();\r\n\r\n if (lowerCaseUrl.indexOf(e) >= 0) {\r\n authorizationTokenRequired = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //4. getCurrentContext\r\n if (url.indexOf('getCurrentContext') > -1) {\r\n authorizationTokenRequired = this.authService.isUserAuthenticated();\r\n }\r\n\r\n // Change Url if need it -------------------------------------------->\r\n let newUrl = originalUrl;\r\n\r\n //5. Check should we add CDN SAS tokens\r\n if (isCDNEnabled) {\r\n for (const i of this.autoCDNSASTokenUrls) {\r\n if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {\r\n newUrl = newUrl + cdnSasToken;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //6. no caching for API calls\r\n if (url.indexOf('/api/') > -1 || url.indexOf('api.') > -1) { \r\n const t = new Date().getTime().toString();\r\n newUrl = this.setQS(newUrl, 't=' + t);\r\n }\r\n\r\n //7. set ca\r\n let app = getCurrentApp();\r\n if (app) {\r\n newUrl = this.setQS(newUrl, 'ca=' + app.id);\r\n } \r\n\r\n //8. set new url\r\n req = req.clone({ url: newUrl });\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/json') });\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/text') });\r\n\r\n try\r\n {\r\n this.onRequestStart(loadingRequired);\r\n\r\n if (authorizationTokenRequired) {\r\n return this.authService.getAccessToken().pipe(mergeMap((token: string) => {\r\n if (token) {\r\n req = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + token) });\r\n }\r\n\r\n return this.handleHttpRequest(req, next, loadingRequired);\r\n }));\r\n }\r\n else {\r\n return this.handleHttpRequest(req, next, loadingRequired);\r\n }\r\n }\r\n catch (err) {\r\n this.logger.error(\"An error occurred: \" + err);\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n }\r\n\r\n //Events\r\n onRequestStart(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.show();\r\n }\r\n }\r\n\r\n onRequestEnd(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.hide();\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(\r\n `${moduleName} has already been loaded. Import ${moduleName} modules in the AppModule only.`\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, forkJoin, merge } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n//App\r\nimport { ApiUrl } from '../consts/core-settings';\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { Stopwatch } from '../performance/stopwatch';\r\nimport { is } from '../is';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AppContextService } from '../services/appcontext.service';\r\n\r\n@Injectable()\r\nexport class StarterService extends ApiServiceBase {\r\n constructor(protected http: HttpClient, protected appContext: AppContextService, protected logger: LoggingService) {\r\n super(http);\r\n }\r\n\r\n private applicationStarting(): Observable<any> {\r\n let context = this.appContext.current;\r\n if (!is.objectNullOrEmpty(context)) {\r\n //Logging\r\n this.logger.info('@osovitny/anatoly. StarterService: getting AppContext from Session Storage');\r\n\r\n this.appContext.init(context);\r\n return of(context);\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. StarterService: getting AppContext from API\");\r\n stopwatch.start();\r\n\r\n this.baseUrl = `${ApiUrl}/app`;\r\n return this.get<any>('appStarting').pipe(map(data => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n this.appContext.init(data.context);\r\n }));\r\n }\r\n\r\n ensureApplicationStarted(): Observable<any> {\r\n //1. Application Starting\r\n let applicationStarting$ = this.applicationStarting();\r\n\r\n //2. Load json files\r\n let standardJsonFiles$ = this.appContext.loadStandardJsonFiles();\r\n let requiredJsonFiles$ = this.appContext.loadRequiredJsonFiles();\r\n\r\n //3. Load required items, like settings\r\n let requiredItems$ = this.appContext.loadRequiredItems();\r\n\r\n //Tasks to execute\r\n let parallelTasks = [];\r\n let tasks$: Observable<any> = null;\r\n\r\n if (standardJsonFiles$) parallelTasks.push(standardJsonFiles$);\r\n if (requiredJsonFiles$) parallelTasks.push(requiredJsonFiles$);\r\n if (requiredItems$) parallelTasks.push(requiredItems$);\r\n\r\n /*\r\n VadimOS:\r\n concat is NOT wokring here, no idea why. Just executing first task\r\n let tasks$ = concat(applicationStarting$, parallelTasks$);\r\n\r\n https://github.com/ReactiveX/rxjs/issues/2427\r\n https://github.com/ReactiveX/rxjs/issues/2188\r\n */\r\n if (parallelTasks.length > 0) {\r\n let parallelTasks$ = merge(...parallelTasks);\r\n tasks$ = forkJoin([applicationStarting$, parallelTasks$]);\r\n }\r\n else {\r\n tasks$ = applicationStarting$;\r\n }\r\n\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. StarterService: ensureApplicationStarted\");\r\n stopwatch.start();\r\n\r\n return tasks$.pipe(map(() => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n }));\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Nov 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n//App\r\nimport { StarterService } from \"../services/starter.service\";\r\n\r\n@Injectable()\r\nexport class StarterGuard implements CanActivate, CanActivateChild {\r\n constructor(protected starter: StarterService) {\r\n }\r\n\r\n private ensureApplicationStarted(): Observable<boolean> {\r\n return this.starter.ensureApplicationStarted().pipe(\r\n mergeMap(() => {\r\n return of(true);\r\n })\r\n );\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n return this.ensureApplicationStarted();\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n if (route.component) {\r\n return this.ensureApplicationStarted();\r\n }\r\n\r\n return of(true);\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 05 May 2020\r\n\r\n Source:\r\n https://date-fns.org/v3.3.1/docs/formatDistance\r\n https://date-fns.org/v3.3.1/docs/formatDistanceToNow\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { TranslateService, LangChangeEvent } from '@ngx-translate/core';\r\n\r\n//date-fns\r\nimport { format, formatDistanceToNow, formatDistance } from 'date-fns';\r\n\r\n// VadimOS: DON'T change next imports!\r\n// Reason: https://github.com/date-fns/date-fns/issues/666\r\n//import enUS from 'date-fns/locale/en-US';\r\nimport { enUS } from 'date-fns/locale/en-US';\r\n\r\n//App\r\nimport { Subs } from '../subs';\r\nimport { dateFormats, dateTimeFormats, timeFormats } from '../consts/formats';\r\nimport { DateConvert } from '../converts/dateConvert';\r\nimport { is } from '../is';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService implements OnDestroy {\r\n private subs: Subs = new Subs();\r\n private dateFnsLocale: any;\r\n\r\n //i10n\r\n private supportedLanguages: any = ['en', 'ru', 'es'];\r\n private defaultLanguage = 'en';\r\n\r\n //Outputs\r\n @Output() langchange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private translate: TranslateService) {\r\n this.setSupportedLanguages(this.supportedLanguages);\r\n this.setDefaultLanguage(this.defaultLanguage);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n private format(str: string, args) {\r\n return str.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined' ? args[number] : match;\r\n });\r\n };\r\n\r\n configureSettings(translate: TranslateService): string {\r\n let lang = this.defaultLanguage;\r\n\r\n try {\r\n //i10n\r\n const browserLang = translate.getBrowserLang();\r\n lang = browserLang.match(/en|ru|es/) ? browserLang : this.defaultLanguage;\r\n\r\n //dates\r\n this.dateFnsLocale = { locale: enUS };\r\n\r\n this.subs.sink = this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n console.log('Language Changed');\r\n this.langchange.emit(event.lang);\r\n });\r\n }\r\n catch {\r\n }\r\n\r\n return lang;\r\n }\r\n\r\n //Languages\r\n setSupportedLanguages(languages: string[]): void {\r\n this.translate.addLangs(languages);\r\n }\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n\r\n setLanguage(language: string): void {\r\n this.translate.use(language);\r\n }\r\n\r\n getBrowserLanguage(): string {\r\n return this.translate.getBrowserLang();\r\n }\r\n\r\n //Dates\r\n getDatefnsLocale(): any {\r\n let dfnLocale: any;\r\n\r\n switch (this.getBrowserLanguage()) {\r\n case 'en':\r\n dfnLocale = { locale: enUS };\r\n break;\r\n\r\n default:\r\n dfnLocale = { locale: enUS };\r\n }\r\n\r\n return dfnLocale;\r\n }\r\n\r\n //getLocalized\r\n getLocalizedValue(key: string, params?: any[]): string {\r\n const value = this.translate.instant(key);\r\n\r\n if (!params || params.length === 0) {\r\n return value;\r\n }\r\n\r\n return this.format(value, params);\r\n }\r\n\r\n getLocalizedDateTime(value, formatStr: string = dateTimeFormats.medium): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n getLocalizedDate(value, formatStr: string = dateFormats.medium): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n getLocalizedTime(value, formatStr: string = timeFormats.short): string {\r\n let date = DateConvert.toDate(value);\r\n if (is.dateInvalid(date)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return format(date, formatStr, this.dateFnsLocale);\r\n }\r\n\r\n //UTC ---------------------------------------------------------------------BEGIN\r\n getUTCToLocalizedDateTime(value, formatStr: string = dateTimeFormats.medium) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedDateTime(d, formatStr);\r\n }\r\n\r\n getUTCToLocalizedDate(value, formatStr: string = dateFormats.medium) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedDate(d, formatStr);\r\n }\r\n\r\n getUTCToLocalizedTime(value, formatStr: string = timeFormats.short) {\r\n let d = DateConvert.utcToLocal(value);\r\n return this.getLocalizedTime(d, formatStr);\r\n }\r\n //UTC ---------------------------------------------------------------------END\r\n\r\n //Distance ----------------------------------------------------------------BEGIN\r\n getLocalizedDistance(endedDateStr: string, startedDateStr: string): string {\r\n let endedDate = DateConvert.toDate(endedDateStr);\r\n let startedDate = DateConvert.toDate(startedDateStr);\r\n\r\n if (is.dateInvalid(endedDate) || is.dateInvalid(startedDate)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return formatDistance(endedDate, startedDate, this.dateFnsLocale);\r\n }\r\n\r\n getUTCToLocalizedDistance(value: string): string {\r\n let d = DateConvert.utcToLocal(value);\r\n if (is.dateInvalid(d)) {\r\n return \"Invalid Date\";\r\n }\r\n\r\n return formatDistanceToNow(d, this.dateFnsLocale);\r\n }\r\n //Distance ----------------------------------------------------------------END\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n//App\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'localize',\r\n pure: false,\r\n standalone: false\r\n})\r\nexport class LocalizePipe implements PipeTransform {\r\n constructor(private localizeService: LocalizationService) {\r\n }\r\n\r\n transform(inputData: string, type: string = null, param2: string = null): string {\r\n if (!inputData) {\r\n return;\r\n }\r\n\r\n if (!type) {\r\n type = 'tr';\r\n }\r\n\r\n //Translate\r\n if (type === 'tr') {\r\n return this.localizeService.getLocalizedValue(inputData);\r\n }\r\n\r\n //DateTime\r\n if (type === 'dt') {\r\n return this.localizeService.getLocalizedDateTime(inputData);\r\n }\r\n\r\n //Date\r\n if (type === 'd') {\r\n return this.localizeService.getLocalizedDate(inputData);\r\n }\r\n\r\n //Time\r\n if (type === 't') {\r\n return this.localizeService.getLocalizedTime(inputData);\r\n }\r\n\r\n //UTC ---------------------------------------------------------------------BEGIN\r\n //DateTime\r\n if (type === 'utc2dt') {\r\n return this.localizeService.getUTCToLocalizedDateTime(inputData);\r\n }\r\n\r\n //Date\r\n if (type === 'utc2d') {\r\n return this.localizeService.getUTCToLocalizedDate(inputData);\r\n }\r\n\r\n //Time\r\n if (type === 'utc2t') {\r\n return this.localizeService.getUTCToLocalizedTime(inputData);\r\n }\r\n //UTC ---------------------------------------------------------------------END\r\n\r\n //Distance ----------------------------------------------------------------BEGIN\r\n //DistanceInWords\r\n if (type === 'dis') {\r\n return this.localizeService.getLocalizedDistance(inputData, param2);\r\n }\r\n\r\n //DistanceToNowInWords\r\n if (type === 'utc2dis') {\r\n return this.localizeService.getUTCToLocalizedDistance(inputData);\r\n }\r\n //Distance ----------------------------------------------------------------END\r\n\r\n return inputData;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n\r\n//App\r\nimport { LocalizePipe } from './localize.pipe';\r\nimport { LocalizationService } from \"./localization.service\";\r\nimport { AppVersion, AssetGroupType, formatAssetsUrl } from '../consts/core-settings';\r\n\r\nexport function translateLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\r\n const prefix = formatAssetsUrl(AssetGroupType.Lib, 'l10n/');\r\n const suffix = `.json?v=${AppVersion ?? '1.0.0'}`;\r\n\r\n return new TranslateHttpLoader(httpClient, prefix, suffix);\r\n}\r\n\r\nlet _localizationInjectorInstance: Injector;\r\nexport function getLocalizationInjector(): Injector {\r\n if (!_localizationInjectorInstance) {\r\n throw new Error('LocalizationInjector is not initialized.');\r\n }\r\n\r\n return _localizationInjectorInstance;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: translateLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n exports: [\r\n TranslateModule,\r\n LocalizePipe\r\n ],\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n TranslateService,\r\n LocalizationService\r\n ]\r\n})\r\nexport class LocalizationModule {\r\n constructor(private injector: Injector) {\r\n _localizationInjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 July 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//App\r\nimport { getLocalizationInjector } from './localization.module';\r\nimport { LocalizationService } from './localization.service';\r\n\r\nexport class L10nUtils {\r\n public static get localizationService(): LocalizationService {\r\n const ns = getLocalizationInjector().get<LocalizationService>(LocalizationService);\r\n return ns;\r\n }\r\n\r\n public static getLocalizedValue(key: string, params?: any[], defaultKey?: string) {\r\n // VadimOS: DON'T CHANGE THIS CODE. NEED TO BE REVIEWED AND APPROVED BY VADIMOS\r\n // defaultKey definition:\r\n // if key is empty and defaultKey is defined => get localization for defaultKey\r\n // Example: cancel()\r\n if (!key && defaultKey) {\r\n return this.localizationService.getLocalizedValue(defaultKey);\r\n }\r\n\r\n // VadimOS:\r\n // if key is not empty value MUST be in localization table, othewise we will return key\r\n if (key) {\r\n const value = this.localizationService.getLocalizedValue(key, params);\r\n return value;\r\n }\r\n\r\n return key;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Details:\r\n https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c\r\n https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\n\r\n//App\r\nimport { LoggingService } from \"./logging.service\";\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor(private injector: Injector) {\r\n }\r\n\r\n handleError(error) {\r\n const loggingService = this.injector.get(LoggingService);\r\n loggingService.error(error);\r\n\r\n // IMPORTANT: Rethrow the error otherwise it gets swallowed\r\n throw error;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 3 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport Swal from 'sweetalert2';\r\n\r\n//App\r\nimport { L10nUtils } from '../localization/utils';\r\n\r\nexport class Alerts {\r\n public static areYouSure(text, title?, confirmButtonText?, cancelButtonText?, successAction?, cancelAction?) {\r\n text = L10nUtils.getLocalizedValue(text);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.AreYouSure');\r\n confirmButtonText = L10nUtils.getLocalizedValue(confirmButtonText, null, 'Notifications.AreYouSure-ConfirmButtonText');\r\n cancelButtonText = L10nUtils.getLocalizedValue(cancelButtonText, null, 'Notifications.AreYouSure-CancelButtonText');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText,\r\n cancelButtonText,\r\n showCancelButton: true\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n if (successAction) {\r\n successAction();\r\n }\r\n }\r\n // result.dismiss can be 'cancel', 'overlay', 'close', and 'timer'\r\n else if (result.dismiss == Swal.DismissReason.cancel || result.dismiss == Swal.DismissReason.close) {\r\n if (cancelAction) {\r\n cancelAction();\r\n }\r\n }\r\n });\r\n };\r\n\r\n public static info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Info');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Warning');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static error(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Error');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'error',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n });\r\n }\r\n\r\n public static success(text?, params?: any[], title?, successAction?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Success');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'success',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Notifications.Ok')\r\n })\r\n .then(() => {\r\n if (successAction) {\r\n successAction();\r\n }\r\n });\r\n }\r\n\r\n public static cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Notifications.Cancelled');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info'\r\n })\r\n }\r\n\r\n //Standard Notifications\r\n public static notImplemented() {\r\n let text = L10nUtils.getLocalizedValue('Notifications.NotImplemented');\r\n this.warning(text);\r\n };\r\n\r\n public static authenticationRequired() {\r\n let text = 'Please Log in';\r\n let title = 'Authentication Required';\r\n\r\n this.warning(text, null, title);\r\n };\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport interface INotification {\r\n id?: string;\r\n isNew: boolean;\r\n isSession: boolean;\r\n text?: string;\r\n type?: string;\r\n component?: string;\r\n operation?: string;\r\n createdDate?: string;\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n//App\r\nimport { L10nUtils } from '../../localization/utils';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class NotificationService {\r\n constructor(private toastrService: ToastrService) {\r\n }\r\n\r\n info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.warning(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n error(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.error(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n success(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.success(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'Notifications.OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n //Standard Notifications\r\n notImplemented() {\r\n let text = L10nUtils.getLocalizedValue('Notifications.NotImplemented');\r\n this.warning(text);\r\n }\r\n\r\n authenticationRequired() {\r\n let text = 'Please Log in';\r\n let title = 'Authentication Required';\r\n\r\n this.warning(text, null, title);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 May 2023\r\n\r\n Details:\r\n https://github.com/angular/components/blob/main/src/cdk/layout/breakpoints.ts\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n/*\r\n {\r\n \"tablet\": \"Apple iPad (10th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 16_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Air (M2, 2024)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Mini (6th Gen, 2021)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 15_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Pro 11 (4th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Apple iPad Pro 12.9 (6th Gen, 2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\"\r\n },\r\n {\r\n \"tablet\": \"Google Pixel Tablet (TangorPro)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 14; TANGORPRO Build/UQ1A.240205.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.78 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Huawei MatePad Pro\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 10; MRX-AL09 Build/HUAWEIMRX-AL09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.99 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Lenovo Tab P11 Pro Gen 2\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 12; TB132FU Build/SKQ1.220331.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.163 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab A8 (2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 11; SM-X200 Build/RP1A.200720.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.65 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S8 (2022)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 12; SM-X700 Build/SP1A.210812.016) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S9 (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; SM-X710 Build/TP1A.220624.014) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S9 Ultra (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; SM-X910 Build/TP1A.220624.014) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.92 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Samsung Galaxy Tab S10 Ultra\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 15; SM-X926B Build/AP3A.240905.015.A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.7151.112 Safari/537.36\"\r\n },\r\n {\r\n \"tablet\": \"Xiaomi Pad 6 (2023)\",\r\n \"userAgent\": \"Mozilla/5.0 (Linux; Android 13; 23043RP34G Build/TKQ1.221114.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.92 Safari/537.36\"\r\n }\r\n*/\r\n\r\n//Node\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BrowserService {\r\n //updated\r\n private _updated = new BehaviorSubject<any>(null);\r\n readonly updated$ = this._updated.asObservable();\r\n\r\n constructor(private platform: Platform) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.fireUpdated();\r\n }\r\n\r\n private fireUpdated() {\r\n this._updated.next(null);\r\n }\r\n\r\n // Checks if the app is running inside an iframe\r\n public isIframe(): boolean {\r\n return window !== window.parent && !window.opener;\r\n }\r\n\r\n public isIE(): boolean {\r\n return this.platform.TRIDENT;\r\n }\r\n\r\n public isMobile(): boolean {\r\n if (!this.platform?.isBrowser) return false;\r\n\r\n const mobileRegex = new RegExp(\r\n \"(android.+mobile)|\" + // Android phones\r\n \"iphone|ipod|\" + // Apple phones\r\n \"blackberry|\" + // Modern BlackBerry\r\n \"mobile safari|\" + // Safari in mobile mode\r\n \"sm-[a-z0-9]+|\" + // Samsung Galaxy phones (SM-G series)\r\n \"pixel [0-9a-z]+|\" + // Google Pixel phones\r\n \"redmi|mi [0-9a-z]+|poco|\" + // Xiaomi/Redmi/Poco\r\n \"oneplus|oppo|vivo|realme|\" + // Other Android phones\r\n \"huawei|honor|\" + // Huawei/Honor\r\n \"motorola|moto|\" + // Motorola\r\n \"nokia|infinix|tecno\", // Other brands\r\n \"i\"\r\n );\r\n\r\n return mobileRegex.test(this.userAgent);\r\n }\r\n\r\n public isTablet(): boolean {\r\n if (!this.platform?.isBrowser) return false;\r\n\r\n const tabletRegex = new RegExp(\r\n \"ipad|\" + // Apple iPads\r\n \"android(?!.*mobile)|\" + // Android tablets (exclude phones)\r\n \"tablet|kindle|playbook|silk|\" +\r\n \"nexus 7|nexus 10|\" + // Google Nexus tablets\r\n \"fire|kf[a-z0-9]+|\" + // Amazon Fire tablets\r\n \"sm-t|sm-x|gt-p|sch-i|xoom|tf101|\" + // Samsung Galaxy Tab tablets\r\n \"tab(?!let)|\" + // Match \"tab\" but not \"tablet\"\r\n \"tangor|tangorpro|\" + // Google Pixel Tablet\r\n \"pad\\\\s?[0-9]*|23043rp34g|\" + // Xiaomi Pad\r\n \"tb[0-9a-z\\\\-]+|\" + // Lenovo Tab\r\n \"mrx-al09|\" + // Huawei MatePad Pro\r\n \"x926b\", // Galaxy Tab S10 Ultra\r\n \"i\"\r\n );\r\n\r\n return tabletRegex.test(this.userAgent);\r\n }\r\n\r\n public isMobileOrTablet(): boolean {\r\n return this.isMobile() || this.isTablet();\r\n }\r\n\r\n public isDesktopMacOS(): boolean {\r\n // Check macOS desktop user agent (Macintosh or Mac OS X)\r\n const isMac = /macintosh|mac os x/i.test(this.userAgent);\r\n\r\n // Exclude iPhone and iPad (iOS devices)\r\n const isIPhone = /iphone/i.test(this.userAgent);\r\n const isIPad = /ipad/i.test(this.userAgent);\r\n\r\n return isMac && !isIPhone && !isIPad;\r\n }\r\n\r\n public isDesktop(): boolean {\r\n if (this.isDesktopMacOS()) {\r\n return true;\r\n }\r\n\r\n return !this.isMobileOrTablet();\r\n }\r\n\r\n public get userAgent(): string {\r\n return navigator.userAgent.toLowerCase();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Nov 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DigitalMarketingService {\r\n private existingMetaTags = new Map<string, HTMLElement>();\r\n\r\n constructor(private title: Title, private meta: Meta, @Inject(DOCUMENT) private dom: any) {\r\n }\r\n\r\n updateTitle(title?: string) {\r\n this.title.setTitle(title);\r\n }\r\n\r\n updateDescription(desc?: string) {\r\n if (desc) {\r\n this.meta.updateTag({ name: 'description', content: desc });\r\n } \r\n else {\r\n this.meta.removeTag('name=\"description\"');\r\n }\r\n }\r\n\r\n updateKeywords(keywords?: string) {\r\n if (keywords) {\r\n this.meta.updateTag({ name: 'keywords', content: keywords });\r\n } \r\n else {\r\n this.meta.removeTag('name=\"keywords\"');\r\n }\r\n }\r\n\r\n updateMetaTags(metaDefinitions: MetaDefinition[]) {\r\n this.removePreviousMetaTags();\r\n\r\n if (metaDefinitions && metaDefinitions.length > 0) {\r\n metaDefinitions.forEach(metaDef => {\r\n const tag = this.meta.updateTag(metaDef);\r\n if (tag) {\r\n const key = this.getMetaTagKey(metaDef);\r\n this.existingMetaTags.set(key, tag);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private removePreviousMetaTags() {\r\n this.existingMetaTags.forEach((tag, key) => {\r\n if (tag && tag.parentNode) {\r\n tag.parentNode.removeChild(tag);\r\n }\r\n });\r\n\r\n this.existingMetaTags.clear();\r\n }\r\n\r\n private getMetaTagKey(metaDef: MetaDefinition): string {\r\n if (metaDef.name) {\r\n return `name:${metaDef.name}`;\r\n } \r\n else if (metaDef.property) {\r\n return `property:${metaDef.property}`;\r\n } \r\n else if (metaDef.httpEquiv) {\r\n return `httpEquiv:${metaDef.httpEquiv}`;\r\n }\r\n \r\n return Math.random().toString(); // fallback\r\n }\r\n\r\n setCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const head = this.dom.getElementsByTagName('head')[0];\r\n\r\n const existingLinks = this.dom.querySelectorAll('link[rel=\"canonical\"]');\r\n existingLinks.forEach((link: HTMLLinkElement) => {\r\n if (link.parentNode) {\r\n link.parentNode.removeChild(link);\r\n }\r\n });\r\n\r\n const link: HTMLLinkElement = this.dom.createElement('link');\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', canUrl);\r\n head.appendChild(link);\r\n }\r\n\r\n updateCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const head = this.dom.getElementsByTagName('head')[0];\r\n let link: HTMLLinkElement = this.dom.querySelector(`link[rel='canonical']`) || null;\r\n\r\n if (link == null) {\r\n link = this.dom.createElement('link') as HTMLLinkElement;\r\n head.appendChild(link);\r\n }\r\n\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', canUrl);\r\n }\r\n\r\n updateOpenGraphTags(ogTags: { title?: string; description?: string; image?: string; url?: string }) {\r\n const metaTags: MetaDefinition[] = [];\r\n\r\n if (ogTags.title) {\r\n metaTags.push({ property: 'og:title', content: ogTags.title });\r\n metaTags.push({ name: 'twitter:title', content: ogTags.title });\r\n }\r\n\r\n if (ogTags.description) {\r\n metaTags.push({ property: 'og:description', content: ogTags.description });\r\n metaTags.push({ name: 'twitter:description', content: ogTags.description });\r\n }\r\n\r\n if (ogTags.image) {\r\n metaTags.push({ property: 'og:image', content: ogTags.image });\r\n metaTags.push({ name: 'twitter:image', content: ogTags.image });\r\n }\r\n\r\n if (ogTags.url) {\r\n metaTags.push({ property: 'og:url', content: ogTags.url });\r\n }\r\n\r\n metaTags.push({ name: 'twitter:card', content: 'summary_large_image' });\r\n\r\n this.updateMetaTags(metaTags);\r\n }\r\n\r\n clearAllMetaTags() {\r\n this.removePreviousMetaTags();\r\n this.meta.removeTag('name=\"description\"');\r\n this.meta.removeTag('name=\"keywords\"');\r\n\r\n const metaTagsToRemove = [\r\n 'property=\"og:title\"', 'property=\"og:description\"', 'property=\"og:image\"', 'property=\"og:url\"',\r\n 'name=\"twitter:title\"', 'name=\"twitter:description\"', 'name=\"twitter:image\"', 'name=\"twitter:card\"'\r\n ];\r\n\r\n metaTagsToRemove.forEach(selector => {\r\n this.meta.removeTag(selector);\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Nov 2020\r\n\r\n Details:\r\n https://medium.com/@danielfilipkowskiblogs/adding-google-analytics-to-angular-v15-1766c4bdaed5\r\n\r\n API:\r\n https://developers.google.com/tag-platform/gtagjs/reference\r\n https://developers.google.com/analytics/devguides/collection/ga4/events?client_type=gtag\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class GoogleAnalyticsService {\r\n private subscription: Subscription;\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n subscribe() {\r\n this.subscription = this.router.events.subscribe({\r\n next: (event) => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.ga) {\r\n this.ga('set', 'page', event.urlAfterRedirects);\r\n this.ga('send', 'pageview');\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n unsubscribe() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n event(name: string, params = null) {\r\n if (!this.ga) {\r\n return;\r\n }\r\n\r\n try {\r\n if (params) {\r\n this.ga('event', name, params);\r\n }\r\n else {\r\n this.ga('event', name);\r\n }\r\n }\r\n catch (err) {\r\n console.error('Google Analytics event error', err);\r\n }\r\n }\r\n\r\n private get ga() {\r\n let ga = (<any>window).gtag;\r\n return ga;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, fromEvent, merge, Subject, timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdleService {\r\n private idle$: Observable<any>;\r\n private timer$;\r\n private idleSubscription;\r\n\r\n //Dates/Timeouts\r\n private startDate;\r\n private timeOutSeconds: number;\r\n private timeOutMilliSeconds: number;\r\n\r\n public expired$: Subject<boolean> = new Subject<boolean>();\r\n\r\n //Private\r\n private resetTimeCounters(timeOutSeconds) {\r\n this.timeOutSeconds = timeOutSeconds;\r\n this.timeOutMilliSeconds = timeOutSeconds * 1000;\r\n this.startDate = new Date();\r\n }\r\n\r\n private startTimer() {\r\n this.timer$ = timer(this.timeOutMilliSeconds, 1 * 1000).subscribe({\r\n next: (data) => {\r\n let nowDate = new Date();\r\n let exiredDate = new Date(this.startDate.getTime() + this.timeOutMilliSeconds);\r\n\r\n if (nowDate.getTime() >= exiredDate.getTime()) {\r\n //console.log(\"nowDate: \" + nowDate);\r\n //console.log(\"exiredDate: \" + exiredDate);\r\n\r\n this.expired$.next(true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private resetTimer() {\r\n this.startDate = new Date();\r\n }\r\n\r\n //Public\r\n public startWatching(timeOutSeconds): Observable<any> {\r\n this.idle$ = merge(\r\n fromEvent(document, 'mousemove'),\r\n fromEvent(document, 'click'),\r\n fromEvent(document, 'mousedown'),\r\n fromEvent(document, 'keypress'),\r\n fromEvent(document, 'DOMMouseScroll'),\r\n fromEvent(document, 'mousewheel'),\r\n fromEvent(document, 'touchmove'),\r\n fromEvent(document, 'MSPointerMove'),\r\n fromEvent(window, 'mousemove'),\r\n fromEvent(window, 'resize'),\r\n );\r\n\r\n this.resetTimeCounters(timeOutSeconds);\r\n\r\n this.idleSubscription = this.idle$.subscribe({\r\n next: (data) => {\r\n this.resetTimer();\r\n }\r\n });\r\n\r\n this.startTimer();\r\n return this.expired$;\r\n }\r\n\r\n public stopWatching() {\r\n this.timer$.unsubscribe();\r\n this.idleSubscription.unsubscribe();\r\n }\r\n\r\n public restartIdleTimer(timeOutSeconds) {\r\n this.timer$.unsubscribe();\r\n\r\n this.resetTimeCounters(timeOutSeconds);\r\n this.startTimer();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, NgZone } from '@angular/core';\r\n\r\n//App\r\nimport { IQueryParam } from '../models/qs';\r\n\r\n@Injectable()\r\nexport class ScriptService {\r\n constructor(protected zone: NgZone) {\r\n }\r\n\r\n private getElemId(globalVar: string): string {\r\n return `anatoly-script-${globalVar}`;\r\n }\r\n\r\n registerScript(url: string, globalVar: string, onReady: (globalVar: any) => void): void {\r\n const existingGlobalVar = (window as any)[globalVar];\r\n\r\n if (existingGlobalVar) {\r\n // global variable is present = script was already loaded\r\n this.zone.run(() => {\r\n onReady(existingGlobalVar);\r\n });\r\n return;\r\n }\r\n\r\n // prepare script elem\r\n const scriptElem = document.createElement('script');\r\n scriptElem.id = this.getElemId(globalVar);\r\n scriptElem.innerHTML = '';\r\n scriptElem.onload = () => {\r\n this.zone.run(() => {\r\n onReady((window as any)[globalVar]);\r\n });\r\n };\r\n scriptElem.src = url;\r\n scriptElem.async = true;\r\n scriptElem.defer = true;\r\n\r\n // add script to header\r\n document.getElementsByTagName('head')[0].appendChild(scriptElem);\r\n }\r\n\r\n cleanup(globalVar: string): void {\r\n // remove script from DOM\r\n const scriptElem = document.getElementById(this.getElemId(globalVar));\r\n\r\n if (scriptElem) {\r\n scriptElem.remove();\r\n }\r\n }\r\n\r\n getQueryString(queryParams: IQueryParam[]): string {\r\n let queryString = '';\r\n\r\n for (let i = 0; i < queryParams.length; i++) {\r\n const queryParam = queryParams[i];\r\n if (i === 0) {\r\n queryString += '?';\r\n } else {\r\n queryString += '&';\r\n }\r\n\r\n queryString += `${queryParam.name}=${queryParam.value}`;\r\n }\r\n\r\n return queryString;\r\n }\r\n}\r\n","/*\r\n <file>\r\n Project:\r\n @osovitny/anatoly\r\n \r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n \r\n Created:\r\n 16 Dec 2025\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport class Message2User {\r\n type: number;\r\n block: boolean;\r\n timeout?: number;\r\n \r\n constructor(type: number, block: boolean, timeout?) {\r\n this.type = type;\r\n this.block = block;\r\n this.timeout = timeout;\r\n }\r\n}\r\n\r\nexport interface Message2UserConfig {\r\n type: number;\r\n image: string;\r\n color: string;\r\n title: string;\r\n message: string;\r\n go2dashboard: boolean\r\n}\r\n\r\n@Injectable()\r\nexport class Message2UserService extends BehaviorSubject<Message2User> {\r\n private configs;\r\n \r\n constructor() {\r\n super(null);\r\n }\r\n \r\n init(configs) {\r\n this.configs = configs;\r\n }\r\n \r\n getConfig(type: number) {\r\n return this.configs?.find(config => config.type == type);\r\n }\r\n \r\n notify(type: number, block = true, timeout = null) {\r\n const message = new Message2User(type, block, timeout);\r\n this.next(message);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\ndeclare var $: any;\r\n\r\nexport class DOM {\r\n //Private\r\n private static dir(elem: HTMLElement, dir, until = null, selector: string = null) {\r\n let matched = [];\r\n let truncate = until !== undefined && until != null;\r\n\r\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\r\n if (elem.nodeType === 1) {\r\n /*\r\n if (truncate && jQuery(elem).is(until)) {\r\n break;\r\n }\r\n */\r\n\r\n if (selector) {\r\n let className = selector.replace('.', '');\r\n if (elem.classList.contains(className)) {\r\n matched.push(elem);\r\n }\r\n }\r\n else {\r\n matched.push(elem);\r\n }\r\n }\r\n }\r\n\r\n return matched;\r\n }\r\n\r\n //Public\r\n public static first(elements: HTMLElement[]): HTMLElement {\r\n if (!elements || elements.length == 0) {\r\n return null;\r\n }\r\n\r\n return elements[0];\r\n }\r\n\r\n public static any(elements: HTMLElement[]): boolean {\r\n if (!elements || elements.length == 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public static parent(elem: HTMLElement): HTMLElement {\r\n let parentElement = elem.parentElement;\r\n let parentNode = elem.parentNode;\r\n\r\n return parentNode && parentNode.nodeType !== 11 ? parentElement : null;\r\n }\r\n\r\n public static parents(elem: HTMLElement, selector = null) {\r\n return this.dir(elem, \"parentNode\", null, selector);\r\n }\r\n\r\n public static findInDocument(selector: string): HTMLElement[] {\r\n let parent = $(document);\r\n return $(parent).find(selector).get();\r\n }\r\n\r\n public static find(elem, selector: string): HTMLElement[] {\r\n return $(elem).find(selector).get();\r\n }\r\n\r\n public static remove(nodes) {\r\n if (nodes == null) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(nodes)) {\r\n if (nodes.parentNode) {\r\n nodes.parentNode.removeChild(nodes);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (nodes.length == 0) {\r\n return;\r\n }\r\n\r\n let node;\r\n let i = 0;\r\n\r\n for (; (node = nodes[i]) != null; i++) {\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n }\r\n }\r\n }\r\n\r\n public static findAndRemove(element, selector) {\r\n this.remove(this.find(element, selector));\r\n }\r\n\r\n public static show(elem) {\r\n $(elem).show();\r\n }\r\n\r\n public static hide(elem) {\r\n $(elem).hide();\r\n }\r\n\r\n public static each(selector, action) {\r\n let parent = $(document);\r\n let elems = DOM.find(parent, selector);\r\n\r\n for (let i = 0; i < elems.length; i++) {\r\n let elem = elems[i];\r\n action(elem);\r\n }\r\n }\r\n\r\n //Css\r\n /*\r\n public static addClass(e: Element, className: string): Element {\r\n const class = e.getAttribute('class');\r\n if (class === null || class === '') {\r\n e.setAttribute('class', className);\r\n } else if (!DOM.hasClass(e, className)) {\r\n e.setAttribute('class', `${class} ${className}`);\r\n }\r\n\r\n return e;\r\n }\r\n\r\n public static removeClass(e: Element, className: string): Element {\r\n const class = e.getAttribute('class')\r\n if (class !== null && class !== '') {\r\n if (class === className) {\r\n e.setAttribute('class', '');\r\n } else {\r\n const result = class\r\n .split(' ')\r\n .filter((s: any) => s !== className)\r\n .join(' ');\r\n e.setAttribute('class', result);\r\n }\r\n }\r\n\r\n return e;\r\n }\r\n\r\n public static hasClass(e: Element, className: string): boolean {\r\n const class = e.getAttribute('class') || '';\r\n const r = new RegExp(`\\\\b${className}\\\\b`, '');\r\n return r.test(class);\r\n }\r\n */\r\n\r\n public static addClass(elem: Node | Element, classNames) {\r\n $(elem).addClass(classNames);\r\n }\r\n\r\n public static removeClass(elem: Node | Element, classNames) {\r\n $(elem).removeClass(classNames);\r\n }\r\n\r\n public static hasClass(elem: Node | Element, className) {\r\n $(elem).hasClass(className);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class QSUtils {\r\n private static getValue(url, name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n const regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)'),\r\n\r\n results = regex.exec(url);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n }\r\n\r\n public static getValueByName(name) {\r\n return QSUtils.getValue(location.search, name);\r\n }\r\n\r\n public static exists(name) {\r\n let value = QSUtils.getValueByName(name);\r\n if (value) return true;\r\n\r\n return false;\r\n }\r\n\r\n public static idExists() {\r\n return QSUtils.exists(\"id\");\r\n }\r\n\r\n public static clear() {\r\n try\r\n {\r\n let newURL = location.href.split(\"?\")[0];\r\n window.history.pushState('object', document.title, newURL);\r\n }\r\n catch(e)\r\n {\r\n }\r\n }\r\n\r\n public static clearKey(name, reload = false, clearStorage = false) {\r\n try\r\n {\r\n let str = null;\r\n let newURL= null;\r\n\r\n str = \"?\" + name;\r\n if (location.href.indexOf(str) > -1) {\r\n newURL = location.href.split(str)[0];\r\n }\r\n\r\n str = \"&\" + name;\r\n if (location.href.indexOf(str) > -1) {\r\n newURL = location.href.split(str)[0];\r\n }\r\n\r\n if (newURL && reload) {\r\n if (clearStorage) {\r\n console.log(\"Clearing Storage\");\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n }\r\n\r\n window.location.href = newURL;\r\n }\r\n else {\r\n window.history.pushState('object', document.title, newURL);\r\n }\r\n }\r\n catch(e)\r\n {\r\n }\r\n }\r\n\r\n public static getUrlSlug(): string {\r\n let str = location.href;\r\n let items = str.split('/');\r\n let urlSlugWithQS = items[items.length - 1];\r\n let urlSlug = urlSlugWithQS.split(\"?\")[0];\r\n\r\n return urlSlug;\r\n }\r\n\r\n //SSO\r\n public static isSSOinProgress(): boolean {\r\n return location.search.indexOf(\"action=sso\") > -1;\r\n }\r\n\r\n public static clearSSO() {\r\n this.clearKey(\"action=sso\");\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 March 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Utils {\r\n public static copyToClipBoard(event: any, val: string) {\r\n event.preventDefault();\r\n\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public static downloadFile(name: string, url: string) {\r\n const link = document.createElement('a');\r\n link.download = name;\r\n link.href = url;\r\n link.click();\r\n }\r\n\r\n public static downloadBlobFile(value: Blob, fileName: string) {\r\n const nav = (window.navigator as any);\r\n\r\n if (nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(value, fileName);\r\n }\r\n else {\r\n const downloadURL = window.URL.createObjectURL(value);\r\n Utils.downloadFile(fileName, downloadURL);\r\n }\r\n }\r\n\r\n /*\r\n Author:\r\n https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1\r\n */\r\n public static slugify(text: string, prefix: string = '', postfix: string = '') {\r\n const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';\r\n const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';\r\n const p = new RegExp(a.split('').join('|'), 'g');\r\n\r\n /*\r\n https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/\r\n https://stackoverflow.com/questions/822452/strip-html-from-text-javascript\r\n */\r\n text = text.replace(/(<([^>]+)>)/gi, '');\r\n\r\n let result = text\r\n .toString()\r\n .toLowerCase()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\r\n .replace(/&/g, '-and-') // Replace & with 'and'\r\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word characters\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start of text\r\n .replace(/-+$/, ''); // Trim - from end of text\r\n\r\n return prefix + result + postfix;\r\n }\r\n\r\n public static generateRandom(start: number, end: number) {\r\n return Math.floor(Math.random() * (end - start + 1)) + start;\r\n }\r\n\r\n public static sortArray(items) {\r\n return items?.slice().sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()))\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//consts\r\nexport * from './consts/app-settings';\r\nexport * from './consts/core-settings';\r\nexport * from './consts/formats';\r\nexport * from './consts/ga';\r\n\r\n//converts\r\nexport * from './converts/convert';\r\nexport * from './converts/dateConvert';\r\nexport * from './converts/xmlFormatter';\r\n\r\n//enums\r\nexport * from './enums/billing';\r\nexport * from './enums/enums';\r\n\r\n//go\r\nexport * from './go/go.service';\r\nexport * from './go/apps-go.service';\r\n\r\n//interceptors\r\nexport * from './interceptors/httpInterceptor';\r\n\r\n//guards\r\nexport * from './guards/once-import.guard';\r\nexport * from './guards/starter.guard';\r\n\r\n//localization\r\nexport * from './localization/localize.pipe';\r\nexport * from './localization/localization.service';\r\nexport * from './localization/localization.module';\r\nexport * from './localization/utils';\r\n\r\n//logging\r\nexport * from './logging/globalErrorHandler';\r\nexport * from './logging/logging.service';\r\n\r\n//notifications\r\nexport * from './notifications/alerts';\r\nexport * from './notifications/interfaces/notification';\r\nexport * from './notifications/services/notification-service';\r\n\r\n//performance\r\nexport * from './performance/stopwatch';\r\n\r\n//services\r\nexport * from './services/base/service';\r\nexport * from './services/appcontext.service';\r\nexport * from './services/browser.service';\r\nexport * from './services/dm.service'\r\nexport * from './services/google-analytics.service'\r\nexport * from './services/idle.service';\r\nexport * from './services/loading.service';\r\nexport * from './services/script.service'\r\nexport * from './services/starter.service';\r\nexport * from './services/web-storage.service'\r\nexport * from './services/message2user.service';\r\n\r\nexport * from './dom';\r\nexport * from './guid';\r\nexport * from './is';\r\nexport * from './subs';\r\nexport * from './utils/qsutils';\r\nexport * from './utils/utils';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n \r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './billing';\r\nexport * from './enums';","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnDestroy, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { Subs, IsDevMode, QSUtils, ICurrentApp, getCurrentApp } from \"../../../../core/exports\";\r\nimport { Mode } from \"../../../../core/enums\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class ComponentBase implements OnInit, OnDestroy {\r\n protected isDevMode = false;\r\n protected subs: Subs = new Subs();\r\n\r\n //Component Data => usually loading from API\r\n protected dataLoading: boolean = true;\r\n protected dataLoaded: boolean = false;\r\n protected dataFound: boolean = false;\r\n\r\n //Public\r\n currentApp: ICurrentApp;\r\n\r\n //Inputs\r\n @Input() mode = Mode.View;\r\n @Input() classes: string;\r\n @Input() title = '';\r\n @Input() isTitleVisible: boolean = true;\r\n @Input() isRequired: boolean = false;\r\n\r\n constructor() {\r\n this.internalInit();\r\n }\r\n\r\n private internalInit() {\r\n this.isDevMode = IsDevMode;\r\n this.currentApp = getCurrentApp();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n getEntityId() {\r\n return QSUtils.getValueByName(\"id\");\r\n }\r\n\r\n dataStartedLoading() {\r\n this.dataLoading = true;\r\n this.dataLoaded = false;\r\n this.dataFound = false;\r\n }\r\n\r\n dataLoadedAndNothingFound() {\r\n this.dataLoadedAndFound(false);\r\n }\r\n\r\n dataLoadedAndFound(found: boolean = true) {\r\n this.dataLoading = false;\r\n this.dataLoaded = true;\r\n this.dataFound = found;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 May 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n//App\r\nimport { formatUrl } from '../../../core/consts/core-settings';\r\n\r\n@Directive({\r\n})\r\nexport abstract class ReplacerDirectiveBase {\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n protected setUrlAttribute(name: string, url: string) {\r\n if (url) {\r\n let newUrl = formatUrl(url);\r\n this.setAttribute(name, newUrl);\r\n }\r\n }\r\n\r\n protected setAttribute(name: string, value: string) {\r\n this.renderer.setAttribute(this.el.nativeElement, name, value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 May 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n//App\r\nimport { ReplacerDirectiveBase } from './replacer.base.directive';\r\n\r\n@Directive({\r\n selector: 'a',\r\n standalone: false\r\n})\r\nexport class AReplacerDirective extends ReplacerDirectiveBase implements OnInit, OnChanges {\r\n @Input('href') href: string;\r\n\r\n ngOnInit() {\r\n this.setHref(this.href);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['href']) {\r\n this.setHref(changes['href'].currentValue);\r\n }\r\n }\r\n\r\n private setHref(value) {\r\n if (value) {\r\n if (value.indexOf(\"assets\") > -1) {\r\n this.setUrlAttribute('href', value);\r\n }\r\n else {\r\n this.setAttribute('href', value);\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signup-button\",\r\n templateUrl: \"./signup-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignUpButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n const url = MSALConfig.ui.signup;\r\n\r\n if (url) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n</a>\n\n<ng-template #contentTemplate>\n <span #ref><ng-content></ng-content></span>\n @if (!ref.innerHTML.trim()) {\n <span>Sign Up</span>\n }\n</ng-template>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Aug 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n//App\r\nimport {AppContextService} from '../../../core/services/appcontext.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-buyaccess-button',\r\n templateUrl: './buyaccess-button.component.html',\r\n standalone: false\r\n})\r\nexport class BuyAccessButtonComponent implements OnInit {\r\n contextUpdated = false;\r\n isUserSignedIn = false;\r\n currentPlanId = -1;\r\n\r\n //Inputs\r\n @Input() plan: number;\r\n @Input() visiblePlanStatus: boolean = false;\r\n @Input() visibleSignup: boolean = false;\r\n\r\n //Outputs\r\n @Output() planselect: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private appContext: AppContextService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n let profile = context.billing.profile;\r\n this.currentPlanId = profile.planId;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n\r\n //Events\r\n onPlanSelect() {\r\n this.planselect.emit(this.plan);\r\n }\r\n}\r\n","@if (contextUpdated) {\n <div class=\"actions\">\n @if (!isUserSignedIn && visibleSignup) {\n <div>\n <anatoly-signup-button classes=\"btn btn-block btn-primary\" />\n </div>\n }\n @if (isUserSignedIn && visiblePlanStatus) {\n <div>\n @if (plan == currentPlanId) {\n <button class=\"btn btn-block btn-success selectPlan\">\n Your Plan\n </button>\n }\n @if (plan != currentPlanId) {\n <button class=\"btn btn-block btn-warning selectPlan\"\n (click)=\"onPlanSelect()\">\n Buy Now\n </button>\n }\n </div>\n }\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 1 Jun 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { AppContextService } from \"../../../core/services/appcontext.service\";\r\n\r\n@Component({\r\n selector: 'anatoly-billing-subscribe-plan-button',\r\n templateUrl: \"./subscribe-plan-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SubscribePlanButtonComponent implements OnInit {\r\n contextUpdated = false;\r\n isUserSignedIn = false;\r\n currentPlanId = -1;\r\n requestedPlanId = -1;\r\n\r\n //Inputs\r\n @Input() plan: number;\r\n @Input() visiblePlanStatus: boolean = false;\r\n @Input() visibleSignup: boolean = false;\r\n\r\n //Outputs\r\n @Output() planselect: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private appContext: AppContextService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n let profile = context.billing.profile;\r\n this.currentPlanId = profile.planId;\r\n this.requestedPlanId = profile.requestedPlanId ?? -1;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n\r\n //Events\r\n onPlanSelect() {\r\n this.planselect.emit(this.plan);\r\n }\r\n}\r\n","@if (contextUpdated) {\n <div class=\"actions\">\n @if (!isUserSignedIn && visibleSignup) {\n <div>\n <anatoly-signup-button classes=\"btn btn-block btn-primary\" />\n </div>\n }\n @if (isUserSignedIn && visiblePlanStatus) {\n <div>\n @if (plan == currentPlanId) {\n <button class=\"btn btn-block btn-success selectPlan\">\n Your Plan\n </button>\n }\n @if (plan == requestedPlanId) {\n <button class=\"btn btn-block btn-warning selectPlan\">\n Requested\n </button>\n }\n @if (plan != currentPlanId && plan != requestedPlanId) {\n <button class=\"btn btn-block btn-warning selectPlan\"\n (click)=\"onPlanSelect()\">\n Subscribe\n </button>\n }\n </div>\n }\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 11 Aug 2024\r\n\r\n Details:\r\n https://blog.thoughtram.io/angular/2017/02/21/using-zones-in-angular-for-better-performance.html\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class PaymentsService {\r\n selectedPaymentType;\r\n selectedPaymentMethod;\r\n subtotal = 0;\r\n promoCode = null;\r\n promoPercentage = null;\r\n promoAmount = null;\r\n currency = 'USD';\r\n\r\n //promoApplied\r\n private _promoCodeApplied = new Subject<any>(); \r\n readonly promoCodeApplied$ = this._promoCodeApplied.asObservable(); \r\n\r\n //showStripeDialog\r\n private _showStripeDialog = new Subject<any>();\r\n readonly showStripeDialog$ = this._showStripeDialog.asObservable();\r\n\r\n //showBraintreeDialog\r\n private _showBraintreeDialog = new Subject<any>();\r\n readonly showBraintreeDialog$ = this._showBraintreeDialog.asObservable();\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n //fires\r\n private firePromoCodeApplied() {\r\n this._promoCodeApplied.next(this.promoCode);\r\n }\r\n\r\n //Public\r\n init() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n resetState() {\r\n this.subtotal = 0;\r\n this.promoCode = null;\r\n this.promoPercentage = null;\r\n this.promoAmount = null;\r\n }\r\n\r\n getTotal() {\r\n let subtotal = this.subtotal;\r\n\r\n if (this.promoAmount != 0) {\r\n subtotal = subtotal - this.promoAmount;\r\n } \r\n else if (this.promoPercentage != 0) {\r\n subtotal = subtotal - (subtotal * (this.promoPercentage / 100));\r\n subtotal = +subtotal.toFixed(2);\r\n }\r\n\r\n // Round to nearest whole number\r\n subtotal = Math.round(subtotal);\r\n\r\n // Ensure non-negative total\r\n return subtotal > 0 ? subtotal : 0;\r\n }\r\n\r\n applyPromoCode(data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this.promoCode = data.code;\r\n\r\n if (data.amount) {\r\n this.promoPercentage = 0;\r\n this.promoAmount = parseInt(data.amount);\r\n }\r\n else if (data.percentage) {\r\n this.promoPercentage = parseInt(data.percentage);\r\n this.promoAmount = 0;\r\n }\r\n\r\n this.firePromoCodeApplied();\r\n }\r\n\r\n getPromoCodeAsString(): string {\r\n if (this.promoAmount > 0) {\r\n return \"$\" + this.promoAmount;\r\n }\r\n else if (this.promoPercentage > 0) {\r\n return this.promoPercentage + \"%\";\r\n }\r\n\r\n return '$0';\r\n }\r\n\r\n openStripePaymentDialog() {\r\n this._showStripeDialog.next(true);\r\n }\r\n\r\n openBraintreePaymentDialog() {\r\n this._showBraintreeDialog.next(true);\r\n }\r\n\r\n closeBraintreePaymentDialog() {\r\n this._showBraintreeDialog.next(false);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jun 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class PromoCodesApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/promoCodes`;\r\n }\r\n\r\n getPromoCode(code): Observable<any> {\r\n return this.get<any>('getPromoCode', { code });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PromoCodesApiService } from \"../../../data/services/billing/promocodes-api.service\";\r\nimport { NotificationService } from \"../../../core/notifications/services/notification-service\";\r\nimport { DiscountCodeStatus } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-order-summary\",\r\n templateUrl: \"./order-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class OrderSummaryComponent extends ComponentBase {\r\n showPromoCode = false;\r\n promoCode;\r\n discount;\r\n\r\n constructor(\r\n public ps: PaymentsService,\r\n private api: PromoCodesApiService,\r\n private ns: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n //Tos\r\n toTotal(): number {\r\n return this.ps.getTotal();\r\n }\r\n\r\n //Events\r\n onTogglePromoCode() {\r\n this.showPromoCode = !this.showPromoCode;\r\n }\r\n\r\n onApplyPromoCode() {\r\n if (!this.promoCode) {\r\n this.ns.info(\"Please enter a promo code\");\r\n return;\r\n }\r\n\r\n this.api.getPromoCode(this.promoCode).subscribe({\r\n next: (data: any) => {\r\n if (!data) {\r\n this.ns.error(\"Invalid Promo Code\");\r\n return;\r\n }\r\n\r\n switch (data.status) {\r\n case DiscountCodeStatus.Exist:\r\n this.ps.applyPromoCode(data);\r\n this.discount = this.ps.getPromoCodeAsString();\r\n\r\n this.ns.success(\"Discount applied successfully\");\r\n break;\r\n\r\n case DiscountCodeStatus.NotFound:\r\n this.ns.error(\"Invalid Promo Code\");\r\n break;\r\n\r\n case DiscountCodeStatus.AlreadyUsed:\r\n this.ns.error(\"Promo Code already applied\");\r\n break;\r\n\r\n default:\r\n this.ns.error(\"Invalid Promo Code\");\r\n break;\r\n }\r\n },\r\n error: (e) => {\r\n this.ns.error();\r\n },\r\n });\r\n }\r\n}\r\n","<div class='card'>\r\n <div class='card-header'>\r\n <div class='card-title'>\r\n <h2>Order Summary</h2>\r\n </div>\r\n </div>\r\n <div class='card-body'>\r\n <div class='order-summary'>\r\n <ng-content></ng-content>\r\n\r\n <div class='subtotal'>\r\n <span>Subtotal:</span><strong>${{ ps.subtotal }}</strong>\r\n </div>\r\n <div class='divider'></div>\r\n <div class=\"add-promo-code\" [ngClass]=\"{ 'show': showPromoCode }\" (click)=\"onTogglePromoCode()\">\r\n <span class='has-arrow'>Add a Promo Code:</span>\r\n </div>\r\n\r\n @if (showPromoCode) {\r\n <div class=\"add-promo-code\" [ngClass]=\"{ 'show': showPromoCode }\">\r\n <div class=\"promo-code\">\r\n <input type=\"text\" [(ngModel)]=\"promoCode\" class=\"input-text\" placeholder=\"Promo code\">\r\n <button class=\"btn\" (click)=\"onApplyPromoCode()\">Apply</button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class='divider'></div>\r\n <div class='discounts'>\r\n <span>Discounts & Savings:</span>\r\n <strong>{{ discount }}</strong>\r\n </div>\r\n <div class='divider'></div>\r\n <div class='total'>\r\n <span>Total:</span>\r\n <strong>${{ toTotal() }}</strong>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Apr 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n//App\r\nimport { ReplacerDirectiveBase } from './replacer.base.directive';\r\n\r\n@Directive({\r\n selector: 'img',\r\n standalone: false\r\n})\r\nexport class ImageReplacerDirective extends ReplacerDirectiveBase implements OnInit, OnChanges {\r\n @Input('src') src: string;\r\n\r\n ngOnInit() {\r\n this.setSrc(this.src);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['src']) {\r\n this.setSrc(changes['src'].currentValue);\r\n }\r\n }\r\n\r\n private setSrc(value) {\r\n this.setUrlAttribute('src', value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PaymentMethod } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-payment-methods\",\r\n templateUrl: \"./payment-methods.component.html\",\r\n standalone: false\r\n})\r\nexport class PaymentMethodsComponent extends ComponentBase {\r\n paymentMethods = [\r\n { id: PaymentMethod.CreditCard, title: \"\", icon: \"cards\", selected: true },\r\n { id: PaymentMethod.PayPal, title: \"\", icon: \"paypal\", selected: false },\r\n { id: PaymentMethod.Stripe, title: \"\", icon: \"stripe\", selected: false },\r\n { id: PaymentMethod.Venmo, title: \"\", icon: \"venmo\", selected: false },\r\n {\r\n id: PaymentMethod.ApplePay,\r\n title: \"\",\r\n icon: \"applepay\",\r\n selected: false,\r\n },\r\n {\r\n id: PaymentMethod.GooglePay,\r\n title: \"\",\r\n icon: \"googlepay\",\r\n selected: false,\r\n },\r\n {\r\n id: PaymentMethod.Wallet,\r\n title: \"\",\r\n icon: \"wallet\",\r\n selected: false,\r\n },\r\n ];\r\n\r\n constructor(public ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n let selectedPM = this.paymentMethods.filter(\r\n (value) => value.selected == true,\r\n )[0];\r\n this.ps.selectedPaymentMethod = selectedPM.id;\r\n }\r\n\r\n private setValues() {}\r\n\r\n //Events\r\n onPaymentSelect(paymentMethod) {\r\n //1. Unselect items\r\n this.paymentMethods.forEach((payment) => (payment.selected = false));\r\n\r\n //2. Set selected PaymentMethod\r\n paymentMethod.selected = true;\r\n this.ps.selectedPaymentMethod = paymentMethod.id;\r\n }\r\n}\r\n","<div class='card p-0 mb-3'>\r\n <div class='card-header'>\r\n <div class='card-title'>\r\n <h2>Select a payment method</h2>\r\n </div>\r\n </div>\r\n <div class='card-body'>\r\n <div class='payment__select-method'>\r\n <ul>\r\n @for (item of paymentMethods; track item) {\r\n <li (click)='onPaymentSelect(item)' [class.selected]='item.selected'>\r\n <div class='payment-name'>Pay with {{ item.title }}</div>\r\n <div class='icon-img'>\r\n <img src='/assets/@lib/images/payment-icons/{{item.icon}}.png' alt='payment-icon {{item.title}}'>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 May 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../../../ui/components/base/components/component\";\r\nimport { PaymentsService } from \"../../services/payments.service\";\r\nimport { PaymentType } from \"../../../core/enums/billing\";\r\n\r\n@Component({\r\n selector: \"anatoly-billing-payment-options\",\r\n templateUrl: \"./payment-options.component.html\",\r\n standalone: false\r\n})\r\nexport class PaymentOptionsComponent extends ComponentBase {\r\n @Input() priceWeekly;\r\n @Input() priceUpfront;\r\n @Input() numberOfWeeks;\r\n\r\n @Output() change: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n this.ps.selectedPaymentType = PaymentType.FullPayment;\r\n }\r\n\r\n private setValues() {}\r\n\r\n //Events\r\n onPaymentTypeSelect(pt) {\r\n this.ps.selectedPaymentType = pt;\r\n this.change.emit();\r\n }\r\n}\r\n","<div class='payment-options'>\r\n <h4>Payment options</h4>\r\n <div (click)='onPaymentTypeSelect(2)' [ngClass]='{\"active\": ps.selectedPaymentType == 2 }' class='pay-weekly'>\r\n <div class='info'>\r\n <h4>Pay weekly</h4>\r\n <p>Cancel anytime</p>\r\n </div>\r\n <div class='price'>${{ priceWeekly }}</div>\r\n </div>\r\n\r\n <div (click)='onPaymentTypeSelect(1)' [ngClass]='{\"active\": ps.selectedPaymentType == 1 }' class='pay-upfront'>\r\n <div class='info'>\r\n <h4>Pay upfront</h4>\r\n <p>Covers the full {{ numberOfWeeks }} weeks </p>\r\n </div>\r\n <div class='price'>${{ priceUpfront }}</div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Nov 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl, FormControl, ValidatorFn, AbstractControlOptions, AsyncValidatorFn } from \"@angular/forms\";\r\n\r\n//App\r\nimport { ComponentBase } from \"./component\";\r\nimport { QSUtils } from \"../../../../core/exports\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class EditComponentBase extends ComponentBase {\r\n //Modes\r\n protected isAddMode = false;\r\n protected isEditMode = false;\r\n\r\n //Forms support\r\n @Input() formGroup: FormGroup;\r\n @Input() formSubmitted: boolean = false;\r\n @Input() controlName: string = null;\r\n @Input() controlTitle: string = null;\r\n\r\n /**\r\n * returns formgroup controls.\r\n * main use case is used in html pages\r\n */\r\n get fc() {\r\n return this.formGroup.controls;\r\n }\r\n\r\n get isNgModelBased() {\r\n return !this.isFormBased;\r\n }\r\n\r\n get isFormBased() {\r\n if (this.controlName) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this.isEditMode = QSUtils.idExists();\r\n this.isAddMode = !this.isEditMode;\r\n }\r\n\r\n isControlValid(name: string, frmGroup: FormGroup = null) {\r\n return !this.isControlInvalid(name, frmGroup);\r\n }\r\n\r\n isControlInvalid(name: string, frmGroup: FormGroup = null) {\r\n if (typeof name === \"undefined\" || name == \"\") {\r\n return false;\r\n }\r\n\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n if (!fg) {\r\n return false;\r\n }\r\n\r\n let control = fg.get(name);\r\n\r\n if (control) {\r\n return (\r\n (this.formSubmitted && control.invalid) || (control.touched && control.invalid)\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //FormGroup functions\r\n getFormValue(name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[name].value;\r\n }\r\n\r\n setFormValue(name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[name].setValue(value);\r\n }\r\n\r\n getFormGroupValue(groupName, name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[groupName].get(name).value;\r\n }\r\n\r\n setFormGroupValue(groupName, name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[groupName].get(name).setValue(value);\r\n }\r\n\r\n /**\r\n * Add control to form group\r\n * @param name\r\n * @param formControl\r\n * @param frmGroup\r\n */\r\n addControl(\r\n name: string,\r\n formControl: AbstractControl,\r\n frmGroup: FormGroup = null\r\n ) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.addControl(name, formControl);\r\n }\r\n\r\n /**\r\n * Removes control from form group\r\n * @param name\r\n * @param frmGroup\r\n */\r\n removeControl(name: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n\r\n if (fg.get(name)) {\r\n fg.removeControl(name);\r\n }\r\n }\r\n\r\n /**\r\n * return new form control\r\n * @param formState\r\n * @param validatorOrOpts\r\n * @param asyncValidator\r\n */\r\n createFormControl(\r\n formState?: any,\r\n validatorOrOpts?:\r\n | ValidatorFn\r\n | ValidatorFn[]\r\n | AbstractControlOptions\r\n | null,\r\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null\r\n ) {\r\n return new FormControl(formState, validatorOrOpts, asyncValidator);\r\n }\r\n\r\n /**\r\n * Set error to control\r\n * @param controlName formControl name\r\n * @param err error expect {erroname: boolean} format\r\n * @param frmGroup\r\n */\r\n setControlError(controlName: string, err: {}, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors(err);\r\n }\r\n\r\n /**\r\n * Set {invalid: true} for the specified form\r\n * @param controlName form control name\r\n * @param frmGroup\r\n */\r\n setInValidError(controlName: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors({ invalid: true });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 24 Jan 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { DialogThemeColor } from \"@progress/kendo-angular-dialog\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"./components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class DialogBase extends EditComponentBase {\r\n //Private\r\n private _isOpen = false;\r\n\r\n //Public\r\n themeColor: DialogThemeColor = \"primary\";\r\n\r\n @Input()\r\n get isOpen() {\r\n return this._isOpen;\r\n }\r\n set isOpen(value) {\r\n if (value) {\r\n if (this.osOnBeforeOpen) {\r\n this.osOnBeforeOpen();\r\n }\r\n\r\n this.opened.emit();\r\n }\r\n\r\n this._isOpen = value;\r\n }\r\n\r\n //Events\r\n @Output() opened: EventEmitter<any> = new EventEmitter();\r\n @Output() closed: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n osOnBeforeOpen?(): void;\r\n\r\n open() {\r\n this.isOpen = true;\r\n }\r\n\r\n close(returnValue: any = \"OK\") {\r\n this.isOpen = false;\r\n this.closed.emit(returnValue);\r\n }\r\n\r\n cancel() {\r\n this.isOpen = false;\r\n this.closed.emit(-1);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Nov 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class PaymentsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/payments`;\r\n }\r\n\r\n //Stripe\r\n createStripeSession(amount, currency, name, description, image) {\r\n return this.post('createStripeSession', { amount, currency, name, description, image }, 'json');\r\n }\r\n\r\n //Braintree\r\n createBraintreeToken(): Observable<any> {\r\n return this.get<string>('createBraintreeToken');\r\n }\r\n\r\n addPayment(\r\n paymentMethod, planId, paidFor,\r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n\r\n success?: Function, error?: Function) {\r\n return this.post('addPayment', {\r\n paymentMethod, planId, paidFor,\r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n }, 'json').subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 10 Nov 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class SubscriptionsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/subscriptions`;\r\n }\r\n \r\n getSubscriptions(data: any): Observable<any[]> {\r\n return this.get<any[]>('getSubscriptions', data);\r\n }\r\n\r\n addSubscription(subscriptionProvider, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency, \r\n success?: Function, error?: Function) {\r\n this.post('addSubscription', { \r\n subscriptionProvider, newSubscriptionId, \r\n planId, addons, subtotal, promoCode, total, currency \r\n }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n\r\n addFreeSubscription(planId, addons, subtotal, promoCode, total, currency, \r\n success?: Function, error?: Function) {\r\n this.post('addFreeSubscription', { \r\n planId, addons, subtotal, promoCode, total, currency \r\n }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n } \r\n\r\n cancelSubscription(subscriptionProvider, subscriptionId, success?: Function, error?: Function) {\r\n this.post('cancelSubscription', { subscriptionProvider, subscriptionId }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 19 Jul 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n//App\r\nimport { SubscriptionsApiService } from '../../data/services/billing/subscriptions-api.service';\r\nimport { AppContextService } from '../../core/services/appcontext.service';\r\nimport { PaymentMethod, PaymentStage, SubscriptionProvider } from '../../core/enums';\r\nimport { PaymentsApiService } from '../../data/services/billing/payments-api.service';\r\nimport { NotificationService } from '../../core/notifications/services/notification-service';\r\n\r\n@Injectable()\r\nexport class BillingService {\r\n //paymentAdded\r\n private _paymentAdded = new Subject<any>();\r\n readonly paymentAdded$ = this._paymentAdded.asObservable();\r\n\r\n //paymentProgress\r\n private _paymentProgress = new Subject<any>();\r\n readonly paymentProgress$ = this._paymentProgress.asObservable();\r\n\r\n //subscriptionAdded\r\n private _subscriptionAdded = new Subject<any>();\r\n readonly subscriptionAdded$ = this._subscriptionAdded.asObservable();\r\n\r\n constructor(\r\n private zone: NgZone, \r\n private appContext: AppContextService, \r\n private apiPayments: PaymentsApiService,\r\n private apiSubscriptions: SubscriptionsApiService,\r\n private ns: NotificationService) {\r\n }\r\n\r\n //fires\r\n firePaymentAdded(isPaymentValid, paymentId) {\r\n this._paymentAdded.next({ isPaymentValid, paymentId });\r\n }\r\n \r\n firePaymentProgress(paymentStage, paymentInProgress, isPaymentFailed) {\r\n this._paymentAdded.next({ paymentStage, paymentInProgress, isPaymentFailed });\r\n }\r\n\r\n fireSubscriptionAdded(paymentInProgress, paymentFailed) {\r\n this._subscriptionAdded.next({ paymentInProgress, paymentFailed });\r\n }\r\n\r\n createStripeSession(amount, currency, title, description, image) {\r\n return this.apiPayments.createStripeSession(amount, currency, title, description, image);\r\n }\r\n\r\n createBraintreeToken() {\r\n return this.apiPayments.createBraintreeToken();\r\n }\r\n\r\n addPayment(paymentMethod, planId, paidFor, \r\n subtotal, promoCode, total, currency, \r\n pmId, pmStatus, pmDetails) {\r\n this.zone.run(() => {\r\n let paidForAsString = JSON.stringify(paidFor);\r\n\r\n if (total == 0) {\r\n paymentMethod = PaymentMethod.None;\r\n }\r\n\r\n this.apiPayments.addPayment(\r\n paymentMethod, planId, paidForAsString, \r\n\r\n //Amount\r\n subtotal, promoCode, total, currency,\r\n\r\n //Payment method details (PayPal/Stripe/Braintree)\r\n pmId, pmStatus, pmDetails,\r\n\r\n (data) => {\r\n if (!data || !data?.isPaymentValid) {\r\n this.paymentFailed(PaymentStage.External);\r\n return;\r\n }\r\n\r\n this.paymentSuccessful(PaymentStage.External);\r\n this.firePaymentAdded(data.isPaymentValid, data.paymentId);\r\n },\r\n () => {\r\n this.paymentFailed(PaymentStage.External);\r\n });\r\n });\r\n }\r\n\r\n paymentSuccessful(stage: PaymentStage) {\r\n this.setPaymentProgress(stage, false, false); \r\n } \r\n\r\n paymentFailed(stage: PaymentStage) {\r\n this.setPaymentProgress(stage, false, true); \r\n } \r\n\r\n setPaymentProgress(stage: PaymentStage, paymentInProgress, isPaymentFailed) {\r\n this.firePaymentProgress(stage, paymentInProgress, isPaymentFailed);\r\n\r\n if (!paymentInProgress && isPaymentFailed) {\r\n this.ns.error(\"Payment Failed\");\r\n } \r\n } \r\n\r\n addSubscription(sp: SubscriptionProvider, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency) {\r\n this.zone.run(() => {\r\n this.apiSubscriptions.addSubscription(sp, newSubscriptionId, planId, addons, subtotal, promoCode, total, currency,\r\n () => {\r\n this.fireSubscriptionAdded(false, false);\r\n this.appContext.updateCurrent();\r\n },\r\n () => {\r\n this.fireSubscriptionAdded(false, true);\r\n });\r\n });\r\n } \r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 14 Aug 2024\r\n\r\n Description:\r\n Credit Card payment form via braintree integration\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport * as dropin from 'braintree-web-drop-in';\r\n\r\n//App\r\nimport { DialogBase } from '../../../../ui/components/base/dialog';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { NotificationService } from '../../../../core/notifications/services/notification-service';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-braintree-dialog',\r\n templateUrl: './braintree.component.html',\r\n standalone: false\r\n})\r\nexport class BraintreeDialog extends DialogBase {\r\n braintreeInstance: any;\r\n deviceData: any;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() title;\r\n @Input() description;\r\n @Input() image;\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService, private ns: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.ps.showBraintreeDialog$.subscribe((isOpen) => {\r\n this.isOpen = true;\r\n this.initializeEmbedForm();\r\n });\r\n }\r\n\r\n initializeEmbedForm() {\r\n const that = this;\r\n // let totalPrice = this.bs.getTotal().toString();\r\n // let currency = this.bs.currency;\r\n\r\n this.bs.createBraintreeToken().subscribe((response) => {\r\n if (response?.token) {\r\n dropin.create({\r\n authorization: response?.token,\r\n container: '#braintree-container',\r\n card: {\r\n cardholderName: true\r\n },\r\n\r\n //UNCOMMENT BELOW FOR GOOGLEPAY / VENMO\r\n // googlePay: {\r\n // merchantId: '',\r\n // transactionInfo: {\r\n // currencyCode: currency,\r\n // totalPriceStatus: 'FINAL',\r\n // totalPrice: totalPrice,\r\n // }\r\n // },\r\n // venmo: {\r\n // allowNewBrowserTab: false\r\n // },\r\n dataCollector: true\r\n }, function(createErr, instance) {\r\n if (instance) {\r\n that.braintreeInstance = instance;\r\n instance._dataCollector._instance.getDeviceData().then((deviceData) => {\r\n that.deviceData = deviceData;\r\n })\r\n }\r\n else {\r\n that.ns.error('Credit Card Payment is facing issues. Please try other payment methods.')\r\n that.closeDialog();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n submitPayment(payload) {\r\n //ps\r\n let paymentMethod = this.ps.selectedPaymentMethod;\r\n let subtotal = this.ps.subtotal;\r\n let promoCode = this.ps.promoCode;\r\n let total = this.ps.getTotal();\r\n let currency = this.ps.currency;\r\n\r\n this.bs.addPayment(paymentMethod, this.planId, this.paidFor, \r\n subtotal, promoCode, total, currency,\r\n payload.nonce, 'COMPLETED', this.deviceData);\r\n }\r\n\r\n closeDialog() {\r\n super.close();\r\n this.braintreeInstance = null;\r\n }\r\n\r\n //Events\r\n onPay() {\r\n if (this.braintreeInstance && this.deviceData) {\r\n const that = this;\r\n this.braintreeInstance.requestPaymentMethod(function(requestPaymentErr, payload) {\r\n that.submitPayment(payload);\r\n });\r\n }\r\n }\r\n\r\n onClose() {\r\n const closeDialog = this.closeDialog;\r\n\r\n if (this.braintreeInstance) {\r\n this.braintreeInstance.teardown(function(err) {\r\n closeDialog();\r\n });\r\n }\r\n else {\r\n closeDialog();\r\n }\r\n }\r\n\r\n public get visible() {\r\n return this.isOpen && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='480' [height]='560' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Credit Card</kendo-dialog-titlebar>\r\n <div class='kendo-dialog-content'>\r\n <div id=\"braintree-container\"></div>\r\n </div>\r\n <kendo-dialog-actions layout='end'>\r\n <button class='btn btn-sm btn-success' type='button' (click)='onPay()'>Pay</button>\r\n <button class='btn btn-sm btn-danger' type='button' (click)='onClose()'>Cancel</button>\r\n </kendo-dialog-actions>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n SDK:\r\n https://developer.paypal.com/sdk/js/configuration/#query-parameters\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\n\r\n//App\r\nimport { IPayPalUrlConfig } from '../models/paypal-models';\r\nimport { ScriptService } from '../../core/services/script.service';\r\nimport { IQueryParam } from '../../core/models/qs';\r\n\r\n@Injectable()\r\nexport class PayPalScriptService {\r\n private readonly paypalWindowName = 'paypal';\r\n\r\n constructor(protected ss: ScriptService) {\r\n }\r\n\r\n registerPayPalScript(config: IPayPalUrlConfig, onReady: (payPalApi: any) => void): void {\r\n this.ss.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);\r\n }\r\n\r\n destroyPayPalScript(): void {\r\n this.ss.cleanup(this.paypalWindowName);\r\n }\r\n\r\n private getUrlForConfig(config: IPayPalUrlConfig): string {\r\n const params: IQueryParam[] = [\r\n {\r\n name: 'client-id',\r\n value: config.clientId\r\n }\r\n ];\r\n\r\n if (config.locale) {\r\n params.push({\r\n name: 'locale',\r\n value: config.locale\r\n });\r\n }\r\n\r\n if (config.currency) {\r\n params.push({\r\n name: 'currency',\r\n value: config.currency\r\n });\r\n }\r\n\r\n if (config.commit) {\r\n params.push({\r\n name: 'commit',\r\n value: config.commit\r\n });\r\n }\r\n\r\n if (config.vault) {\r\n params.push({\r\n name: 'vault',\r\n value: config.vault\r\n });\r\n }\r\n\r\n if (config.intent) {\r\n params.push({\r\n name: 'intent',\r\n value: config.intent\r\n });\r\n }\r\n\r\n if(config.funding) {\r\n params.push({\r\n name:'components',\r\n value: 'buttons,funding-eligibility'\r\n })\r\n }\r\n\r\n if (config.extraParams) {\r\n params.push(...config.extraParams);\r\n }\r\n\r\n if (config.debug) {\r\n params.push({\r\n name: 'debug',\r\n value: config.debug ? 'true' : 'false'\r\n });\r\n }\r\n\r\n return `https://www.paypal.com/sdk/js${this.ss.getQueryString(params)}`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nimport {\r\n ICancelCallbackData,\r\n IClientAuthorizeCallbackData,\r\n ICreateOrderCallbackActions,\r\n IInitCallbackData,\r\n IOnApproveCallbackActions,\r\n IOnApproveCallbackData,\r\n IOnClickCallbackActions,\r\n IOnInitCallbackActions,\r\n IOnShippingChangeActions,\r\n IOnShippingChangeData,\r\n IPayPalConfig,\r\n ICreateSubscriptionCallbackActions,\r\n ICreateSubscriptionCallbackData,\r\n} from '../../../models/paypal-models';\r\nimport { PayPalScriptService } from '../../../services/paypal-script.service';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'anatoly-billing-paypal-container',\r\n template: `\r\n <div #payPalButtonContainer [id]=\"payPalButtonContainerId\"></div>\r\n `,\r\n standalone: false\r\n})\r\nexport class PayPalComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n /**\r\n * Configuration for paypal.\r\n */\r\n @Input() config?: IPayPalConfig;\r\n\r\n /**\r\n * If enabled, paypal SDK script will be loaded. Useful if you want to have multiple PayPal components on the same page\r\n * sharing base configuration. In such a case only a single component may register script.\r\n */\r\n @Input() registerScript: boolean = true;\r\n\r\n /**\r\n * Emitted when paypal script is loaded\r\n */\r\n @Output() scriptLoaded = new EventEmitter<any>();\r\n\r\n /**\r\n * Id of the element where PayPal button will be rendered\r\n */\r\n public payPalButtonContainerId?: string;\r\n\r\n private readonly ngUnsubscribe: Subject<void> = new Subject<void>();\r\n\r\n private payPalButtonContainerElem?: ElementRef;\r\n @ViewChild(\"payPalButtonContainer\", { static: false })\r\n set payPalButtonContainer(content: ElementRef) {\r\n this.payPalButtonContainerElem = content;\r\n }\r\n\r\n /**\r\n * Flag that indicates if paypal should be initialized (required for handling script load events and availability of DOM element)\r\n */\r\n private initializePayPal: boolean = true;\r\n\r\n /**\r\n * Reference to PayPal global API\r\n */\r\n private payPal: any;\r\n\r\n constructor(\r\n private paypalScriptService: PayPalScriptService,\r\n private cdr: ChangeDetectorRef,\r\n private ngZone: NgZone) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.payPalButtonContainerId) {\r\n this.payPalButtonContainerId = this.generateElementId();\r\n }\r\n\r\n // first time config setup\r\n const config = this.config;\r\n //const name = 'PayPalConfig';\r\n\r\n if (changes['config'].isFirstChange()) {\r\n if (config && this.registerScript) {\r\n this.initPayPalScript(config, (payPal) => {\r\n // store reference to paypal global script\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n });\r\n }\r\n }\r\n\r\n // changes to config\r\n if (!changes['config'].isFirstChange()) {\r\n this.reinitialize(config);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.paypalScriptService.destroyPayPalScript();\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.doPayPalCheck();\r\n }\r\n\r\n customInit(payPal: any): void {\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n }\r\n\r\n reinitialize(config: IPayPalConfig | undefined): void {\r\n this.config = config;\r\n this.payPal = undefined;\r\n this.paypalScriptService.destroyPayPalScript();\r\n this.payPalButtonContainerId = this.generateElementId();\r\n this.initializePayPal = true;\r\n\r\n if (this.payPalButtonContainerElem) {\r\n try {\r\n while (this.payPalButtonContainerElem.nativeElement.firstChild) {\r\n this.payPalButtonContainerElem.nativeElement.removeChild(\r\n this.payPalButtonContainerElem.nativeElement.firstChild\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n this.cdr.detectChanges();\r\n\r\n if (this.config) {\r\n if (!this.payPal) {\r\n this.initPayPalScript(this.config, (payPal) => {\r\n // store reference to paypal global script\r\n this.payPal = payPal;\r\n this.doPayPalCheck();\r\n });\r\n } else {\r\n this.doPayPalCheck();\r\n }\r\n }\r\n }\r\n\r\n private doPayPalCheck(): void {\r\n if (\r\n this.initializePayPal &&\r\n this.config &&\r\n this.payPal &&\r\n this.payPalButtonContainerElem\r\n ) {\r\n // make sure that id is also set\r\n if (this.payPalButtonContainerElem.nativeElement.id) {\r\n this.initializePayPal = false;\r\n this.initPayPal(this.config, this.payPal);\r\n }\r\n }\r\n }\r\n\r\n private initPayPalScript(\r\n config: IPayPalConfig,\r\n initPayPal: (paypal: any) => void\r\n ): void {\r\n this.paypalScriptService.registerPayPalScript(\r\n {\r\n debug: config.debug,\r\n clientId: config.clientId,\r\n locale: config.advanced?.locale,\r\n commit:\r\n config.advanced && config.advanced.commit\r\n ? config.advanced.commit\r\n : undefined,\r\n currency: config.currency,\r\n vault: config.vault,\r\n intent: config.intent,\r\n funding: config.fundingSource != undefined || config.fundingSource != null ? true : false,\r\n extraParams:\r\n config.advanced && config.advanced.extraQueryParams\r\n ? config.advanced.extraQueryParams\r\n : [],\r\n },\r\n (paypal) => {\r\n this.scriptLoaded.next(paypal);\r\n initPayPal(paypal);\r\n }\r\n );\r\n }\r\n\r\n private generateElementId(): string {\r\n return `ngx-captcha-id-${this.generateGuid()}`;\r\n }\r\n\r\n private initPayPal(config: IPayPalConfig, paypal: any): void {\r\n // Running outside angular zone prevents infinite ngDoCheck lifecycle calls\r\n this.ngZone.runOutsideAngular(() => {\r\n // https://developer.paypal.com/docs/checkout/integrate/#2-add-the-paypal-script-to-your-web-page\r\n const createOrder = (data: any, actions: ICreateOrderCallbackActions) => {\r\n return this.ngZone.run(() => {\r\n if (config.createOrderOnClient && config.createOrderOnServer) {\r\n throw Error(`Both 'createOrderOnClient' and 'createOrderOnServer' are defined.\r\n Please choose one or the other.`);\r\n }\r\n\r\n if (!config.createOrderOnClient && !config.createOrderOnServer) {\r\n throw Error(`Neither 'createOrderOnClient' or 'createOrderOnServer' are defined.\r\n Please define one of these to create order.`);\r\n }\r\n\r\n if (config.createOrderOnClient) {\r\n return actions.order.create(config.createOrderOnClient(data));\r\n }\r\n\r\n if (config.createOrderOnServer) {\r\n return config.createOrderOnServer(data);\r\n }\r\n\r\n throw Error(`Invalid state for 'createOrder'.`);\r\n });\r\n };\r\n const createSubscription = (\r\n data: ICreateSubscriptionCallbackData,\r\n actions: ICreateSubscriptionCallbackActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.createSubscriptionOnClient) {\r\n return actions.subscription.create(\r\n config.createSubscriptionOnClient(data)\r\n );\r\n }\r\n return;\r\n });\r\n };\r\n const onShippingChange = (\r\n data: IOnShippingChangeData,\r\n actions: IOnShippingChangeActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.onShippingChange) {\r\n return config.onShippingChange(data, actions);\r\n }\r\n });\r\n };\r\n\r\n const buttonsConfig = {\r\n style: config.style,\r\n fundingSource: undefined,\r\n onApprove: (\r\n data: IOnApproveCallbackData,\r\n actions: IOnApproveCallbackActions\r\n ) => {\r\n return this.ngZone.run(() => {\r\n if (config.onApprove) {\r\n config.onApprove(data, actions);\r\n }\r\n\r\n // capture on server\r\n if (config.authorizeOnServer) {\r\n return config.authorizeOnServer(data, actions);\r\n }\r\n\r\n // capture on client\r\n const onClientAuthorization = config.onClientAuthorization;\r\n if (onClientAuthorization) {\r\n actions.order\r\n .capture()\r\n .then((details: IClientAuthorizeCallbackData) => {\r\n this.ngZone.run(() => {\r\n onClientAuthorization(details);\r\n });\r\n });\r\n }\r\n });\r\n },\r\n onError: (error: any) => {\r\n this.ngZone.run(() => {\r\n if (config.onError) {\r\n config.onError(error);\r\n }\r\n });\r\n },\r\n onCancel: (data: ICancelCallbackData, actions: any) => {\r\n this.ngZone.run(() => {\r\n if (config.onCancel) {\r\n config.onCancel(data, actions);\r\n }\r\n });\r\n },\r\n onClick: (data: any, actions: IOnClickCallbackActions) => {\r\n this.ngZone.run(() => {\r\n if (config.onClick) {\r\n config.onClick(data, actions);\r\n }\r\n });\r\n },\r\n onInit: (data: IInitCallbackData, actions: IOnInitCallbackActions) => {\r\n this.ngZone.run(() => {\r\n if (config.onInit) {\r\n config.onInit(data, actions);\r\n }\r\n });\r\n },\r\n // Add the functions if they've been created in the config object\r\n // The API only allows one of the two to be set\r\n ...((config.createOrderOnClient || config.createOrderOnServer) && {\r\n createOrder,\r\n }),\r\n ...(config.createSubscriptionOnClient && { createSubscription }),\r\n // The onShippingChange callback cannot be used with subscriptions\r\n // so we only add it if it is set\r\n ...(config.onShippingChange && { onShippingChange }),\r\n };\r\n\r\n let fundSource = undefined;\r\n switch(config.fundingSource){\r\n case \"PAYPAL\":\r\n fundSource = paypal.FUNDING.PAYPAL;\r\n break;\r\n case \"CARD\":\r\n fundSource = paypal.FUNDING.CARD;\r\n break;\r\n case \"PAYLATER\":\r\n fundSource = paypal.FUNDING.PAYLATER;\r\n break;\r\n case \"CREDIT\":\r\n fundSource = paypal.FUNDING.CREDIT;\r\n break;\r\n case \"VENMO\":\r\n fundSource = paypal.FUNDING.VENMO;\r\n break;\r\n default:\r\n break;\r\n }\r\n if(fundSource != undefined)\r\n {\r\n buttonsConfig.fundingSource = fundSource;\r\n if(config.fundingSource !== \"PAYPAL\")\r\n delete buttonsConfig.style?.color\r\n }\r\n paypal.Buttons(buttonsConfig).render(`#${this.payPalButtonContainerId}`);\r\n });\r\n }\r\n\r\n private generateGuid(): string {\r\n let d = new Date().getTime(),\r\n d2 = (performance && performance.now && performance.now() * 1000) || 0;\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\r\n let r = Math.random() * 16;\r\n if (d > 0) {\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else {\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n return (c == \"x\" ? r : (r & 0x7) | 0x8).toString(16);\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Description:\r\n https://github.com/braintree/braintree-web-drop-in/issues/433\r\n It's impossible to trigger the paypal flow programmatically, as opening a popup window must be as a result of\r\n a direct user action. If it is not, the browser will usually block it.\r\n\r\n https://stackoverflow.com/questions/43276570/trigger-paypal-checkout-button-click\r\n This isn't something that's supported by the PayPal button right now. The official policy is, only a click on the button\r\n itself should open a checkout window.\r\n\r\n shipping_preference:\r\n https://developer.paypal.com/docs/api/payments/v1/?mark=shipping_preference%20#definition-application_context\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../../../core/consts/core-settings';\r\nimport { ComponentBase } from '../../../../ui/components/base/components/component';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { PaymentMethod, PaymentStage } from '../../../../core/enums/billing';\r\nimport { ICreateOrderRequest, IPayPalConfig } from '../../../models/paypal-models';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-paypal-button',\r\n templateUrl: './paypal-button.component.html',\r\n standalone: false\r\n})\r\nexport class PaypalButtonComponent extends ComponentBase {\r\n payPalConfig?: IPayPalConfig;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() paidForTitle = 'Payment for Prodiuct';\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n this.initPayPal();\r\n\r\n this.ps.promoCodeApplied$.subscribe((data) => {\r\n this.initPayPal();\r\n });\r\n }\r\n\r\n private initPayPal() {\r\n let that = this;\r\n let payPalSettings = AppCoreSettings.externalApi.pm.payPal;\r\n let clientId = payPalSettings.clientId;\r\n let totalPrice = this.ps.getTotal().toString();\r\n let currency = this.ps.currency;\r\n\r\n this.payPalConfig = {\r\n intent: 'capture',\r\n clientId: clientId,\r\n currency: currency,\r\n advanced: {\r\n commit: 'true',\r\n extraQueryParams: [\r\n {\r\n name: \"disable-funding\",\r\n value: \"credit,card\"\r\n }\r\n ]\r\n },\r\n style: {\r\n color: 'white'\r\n },\r\n\r\n createOrderOnClient: (data) => <ICreateOrderRequest> {\r\n intent: 'capture',\r\n application_context: {\r\n shipping_preference: \"NO_SHIPPING\"\r\n },\r\n purchase_units: [\r\n {\r\n amount: {\r\n currency_code: currency,\r\n value: totalPrice,\r\n breakdown: {\r\n item_total: {\r\n currency_code: currency,\r\n value: totalPrice\r\n }\r\n }\r\n },\r\n items: [\r\n {\r\n name: this.paidForTitle,\r\n quantity: '1',\r\n category: 'DIGITAL_GOODS',\r\n unit_amount: {\r\n currency_code: currency,\r\n value: totalPrice\r\n },\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n onApprove: (data, actions) => {\r\n return actions.order.capture().then(function (orderData) {\r\n try {\r\n //\r\n let payment = orderData.purchase_units[0].payments.captures[0];\r\n let paymentId = payment.id;\r\n let status = payment.status;\r\n let amount = payment.amount.value;\r\n let currencyCode = payment.amount.currency_code;\r\n let details = JSON.stringify(orderData);\r\n\r\n //ps\r\n let paymentMethod = that.ps.selectedPaymentMethod;\r\n let subtotal = that.ps.subtotal;\r\n let promoCode = that.ps.promoCode;\r\n let total = that.ps.getTotal();\r\n let currency = that.ps.currency;\r\n\r\n that.bs.addPayment(paymentMethod, that.planId, that.paidFor, \r\n subtotal, promoCode, total, currency,\r\n paymentId, status, details);\r\n }\r\n catch\r\n {\r\n that.bs.paymentFailed(PaymentStage.External);\r\n }\r\n });\r\n },\r\n\r\n onCancel: (data, actions) => {\r\n },\r\n\r\n onError: err => {\r\n },\r\n\r\n onClick: (data, actions) => {\r\n }\r\n };\r\n }\r\n\r\n public get visible() {\r\n return this.ps.selectedPaymentMethod == PaymentMethod.PayPal && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <anatoly-billing-paypal-container [config]='payPalConfig' />\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 04 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, NgZone } from '@angular/core';\r\n\r\n//App\r\nimport { AppCoreSettings, IsDevMode } from '../../../../core/consts/core-settings';\r\nimport { ComponentBase } from '../../../../ui/components/base/components/component';\r\nimport { ICreateSubscriptionRequest, IPayPalConfig } from '../../../models/paypal-models';\r\nimport { SubscriptionProvider } from '../../../../core/enums';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-paypal-subscribe-button',\r\n templateUrl: './paypal-subscribe-button.component.html',\r\n standalone: false\r\n})\r\nexport class PaypalSubscribeButtonComponent extends ComponentBase {\r\n private _payPalPlanId;\r\n\r\n payPalConfig?: IPayPalConfig;\r\n\r\n @Input()\r\n get payPalPlanId() {\r\n return this._payPalPlanId;\r\n }\r\n set payPalPlanId(value) {\r\n this._payPalPlanId = value;\r\n this.initPayPal();\r\n }\r\n\r\n @Input() quantity;\r\n\r\n //Plan & Price\r\n @Input() planId;\r\n @Input() addons;\r\n @Input() subtotal;\r\n @Input() promoCode;\r\n @Input() total;\r\n @Input() currency = 'USD';\r\n\r\n constructor(private bs: BillingService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n private initPayPal() {\r\n let that = this;\r\n let payPalSettings = AppCoreSettings.externalApi.pm.payPal;\r\n let clientId = payPalSettings.clientId;\r\n let planId = this.payPalPlanId;\r\n\r\n this.payPalConfig = {\r\n debug: IsDevMode,\r\n intent: 'subscription',\r\n clientId: clientId,\r\n vault: 'true',\r\n currency: 'USD',\r\n advanced: {\r\n commit: 'true',\r\n extraQueryParams: [\r\n {\r\n name: \"disable-funding\",\r\n value: \"credit,card\"\r\n }\r\n ]\r\n },\r\n style: {\r\n shape: 'rect',\r\n color: 'gold',\r\n layout: 'vertical',\r\n label: 'subscribe'\r\n },\r\n\r\n createSubscriptionOnClient: (data) => <ICreateSubscriptionRequest> {\r\n plan_id: planId,\r\n custom_id: '0',\r\n quantity: this.quantity,\r\n application_context: {\r\n shipping_preference: \"NO_SHIPPING\"\r\n }\r\n },\r\n\r\n onApprove: (data, actions) => {\r\n try {\r\n let subscriptionId = data.subscriptionID;\r\n that.bs.addSubscription(\r\n SubscriptionProvider.PayPal, subscriptionId, \r\n this.planId, this.addons, this.subtotal, this.promoCode, this.total, this.currency);\r\n }\r\n catch\r\n {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n }\r\n },\r\n\r\n onCancel: (data, actions) => {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n },\r\n\r\n onError: err => {\r\n that.bs.fireSubscriptionAdded(false, true);\r\n },\r\n\r\n onClick: (data, actions) => {\r\n that.bs.fireSubscriptionAdded(true, false);\r\n }\r\n };\r\n }\r\n}\r\n","<anatoly-billing-paypal-container [config]='payPalConfig' />\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Dhruv Agarwal dhruv.agarwal@osovitny.com\r\n\r\n Created:\r\n 5 Aug 2024\r\n\r\n Description:\r\n Credit Card payment form via stripe integration\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../../../core/consts/core-settings';\r\nimport { DialogBase } from '../../../../ui/components/base/dialog';\r\nimport { PaymentsService } from '../../../services/payments.service';\r\nimport { BillingService } from '../../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'anatoly-billing-stripe-dialog',\r\n templateUrl: './stripe.component.html',\r\n standalone: false\r\n})\r\nexport class StripeDialog extends DialogBase {\r\n stripe: any;\r\n stripeCheckout: any;\r\n sessionId: any;\r\n\r\n @Input() planId;\r\n @Input() paidFor;\r\n @Input() title;\r\n @Input() description;\r\n @Input() image;\r\n\r\n constructor(private bs: BillingService, private ps: PaymentsService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.ps.showStripeDialog$.subscribe(async () => {\r\n this.isOpen = true;\r\n await this.initializeEmbedForm();\r\n });\r\n }\r\n\r\n async initializeEmbedForm() {\r\n let stripePk = AppCoreSettings.external.pm.stripe.publishableKey;\r\n const that = this;\r\n\r\n this.stripe = await loadStripe(stripePk);\r\n this.stripeCheckout = await this.stripe.initEmbeddedCheckout({\r\n fetchClientSecret: async () => {\r\n const amount = that.ps.getTotal();\r\n const currency = that.ps.currency;\r\n const response: any = await firstValueFrom(that.bs.createStripeSession(amount, currency, that.title, that.description, that.image));\r\n \r\n if (response) {\r\n that.sessionId = response.sessionId;\r\n return response?.sessionSecret ? response.sessionSecret : '';\r\n }\r\n\r\n return '';\r\n },\r\n onComplete: () => {\r\n //ps\r\n let paymentMethod = that.ps.selectedPaymentMethod;\r\n let subtotal = that.ps.subtotal;\r\n let promoCode = that.ps.promoCode;\r\n let total = that.ps.getTotal();\r\n let currency = that.ps.currency;\r\n\r\n that.bs.addPayment(paymentMethod, that.planId, that.paidFor, \r\n subtotal, promoCode, total, currency,\r\n that.sessionId, 'COMPLETED', '');\r\n \r\n that.onClose();\r\n }\r\n });\r\n\r\n // Mount Checkout\r\n this.stripeCheckout.mount('#stripeCheckout');\r\n }\r\n\r\n //Events\r\n onClose() {\r\n if (this.stripeCheckout) {\r\n // Destroy Checkout instance\r\n this.stripeCheckout.destroy();\r\n }\r\n\r\n super.close();\r\n }\r\n\r\n public get visible() {\r\n return this.isOpen && this.ps.getTotal() > 0;\r\n }\r\n}\r\n","@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='1080' [height]='800' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Stripe</kendo-dialog-titlebar> \r\n <div class='kendo-dialog-content'>\r\n <div id=\"stripeCheckout\"></div>\r\n </div>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 11 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './buttons/buyaccess-button.component';\r\nexport * from './buttons/subscribe-plan-button.component';\r\nexport * from \"./order-summary/order-summary.component\";\r\nexport * from \"./payment-methods/payment-methods.component\";\r\nexport * from \"./payment-options/payment-options.component\";\r\n\r\n//braintree\r\nexport * from \"./pm/braintree/braintree.component\";\r\n\r\n//paypal\r\nexport * from \"./pm/paypal/paypal-button.component\";\r\nexport * from \"./pm/paypal/paypal-subscribe-button.component\";\r\nexport * from \"./pm/paypal/paypal.component\";\r\n\r\n//stripe\r\nexport * from \"./pm/stripe/stripe.component\";\r\n","/*\r\n<file>\r\n Project:\r\n Atlas Cross\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 25 May 2024\r\n\r\n Copyright (c) 2023-2024 Atlas Cross Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class BillingUtils {\r\n private static readonly CURRENCY_SYMBOLS: Record<string, string> = {\r\n GBP: '£',\r\n EUR: '€',\r\n USD: '$',\r\n JPY: '¥',\r\n CAD: 'CA$',\r\n AUD: 'A$',\r\n };\r\n\r\n public static convert2AmountWithCurrency(amount: number | string, currency: string): string {\r\n if (!amount && amount !== 0) return '';\r\n\r\n const symbol = this.CURRENCY_SYMBOLS[currency.toUpperCase()];\r\n return symbol ? `${symbol}${amount}` : `${amount} ${currency}`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//components\r\nexport * from './components/exports'\r\n\r\n//services\r\nexport * from './services/billing.service';\r\nexport * from './services/payments.service';\r\nexport * from './services/paypal-script.service';\r\n\r\n//\r\nexport * from './utils'\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class GridReadServiceBase extends BehaviorSubject<any[]> {\r\n protected data: any[] = [];\r\n protected baseReadUrl: string;\r\n protected savedReadParams: any;\r\n\r\n constructor(protected http: HttpClient) {\r\n super([]);\r\n }\r\n\r\n serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : '';\r\n }\r\n\r\n read(params?: any, success?: Function, error?: Function) {\r\n if (this.data.length) {\r\n return super.next(this.data);\r\n }\r\n\r\n var url = this.baseReadUrl;\r\n\r\n if (typeof params === 'undefined') {\r\n params = this.savedReadParams;\r\n }\r\n\r\n if (params) {\r\n url = this.baseReadUrl + `${this.serializeParams(params)}`;\r\n this.savedReadParams = params;\r\n }\r\n\r\n this.http.get(url).pipe(map(res => <any[]>res)).subscribe({\r\n next: (data) => {\r\n super.next(data);\r\n if (success) success();\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n//App\r\nimport { GridReadServiceBase } from \"./grid-read.service\";\r\n\r\n@Injectable()\r\nexport class GridEditServiceBase extends GridReadServiceBase {\r\n protected baseUrl: string;\r\n\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n private reset() {\r\n this.data = [];\r\n }\r\n\r\n resetItem(dataItem: any) {\r\n if (!dataItem) { return; }\r\n\r\n //find orignal data item\r\n const originalDataItem = this.data.find(item => item.Id === dataItem.Id);\r\n\r\n //revert changes\r\n Object.assign(originalDataItem, dataItem);\r\n super.next(this.data);\r\n }\r\n\r\n save(data: any, isNew: boolean, sucess?: Function) {\r\n const action = isNew ? 'add' : 'update';\r\n\r\n this.reset();\r\n this.post(action, data).subscribe({\r\n next: (data) => {\r\n },\r\n error: (e) => {\r\n this.read();\r\n },\r\n complete: () => {\r\n this.read();\r\n if (sucess) sucess();\r\n }\r\n });\r\n }\r\n\r\n delete(data: any, sucess?: Function) {\r\n this.reset();\r\n\r\n const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;\r\n return this.http.delete(url).subscribe({\r\n next: (data) => {\r\n this.read();\r\n if (sucess) sucess();\r\n },\r\n error: (e) => {\r\n this.read();\r\n }\r\n });\r\n }\r\n\r\n post(action: any, data?: any): Observable<any[]> {\r\n const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.post(url, data).pipe(\r\n map(res => <any[]>res)\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 31 Jul 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class CurrenciesApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/currencies`;\r\n }\r\n\r\n getCurrencies(): Observable<any> {\r\n return this.get<any>('getCurrencies');\r\n }\r\n\r\n getRates(): Observable<any> {\r\n return this.get<any>('getRates');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 8 Aug 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n//App\r\nimport { CurrenciesApiService } from './currencies-api.service';\r\nimport { AppContextService } from '../../../core/services/appcontext.service';\r\n\r\n@Injectable()\r\nexport class CurrenciesStorageService {\r\n rates;\r\n\r\n //Private Streams\r\n private _currencyUpdated = new BehaviorSubject<string>('USD');\r\n private _ratesLoaded = new BehaviorSubject<string>(null);\r\n\r\n //Public Streams\r\n readonly currencyUpdated$ = this._currencyUpdated.asObservable();\r\n readonly ratesLoaded$ = this._ratesLoaded.asObservable();\r\n\r\n defaultCurrency = 'USD';\r\n\r\n constructor(\r\n private appContext: AppContextService,\r\n private api: CurrenciesApiService) {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n //1. Check localStorage\r\n let currency = this.appContext.currency;\r\n if (!currency) {\r\n //2. If localStorage is empty => set default\r\n currency = this.defaultCurrency;\r\n this.appContext.currency = currency;\r\n }\r\n\r\n this.changeCurrency(currency);\r\n\r\n this.appContext.updated$.subscribe((context) => {\r\n let localCurrency = this.appContext.currency;\r\n if (!localCurrency) {\r\n //3. If localStorage is empty => set account currency\r\n let accountCurrency = context?.account?.currency;\r\n this.changeCurrency(accountCurrency);\r\n }\r\n });\r\n\r\n this.api.getRates().subscribe({\r\n next: (data) => {\r\n this.rates = data;\r\n this.fireRatesLoaded(data);\r\n }\r\n });\r\n }\r\n\r\n private fireUpdated(currency: string) {\r\n this._currencyUpdated.next(currency);\r\n }\r\n\r\n private fireRatesLoaded(rates) {\r\n this._ratesLoaded.next(rates);\r\n }\r\n\r\n //Public\r\n changeCurrency(currency: string) {\r\n this.appContext.currency = currency;\r\n this.fireUpdated(currency);\r\n }\r\n\r\n toDisplayPrice(price) {\r\n let currencyRate = this.currentCurrencyRateOrDefault;\r\n if (currencyRate) {\r\n let convertedPrice = price * parseFloat(currencyRate.rate);\r\n\r\n convertedPrice = +convertedPrice.toFixed(0);\r\n return currencyRate.format.replace(\"amount\", convertedPrice);\r\n }\r\n\r\n return \"$ \" + price;\r\n }\r\n\r\n public get currentCurrencyRateOrDefault() {\r\n let currency = this.appContext.currency;\r\n let rate = this.rates?.filter(lang => lang.code == currency)[0];\r\n if (!rate) {\r\n rate = this.rates?.filter(lang => lang.code == this.defaultCurrency)[0];\r\n }\r\n\r\n return rate;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jun 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../base/api.service';\r\nimport { ApiUrl } from '../../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class TransactionsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/billing/transactions`;\r\n }\r\n\r\n getTransactionById(id): Observable<any> {\r\n return this.get<any>('getTransactionById', { id });\r\n }\r\n\r\n getTransactionByReceiptNum(receiptNum): Observable<any> {\r\n return this.get<any>('getTransactionByReceiptNum', { receiptNum });\r\n }\r\n\r\n getTransactions(data): Observable<any> {\r\n return this.get<any>('getTransactions', data);\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n//App\r\nimport { ApiServiceBase } from '../base/api.service';\r\nimport { ApiUrl } from '../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class CoreApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/core`;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 Jun 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n//App\r\nimport { ApiServiceBase } from '../base/api.service';\r\nimport { ApiUrl } from '../../core/consts/core-settings';\r\n\r\n@Injectable()\r\nexport class EmailsApiService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ApiUrl}/emails`;\r\n }\r\n\r\n sendContactUs(captcha, name, email, topic, subject, message, success?: Function, error?: Function) {\r\n return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe({\r\n next: (data) => {\r\n if (success) success(data);\r\n },\r\n error: (e) => {\r\n if (error) error(e);\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//base\r\nexport * from './base/api.service';\r\nexport * from './base/grid/grid-read.service';\r\nexport * from './base/grid/grid-edit.service';\r\n\r\n//services/billing\r\nexport * from './services/billing/currencies-api.service';\r\nexport * from './services/billing/currencies-storage.service';\r\nexport * from './services/billing/promocodes-api.service';\r\nexport * from './services/billing/payments-api.service';\r\nexport * from './services/billing/subscriptions-api.service';\r\nexport * from './services/billing/transactions-api.service';\r\n\r\n//services\r\nexport * from './services/core-api.service';\r\nexport * from './services/emails-api.service';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"./edit.component\";\r\nimport { Convert } from \"../../../../core/exports\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class EnumEditComponentBase extends EditComponentBase implements OnInit {\r\n enumeration;\r\n items = [];\r\n sv;\r\n\r\n //Inputs\r\n @Input()\r\n get selectedValue() {\r\n return this.sv;\r\n }\r\n set selectedValue(value: any) {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n if (value != this.sv) {\r\n this.sv = value;\r\n }\r\n }\r\n @Input() defaultValue = -1;\r\n\r\n //Outputs\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n\r\n private setDefaults() {\r\n this.renderItems();\r\n }\r\n\r\n private setValues() {\r\n if (this.isNgModelBased) {\r\n if (!this.selectedValue) {\r\n this.selectedValue = this.defaultValue;\r\n }\r\n }\r\n else {\r\n let value = this.getFormValue(this.controlName);\r\n if (!value) {\r\n this.setFormValue(this.controlName, this.defaultValue);\r\n }\r\n }\r\n }\r\n\r\n private fireValueChange(value) {\r\n this.valueChange.emit(value);\r\n }\r\n\r\n private renderItems() {\r\n let one = [];\r\n let two = Convert.enumToArray(this.enumeration, true);\r\n\r\n if (this.isNgModelBased) {\r\n one = [{ value: -1, text: 'All' }];\r\n }\r\n\r\n this.items = [];\r\n this.items = one.concat(two);\r\n }\r\n\r\n //Events\r\n onChange(value) {\r\n this.fireValueChange(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../components/component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class PageBase extends ComponentBase {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"../components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class EditPageBase extends EditComponentBase {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { PageBase } from \"./page\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class PagedPageBase extends PageBase {\r\n currentFilter = null;\r\n\r\n //Items & Pagination\r\n items: any[];\r\n totalItems: number = 0;\r\n pageSize: number = 10;\r\n skipItems: number = 0;\r\n currentPage: number = 1;\r\n\r\n public loadPage?(page?: number) : void;\r\n\r\n public loadPageOne() {\r\n this.skipItems = 0;\r\n this.currentPage = 1;\r\n this.loadPage();\r\n }\r\n\r\n public reloadPage(drop2pageOne: boolean = false) {\r\n if (drop2pageOne) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.loadPage();\r\n }\r\n }\r\n\r\n public setFilter(filter: any) {\r\n this.currentFilter = filter;\r\n this.loadPageOne();\r\n }\r\n\r\n //Tos\r\n toIndex(index) {\r\n return ((this.currentPage - 1) * this.pageSize) + index + 1;\r\n }\r\n\r\n //Events\r\n onPageChange(e: any) {\r\n this.pageSize = e.take;\r\n this.skipItems = e.skip;\r\n this.currentPage = (this.skipItems / this.pageSize) + 1;\r\n\r\n this.loadPage();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { OnInit, Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"./components/component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class ListBase extends ComponentBase implements OnInit {\r\n private _currentFilter = null; \r\n\r\n //Items & Pagination\r\n items: any[];\r\n totalItems: number = 0;\r\n skipItems: number = 0;\r\n currentPage: number = 1;\r\n dataLoaded = false;\r\n\r\n //Inputs\r\n @Input() pageSize: number = 10;\r\n @Input() autoDataLoading: boolean = false;\r\n\r\n //Outputs\r\n @Output() filterRequest: EventEmitter<any> = new EventEmitter();\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n\r\n get currentFilter(){\r\n return this._currentFilter;\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n protected init() {\r\n if (this.autoDataLoading && !this.dataLoaded) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.fireFilterRequest();\r\n }\r\n }\r\n\r\n protected fireFilterRequest() {\r\n this.filterRequest.emit();\r\n }\r\n\r\n protected fireDataChange(e = null) {\r\n this.dataChange.emit(e);\r\n }\r\n\r\n //Public\r\n public loadPage?(page?: number) : void;\r\n\r\n loadPageOne() {\r\n this.skipItems = 0;\r\n this.currentPage = 1;\r\n this.dataLoaded = true;\r\n\r\n this.loadPage();\r\n }\r\n\r\n reloadPage(drop2pageOne: boolean = false) {\r\n if (drop2pageOne) {\r\n this.loadPageOne();\r\n }\r\n else {\r\n this.loadPage();\r\n }\r\n }\r\n\r\n setFilter(filter: any) {\r\n if (filter) {\r\n this._currentFilter = filter;\r\n this.loadPageOne();\r\n }\r\n }\r\n\r\n //Tos\r\n toIndex(index) {\r\n return ((this.currentPage - 1) * this.pageSize) + index + 1;\r\n }\r\n\r\n //Events\r\n onPageChange(e: any) {\r\n this.pageSize = e.take;\r\n this.skipItems = e.skip;\r\n this.currentPage = (this.skipItems / this.pageSize) + 1;\r\n\r\n this.loadPage();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card',\r\n templateUrl: './card.component.html',\r\n standalone: false\r\n})\r\nexport class CardComponent extends ComponentBase {\r\n}\r\n","<div class='card {{ classes }}'>\r\n <ng-content select='card-header'></ng-content>\r\n <ng-content select='card-body'></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select='card-footer'></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-header',\r\n templateUrl: './card-header.component.html',\r\n standalone: false\r\n})\r\nexport class CardHeaderComponent extends ComponentBase {\r\n}\r\n","<div class='card-header {{ classes }}'>\n <div class=\"card-title\">\n @if (title) {\n <h3>{{ title }}</h3>\n }\n </div>\n <ng-content></ng-content>\n</div>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-body',\r\n templateUrl: './card-body.component.html',\r\n standalone: false\r\n})\r\nexport class CardBodyComponent extends ComponentBase {\r\n}\r\n","<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 July 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-card-footer',\r\n templateUrl: './card-footer.component.html',\r\n standalone: false\r\n})\r\nexport class CardFooterComponent extends ComponentBase {\r\n}\r\n","<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, ElementRef, OnInit } from \"@angular/core\";\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControl], [formControlName]',\r\n standalone: false\r\n})\r\nexport class NativeElementDirective implements OnInit {\r\n constructor(private el: ElementRef<HTMLFormElement>, private control: NgControl) {\r\n }\r\n\r\n ngOnInit() {\r\n // sets the localization key to the control\r\n (this.control.control as any).nativeElement = this.el.nativeElement;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Feb 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-country-dropdownlist',\r\n templateUrl: './country.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class CountryDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n this.title = 'Country';\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n setValues() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.countries);\r\n }\r\n });\r\n\r\n if (this.isNgModelBased) {\r\n }\r\n else {\r\n }\r\n }\r\n}\r\n","@if (isNgModelBased) {\n <div>\n </div>\n}\n\n@if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <select [formControlName]='controlName' class='form-select'>\n @for (item of items; track item) {\n <option [value]='item.code'>\n {{ item.name }}\n </option>\n }\n </select>\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 7 Nov 2023\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-language-dropdownlist',\r\n templateUrl: 'language.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class LanguageDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.languages);\r\n }\r\n }); \r\n }\r\n}\r\n","@if (isNgModelBased) {\n <div>\n </div>\n}\n\n@if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <kendo-dropdownlist [data]='items'\n valueField=\"code\"\n textField=\"name\"\n [valuePrimitive]='true'\n [formControlName]='controlName' />\n </div>\n }\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n//App\r\nimport { EditComponentBase } from \"../components/base/components/edit.component\";\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class ValidationSummaryComponent extends EditComponentBase {\r\n constructor() {\r\n super();\r\n }\r\n\r\n private getControlTitle(control, name?: string): string {\r\n let title = undefined;\r\n if (control?.nativeElement) {\r\n title = this.getTitleAttribute(control.nativeElement);\r\n }\r\n\r\n return title ?? name;\r\n }\r\n\r\n private getTitleAttribute(nativeElement: HTMLFormElement): string {\r\n let title: string;\r\n let element;\r\n let tagName = nativeElement.tagName;\r\n\r\n switch (tagName) {\r\n // For Kendo time and date picker element title is assigned to the 4th child control.\r\n case \"KENDO-TIMEPICKER\":\r\n case \"KENDO-DATEPICKER\":\r\n element = nativeElement.children[0]?.children[0]?.children[0]?.children[0];\r\n break;\r\n\r\n // For Kendo numaric element title is assigned to the 2nd child control.\r\n case \"KENDO-NUMERICTEXTBOX\":\r\n element = nativeElement.children[0]?.children[0];\r\n break;\r\n\r\n default:\r\n element = nativeElement;\r\n break;\r\n }\r\n\r\n if (element) {\r\n title = element.getAttribute(\"formControlTitle\");\r\n if (!title) {\r\n title = element.getAttribute(\"title\");\r\n }\r\n }\r\n\r\n return title;\r\n }\r\n\r\n getFormValidationMessages(): string[] {\r\n let messages: string[] = [];\r\n\r\n Object.keys(this.formGroup.controls).forEach((name) => {\r\n let control = this.formGroup.controls[name];\r\n\r\n if ((<FormGroup>control).controls != null) {\r\n Object.keys((<FormGroup>control).controls).forEach((k) => {\r\n var child = (<FormGroup>control).controls[k];\r\n this.getValidationMessages(child, k).forEach((m) => messages.push(m));\r\n });\r\n }\r\n else {\r\n this.getValidationMessages(control, name).forEach((m) => messages.push(m));\r\n }\r\n });\r\n\r\n return messages;\r\n }\r\n\r\n getValidationMessages(control: any, name?: string, title?: string) {\r\n let messages: string[] = [];\r\n let thing;\r\n\r\n if (title) {\r\n thing = title;\r\n }\r\n else {\r\n thing = this.getControlTitle(control, name);\r\n\r\n if (!thing){\r\n thing= control.path;\r\n }\r\n }\r\n\r\n if (control.errors) {\r\n for (let errorName in control.errors) {\r\n if (control.errors.hasOwnProperty(errorName)) {\r\n switch (errorName) {\r\n case \"required\":\r\n messages.push(`${thing} is required`);\r\n break;\r\n\r\n case \"minlength\":\r\n messages.push(\r\n `${thing} must be at least ${control.errors[\"minlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"pattern\":\r\n messages.push(`${thing} contains illegal characters`);\r\n break;\r\n\r\n case \"format\":\r\n messages.push(`${thing} format mismatch`);\r\n break;\r\n\r\n case \"maxlength\":\r\n messages.push(\r\n `${thing} must have maximum ${control.errors[\"maxlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"specialcharacters\":\r\n messages.push(`${thing} contains special characters`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-item-validation-summary\",\r\n templateUrl: \"./item-validation-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class ItemValidationSummaryComponent extends ValidationSummaryComponent {\r\n}\r\n","@if (isControlInvalid(controlName)) {\n <ul class=\"list-unstyled\">\n @for (error of getValidationMessages(formGroup.controls[controlName], controlName, controlTitle); track error) {\n <li>\n <span class=\"help-block\">{{ error }}</span>\n </li>\n }\n </ul>\n}\n\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ModerationStatus } from '../../../../core/enums';\r\nimport { EnumEditComponentBase } from '../../base/components/enum-edit.component';\r\n\r\n@Component({\r\n selector: 'anatoly-moderationstatus-dropdownlist',\r\n templateUrl: './moderationstatus.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class ModerationStatusDropdownlist extends EnumEditComponentBase implements OnInit {\r\n constructor() {\r\n super();\r\n this.title = 'Moderation Status';\r\n this.enumeration = ModerationStatus;\r\n }\r\n}\r\n\r\n","@if (isNgModelBased) {\n <div>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <kendo-dropdownlist [data]=\"items\"\n valueField=\"value\" textField=\"text\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"sv\"\n (valueChange)=\"onChange($event)\" />\n </div>\n }\n\n @if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <kendo-dropdownlist [data]=\"items\"\n valueField=\"value\" textField=\"text\"\n [valuePrimitive]=\"true\"\n [formControlName]='controlName' />\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n [controlName]='controlName'\n [controlTitle]='controlTitle' />\n </div>\n }\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Jan 2024\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { PublishStatus } from '../../../../core/enums';\r\nimport { EnumEditComponentBase } from '../../base/components/enum-edit.component';\r\n\r\n@Component({\r\n selector: 'anatoly-publishstatus-dropdownlist',\r\n templateUrl: './publishstatus.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class PublishStatusDropdownlist extends EnumEditComponentBase implements OnInit {\r\n constructor() {\r\n super();\r\n this.title = 'Publish Status';\r\n this.enumeration = PublishStatus;\r\n }\r\n}\r\n\r\n","@if (isNgModelBased) {\n <div>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <kendo-dropdownlist [data]=\"items\"\n valueField=\"value\" textField=\"text\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"sv\"\n (valueChange)=\"onChange($event)\" />\n </div>\n }\n\n @if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <kendo-dropdownlist [data]=\"items\"\n valueField=\"value\" textField=\"text\"\n [valuePrimitive]=\"true\"\n [formControlName]='controlName' />\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n [controlName]='controlName'\n [controlTitle]='controlTitle' />\n </div>\n }\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, Input, OnInit} from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-timezone-dropdownlist',\r\n templateUrl: './timezone.dropdownlist.html',\r\n standalone: false\r\n})\r\nexport class TimezoneDropdownlist extends EditComponentBase implements OnInit {\r\n items;\r\n\r\n @Input() disabled = false;\r\n\r\n constructor(private appContext: AppContextService) {\r\n super();\r\n this.title = 'Timezone';\r\n }\r\n\r\n ngOnInit() {\r\n this.setValues();\r\n }\r\n\r\n private setValues() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.items = Utils.sortArray(this.appContext.timezones);\r\n }\r\n }); \r\n\r\n if (this.isNgModelBased) {\r\n }\r\n else {\r\n let timezone = this.getFormValue(this.controlName);\r\n if (timezone) {\r\n return;\r\n }\r\n\r\n //1. Try to set client timezone\r\n try {\r\n timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n this.setFormValue(this.controlName, timezone);\r\n }\r\n catch {\r\n }\r\n\r\n //2. Try to set context timeZone\r\n let context = this.appContext.current;\r\n timezone = context?.user?.timezone;\r\n\r\n if (timezone) {\r\n this.setFormValue(this.controlName, timezone);\r\n }\r\n }\r\n }\r\n}\r\n","@if (isNgModelBased) {\n <div>\n </div>\n}\n\n@if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <label class='col-form-label'>Timezone</label>\n }\n <select [formControlName]='controlName' class='form-select' [disabled]='disabled'>\n @for (item of items; track item) {\n <option [value]='item.code'>\n ({{ item.offset }}) {{ item.name }}\n </option>\n }\n </select>\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { AppCoreSettings } from '../../../core/consts/core-settings';\r\n\r\nlet imageUploadUrl = AppCoreSettings?.api?.url + AppCoreSettings?.api?.imageUploadPath; \r\n\r\nexport const DefaultEditorOptions: Object = {\r\n placeholderText: \"Edit Your Content Here\",\r\n charCounterCount: true,\r\n heightMin: 100,\r\n toolbarInline: false,\r\n\r\n toolbarButtons: {\r\n moreText: {\r\n buttons: [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"strikeThrough\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"fontFamily\",\r\n \"fontSize\",\r\n \"textColor\",\r\n \"backgroundColor\",\r\n \"inlineClass\",\r\n \"inlineStyle\",\r\n ],\r\n },\r\n moreParagraph: {\r\n buttons: [\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"formatOLSimple\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"formatOL\",\r\n \"formatUL\",\r\n \"paragraphFormat\",\r\n \"paragraphStyle\",\r\n \"lineHeight\",\r\n \"outdent\",\r\n \"indent\",\r\n \"quote\",\r\n ],\r\n },\r\n moreRich: {\r\n buttons: [\r\n \"insertLink\",\r\n \"insertImage\",\r\n \"insertTable\",\r\n \"emoticons\",\r\n \"fontAwesome\",\r\n \"specialCharacters\",\r\n \"embedly\",\r\n ],\r\n },\r\n moreMisc: {\r\n buttons: [\r\n \"selectAll\",\r\n \"clearFormatting\",\r\n \"html\",\r\n \"undo\",\r\n \"redo\",\r\n \"fullscreen\",\r\n ],\r\n align: \"right\",\r\n }\r\n },\r\n\r\n /*\r\n Upload:\r\n https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload\r\n */\r\n imageUploadURL: imageUploadUrl,\r\n imageAllowedTypes: [\"jpeg\", \"jpg\", \"png\"],\r\n imageUploadParams: { uploadType: \"\", uploadParentId: \"\" }\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Global\r\ndeclare let $: any;\r\n\r\n//Node\r\nimport { AfterViewInit, Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { AppCoreSettings } from \"../../../core/consts/core-settings\";\r\nimport { EditComponentBase } from \"../base/components/edit.component\";\r\nimport { DefaultEditorOptions } from \"./defaultoptions\";\r\n\r\n@Component({\r\n template: \"\",\r\n standalone: false\r\n})\r\nexport abstract class HtmlEditorComponentBase extends EditComponentBase implements OnInit, AfterViewInit {\r\n protected froalaEditor;\r\n\r\n //Public members\r\n public options;\r\n public froalaEditorInitialized = false;\r\n public afterInitializedActions = [];\r\n\r\n //Inputs\r\n @Input() editorOptions: Object = {};\r\n\r\n constructor() {\r\n super();\r\n this.title = \"Html\";\r\n this.isTitleVisible = true;\r\n }\r\n\r\n ngOnInit() {\r\n let opt = this.editorOptions;\r\n if (typeof this.editorOptions == \"string\") {\r\n opt = JSON.parse(this.editorOptions);\r\n }\r\n\r\n let newOptions: any = $.extend({}, DefaultEditorOptions, opt);\r\n const key = AppCoreSettings.froalaEditorKey;\r\n\r\n if (key) {\r\n newOptions = $.extend(\r\n {},\r\n newOptions,\r\n JSON.parse('{ \"key\": \"' + key + '\" }')\r\n );\r\n }\r\n\r\n if (newOptions.events && newOptions.events.initialized) {\r\n newOptions.events.initialized.overridden = false;\r\n }\r\n\r\n this.options = newOptions;\r\n }\r\n\r\n ngAfterViewInit() {\r\n const that = this;\r\n setTimeout(function () {\r\n that.froalaEditorInitialized = true;\r\n that.onInitialized();\r\n }, 300);\r\n }\r\n\r\n private onInitialized() {\r\n let actions = this.afterInitializedActions;\r\n\r\n // Clear actions\r\n this.afterInitializedActions = [];\r\n\r\n if (actions) {\r\n for (let i = 0; i < actions.length; i++) {\r\n actions[i]();\r\n }\r\n }\r\n }\r\n\r\n protected getEditor() {\r\n if (this.froalaEditor) {\r\n return this.froalaEditor.getEditor();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Public Funcs\r\n doAfterInitialized(action) {\r\n const that = this;\r\n\r\n if (!this.froalaEditorInitialized) {\r\n this.afterInitializedActions.push(() => {\r\n action(that);\r\n });\r\n } else {\r\n action(that);\r\n }\r\n }\r\n\r\n initializeControl(control) {\r\n this.froalaEditor = control;\r\n this.froalaEditor.initialize();\r\n }\r\n\r\n setUploadParams(uploadType, uploadParentId) {\r\n this.doAfterInitialized(function (that) {\r\n const editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.opts.imageUploadParams.uploadType = uploadType;\r\n editor.opts.imageUploadParams.uploadParentId = uploadParentId;\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component } from \"@angular/core\";\r\n\r\n//App\r\nimport { HtmlEditorComponentBase } from \"./base-editor.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-html-editor\",\r\n templateUrl: \"./html-editor.component.html\",\r\n standalone: false\r\n})\r\nexport class HtmlEditorComponent extends HtmlEditorComponentBase {\r\n constructor() {\r\n super();\r\n }\r\n\r\n getHtml() {\r\n let editor = this.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n return editor.html.get(false);\r\n }\r\n\r\n setHtml(content) {\r\n this.doAfterInitialized(function (that) {\r\n let editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.html.set(content);\r\n });\r\n }\r\n}\r\n","@if (isNgModelBased) {\n <div>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <textarea [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\"></textarea>\n </div>\n}\n\n@if (!isNgModelBased) {\n <div [formGroup]='formGroup'>\n @if (isTitleVisible) {\n <kendo-label text=\"{{ title }}\"></kendo-label>\n }\n <textarea [froalaEditor]=\"options\"\n [formControlName]=\"controlName\"\n [attr.formControlTitle]=\"controlTitle\"\n (froalaInit)=\"initializeControl($event)\">\n </textarea>\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n [controlName]='controlName'\n [controlTitle]='controlTitle' />\n </div>\n }\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 15 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'anatoly-check-icon',\r\n templateUrl: './check-icon.component.html',\r\n standalone: false\r\n})\r\nexport class CheckIconComponent {\r\n //Inputs\r\n @Input() checked: boolean = true;\r\n}\r\n","<fa-icon [icon]=\"this.checked ? 'check-circle' : 'circle-xmark'\"\r\n [ngClass]=\"checked ? 'text-success' : 'text-danger'\" />\r\n<ng-content></ng-content>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 23 Apr 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n//App\r\nimport { DataViewType } from '../../../core/enums';\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-data-grid-control-panel',\r\n templateUrl: './control-panel.component.html',\r\n standalone: false\r\n})\r\nexport class ControlPanelComponent extends ComponentBase implements OnInit {\r\n filterVisible: boolean;\r\n selectedSortBy: number;\r\n viewTypeDefault: DataViewType;\r\n\r\n //Inputs\r\n @Input() sortByItems;\r\n @Input() viewType;\r\n\r\n //Visible\r\n @Input() filterButtonVisible = false;\r\n @Input() sortByVisible = false;\r\n @Input() viewTypesVisible = false;\r\n @Input() addButtonVisible = false;\r\n\r\n //Outputs\r\n @Output() settingsChange: EventEmitter<any> = new EventEmitter();\r\n @Output() add: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n this.resetSettings();\r\n this.fireSettingsChange();\r\n }\r\n\r\n private setDefaults() {\r\n if (this.viewType) {\r\n this.viewTypeDefault = this.viewType;\r\n }\r\n else {\r\n this.viewType = DataViewType.List;\r\n this.viewTypeDefault = DataViewType.List;\r\n }\r\n }\r\n\r\n private setValues() {\r\n }\r\n\r\n private fireSettingsChange() {\r\n this.settingsChange.emit(this.getSettings());\r\n }\r\n\r\n private fireAdd() {\r\n this.add.emit();\r\n }\r\n\r\n //Public\r\n resetSettings() {\r\n this.filterVisible = false;\r\n this.selectedSortBy = 1;\r\n this.viewType = this.viewTypeDefault;\r\n }\r\n\r\n getSettings() {\r\n let filterVisible = this.filterVisible;\r\n let sortBy = this.selectedSortBy;\r\n let viewType = this.viewType;\r\n\r\n return {\r\n filterVisible: filterVisible,\r\n sortBy: sortBy,\r\n viewType: viewType\r\n };\r\n }\r\n\r\n //Events\r\n onFilterToggle() {\r\n this.filterVisible = !this.filterVisible;\r\n this.fireSettingsChange();\r\n }\r\n\r\n onSortByChange() {\r\n this.fireSettingsChange();\r\n }\r\n\r\n onViewSwitch(value) {\r\n this.viewType = value;\r\n this.fireSettingsChange();\r\n }\r\n\r\n onAdd() {\r\n this.fireAdd();\r\n }\r\n}\r\n","<div class='os-control-panel'>\r\n <div class='control-wrapper'>\r\n @if (filterButtonVisible) {\r\n <div class='filter'>\r\n <a [ngClass]=\"{'active': filterVisible}\"\r\n class='btn btn-icon btn-primary'\r\n href='javascript:void(0)' \r\n (click)='onFilterToggle()'>\r\n <svg height='22' viewBox='0 0 32 32' width='20' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M2 7h.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2H9.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2zm4-3a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm24 11h-.142a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h20.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-4 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2zm4 7H19.858a3.981 3.981 0 0 0-7.716 0H2a1 1 0 0 0 0 2h10.142a3.981 3.981 0 0 0 7.716 0H30a1 1 0 0 0 0-2zm-14 3a2 2 0 1 1 2-2 2 2 0 0 1-2 2z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a> \r\n </div>\r\n }\r\n \r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class='tools'>\r\n @if (sortByVisible) {\r\n <div class='sort-by'>\r\n <h2>Sort By:</h2>\r\n <kendo-dropdownlist [data]='sortByItems'\r\n valueField='value'\r\n textField='text'\r\n [valuePrimitive]='true'\r\n [(ngModel)]='selectedSortBy'\r\n (valueChange)='onSortByChange()'>\r\n </kendo-dropdownlist>\r\n </div>\r\n }\r\n\r\n @if (viewTypesVisible) {\r\n <div class='actions'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'grid'}\"\r\n (click)=\"onViewSwitch('grid')\">\r\n <svg fill='none' height='18' viewBox='0 0 18 18' width='18' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M6 1H2C1.44772 1 1 1.44772 1 2V6C1 6.55228 1.44772 7 2 7H6C6.55228 7 7 6.55228 7 6V2C7 1.44772 6.55228 1 6 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 1H12C11.4477 1 11 1.44772 11 2V6C11 6.55228 11.4477 7 12 7H16C16.5523 7 17 6.55228 17 6V2C17 1.44772 16.5523 1 16 1Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M6 11H2C1.44772 11 1 11.4477 1 12V16C1 16.5523 1.44772 17 2 17H6C6.55228 17 7 16.5523 7 16V12C7 11.4477 6.55228 11 6 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n <path\r\n d='M16 11H12C11.4477 11 11 11.4477 11 12V16C11 16.5523 11.4477 17 12 17H16C16.5523 17 17 16.5523 17 16V12C17 11.4477 16.5523 11 16 11Z'\r\n stroke='currentColor'\r\n stroke-linecap='round'\r\n stroke-linejoin='round'\r\n stroke-width='2'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'list'}\"\r\n (click)=\"onViewSwitch('list')\">\r\n <svg fill='none' height='15' viewBox='0 0 19 15' width='19' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M1.5 6C0.67 6 0 6.67 0 7.5C0 8.33 0.67 9 1.5 9C2.33 9 3 8.33 3 7.5C3 6.67 2.33 6 1.5 6ZM1.5 0C0.67 0 0 0.67 0 1.5C0 2.33 0.67 3 1.5 3C2.33 3 3 2.33 3 1.5C3 0.67 2.33 0 1.5 0ZM1.5 12C0.67 12 0 12.68 0 13.5C0 14.32 0.68 15 1.5 15C2.32 15 3 14.32 3 13.5C3 12.68 2.33 12 1.5 12ZM5.5 14.5H17.5C18.05 14.5 18.5 14.05 18.5 13.5C18.5 12.95 18.05 12.5 17.5 12.5H5.5C4.95 12.5 4.5 12.95 4.5 13.5C4.5 14.05 4.95 14.5 5.5 14.5ZM5.5 8.5H17.5C18.05 8.5 18.5 8.05 18.5 7.5C18.5 6.95 18.05 6.5 17.5 6.5H5.5C4.95 6.5 4.5 6.95 4.5 7.5C4.5 8.05 4.95 8.5 5.5 8.5ZM4.5 1.5C4.5 2.05 4.95 2.5 5.5 2.5H17.5C18.05 2.5 18.5 2.05 18.5 1.5C18.5 0.95 18.05 0.5 17.5 0.5H5.5C4.95 0.5 4.5 0.95 4.5 1.5Z'\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)'\r\n [ngClass]=\"{'active': viewType == 'table'}\"\r\n (click)=\"onViewSwitch('table')\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" height=\"20\" width=\"20\" fill='none' >\r\n <path\r\n d=\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"\r\n fill='currentColor'/>\r\n </svg>\r\n </a>\r\n </div>\r\n }\r\n\r\n @if (addButtonVisible) {\r\n <div class='action-add'>\r\n <a class='btn btn-icon btn-primary' href='javascript:void(0)' (click)='onAdd()'>\r\n <fa-icon icon='plus'/>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-datapager',\r\n templateUrl: './datapager.component.html',\r\n standalone: false\r\n})\r\nexport class DataPagerComponent extends ComponentBase implements OnInit {\r\n //Private\r\n private _defaultPageSizes = [5, 10, 20, 30];\r\n private _width;\r\n\r\n //Public\r\n pageSizes = [];\r\n style: string;\r\n\r\n //Inputs\r\n @Input() totalItems: number = 0;\r\n @Input() pageSize: number = 0;\r\n @Input() skipItems: number = 0;\r\n\r\n @Input() pageSizeDivisor;\r\n @Input() pageSizeMax: number = 30;\r\n @Input()\r\n get width() {\r\n return this._width;\r\n }\r\n set width(value) {\r\n this._width = value;\r\n\r\n if (value) {\r\n this.style = \"width: \" + value;\r\n }\r\n }\r\n\r\n //Outputs\r\n @Output() pageChange: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.pageSizes = [];\r\n\r\n if (this.pageSizeDivisor) {\r\n for (let i = 3; i < this.pageSizeMax; i++) {\r\n let remainder = i % this.pageSizeDivisor;\r\n if (remainder == 0) {\r\n this.pageSizes.push(i);\r\n }\r\n }\r\n }\r\n else {\r\n this.pageSizes = this._defaultPageSizes;\r\n }\r\n }\r\n\r\n //Events\r\n onPageChange(e) {\r\n this.pageChange.emit(e);\r\n }\r\n}\r\n","<div class='{{ classes }}'>\r\n <kendo-datapager [total]='totalItems'\r\n [pageSize]='pageSize'\r\n [pageSizeValues]='pageSizes'\r\n [skip]='skipItems'\r\n [style]='style'\r\n (pageChange)='onPageChange($event)'>\r\n </kendo-datapager>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signin-button\",\r\n templateUrl: \"./signin-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignInButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n const url = MSALConfig.ui.signin;\r\n\r\n if (url) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n</a>\n\n<ng-template #contentTemplate>\n <span #ref><ng-content></ng-content></span>\n @if (!ref.innerHTML.trim()) {\n <span>Sign In</span>\n }\n</ng-template>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n//App\r\nimport { ComponentBase } from \"../base/components/component\";\r\nimport { MSALConfig } from \"../../../iam/consts\";\r\n\r\n@Component({\r\n selector: \"anatoly-signout-button\",\r\n templateUrl: \"./signout-button.component.html\",\r\n standalone: false\r\n})\r\nexport class SignOutButtonComponent extends ComponentBase implements OnInit {\r\n url;\r\n\r\n @Input() qs: string;\r\n\r\n ngOnInit() {\r\n const url = MSALConfig.ui.signout;\r\n\r\n if (url) {\r\n this.url = url + (this.qs ? '?' + this.qs : '');\r\n }\r\n }\r\n}\r\n","<a [href]=\"url\" class=\"{{ classes }}\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n</a>\n\n<ng-template #contentTemplate>\n <span #ref><ng-content></ng-content></span>\n @if (!ref.innerHTML.trim()) {\n <span>Sign Out</span>\n }\n</ng-template>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Jul 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\r\n\r\n@Component({\r\n selector: 'anatoly-nodata',\r\n templateUrl: './nodata.component.html',\r\n standalone: false\r\n})\r\nexport class NodataComponent {\r\n @Input() dataLoading;\r\n @Input() dataLoaded;\r\n @Input() dataFound;\r\n\r\n @Input() icon;\r\n @Input() iconSize: SizeProp = '10x';\r\n @Input() heading: string = 'No data found';\r\n}\r\n","@if (!dataLoading && dataLoaded && !dataFound) {\n <div class=\"no-data\">\n <div class='loaded text-info'>\n @if (icon) {\n <div>\n <fa-icon [icon]=\"icon\" [size]=\"iconSize\"></fa-icon>\n </div>\n }\n <h3 class='no-data-heading'>{{heading}}</h3>\n <ng-content></ng-content>\n </div>\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Leon Malyan leon.malyan@osovitny.com\r\n\r\n Created:\r\n 22 Juy 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-no-mobile-support',\r\n templateUrl:'./no-mobile-support.component.html',\r\n standalone: false\r\n})\r\nexport class NoMobileSupportComponent extends ComponentBase {\r\n @Input() logo;\r\n}\r\n","<div style=\"text-align:center; padding-top:20px;\">\r\n <img [src]='logo' alt='logo'>\r\n</div>\r\n<div style='text-align: center; margin-top:40vh;'>\r\n <div style='font-size:1.25rem;'>\r\n <b>Mobile Site Under Construction</b>\r\n </div>\r\n <div>Please Use Another Device</div>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n \r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n \r\n Created:\r\n 16 Dec 2025\r\n \r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\nimport { Message2UserService } from '../../../core/services/message2user.service';\r\nimport { GoServiceBase } from '../../../core/go/go.service';\r\n\r\n@Component({\r\n selector: 'anatoly-message2user',\r\n templateUrl: './message2User.component.html',\r\n standalone: false\r\n})\r\nexport class Message2UserComponent extends ComponentBase implements OnInit {\r\n show = false;\r\n message;\r\n config;\r\n \r\n constructor(private go: GoServiceBase, private mus: Message2UserService) {\r\n super();\r\n }\r\n \r\n ngOnInit() {\r\n this.setDefaults();\r\n this.setValues();\r\n }\r\n \r\n private setDefaults() {\r\n }\r\n \r\n private setValues() {\r\n this.subs.sink = this.mus.subscribe({\r\n next: (data) => {\r\n if (!data) {\r\n return;\r\n }\r\n \r\n this.show = true;\r\n this.message = data;\r\n this.config = this.mus.getConfig(data.type);\r\n \r\n if (this.message?.timeout) {\r\n setTimeout(() => {\r\n this.show = false;\r\n }, this.message.timeout);\r\n }\r\n },\r\n });\r\n }\r\n \r\n //Events\r\n onCloseAndBlock() {\r\n this.show = false;\r\n\r\n if (this.config.go2dashboard) {\r\n this.go.dashboard();\r\n }\r\n else {\r\n this.go.home();\r\n }\r\n }\r\n \r\n onClose(){\r\n this.show = false;\r\n }\r\n}\r\n","@if (show) {\r\n <div class='message-user' [ngClass]='{show: show}'>\r\n <div class='message-user-inner '>\r\n <anatoly-card>\r\n <anatoly-card-header title=' '>\r\n <div class='card-tools'>\r\n @if (message?.block) {\r\n <a href='javascript:' class='btn btn-icon btn-info' (click)='onCloseAndBlock()'>\r\n <fa-icon icon='close' />\r\n </a>\r\n }\r\n \r\n @if (!message?.block) {\r\n <a href='javascript:' class='btn btn-icon btn-info' (click)='onClose()'>\r\n <fa-icon icon='close' />\r\n </a>\r\n }\r\n </div>\r\n </anatoly-card-header>\r\n \r\n <anatoly-card-body classes='p-0'>\r\n <div class='message-content'>\r\n <div class='message-content text-center'>\r\n @if (config?.image) {\r\n <div class='message-image mb-3'>\r\n <img [src]=\"config.image\"\r\n [alt]=\"config.title || 'Message'\"\r\n class='img-fluid'\r\n loading=\"lazy\">\r\n </div>\r\n }\r\n <div class='message-text'>\r\n <h4 class='mb-2' [ngClass]=\"'text-' + config?.color\">\r\n {{ config?.title }}\r\n </h4>\r\n <p class='mb-0'>{{ config?.message }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </anatoly-card-body>\r\n \r\n <anatoly-card-footer classes='bg-footer'>\r\n <div class='actions'>\r\n @if (message?.block) {\r\n <a href='javascript:' class='btn btn-secondary' (click)='onCloseAndBlock()'>\r\n <span>Close</span>\r\n </a>\r\n }\r\n \r\n @if (!message?.block) {\r\n <a href='javascript:' class='btn btn-secondary' (click)='onClose()'>\r\n <span>Close</span>\r\n </a>\r\n }\r\n </div>\r\n </anatoly-card-footer>\r\n </anatoly-card>\r\n </div>\r\n </div>\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 9 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../../base/components/component';\r\nimport { LoadingService } from '../../../../core/services/loading.service';\r\n\r\n@Component({\r\n selector: 'anatoly-loading',\r\n templateUrl: './loading.component.html',\r\n standalone: false\r\n})\r\nexport class LoadingComponent extends ComponentBase implements OnInit {\r\n show = false;\r\n\r\n constructor(private loadingService: LoadingService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subs.sink = this.loadingService.subscribe({\r\n next: (data) => {\r\n this.show = data;\r\n }\r\n });\r\n }\r\n}\r\n","@if (show) {\n <div id=\"pnlLoading\">\n <span class=\"k-icon k-i-loading\"></span>\n </div>\n}\n","export const Spinkit = {\r\n skChasingDots: 'sk-chasing-dots',\r\n skCubeGrid: 'sk-cube-grid',\r\n skDoubleBounce: 'sk-double-bounce',\r\n skRotatingPlane: 'sk-rotationg-plane',\r\n skSpinnerPulse: 'sk-spinner-pulse',\r\n skThreeBounce: 'sk-three-bounce',\r\n skWanderingCubes: 'sk-wandering-cubes',\r\n skWave: 'sk-wave',\r\n skLine: 'sk-line-material'\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 May 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Component, Input, OnDestroy, ViewEncapsulation} from '@angular/core';\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationError, NavigationCancel } from '@angular/router';\r\n\r\n//App\r\nimport {Spinkit} from './spinkits'\r\n\r\n@Component({\r\n selector: 'anatoly-pagespinner',\r\n templateUrl: './pagespinner.component.html',\r\n standalone: false,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PageSpinnerComponent implements OnDestroy {\r\n isSpinnerVisible = true;\r\n Spinkit = Spinkit;\r\n\r\n @Input() backgroundColor = '#2196f3';\r\n @Input() spinner = Spinkit.skLine;\r\n\r\n constructor(private router: Router) {\r\n router.events.subscribe({\r\n next:(routerEvent: Event) => {\r\n this.checkRouterEvent(routerEvent);\r\n }\r\n });\r\n }\r\n\r\n checkRouterEvent(routerEvent: Event): void {\r\n if (routerEvent instanceof NavigationStart) {\r\n this.isSpinnerVisible = true;\r\n }\r\n\r\n if (routerEvent instanceof NavigationEnd ||\r\n routerEvent instanceof NavigationCancel ||\r\n routerEvent instanceof NavigationError) {\r\n this.isSpinnerVisible = false;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isSpinnerVisible = false;\r\n}\r\n}\r\n\r\n","@if (isSpinnerVisible) {\n <div id=\"http-loader\">\n <div class=\"loader-bg\">\n @if (spinner === Spinkit.skLine) {\n <div class=\"sk-line-material\" [class.colored]=\"!backgroundColor\">\n <div class=\"sk-child sk-bounce1\" [style.background-color]='backgroundColor'></div>\n </div>\n }\n </div>\n </div>\n}\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 9 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { Utils } from '../../../core/utils/utils';\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-copy-2-clipboard',\r\n templateUrl:'./copy-2-clipboard.component.html',\r\n standalone: false\r\n})\r\nexport class Copy2ClipboardComponent extends ComponentBase {\r\n @Input() tooltip = \"Copy to clipboard\";\r\n @Input() text = \"\";\r\n\r\n onCopy2Clipboard(event) {\r\n let oldTooltip = this.tooltip;\r\n this.tooltip = \"Copied\";\r\n\r\n setTimeout(() => {\r\n this.tooltip = oldTooltip;\r\n }, 1000);\r\n\r\n Utils.copyToClipBoard(event, this.text);\r\n }\r\n}\r\n","<a class=\"btn btn-icon {{ classes }}\" (click)=\"onCopy2Clipboard($event)\">\r\n <fa-icon size=\"lg\" icon=\"copy\" />\r\n</a>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, EventEmitter, Output, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../components/base/components/edit.component';\r\nimport { Utils } from '../../../core/utils/utils';\r\n\r\n@Component({\r\n selector: 'anatoly-urlslug',\r\n templateUrl: './urlslug.component.html',\r\n standalone: false\r\n})\r\nexport class UrlSlugComponent extends EditComponentBase implements OnInit {\r\n firstValue: boolean = true;\r\n hrefGo: string;\r\n\r\n //Inputs\r\n @Input() urlPrefix: string;\r\n @Input() isGoButtonVisible = true;\r\n\r\n //Validation\r\n @Input() watchedControlName: string;\r\n\r\n //Outputs\r\n @Output() generated: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {\r\n super();\r\n this.title = 'Permalink';\r\n }\r\n\r\n ngOnInit() {\r\n this.startWatching();\r\n }\r\n\r\n private generateUrlSlug(text) {\r\n let slugedText = Utils.slugify(text);\r\n let event = { urlSlug: slugedText };\r\n\r\n this.generated.emit(event);\r\n this.setFormValue(this.controlName, event.urlSlug);\r\n }\r\n\r\n private startWatching() {\r\n this.subs.sink = this.formGroup.get(this.controlName).valueChanges.subscribe({\r\n next: (value) => {\r\n this.hrefGo = value;\r\n }\r\n });\r\n\r\n if (this.watchedControlName) {\r\n this.subs.sink = this.formGroup.get(this.watchedControlName).valueChanges.subscribe({\r\n next: (value) => {\r\n if (this.firstValue) {\r\n this.firstValue = false;\r\n return;\r\n }\r\n\r\n this.generateUrlSlug(value);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //Events\r\n onUrlSlugChange(){\r\n let text = this.getFormValue(this.controlName);\r\n this.generateUrlSlug(text);\r\n }\r\n}\r\n","<div class=\"form-group\" [formGroup]='formGroup' [ngClass]=\"{'has-error': isControlInvalid(controlName)}\" >\n <anatoly-item-validation-summary\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n [controlName]='controlName'>\n </anatoly-item-validation-summary>\n\n <div class=\"input-group permalink\" [ngClass]=\"classes\">\n @if (isTitleVisible) {\n <label for=\"urlPrefixId\">{{ title }}</label>\n }\n <div class=\"urlPrefix\">{{ urlPrefix }}</div>\n <input type=\"text\" class=\"form-control\" id=\"urlPrefixId\" [formControlName]='controlName' (focusout)='onUrlSlugChange()'>\n @if (isGoButtonVisible) {\n <a class=\"btn btn-primary\" href=\"{{urlPrefix}}{{hrefGo}}\" target=\"_blank\" >Go</a>\n }\n </div>\n</div>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-feature-will-be-ready',\r\n templateUrl: 'feature-will-be-ready.component.html',\r\n standalone: false\r\n})\r\nexport class FeatureWillBeReadyComponent extends ComponentBase {\r\n @Input() readyDate;\r\n}\r\n","<div class='feature-will-be-ready'>\n @if (readyDate) {\n <h3>This feature will be ready in {{ readyDate }} </h3>\n }\n @if (!readyDate) {\n <h3>This feature will be available soon</h3>\n }\n</div>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 21 Feb 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from '@angular/core';\r\n\r\n//App\r\nimport { ComponentBase } from '../base/components/component';\r\n\r\n@Component({\r\n selector: 'anatoly-you-agree-to-our-terms',\r\n templateUrl: './you-agree-to-our-terms.component.html',\r\n standalone: false\r\n})\r\nexport class YouAgreeToOurTermsComponent extends ComponentBase {\r\n @Input() prefix;\r\n @Input() oneLine: boolean = true;\r\n}\r\n","<div class=\"you-agree-to-our-terms\">\r\n <p>\r\n {{ prefix }} you agree to our\r\n @if (!oneLine) {\r\n <br />\r\n }\r\n <a [href]=\"currentApp.oneUrl + 'legal/terms'\" target=\"_blank\" rel=\"noopener\">Terms of use</a>\r\n and\r\n <a [href]=\"currentApp.oneUrl + 'legal/privacy'\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>.\r\n </p>\r\n</div>\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//base\r\nexport * from './base/components/component';\r\nexport * from './base/components/edit.component';\r\nexport * from './base/components/enum-edit.component';\r\nexport * from './base/pages/page';\r\nexport * from './base/pages/edit.page';\r\nexport * from './base/pages/paged.page';\r\nexport * from './base/dialog';\r\nexport * from './base/list';\r\n\r\n//cards\r\nexport * from './card/card.component';\r\nexport * from './card/card-header.component';\r\nexport * from './card/card-body.component';\r\nexport * from './card/card-footer.component';\r\n\r\n//dropdownlists\r\nexport * from './dropdownlists/country/country.dropdownlist';\r\nexport * from './dropdownlists/language/language.dropdownlist';\r\nexport * from './dropdownlists/moderationstatus/moderationstatus.dropdownlist';\r\nexport * from './dropdownlists/publishstatus/publishstatus.dropdownlist';\r\nexport * from './dropdownlists/timezone/timezone.dropdownlist';\r\n\r\n//html-editor\r\nexport * from './html-editor/defaultoptions';\r\nexport * from './html-editor/base-editor.component';\r\nexport * from './html-editor/html-editor.component';\r\n\r\nexport * from './check-icon/check-icon.component';\r\nexport * from './data-grid/control-panel.component';\r\nexport * from './datapager/datapager.component';\r\nexport * from './identity/signin-button.component';\r\nexport * from './identity/signout-button.component';\r\nexport * from './identity/signup-button.component';\r\nexport * from './nodata/nodata.component';\r\nexport * from './no-mobile-support/no-mobile-support.component';\r\nexport * from './message2User/message2user.component';\r\nexport * from './spinners/loading/loading.component';\r\nexport * from './spinners/pagespinner/pagespinner.component';\r\nexport * from './copy-2-clipboard/copy-2-clipboard.component';\r\nexport * from './urlslug/urlslug.component';\r\nexport * from './feature-will-be-ready/feature-will-be-ready.component';\r\nexport * from './you-agree-to-our-terms/you-agree-to-our-terms.component';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 7 Dec 2017\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n//App\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-form-validation-summary\",\r\n templateUrl: \"./form-validation-summary.component.html\",\r\n standalone: false\r\n})\r\nexport class FormValidationSummaryComponent extends ValidationSummaryComponent {\r\n @Input() visible: boolean = false;\r\n @Input() customerrors: string[] = [];\r\n\r\n /*\r\n 0 - all\r\n 1 - only FormValidation messages\r\n 2 - only Custom messages\r\n */\r\n @Input() viewtype: number = 0;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n getErrors() {\r\n let messages = [];\r\n let formValidationMessages = this.getFormValidationMessages();\r\n\r\n switch(this.viewtype) {\r\n case 1:\r\n messages.push(...formValidationMessages);\r\n break;\r\n\r\n case 2:\r\n messages.push(...this.customerrors);\r\n break;\r\n\r\n default:\r\n messages.push(...formValidationMessages);\r\n messages.push(...this.customerrors);\r\n break;\r\n }\r\n\r\n return messages;\r\n }\r\n}\r\n","@if (visible) {\n <div class=\"callout callout-danger\">\n <h6 class=\"box-title\">There are problems with the form</h6>\n <ul>\n @for (error of getErrors(); track error) {\n <li><span>{{error}}</span></li>\n }\n </ul>\n </div>\n}\n\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { ReCaptchaV3Service } from 'ngx-captcha';\r\n\r\n//App\r\nimport { AppContextService } from \"../../../core/services/appcontext.service\";\r\nimport { NotificationService } from \"../../../core/notifications/services/notification-service\";\r\nimport { EmailsApiService } from '../../../data/services/emails-api.service';\r\nimport { EditComponentBase } from \"../../components/base/components/edit.component\";\r\n\r\n@Component({\r\n selector: 'anatoly-forms-contactus-form',\r\n templateUrl: './contact-us.html',\r\n standalone: false\r\n})\r\nexport class ContactUsForm extends EditComponentBase implements OnInit {\r\n isUserSignedIn: boolean = false;\r\n reCaptchaSiteKey;\r\n selectedTopic;\r\n\r\n topicList = [\r\n { value: 'Billing & Pricing' },\r\n { value: 'Legal & Privacy' },\r\n { value: 'Report abuse' },\r\n { value: 'Technical Support' },\r\n { value: 'Other' }\r\n ];\r\n\r\n //Inputs\r\n @Input() showActionButtons = true;\r\n\r\n //Outputs\r\n @Output() submit: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private reCaptcha: ReCaptchaV3Service,\r\n private fb: FormBuilder,\r\n private appContext: AppContextService,\r\n private api: EmailsApiService,\r\n private notificationService: NotificationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.createFormGroup();\r\n\r\n this.appContext.updated$.subscribe((context) => {\r\n if (!context) {\r\n return;\r\n }\r\n\r\n this.isUserSignedIn = context.isUserSignedIn;\r\n this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;\r\n this.selectedTopic = this.topicList[3].value;\r\n\r\n this.setFormValue('topic', this.selectedTopic);\r\n\r\n if (this.isUserSignedIn) {\r\n this.setFormValue('name', context.user.displayNameOrFullName);\r\n this.setFormValue('email', context.user.email);\r\n }\r\n });\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup = this.fb.group({\r\n name: new FormControl('', [ Validators.required ]),\r\n email: new FormControl('', [ Validators.required ]),\r\n topic: new FormControl('', [ Validators.required ]),\r\n subject: new FormControl('', [ Validators.required ]),\r\n message: new FormControl('', [ Validators.required ])\r\n });\r\n }\r\n\r\n isValid() {\r\n return this.formGroup.valid;\r\n }\r\n\r\n contactUs() {\r\n this.formSubmitted = true;\r\n if (!this.isValid()) return;\r\n\r\n const name = this.getFormValue('name');\r\n const email = this.getFormValue('email');\r\n const topic = this.selectedTopic;\r\n const subject = this.getFormValue('subject');\r\n const message = this.getFormValue('message');\r\n\r\n this.reCaptcha.execute(this.reCaptchaSiteKey, 'ContactUs', (token) => {\r\n this.api.sendContactUs(token, name, email, topic, subject, message,\r\n () => {\r\n this.formSubmitted = false;\r\n this.notificationService.success('Message has been sent successfully');\r\n this.formGroup.reset();\r\n\r\n this.submit.emit();\r\n },\r\n () => {\r\n this.notificationService.error();\r\n }\r\n );\r\n });\r\n }\r\n\r\n //Events\r\n onSubmit() {\r\n this.contactUs();\r\n }\r\n\r\n onTopicChange(event) {\r\n this.selectedTopic = event.target.value;\r\n }\r\n}\r\n","<form (ngSubmit)='onSubmit()' [formGroup]='formGroup' novalidate>\n <anatoly-form-validation-summary [formGroup]='formGroup'\n [visible]='formSubmitted && formGroup.invalid'></anatoly-form-validation-summary>\n\n <div class='contact-us'>\n <div class=\"row\">\n <div class='form-fields col-6'>\n <p>What can we help you with?</p>\n <div [ngClass]=\"{'has-error': isControlInvalid('topic') }\" class='form-topic'>\n <div class='form-select-wrapper'>\n <label class='assistive-text'>Topic *</label>\n <select (change)='onTopicChange($event)' class='form-select' formControlName='topic'>\n @for (topic of topicList; track topic) {\n <option [value]='topic.value'>{{ topic.value }} </option>\n }\n </select>\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n controlName='topic'\n controlTitle='topic'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n <div [ngClass]=\"{'has-error': isControlInvalid('name') }\" class='form-name'>\n <label class='assistive-text'>Name *</label>\n <input class='form-control' formControlName='name' placeholder='Name *' type='text'>\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n controlName='name'\n controlTitle='name'>\n </anatoly-item-validation-summary>\n </div>\n <div [ngClass]=\"{'has-error': isControlInvalid('email') }\" class='form-email'>\n <label class='assistive-text'>E-mail * </label>\n <input class='form-control' formControlName='email' placeholder='E-mail *' type='text' />\n @if (!isUserSignedIn) {\n <p>Please indicate the email used for your MailEx login if you already have an account</p>\n }\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n controlName='email'\n controlTitle='email'>\n </anatoly-item-validation-summary>\n </div>\n <div [ngClass]=\"{'has-error': isControlInvalid('subject') }\" class='form-subject'>\n <label class='assistive-text'>Subject *</label>\n <input class='form-control' formControlName='subject' placeholder='Subject *' type='text' />\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n controlName='subject'\n controlTitle='subject'>\n </anatoly-item-validation-summary>\n </div>\n\n </div>\n <div class='col-6'>\n <div [ngClass]=\"{'has-error': isControlInvalid('message') }\" class='form-message'>\n <label class='assistive-text'>Message *</label>\n <textarea formControlName='message' name='message' placeholder='Message *' rows='4'\n type='text'></textarea>\n <anatoly-item-validation-summary [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'\n controlName='message'\n controlTitle='message'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n </div>\n <div class=\"row form-footer\">\n <div class=\"col\">\n @if (showActionButtons) {\n <button\n [class.btn-primary]='!formGroup.invalid'\n class='btn btn-success'\n type='submit'>\n Submit\n </button>\n }\n </div>\n </div>\n </div>\n</form>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 16 July 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, ViewChild } from '@angular/core';\r\n\r\n//App\r\nimport { DialogBase } from '../../components/base/dialog';\r\nimport { ContactUsForm } from '../../forms/contact-us/contact-us';\r\n\r\n@Component({\r\n selector: 'anatoly-contactus-dialog',\r\n templateUrl: './contact-us.dialog.html',\r\n standalone: false\r\n})\r\nexport class ContactUsDialog extends DialogBase {\r\n @ViewChild('contactusform') contactUsForm: ContactUsForm;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n //Events\r\n onClose() {\r\n super.close();\r\n }\r\n\r\n onSubmitFire() {\r\n this.contactUsForm?.onSubmit();\r\n }\r\n\r\n onSubmit() {\r\n super.close();\r\n }\r\n}\r\n","@if (isOpen) {\n <kendo-dialog (close)='onClose()' [width]='700' title='Contact Us'>\n <div class=\"k-content k-window-content k-dialog-content\">\n <anatoly-forms-contactus-form #contactusform [showActionButtons]='false' (submit)='onSubmit()'>\n </anatoly-forms-contactus-form>\n </div>\n <kendo-dialog-actions class=\"k-actions\">\n <div class=\"d-flex justify-content-end\">\n <button (click)='onSubmitFire()' class='btn btn-sm btn-success' type='button'>Submit</button>\n <button (click)='onClose()' class='btn btn-sm btn-danger' type='button'>Cancel </button>\n </div>\n </kendo-dialog-actions>\n </kendo-dialog>\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './contact-us/contact-us.dialog';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 24 Feb 2023\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, HostBinding, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[anatoly-hover]',\r\n standalone: false\r\n})\r\nexport class HoveringDirective {\r\n @HostBinding('class.hovering')\r\n hovering = false;\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n this.hovering = true;\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n this.hovering = false;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './hover.directive';\r\nexport * from './replacer/a-replacer.directive';\r\nexport * from './replacer/image-replacer.directive';\r\nexport * from './native-element.directive';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\n\r\n//App\r\nimport { Convert } from '../../../../core/converts/convert';\r\nimport { EditComponentBase } from '../../../components/base/components/edit.component';\r\nimport { AppContextService } from '../../../../core/services/appcontext.service';\r\nimport { Utils } from '../../../../core/utils/utils';\r\n\r\ninterface CodeName {\r\n code: string,\r\n name: string\r\n}\r\n\r\n@Component({\r\n selector: 'anatoly-forms-address',\r\n templateUrl: './address.component.html',\r\n standalone: false\r\n})\r\nexport class AddressComponent extends EditComponentBase implements OnInit {\r\n //Private\r\n private _address;\r\n\r\n formGroupGenerated = false;\r\n\r\n countryData: Array<CodeName> = [];\r\n usStateData: Array<CodeName> = [];\r\n currentCountry = 'US';\r\n currentUSState = 'NY';\r\n\r\n //Inputs\r\n @Input()\r\n get address() {\r\n return this._address;\r\n }\r\n set address(value) {\r\n this._address = value;\r\n\r\n if (value) {\r\n this.init();\r\n }\r\n }\r\n\r\n //Outputs\r\n @Output() change = new EventEmitter<any>();\r\n\r\n constructor(private fb: FormBuilder, private appContext: AppContextService) {\r\n super();\r\n this.title = 'Address';\r\n }\r\n\r\n ngOnInit() {\r\n this.appContext.standardJsonFilesLoaded$.subscribe({\r\n next: () => {\r\n this.countryData = Utils.sortArray(this.appContext.countries);\r\n this.usStateData = Utils.sortArray(this.appContext.usStates);\r\n }\r\n });\r\n\r\n this.createFormGroup();\r\n this.init();\r\n }\r\n\r\n private createFormGroup() {\r\n let isRequired = Convert.stringToBoolean(this.isRequired);\r\n\r\n if (isRequired) {\r\n this.formGroup.addControl('address_street', this.fb.control('', [Validators.required]));\r\n this.formGroup.addControl('address_street2', this.fb.control('', []));\r\n this.formGroup.addControl('address_city', this.fb.control('', [Validators.required]));\r\n this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, [Validators.required]));\r\n this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, [Validators.required]));\r\n this.formGroup.addControl('address_zipcode', this.fb.control('', [Validators.required]));\r\n }\r\n else {\r\n this.formGroup.addControl('address_street', this.fb.control('', []));\r\n this.formGroup.addControl('address_street2', this.fb.control('', []));\r\n this.formGroup.addControl('address_city', this.fb.control('', []));\r\n this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, []));\r\n this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, []));\r\n this.formGroup.addControl('address_zipcode', this.fb.control('', []));\r\n }\r\n\r\n this.formGroupGenerated = true;\r\n }\r\n\r\n private init() {\r\n if (!this.formGroupGenerated) {\r\n return;\r\n }\r\n\r\n if (this._address !== undefined) {\r\n let address = JSON.parse(this._address);\r\n\r\n this.setFormValue('address_street', address.street);\r\n this.setFormValue('address_street2', address.street2);\r\n this.setFormValue('address_city', address.city);\r\n this.setFormValue('address_stateOrRegion', address.stateOrRegion);\r\n this.setFormValue('address_zipcode', address.zipcode);\r\n this.setFormValue('address_country', address.country);\r\n }\r\n }\r\n\r\n getAddress() {\r\n const data = {\r\n street: this.getFormValue('address_street') || null,\r\n street2: this.getFormValue('address_street2') || null,\r\n city: this.getFormValue('address_city') || null,\r\n stateOrRegion: this.getFormValue('address_stateOrRegion') || null,\r\n zipcode: this.getFormValue('address_zipcode') || null,\r\n country: this.getFormValue('address_country') || null\r\n };\r\n\r\n return JSON.stringify(data);\r\n }\r\n\r\n //Events\r\n onCountryChange(event) {\r\n let country = event.target.value;\r\n this.change.emit(country);\r\n }\r\n\r\n onUSStateChange(event) {\r\n let usState = event.target.value;\r\n this.change.emit(usState);\r\n }\r\n}\r\n","<anatoly-card classes='card-outline card-primary'>\n @if (isTitleVisible) {\n <anatoly-card-header [title]='title' />\n }\n <anatoly-card-body [formGroup]='formGroup'>\n <div class=\"row\">\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street')}\" >\n <label>Street Address</label>\n <input type='text' class='form-control' formControlName='address_street' placeholder='Street Address'>\n <anatoly-item-validation-summary controlName='address_street'\n controlTitle='Street'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street2')}\" >\n <input type='text' class='form-control' formControlName='address_street2' placeholder='Apartment, suite, unit, building, floor, etc.'>\n <anatoly-item-validation-summary controlName='address_street2'\n controlTitle='Street2'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n <div class=\"row\">\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_city')}\">\n <label>City</label>\n <input type='text' class='form-control' formControlName='address_city' placeholder='City'>\n <anatoly-item-validation-summary controlName='address_city'\n controlTitle='City'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n @if (formGroup.value.address_country == 'US') {\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_stateOrRegion')}\">\n <label>State</label>\n <select class='form-control' (change)='onUSStateChange($event)' formControlName='address_stateOrRegion'>\n @for (state of usStateData; track state) {\n <option [value]='state.code'>{{state.name}}</option>\n }\n </select>\n <anatoly-item-validation-summary controlName='address_stateOrRegion'\n controlTitle='State'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n }\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_zipcode')}\" >\n <label>Zipcode</label>\n <input type='text' class='form-control' formControlName='address_zipcode' placeholder='zipcode'>\n <anatoly-item-validation-summary controlName='address_zipcode'\n controlTitle='zipcode'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_country')}\">\n <label>Country</label>\n <select class='form-control' (change)='onCountryChange($event)' formControlName='address_country' data-placeholder='Select a Country'>\n @for (country of countryData; track country) {\n <option [value]='country.code'>{{country.name}}</option>\n }\n </select>\n <anatoly-item-validation-summary controlName='address_country'\n controlTitle='Country'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n </anatoly-card-body>\n</anatoly-card>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 02 Aug 2022\r\n\r\n Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\n\r\n//App\r\nimport { EditComponentBase } from '../../../components/exports';\r\n\r\n@Component({\r\n selector: 'anatoly-forms-company',\r\n templateUrl: './company.component.html',\r\n standalone: false\r\n})\r\nexport class CompanyComponent extends EditComponentBase implements OnInit {\r\n //Private\r\n private _company;\r\n\r\n formGroupGenerated = false;\r\n\r\n //Inputs\r\n @Input()\r\n get company() {\r\n return this._company;\r\n }\r\n set company(value) {\r\n this._company = value;\r\n\r\n if (value) {\r\n this.init();\r\n }\r\n }\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n this.title = 'Company / Organization';\r\n }\r\n\r\n ngOnInit() {\r\n this.createFormGroup();\r\n this.init();\r\n }\r\n\r\n private createFormGroup() {\r\n this.formGroup.addControl('company_name', this.fb.control('', []));\r\n this.formGroup.addControl('company_phone', this.fb.control('', []));\r\n this.formGroup.addControl('company_email', this.fb.control('', []));\r\n this.formGroup.addControl('company_websiteUrl', this.fb.control('', []));\r\n\r\n this.formGroupGenerated = true;\r\n }\r\n\r\n private init() {\r\n if (!this.formGroupGenerated) {\r\n return;\r\n }\r\n\r\n if (this._company !== undefined) {\r\n let company = JSON.parse(this._company);\r\n\r\n this.setFormValue('company_name', company.name);\r\n this.setFormValue('company_phone', company.phone);\r\n this.setFormValue('company_email', company.email);\r\n this.setFormValue('company_websiteUrl', company.websiteUrl);\r\n }\r\n }\r\n\r\n getCompany() {\r\n const data = {\r\n name: this.getFormValue('company_name') || null,\r\n phone: this.getFormValue('company_phone') || null,\r\n email: this.getFormValue('company_email') || null,\r\n websiteUrl: this.getFormValue('company_websiteUrl') || null\r\n };\r\n\r\n return JSON.stringify(data);\r\n }\r\n}\r\n","<anatoly-card classes='card-outline card-primary'>\n @if (isTitleVisible) {\n <anatoly-card-header [title]='title' />\n }\n <anatoly-card-body [formGroup]='formGroup' >\n <div class=\"row\">\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\n <label>Name</label>\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\n <anatoly-item-validation-summary controlName='company_name'\n controlTitle='Company Name'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\n <label>Phone</label>\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\n <anatoly-item-validation-summary controlName='company_phone'\n controlTitle='Company Phone'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n <div class=\"row\">\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\n <label>Email</label>\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\n <anatoly-item-validation-summary controlName='company_email'\n controlTitle='Company Email'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\n <label>Website Url</label>\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\n class='form-control' formControlName='company_websiteUrl'>\n <anatoly-item-validation-summary controlName='company_websiteUrl'\n controlTitle='Company website url'\n [formGroup]='formGroup'\n [formSubmitted]='formSubmitted'>\n </anatoly-item-validation-summary>\n </div>\n </div>\n </anatoly-card-body>\n </anatoly-card>\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Components\r\nexport * from './components/address/address.component';\r\nexport * from './components/company/company.component';\r\n\r\n//Forms\r\nexport * from './contact-us/contact-us';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filesize',\r\n standalone: false\r\n})\r\nexport class FileSizePipe implements PipeTransform {\r\n private units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n\r\n transform(bytes: number = 0, precision: number = 0): string {\r\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '';\r\n\r\n let unit = 0;\r\n\r\n while (bytes >= 1024) {\r\n bytes /= 1024;\r\n unit++;\r\n }\r\n\r\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"replaceText\",\r\n standalone: false\r\n})\r\nexport class ReplaceTextPipe implements PipeTransform {\r\n transform(inputData: string, search: string, replacement: string): string {\r\n if (inputData) {\r\n return inputData.replace(new RegExp(search, \"g\"), replacement);\r\n } else {\r\n return inputData;\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 27 Oct 2019\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n standalone: false\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) { }\r\n\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './filesize.pipe';\r\nexport * from './replace-text.pipe';\r\nexport * from './safeHtml.pipe';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './form-validation-summary.component';\r\nexport * from './item-validation-summary.component';\r\nexport * from './validation-summary.component';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport * from './components/exports';\r\nexport * from './dialogs/exports';\r\nexport * from './directives/exports';\r\nexport * from './forms/exports';\r\nexport * from './pipes/exports';\r\nexport * from './validation/exports';\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 June 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\n//Guards\r\nimport { StarterGuard } from './guards/starter.guard';\r\n\r\n//Localization\r\nimport { LocalizationModule } from './localization/localization.module';\r\n\r\nimport { GoServiceBase } from './go/go.service';\r\n\r\n//Services\r\nimport { BrowserService } from './services/browser.service';\r\nimport { DigitalMarketingService } from './services/dm.service';\r\nimport { GoogleAnalyticsService } from './services/google-analytics.service';\r\nimport { LoadingService } from './services/loading.service';\r\nimport { ScriptService } from './services/script.service';\r\nimport { StarterService } from './services/starter.service';\r\nimport { LocalStorageService, SessionStorageService } from './services/web-storage.service';\r\n\r\n//Logging\r\nimport { LoggingService } from './logging/logging.service';\r\n\r\n//Notifications\r\nimport { NotificationService } from './notifications/services/notification-service';\r\n\r\nexport let InjectorInstance: Injector;\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n LocalizationModule\r\n ],\r\n exports: [\r\n RouterModule,\r\n LocalizationModule\r\n ],\r\n providers: [\r\n //Guards\r\n StarterGuard,\r\n\r\n //GoService\r\n GoServiceBase,\r\n \r\n //Services\r\n BrowserService,\r\n DigitalMarketingService,\r\n GoogleAnalyticsService,\r\n LoadingService,\r\n ScriptService,\r\n StarterService,\r\n LocalStorageService,\r\n SessionStorageService,\r\n \r\n //Logging\r\n LoggingService,\r\n\r\n //Notifications\r\n NotificationService\r\n ]\r\n})\r\nexport class AnatolyCoreModule {\r\n constructor(private injector: Injector) {\r\n InjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 4 Mar 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//Billing Services\r\nimport { CurrenciesApiService } from './services/billing/currencies-api.service';\r\nimport { CurrenciesStorageService } from './services/billing/currencies-storage.service';\r\nimport { PaymentsApiService } from './services/billing/payments-api.service';\r\nimport { PromoCodesApiService } from './services/billing/promocodes-api.service';\r\nimport { SubscriptionsApiService } from './services/billing/subscriptions-api.service';\r\nimport { TransactionsApiService } from './services/billing/transactions-api.service';\r\n\r\n//Services\r\nimport { CoreApiService } from './services/core-api.service';\r\nimport { EmailsApiService } from './services/emails-api.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n //Billing Services\r\n CurrenciesApiService,\r\n CurrenciesStorageService, \r\n PaymentsApiService,\r\n PromoCodesApiService,\r\n SubscriptionsApiService,\r\n TransactionsApiService,\r\n\r\n //Services\r\n CoreApiService,\r\n EmailsApiService\r\n ]\r\n})\r\nexport class AnatolyDataModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t2 May 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Source:\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-angular-v3-samples\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { RouterStateSnapshot } from \"@angular/router\";\r\nimport { MsalGuardAuthRequest, MsalGuardConfiguration, MsalInterceptorConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { InteractionType, IPublicClientApplication, LogLevel, PublicClientApplication, RedirectRequest } from '@azure/msal-browser';\r\n\r\n//App\r\nimport { MSALB2C, PolicyType } from './b2c';\r\nimport { MSALB2CConfig, MSALConfig } from './consts';\r\nimport { MSALStorage } from './storage';\r\nimport { MSALUtils} from './utils';\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n let protectedResourceMap = MSALUtils.getApi();\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\n/*\r\n https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/configuration.md\r\n The MsalGuard also allows you to dynamically change the authRequest at runtime. This allow you to pick a different\r\n authority for a route, or to dynamically add scopes based on the RouterStateSnapshot.\r\n\r\n Default: {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: {\r\n scopes: ['user.read']\r\n }\r\n }\r\n*/\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: (msalService: MsalService, state: RouterStateSnapshot): MsalGuardAuthRequest => {\r\n let scopes = MSALUtils.getApiScopes();\r\n let redirectTo = state.url;\r\n\r\n let request: RedirectRequest = {\r\n scopes: [...scopes]\r\n }\r\n\r\n MSALStorage.saveRedirectState(redirectTo, 'MSALGuardConfigFactory.authRequest');\r\n return request;\r\n }\r\n };\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n let authority = MSALConfig.app.auth.authority;\r\n let configuration: any = {\r\n auth: {\r\n authority: authority,\r\n clientId: MSALConfig.app.auth.clientId,\r\n redirectUri: MSALConfig.app.auth.redirectUri,\r\n postLogoutRedirectUri: MSALConfig.app.auth.postLogoutRedirectUri,\r\n navigateToLoginRequestUrl: MSALConfig.app.auth.navigateToLoginRequestUrl\r\n },\r\n cache: {\r\n cacheLocation: MSALConfig.app.cache.cacheLocation,\r\n storeAuthStateInCookie: MSALConfig.app.cache.storeAuthStateInCookie\r\n },\r\n system: {\r\n allowNativeBroker: false,\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: MSALConfig.app.system.loggerOptions.logLevel,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n }\r\n\r\n if (MSALUtils.isB2C()) {\r\n configuration.auth.authority = MSALB2C.getAuthorityByType(PolicyType.signUpSignIn);\r\n configuration.auth.knownAuthorities = [MSALB2CConfig.authorityDomain];\r\n }\r\n\r\n return new PublicClientApplication(configuration);\r\n}\r\n\r\nfunction loggerCallback(logLevel: LogLevel, message: string, containsPii: boolean) {\r\n if (containsPii) {\r\n return;\r\n }\r\n\r\n switch (logLevel) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalInterceptor, MsalModule, MsalService } from '@azure/msal-angular';\r\n\r\n//App\r\nimport { MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory } from './configs';\r\nimport { AdminGuard, AuthenticationGuard } from './guards';\r\nimport { AuthService } from './services/auth.service';\r\n\r\nconst MSALProviders = [\r\n MsalService,\r\n MsalBroadcastService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n }, \r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n\r\n //App\r\n AuthService,\r\n AuthenticationGuard,\r\n AdminGuard\r\n]\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MsalModule\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n provideHttpClient(),\r\n ...MSALProviders\r\n ]\r\n})\r\nexport class AnatolyIAMModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signin-page',\r\n templateUrl: './signin.page.html',\r\n standalone: false\r\n})\r\nexport class SignInPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.login();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signout-page',\r\n templateUrl: './signout.page.html',\r\n standalone: false\r\n})\r\nexport class SignOutPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.logout();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t20 Sep 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n//App\r\nimport { AuthService } from '../services/auth.service';\r\nimport { PageBase } from '../../ui/components/base/pages/page';\r\n\r\n@Component({\r\n selector: 'iam-signup-page',\r\n templateUrl: './signup.page.html',\r\n standalone: false\r\n})\r\nexport class SignUpPage extends PageBase implements OnInit {\r\n constructor(private auth: AuthService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.signUp();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n\tCreated:\r\n\t\t2 May 2023\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n\tCopyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\n//Pages\r\nimport { SignInPage } from \"./pages/signin.page\";\r\nimport { SignOutPage } from \"./pages/signout.page\";\r\nimport { SignUpPage } from \"./pages/signup.page\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"signin\",\r\n component: SignInPage\r\n },\r\n {\r\n path: \"signup\",\r\n component: SignUpPage\r\n },\r\n {\r\n path: \"signout\",\r\n component: SignOutPage\r\n }\r\n];\r\n\r\nexport const IAMRouterModule = RouterModule.forChild(routes);\r\nexport const PAGES = [\r\n SignInPage,\r\n SignUpPage,\r\n SignOutPage\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 6 Dec 2018\r\n\r\n Description:\r\n Identity and Access Management\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\n\r\n//Routes\r\nimport { IAMRouterModule, PAGES } from \"./iam-pages.routes\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n\r\n IAMRouterModule\r\n ],\r\n exports: [\r\n ],\r\n declarations: [\r\n ...PAGES\r\n ]\r\n})\r\nexport class AnatolyIAMPagesModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 25 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\n\r\nimport {\r\n faCheckCircle,\r\n faCircleXmark,\r\n faDatabase,\r\n faCopy\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule\r\n ],\r\n exports: [\r\n FontAwesomeModule\r\n ]\r\n})\r\nexport class FaModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(\r\n faCheckCircle,\r\n faCircleXmark,\r\n faDatabase,\r\n faCopy\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 28 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//@progress\r\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { DateInputsModule } from \"@progress/kendo-angular-dateinputs\";\r\nimport { DialogsModule } from \"@progress/kendo-angular-dialog\";\r\nimport { DropDownsModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport { FormFieldModule, InputsModule } from \"@progress/kendo-angular-inputs\";\r\nimport { IntlModule } from \"@progress/kendo-angular-intl\";\r\nimport { LabelModule } from \"@progress/kendo-angular-label\";\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { PagerModule } from '@progress/kendo-angular-pager';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { RippleModule } from '@progress/kendo-angular-ripple';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { ScrollViewModule } from \"@progress/kendo-angular-scrollview\";\r\nimport { TooltipsModule } from \"@progress/kendo-angular-tooltip\";\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { UploadsModule } from \"@progress/kendo-angular-upload\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n LayoutModule,\r\n ButtonsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n LabelModule,\r\n ScrollViewModule,\r\n IntlModule,\r\n DateInputsModule,\r\n FormFieldModule,\r\n IconsModule,\r\n DialogsModule,\r\n UploadsModule,\r\n SchedulerModule,\r\n ChartsModule,\r\n GridModule,\r\n LabelModule,\r\n PagerModule,\r\n RippleModule,\r\n PopupModule,\r\n TreeViewModule,\r\n TooltipsModule\r\n ],\r\n exports: [\r\n LayoutModule,\r\n ButtonsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n LabelModule,\r\n ScrollViewModule,\r\n IntlModule,\r\n DateInputsModule,\r\n FormFieldModule,\r\n IconsModule,\r\n DialogsModule,\r\n UploadsModule,\r\n SchedulerModule,\r\n ChartsModule,\r\n GridModule,\r\n LabelModule,\r\n PagerModule,\r\n RippleModule,\r\n PopupModule,\r\n TreeViewModule,\r\n TooltipsModule\r\n ]\r\n})\r\nexport class KendoModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n //Cards\r\n CardComponent,\r\n CardHeaderComponent,\r\n CardBodyComponent,\r\n CardFooterComponent,\r\n\r\n CheckIconComponent,\r\n Copy2ClipboardComponent,\r\n ControlPanelComponent,\r\n DataPagerComponent,\r\n\r\n //Dropdownlists\r\n CountryDropdownlist,\r\n LanguageDropdownlist,\r\n ModerationStatusDropdownlist,\r\n PublishStatusDropdownlist,\r\n TimezoneDropdownlist,\r\n\r\n //EhmlEditor\r\n HtmlEditorComponent,\r\n\r\n //Identity\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n\r\n NodataComponent,\r\n NoMobileSupportComponent,\r\n Message2UserComponent,\r\n\r\n //Spinners\r\n PageSpinnerComponent,\r\n LoadingComponent,\r\n\r\n UrlSlugComponent,\r\n FeatureWillBeReadyComponent,\r\n YouAgreeToOurTermsComponent,\r\n\r\n} from './exports';\r\n\r\nexport const MAIN_COMPONENTS = [\r\n //Cards\r\n CardComponent,\r\n CardHeaderComponent,\r\n CardBodyComponent,\r\n CardFooterComponent,\r\n\r\n CheckIconComponent,\r\n Copy2ClipboardComponent,\r\n ControlPanelComponent,\r\n DataPagerComponent,\r\n\r\n\r\n //Dropdownlists\r\n CountryDropdownlist,\r\n LanguageDropdownlist,\r\n ModerationStatusDropdownlist,\r\n PublishStatusDropdownlist,\r\n TimezoneDropdownlist,\r\n\r\n //EhmlEditor\r\n HtmlEditorComponent,\r\n\r\n //Identity\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n\r\n NodataComponent,\r\n NoMobileSupportComponent,\r\n Message2UserComponent,\r\n \r\n //Spinners\r\n PageSpinnerComponent,\r\n LoadingComponent,\r\n\r\n UrlSlugComponent,\r\n FeatureWillBeReadyComponent,\r\n YouAgreeToOurTermsComponent\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n ContactUsDialog\r\n} from './exports';\r\n\r\nexport const DIALOGS = [\r\n ContactUsDialog\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { \r\n HoveringDirective,\r\n AReplacerDirective,\r\n ImageReplacerDirective,\r\n NativeElementDirective\r\n} from './exports';\r\n\r\nexport const DIRECTIVES = [\r\n HoveringDirective,\r\n AReplacerDirective,\r\n ImageReplacerDirective,\r\n NativeElementDirective\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n AddressComponent,\r\n CompanyComponent,\r\n ContactUsForm\r\n} from './exports';\r\n\r\nexport const FORMS = [\r\n AddressComponent,\r\n CompanyComponent,\r\n ContactUsForm\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe\r\n} from './exports';\r\n\r\nexport const PIPES = [\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 2 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent\r\n} from './exports';\r\n\r\nexport const VALIDATION_COMPONENTS = [\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent\r\n];\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { FERootModule } from \"angular-froala-wysiwyg\";\r\n\r\n//Modules\r\nimport { FaModule } from '../external/fa.module'\r\nimport { KendoModule } from '../external/kendo.module'\r\n\r\n//Components\r\nimport { MAIN_COMPONENTS } from './components';\r\nimport { DIALOGS } from './dialogs'\r\nimport { DIRECTIVES } from './directives';\r\nimport { FORMS} from './forms'\r\nimport { PIPES } from './pipes';\r\nimport { VALIDATION_COMPONENTS } from './validation';\r\n\r\nconst COMPONENTS = [\r\n MAIN_COMPONENTS,\r\n DIALOGS,\r\n DIRECTIVES,\r\n FORMS,\r\n PIPES,\r\n VALIDATION_COMPONENTS\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgxCaptchaModule,\r\n FERootModule,\r\n\r\n //Modules\r\n FaModule,\r\n KendoModule\r\n ],\r\n exports: [\r\n ...COMPONENTS\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n ]\r\n})\r\nexport class AnatolyUIModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 8 Nov 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {\r\n BuyAccessButtonComponent,\r\n SubscribePlanButtonComponent,\r\n OrderSummaryComponent,\r\n PaymentMethodsComponent,\r\n PaymentOptionsComponent,\r\n\r\n //PM\r\n BraintreeDialog,\r\n PaypalButtonComponent,\r\n PaypalSubscribeButtonComponent,\r\n PayPalComponent,\r\n StripeDialog\r\n} from \"./exports\";\r\n\r\nexport const COMPONENTS = [\r\n BuyAccessButtonComponent,\r\n SubscribePlanButtonComponent,\r\n OrderSummaryComponent,\r\n PaymentMethodsComponent,\r\n PaymentOptionsComponent,\r\n\r\n //PM\r\n BraintreeDialog,\r\n PaypalButtonComponent,\r\n PaypalSubscribeButtonComponent,\r\n PayPalComponent,\r\n StripeDialog\r\n];\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n Anatoly Osovitny anatoly.osovitny@osovitny.com\r\n\r\n Created:\r\n 14 Jun 2024\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n//Modules\r\nimport { FaModule } from '../external/fa.module'\r\nimport { KendoModule } from '../external/kendo.module'\r\nimport { AnatolyUIModule } from '../ui/ui.module'\r\n\r\n//App\r\nimport { BillingService } from './services/billing.service';\r\nimport { PaymentsService } from './services/payments.service';\r\nimport { PayPalScriptService } from './services/paypal-script.service';\r\nimport { COMPONENTS } from './components';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n\r\n FaModule,\r\n KendoModule,\r\n AnatolyUIModule\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n ],\r\n exports: [\r\n ...COMPONENTS\r\n ],\r\n providers: [\r\n BillingService,\r\n PaymentsService,\r\n PayPalScriptService \r\n ]\r\n})\r\nexport class AnatolyBillingModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 26 Nov 2025\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { map, Observable } from \"rxjs\";\r\n\r\n//App\r\nimport { ApiServiceBase } from '../../data/base/api.service';\r\nimport { resetMsalSettings } from \"../../iam/consts\";\r\nimport { ApiUrl, resetAppCoreSettings } from '../consts/core-settings';\r\nimport { SessionStorageKeys } from \"../consts/storageKeys\";\r\nimport { Stopwatch } from \"../performance/stopwatch\";\r\n\r\ndeclare const g_AppName: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppService extends ApiServiceBase {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = `${ ApiUrl }/app`;\r\n this.ignoreInterceptors = true;\r\n }\r\n\r\n loadAppInitializerSettings(): Observable<any> {\r\n //Logging\r\n let stopwatch = new Stopwatch(\"@osovitny/anatoly. AppService: loadAppInitializerSettings\");\r\n stopwatch.start();\r\n \r\n return this.get<any>('loadAppInitializerSettings').pipe(map(data => {\r\n //Logging\r\n stopwatch.stop();\r\n stopwatch.printElapsedAsMilliseconds();\r\n\r\n if (data) {\r\n let appCoreSettings = JSON.stringify(data.core);\r\n let appMSALSettings = JSON.stringify(data.msal);\r\n\r\n appCoreSettings = appCoreSettings.replace(/--APPNAME--/g, g_AppName);\r\n\r\n sessionStorage.setItem(SessionStorageKeys.appCoreSettings, appCoreSettings);\r\n sessionStorage.setItem(SessionStorageKeys.appMSALSettings, appMSALSettings);\r\n\r\n resetAppCoreSettings();\r\n resetMsalSettings();\r\n }\r\n }));\r\n }\r\n}","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny vadim.osovitny@osovitny.com\r\n\r\n Created:\r\n 29 Aug 2022\r\n\r\n Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { provideHttpClient } from '@angular/common/http';\r\nimport { inject, Injector, NgModule, provideAppInitializer } from '@angular/core';\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, map } from 'rxjs';\r\n\r\n//App\r\nimport { LocalizationService } from './core/localization/localization.service';\r\nimport { AppService } from './core/services/app.service';\r\nimport { AuthService } from \"./iam/services/auth.service\";\r\n\r\n//Modules\r\nimport { AnatolyCoreModule } from './core/core.module';\r\nimport { AnatolyDataModule } from './data/data.module';\r\nimport { AnatolyIAMModule } from './iam/iam.module';\r\nimport { AnatolyUIModule } from './ui/ui.module';\r\n\r\nlet InjectorInstance: Injector;\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AnatolyCoreModule,\r\n AnatolyDataModule,\r\n AnatolyIAMModule,\r\n AnatolyUIModule\r\n ],\r\n exports: [\r\n AnatolyCoreModule,\r\n AnatolyDataModule,\r\n AnatolyIAMModule,\r\n AnatolyUIModule\r\n ],\r\n providers: [\r\n provideHttpClient(),\r\n provideAppInitializer(() => {\r\n const appService = inject(AppService);\r\n return firstValueFrom(appService.loadAppInitializerSettings().pipe(map(() => {\r\n //Localization\r\n const translate = InjectorInstance.get<TranslateService>(TranslateService);\r\n const localizationService = InjectorInstance.get<LocalizationService>(LocalizationService);\r\n const lang = localizationService.configureSettings(translate);\r\n translate.use(lang);\r\n\r\n //IAM\r\n const msalInstance = InjectorInstance.get<MsalService>(MsalService);\r\n const auth = InjectorInstance.get<AuthService>(AuthService);\r\n firstValueFrom(msalInstance.initialize()).then(() => {\r\n auth.init();\r\n });\r\n })));\r\n }),\r\n\r\n AppService\r\n ] \r\n})\r\nexport class AnatolyModule {\r\n constructor(private injector: Injector) {\r\n InjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n * Public API\r\n */\r\n\r\n//Billing\r\nexport * from './lib/billing/exports';\r\n\r\n//Core\r\nexport * from './lib/core/exports';\r\n\r\n//Data\r\nexport * from './lib/data/exports';\r\n\r\n//IAM\r\nexport * from './lib/iam/exports';\r\n\r\n//UI\r\nexport * from './lib/ui/exports';\r\n\r\n//Modules\r\nexport * from './lib/core/core.module';\r\nexport * from './lib/data/data.module';\r\nexport * from './lib/iam/iam.module';\r\nexport * from './lib/iam/iam-pages.module';\r\nexport * from './lib/billing/billing.module';\r\nexport * from './lib/ui/ui.module';\r\n\r\nexport * from './lib/anatoly.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.LocalStorageService","i2.SessionStorageService","i1","uuidv4","map","i2.AuthService","i3.LoggingService","i1.AuthService","i2","i3","i2.LoadingService","i2.AppContextService","i1.StarterService","i1.LocalizationService","_c0","i1.AppContextService","_c1","i1.PaymentsService","i2.PromoCodesApiService","i3.NotificationService","i2.PaymentsApiService","i3.SubscriptionsApiService","i4.NotificationService","i1.BillingService","i2.PaymentsService","i1.ScriptService","i1.PayPalScriptService","i2.CurrenciesApiService","i1.GoServiceBase","i2.Message2UserService","i1.LoadingService","i3.AppContextService","i4.EmailsApiService","i5.NotificationService","InjectorInstance","i4","COMPONENTS","i1.CardComponent","i2.CardHeaderComponent","i3.CardBodyComponent","i4.CardFooterComponent","i5.CheckIconComponent","i6.Copy2ClipboardComponent","i7.ControlPanelComponent","i8.DataPagerComponent","i9.CountryDropdownlist","i10.LanguageDropdownlist","i11.ModerationStatusDropdownlist","i12.PublishStatusDropdownlist","i13.TimezoneDropdownlist","i14.HtmlEditorComponent","i15.SignInButtonComponent","i16.SignUpButtonComponent","i17.SignOutButtonComponent","i18.NodataComponent","i19.NoMobileSupportComponent","i20.Message2UserComponent","i21.PageSpinnerComponent","i22.LoadingComponent","i23.UrlSlugComponent","i24.FeatureWillBeReadyComponent","i25.YouAgreeToOurTermsComponent","i26.ContactUsDialog","i27.HoveringDirective","i28.AReplacerDirective","i29.ImageReplacerDirective","i30.NativeElementDirective","i31.AddressComponent","i32.CompanyComponent","i33.ContactUsForm","i34.SafeHtmlPipe","i35.ReplaceTextPipe","i36.FileSizePipe","i37.FormValidationSummaryComponent","i38.ItemValidationSummaryComponent","i1.BuyAccessButtonComponent","i2.SubscribePlanButtonComponent","i3.OrderSummaryComponent","i4.PaymentMethodsComponent","i5.PaymentOptionsComponent","i6.BraintreeDialog","i7.PaypalButtonComponent","i8.PaypalSubscribeButtonComponent","i9.PayPalComponent","i10.StripeDialog"],"mappings":"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"}
|