tango-app-ui-shared 3.7.3-dev6-copilot → 3.7.3-dev6-demo7
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.
- package/.eslintrc.json +37 -0
- package/ng-package.json +7 -0
- package/package.json +12 -25
- package/src/lib/guards/auth.guard.ts +20 -0
- package/src/lib/guards/lead.guard.ts +16 -0
- package/src/lib/guards/stores.guard.ts +16 -0
- package/src/lib/guards/tickets.guard.ts +16 -0
- package/{lib/i18n/index.d.ts → src/lib/i18n/index.ts} +2 -2
- package/src/lib/i18n/translation.module.ts +9 -0
- package/src/lib/i18n/translation.service.ts +61 -0
- package/src/lib/i18n/vocabs/ch.ts +105 -0
- package/src/lib/i18n/vocabs/de.ts +105 -0
- package/src/lib/i18n/vocabs/en.ts +105 -0
- package/src/lib/i18n/vocabs/es.ts +105 -0
- package/src/lib/i18n/vocabs/fr.ts +105 -0
- package/src/lib/i18n/vocabs/jp.ts +105 -0
- package/src/lib/interceptors/http-auth-interceptor.ts +225 -0
- package/src/lib/interfaces/global-state.ts +6 -0
- package/src/lib/modules/common/common-shared.module.ts +20 -0
- package/src/lib/modules/common/custom-select/custom-select.component.html +42 -0
- package/src/lib/modules/common/custom-select/custom-select.component.scss +131 -0
- package/src/lib/modules/common/custom-select/custom-select.component.spec.ts +23 -0
- package/src/lib/modules/common/custom-select/custom-select.component.ts +149 -0
- package/src/lib/modules/common/filters/filters.component.html +76 -0
- package/src/lib/modules/common/filters/filters.component.scss +131 -0
- package/src/lib/modules/common/filters/filters.component.spec.ts +23 -0
- package/src/lib/modules/common/filters/filters.component.ts +181 -0
- package/src/lib/modules/common/pagination/pagination.component.html +26 -0
- package/src/lib/modules/common/pagination/pagination.component.scss +63 -0
- package/src/lib/modules/common/pagination/pagination.component.spec.ts +23 -0
- package/src/lib/modules/common/pagination/pagination.component.ts +46 -0
- package/src/lib/modules/errors/error403/error403.component.html +25 -0
- package/src/lib/modules/errors/error403/error403.component.scss +0 -0
- package/src/lib/modules/errors/error403/error403.component.spec.ts +23 -0
- package/src/lib/modules/errors/error403/error403.component.ts +28 -0
- package/src/lib/modules/errors/error404/error404.component.html +24 -0
- package/src/lib/modules/errors/error404/error404.component.scss +0 -0
- package/src/lib/modules/errors/error404/error404.component.spec.ts +25 -0
- package/src/lib/modules/errors/error404/error404.component.ts +50 -0
- package/src/lib/modules/errors/error500/error500.component.html +24 -0
- package/src/lib/modules/errors/error500/error500.component.scss +0 -0
- package/src/lib/modules/errors/error500/error500.component.spec.ts +25 -0
- package/src/lib/modules/errors/error500/error500.component.ts +50 -0
- package/src/lib/modules/errors/errors-routing.module.ts +40 -0
- package/src/lib/modules/errors/errors.component.html +15 -0
- package/src/lib/modules/errors/errors.component.scss +4 -0
- package/src/lib/modules/errors/errors.component.spec.ts +25 -0
- package/src/lib/modules/errors/errors.component.ts +42 -0
- package/src/lib/modules/errors/errors.module.ts +25 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.html +16 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.scss +0 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.spec.ts +23 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.ts +43 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.html +30 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.scss +60 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.spec.ts +23 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.ts +17 -0
- package/src/lib/modules/intro/intro-routing.module.ts +16 -0
- package/src/lib/modules/intro/intro.module.ts +21 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.html +325 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.scss +185 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.spec.ts +23 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.ts +120 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.html +44 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.scss +28 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.spec.ts +23 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.ts +24 -0
- package/src/lib/modules/layout/content/content.component.html +12 -0
- package/src/lib/modules/layout/content/content.component.scss +0 -0
- package/src/lib/modules/layout/content/content.component.ts +102 -0
- package/src/lib/modules/layout/footer/footer.component.html +29 -0
- package/src/lib/modules/layout/footer/footer.component.scss +7 -0
- package/src/lib/modules/layout/footer/footer.component.spec.ts +25 -0
- package/src/lib/modules/layout/footer/footer.component.ts +13 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.html +27 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +4 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +38 -0
- package/src/lib/modules/layout/header/header.component.html +90 -0
- package/src/lib/modules/layout/header/header.component.scss +7 -0
- package/src/lib/modules/layout/header/header.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header.component.ts +139 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.html +156 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.scss +223 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +23 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.ts +255 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.html +200 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.scss +139 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.ts +76 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.html +32 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.scss +11 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.ts +47 -0
- package/src/lib/modules/layout/keenicon/icons.json +1 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.html +4 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +23 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.ts +30 -0
- package/src/lib/modules/layout/layout/layout.component.html +71 -0
- package/src/lib/modules/layout/layout/layout.component.scss +23 -0
- package/src/lib/modules/layout/layout/layout.component.ts +425 -0
- package/src/lib/modules/layout/layout.module.ts +129 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +81 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.html +1 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +75 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +70 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +57 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +136 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +26 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +36 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +761 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +38 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +130 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.html +16 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.scss +3 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.ts +203 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +84 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.html +69 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.scss +238 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.ts +389 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.html +4 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.scss +3 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.ts +91 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.html +22 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.scss +156 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.ts +238 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.html +14 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.scss +149 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.ts +183 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.html +100 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.ts +12 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.html +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.ts +1555 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.html +62 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.html +77 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.html +26 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.ts +235 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.html +39 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.ts +188 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.html +17 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.scss +172 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.ts +179 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.html +4 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.scss +19 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.ts +105 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.html +64 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +25 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.ts +400 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.ts +1202 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.html +199 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.ts +899 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.html +204 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.ts +1045 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.html +190 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.ts +825 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.ts +1242 -0
- package/src/lib/modules/notification/conformation/conformation.component.html +25 -0
- package/src/lib/modules/notification/conformation/conformation.component.scss +0 -0
- package/src/lib/modules/notification/conformation/conformation.component.spec.ts +23 -0
- package/src/lib/modules/notification/conformation/conformation.component.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.html +209 -0
- package/src/lib/modules/notification/notification/notification.component.scss +211 -0
- package/src/lib/modules/notification/notification/notification.component.spec.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.ts +310 -0
- package/src/lib/modules/notification/notification-routing.module.ts +20 -0
- package/src/lib/modules/notification/notification.module.ts +21 -0
- package/src/lib/pipes/customDate.pipe.ts +18 -0
- package/src/lib/routes/route-wraper-modules/analyse-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/edge-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/ticket-wrapper.module.ts +10 -0
- package/src/lib/routes/routing.ts +56 -0
- package/src/lib/services/auth.service.ts +178 -0
- package/src/lib/services/notification.service.spec.ts +16 -0
- package/src/lib/services/notification.service.ts +73 -0
- package/src/lib/services/toast.service.ts +82 -0
- package/{public-api.d.ts → src/public-api.ts} +71 -44
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/guards/auth.guard.mjs +0 -26
- package/esm2022/lib/guards/lead.guard.mjs +0 -16
- package/esm2022/lib/guards/stores.guard.mjs +0 -16
- package/esm2022/lib/guards/tickets.guard.mjs +0 -16
- package/esm2022/lib/i18n/index.mjs +0 -3
- package/esm2022/lib/i18n/translation.module.mjs +0 -17
- package/esm2022/lib/i18n/translation.service.mjs +0 -53
- package/esm2022/lib/i18n/vocabs/ch.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/de.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/en.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/es.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/fr.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/jp.mjs +0 -106
- package/esm2022/lib/interceptors/http-auth-interceptor.mjs +0 -124
- package/esm2022/lib/interfaces/global-state.mjs +0 -2
- package/esm2022/lib/modules/common/common-shared.module.mjs +0 -31
- package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +0 -155
- package/esm2022/lib/modules/common/filters/filters.component.mjs +0 -179
- package/esm2022/lib/modules/common/pagination/pagination.component.mjs +0 -49
- package/esm2022/lib/modules/errors/error403/error403.component.mjs +0 -33
- package/esm2022/lib/modules/errors/error404/error404.component.mjs +0 -44
- package/esm2022/lib/modules/errors/error500/error500.component.mjs +0 -45
- package/esm2022/lib/modules/errors/errors-routing.module.mjs +0 -48
- package/esm2022/lib/modules/errors/errors.component.mjs +0 -39
- package/esm2022/lib/modules/errors/errors.module.mjs +0 -37
- package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +0 -44
- package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +0 -19
- package/esm2022/lib/modules/intro/intro-routing.module.mjs +0 -24
- package/esm2022/lib/modules/intro/intro.module.mjs +0 -32
- package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +0 -110
- package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +0 -31
- package/esm2022/lib/modules/layout/content/content.component.mjs +0 -107
- package/esm2022/lib/modules/layout/footer/footer.component.mjs +0 -17
- package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +0 -41
- package/esm2022/lib/modules/layout/header/header.component.mjs +0 -100
- package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +0 -256
- package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +0 -79
- package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +0 -56
- package/esm2022/lib/modules/layout/keenicon/icons.json +0 -1
- package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +0 -37
- package/esm2022/lib/modules/layout/layout/layout.component.mjs +0 -314
- package/esm2022/lib/modules/layout/layout.module.mjs +0 -195
- package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +0 -74
- package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +0 -74
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +0 -159
- package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +0 -45
- package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +0 -119
- package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +0 -134
- package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +0 -16
- package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +0 -331
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +0 -88
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +0 -201
- package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +0 -150
- package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +0 -15
- package/esm2022/lib/modules/layout/toolbar/metrics-header/metrics-header.component.mjs +0 -1321
- package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.mjs +0 -216
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +0 -176
- package/esm2022/lib/modules/layout/toolbar/single-storedate/single-storedate.component.mjs +0 -166
- package/esm2022/lib/modules/layout/toolbar/storesingle/storesingle.component.mjs +0 -105
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +0 -354
- package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +0 -1061
- package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +0 -795
- package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +0 -880
- package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +0 -729
- package/esm2022/lib/modules/notification/conformation/conformation.component.mjs +0 -22
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +0 -317
- package/esm2022/lib/modules/notification/notification-routing.module.mjs +0 -28
- package/esm2022/lib/modules/notification/notification.module.mjs +0 -32
- package/esm2022/lib/pipes/customDate.pipe.mjs +0 -22
- package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/eyetest-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/routing.mjs +0 -58
- package/esm2022/lib/services/auth.service.mjs +0 -141
- package/esm2022/lib/services/notification.service.mjs +0 -74
- package/esm2022/lib/services/toast.service.mjs +0 -83
- package/esm2022/public-api.mjs +0 -56
- package/esm2022/tango-app-ui-shared.mjs +0 -5
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs +0 -188
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs +0 -400
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared.mjs +0 -11322
- package/fesm2022/tango-app-ui-shared.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/guards/auth.guard.d.ts +0 -10
- package/lib/guards/lead.guard.d.ts +0 -2
- package/lib/guards/stores.guard.d.ts +0 -2
- package/lib/guards/tickets.guard.d.ts +0 -2
- package/lib/i18n/translation.module.d.ts +0 -8
- package/lib/i18n/translation.service.d.ts +0 -19
- package/lib/i18n/vocabs/ch.d.ts +0 -104
- package/lib/i18n/vocabs/de.d.ts +0 -104
- package/lib/i18n/vocabs/en.d.ts +0 -104
- package/lib/i18n/vocabs/es.d.ts +0 -104
- package/lib/i18n/vocabs/fr.d.ts +0 -104
- package/lib/i18n/vocabs/jp.d.ts +0 -104
- package/lib/interceptors/http-auth-interceptor.d.ts +0 -19
- package/lib/interfaces/global-state.d.ts +0 -5
- package/lib/modules/common/common-shared.module.d.ts +0 -13
- package/lib/modules/common/custom-select/custom-select.component.d.ts +0 -33
- package/lib/modules/common/filters/filters.component.d.ts +0 -38
- package/lib/modules/common/pagination/pagination.component.d.ts +0 -18
- package/lib/modules/errors/error403/error403.component.d.ts +0 -14
- package/lib/modules/errors/error404/error404.component.d.ts +0 -15
- package/lib/modules/errors/error500/error500.component.d.ts +0 -15
- package/lib/modules/errors/errors-routing.module.d.ts +0 -7
- package/lib/modules/errors/errors.component.d.ts +0 -13
- package/lib/modules/errors/errors.module.d.ts +0 -13
- package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +0 -17
- package/lib/modules/intro/contact-support/contact-support.component.d.ts +0 -9
- package/lib/modules/intro/intro-routing.module.d.ts +0 -7
- package/lib/modules/intro/intro.module.d.ts +0 -11
- package/lib/modules/intro/lead-intro/lead-intro.component.d.ts +0 -31
- package/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.d.ts +0 -13
- package/lib/modules/layout/content/content.component.d.ts +0 -25
- package/lib/modules/layout/footer/footer.component.d.ts +0 -8
- package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +0 -18
- package/lib/modules/layout/header/header.component.d.ts +0 -30
- package/lib/modules/layout/header/navbar/navbar.component.d.ts +0 -45
- package/lib/modules/layout/header/notifications-inner/notifications-inner.component.d.ts +0 -25
- package/lib/modules/layout/header/page-title/page-title.component.d.ts +0 -23
- package/lib/modules/layout/keenicon/keenicon.component.d.ts +0 -13
- package/lib/modules/layout/layout/layout.component.d.ts +0 -82
- package/lib/modules/layout/layout.module.d.ts +0 -49
- package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +0 -19
- package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +0 -45
- package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +0 -26
- package/lib/modules/layout/sidebar/sidebar.component.d.ts +0 -36
- package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/classic/classic.component.d.ts +0 -48
- package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +0 -16
- package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/extended/extended.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/metrics-header/metrics-header.component.d.ts +0 -103
- package/lib/modules/layout/toolbar/reports/reports.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/saas/saas.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.d.ts +0 -32
- package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +0 -33
- package/lib/modules/layout/toolbar/single-storedate/single-storedate.component.d.ts +0 -34
- package/lib/modules/layout/toolbar/storesingle/storesingle.component.d.ts +0 -24
- package/lib/modules/layout/toolbar/toolbar.component.d.ts +0 -56
- package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +0 -93
- package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +0 -80
- package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +0 -83
- package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +0 -74
- package/lib/modules/notification/conformation/conformation.component.d.ts +0 -10
- package/lib/modules/notification/notification/notification.component.d.ts +0 -63
- package/lib/modules/notification/notification-routing.module.d.ts +0 -7
- package/lib/modules/notification/notification.module.d.ts +0 -11
- package/lib/pipes/customDate.pipe.d.ts +0 -7
- package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/eyetest-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +0 -7
- package/lib/routes/routing.d.ts +0 -3
- package/lib/services/auth.service.d.ts +0 -49
- package/lib/services/notification.service.d.ts +0 -30
- package/lib/services/toast.service.d.ts +0 -10
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
-
export class ConformationComponent {
|
|
5
|
-
activeModal;
|
|
6
|
-
constructor(activeModal) {
|
|
7
|
-
this.activeModal = activeModal;
|
|
8
|
-
}
|
|
9
|
-
cancel() {
|
|
10
|
-
this.activeModal.close('close');
|
|
11
|
-
}
|
|
12
|
-
onSubmit() {
|
|
13
|
-
this.activeModal.close('submit');
|
|
14
|
-
}
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConformationComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ConformationComponent, selector: "lib-conformation", ngImport: i0, template: "<div class=\"card group-delete py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/>\r\n <path d=\"M27.9988 24V28M27.9988 32H28.0088M26.2888 18.86L17.8188 33C17.6442 33.3024 17.5518 33.6453 17.5508 33.9945C17.5498 34.3437 17.6403 34.6871 17.8132 34.9905C17.9862 35.2939 18.2355 35.5467 18.5365 35.7238C18.8375 35.9009 19.1796 35.9961 19.5288 36H36.4688C36.818 35.9961 37.1601 35.9009 37.4611 35.7238C37.7621 35.5467 38.0114 35.2939 38.1844 34.9905C38.3573 34.6871 38.4478 34.3437 38.4468 33.9945C38.4458 33.6453 38.3534 33.3024 38.1788 33L29.7088 18.86C29.5305 18.5661 29.2795 18.3231 28.98 18.1544C28.6805 17.9858 28.3425 17.8972 27.9988 17.8972C27.6551 17.8972 27.3171 17.9858 27.0176 18.1544C26.7181 18.3231 26.4671 18.5661 26.2888 18.86Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Are you sure?</a>\r\n <span class=\"sub-title fw-normal mt-2\">Do you want to cancel the download?</span>\r\n <!-- <span *ngIf=\"status ==='rejected'\" class=\"sub-title fw-normal mt-2\">Do you want to reject the brand <b>{{clientName}}</b>?</span> -->\r\n <div class=\"mt-5 w-100\">\r\n \r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-3\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>", styles: [""] });
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConformationComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: 'lib-conformation', template: "<div class=\"card group-delete py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/>\r\n <path d=\"M27.9988 24V28M27.9988 32H28.0088M26.2888 18.86L17.8188 33C17.6442 33.3024 17.5518 33.6453 17.5508 33.9945C17.5498 34.3437 17.6403 34.6871 17.8132 34.9905C17.9862 35.2939 18.2355 35.5467 18.5365 35.7238C18.8375 35.9009 19.1796 35.9961 19.5288 36H36.4688C36.818 35.9961 37.1601 35.9009 37.4611 35.7238C37.7621 35.5467 38.0114 35.2939 38.1844 34.9905C38.3573 34.6871 38.4478 34.3437 38.4468 33.9945C38.4458 33.6453 38.3534 33.3024 38.1788 33L29.7088 18.86C29.5305 18.5661 29.2795 18.3231 28.98 18.1544C28.6805 17.9858 28.3425 17.8972 27.9988 17.8972C27.6551 17.8972 27.3171 17.9858 27.0176 18.1544C26.7181 18.3231 26.4671 18.5661 26.2888 18.86Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Are you sure?</a>\r\n <span class=\"sub-title fw-normal mt-2\">Do you want to cancel the download?</span>\r\n <!-- <span *ngIf=\"status ==='rejected'\" class=\"sub-title fw-normal mt-2\">Do you want to reject the brand <b>{{clientName}}</b>?</span> -->\r\n <div class=\"mt-5 w-100\">\r\n \r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-3\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>" }]
|
|
21
|
-
}], ctorParameters: () => [{ type: i1.NgbActiveModal }] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZm9ybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9jb25mb3JtYXRpb24vY29uZm9ybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9jb25mb3JtYXRpb24vY29uZm9ybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xQyxNQUFNLE9BQU8scUJBQXFCO0lBRVg7SUFBckIsWUFBcUIsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBRWhELENBQUM7SUFHRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO3dHQWJVLHFCQUFxQjs0RkFBckIscUJBQXFCLHdEQ1BsQywwcEVBd0JNOzs0RkRqQk8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZm9ybWF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZm9ybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29uZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZm9ybWF0aW9uQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IgKHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLCl7XHJcblxyXG4gIH1cclxuICBcclxuXHJcbiAgY2FuY2VsKCl7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdjbG9zZScpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Ym1pdCcpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgZ3JvdXAtZGVsZXRlIHB5LTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy45OTg4IDI0VjI4TTI3Ljk5ODggMzJIMjguMDA4OE0yNi4yODg4IDE4Ljg2TDE3LjgxODggMzNDMTcuNjQ0MiAzMy4zMDI0IDE3LjU1MTggMzMuNjQ1MyAxNy41NTA4IDMzLjk5NDVDMTcuNTQ5OCAzNC4zNDM3IDE3LjY0MDMgMzQuNjg3MSAxNy44MTMyIDM0Ljk5MDVDMTcuOTg2MiAzNS4yOTM5IDE4LjIzNTUgMzUuNTQ2NyAxOC41MzY1IDM1LjcyMzhDMTguODM3NSAzNS45MDA5IDE5LjE3OTYgMzUuOTk2MSAxOS41Mjg4IDM2SDM2LjQ2ODhDMzYuODE4IDM1Ljk5NjEgMzcuMTYwMSAzNS45MDA5IDM3LjQ2MTEgMzUuNzIzOEMzNy43NjIxIDM1LjU0NjcgMzguMDExNCAzNS4yOTM5IDM4LjE4NDQgMzQuOTkwNUMzOC4zNTczIDM0LjY4NzEgMzguNDQ3OCAzNC4zNDM3IDM4LjQ0NjggMzMuOTk0NUMzOC40NDU4IDMzLjY0NTMgMzguMzUzNCAzMy4zMDI0IDM4LjE3ODggMzNMMjkuNzA4OCAxOC44NkMyOS41MzA1IDE4LjU2NjEgMjkuMjc5NSAxOC4zMjMxIDI4Ljk4IDE4LjE1NDRDMjguNjgwNSAxNy45ODU4IDI4LjM0MjUgMTcuODk3MiAyNy45OTg4IDE3Ljg5NzJDMjcuNjU1MSAxNy44OTcyIDI3LjMxNzEgMTcuOTg1OCAyNy4wMTc2IDE4LjE1NDRDMjYuNzE4MSAxOC4zMjMxIDI2LjQ2NzEgMTguNTY2MSAyNi4yODg4IDE4Ljg2WlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPiAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkIG1iLTAgdGl0bGUgY3Vyc29yLXBvaW50ZXJcIj5BcmUgeW91IHN1cmU/PC9hPlxyXG4gICAgICAgIDxzcGFuICBjbGFzcz1cInN1Yi10aXRsZSBmdy1ub3JtYWwgbXQtMlwiPkRvIHlvdSB3YW50IHRvIGNhbmNlbCB0aGUgZG93bmxvYWQ/PC9zcGFuPlxyXG4gICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJzdGF0dXMgPT09J3JlamVjdGVkJ1wiICBjbGFzcz1cInN1Yi10aXRsZSBmdy1ub3JtYWwgbXQtMlwiPkRvIHlvdSB3YW50IHRvIHJlamVjdCB0aGUgYnJhbmQgPGI+e3tjbGllbnROYW1lfX08L2I+Pzwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgdy0xMDBcIj5cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from "rxjs";
|
|
3
|
-
import { ConformationComponent } from '../conformation/conformation.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "tango-app-ui-global";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "../../../services/notification.service";
|
|
8
|
-
import * as i4 from "../../../services/toast.service";
|
|
9
|
-
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
-
import * as i6 from "@angular/common";
|
|
11
|
-
import * as i7 from "../../common/pagination/pagination.component";
|
|
12
|
-
import * as i8 from "../../../pipes/customDate.pipe";
|
|
13
|
-
export class NotificationComponent {
|
|
14
|
-
pageInfo;
|
|
15
|
-
gs;
|
|
16
|
-
route;
|
|
17
|
-
service;
|
|
18
|
-
cd;
|
|
19
|
-
toast;
|
|
20
|
-
router;
|
|
21
|
-
modalService;
|
|
22
|
-
showalert = true;
|
|
23
|
-
showdownload = false;
|
|
24
|
-
loading = true;
|
|
25
|
-
noData = false;
|
|
26
|
-
downloadloading = true;
|
|
27
|
-
downloadnoData = false;
|
|
28
|
-
itemsPerPage = 10;
|
|
29
|
-
currentPage = 1;
|
|
30
|
-
totalItems = 0;
|
|
31
|
-
paginationSizes = [10, 20, 30];
|
|
32
|
-
limit = 10;
|
|
33
|
-
offset = 1;
|
|
34
|
-
pageSize = 10;
|
|
35
|
-
user;
|
|
36
|
-
headerFilter;
|
|
37
|
-
clientId;
|
|
38
|
-
_id;
|
|
39
|
-
data;
|
|
40
|
-
destroy$ = new Subject();
|
|
41
|
-
notification;
|
|
42
|
-
total;
|
|
43
|
-
downloads = [];
|
|
44
|
-
headerData;
|
|
45
|
-
searchInput = "";
|
|
46
|
-
sortColumName = '';
|
|
47
|
-
sortDirection = '';
|
|
48
|
-
searchValue;
|
|
49
|
-
tabtype;
|
|
50
|
-
user_id;
|
|
51
|
-
reloadInterval;
|
|
52
|
-
constructor(pageInfo, gs, route, service, cd, toast, router, modalService) {
|
|
53
|
-
this.pageInfo = pageInfo;
|
|
54
|
-
this.gs = gs;
|
|
55
|
-
this.route = route;
|
|
56
|
-
this.service = service;
|
|
57
|
-
this.cd = cd;
|
|
58
|
-
this.toast = toast;
|
|
59
|
-
this.router = router;
|
|
60
|
-
this.modalService = modalService;
|
|
61
|
-
}
|
|
62
|
-
ngOnInit() {
|
|
63
|
-
this.setPageData();
|
|
64
|
-
let userData;
|
|
65
|
-
if ("user-info" in localStorage) {
|
|
66
|
-
userData = JSON.parse(localStorage.getItem("user-info") || "{}");
|
|
67
|
-
this.user_id = userData._id;
|
|
68
|
-
}
|
|
69
|
-
this.gs?.dataRangeValue.pipe((takeUntil(this.destroy$)))?.subscribe({
|
|
70
|
-
next: (data) => {
|
|
71
|
-
if (data?.client) {
|
|
72
|
-
this.headerData = data;
|
|
73
|
-
}
|
|
74
|
-
if (userData?.clientId || this.headerData?.client)
|
|
75
|
-
this.clientId = userData.clientId ? userData.clientId : this.headerData.client;
|
|
76
|
-
this.route.queryParams.subscribe(params => {
|
|
77
|
-
const tabType = params['tab'];
|
|
78
|
-
if (this.clientId) {
|
|
79
|
-
if (tabType) {
|
|
80
|
-
this.chooseManager(tabType);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
this.chooseManager('alert');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
this.reloadInterval = setInterval(() => {
|
|
90
|
-
this.downloadmanagerList();
|
|
91
|
-
}, 10000);
|
|
92
|
-
}
|
|
93
|
-
cancelDownload(data) {
|
|
94
|
-
const modalRef = this.modalService.open(ConformationComponent, { centered: true, size: 'md', });
|
|
95
|
-
modalRef.result.then((result) => {
|
|
96
|
-
if (result == 'submit') {
|
|
97
|
-
this.service.cancelDownload(data).pipe(takeUntil(this.destroy$))
|
|
98
|
-
.subscribe({
|
|
99
|
-
next: (res) => {
|
|
100
|
-
if (res && res.code === 200) {
|
|
101
|
-
this.toast.getSuccessToast(res.message);
|
|
102
|
-
this.downloadmanagerList();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
ngOnDestroy() {
|
|
110
|
-
this.destroy$.next(true);
|
|
111
|
-
this.destroy$.complete();
|
|
112
|
-
if (this.reloadInterval) {
|
|
113
|
-
clearInterval(this.reloadInterval);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
setPageData() {
|
|
117
|
-
this.pageInfo.setTitle("Alerts");
|
|
118
|
-
this.pageInfo.setDescription("Track all your activities and notifications here");
|
|
119
|
-
this.pageInfo.setBreadcrumbs([
|
|
120
|
-
{ title: "", path: "", isActive: false, isSeparator: false },
|
|
121
|
-
]);
|
|
122
|
-
}
|
|
123
|
-
notificationList() {
|
|
124
|
-
this.loading = true;
|
|
125
|
-
let data = {
|
|
126
|
-
limit: this.limit,
|
|
127
|
-
offset: this.offset
|
|
128
|
-
};
|
|
129
|
-
this.service.notificationList(data)
|
|
130
|
-
.pipe(takeUntil(this.destroy$))
|
|
131
|
-
.subscribe({
|
|
132
|
-
next: (res) => {
|
|
133
|
-
if (res && res.code == 200) {
|
|
134
|
-
this.total = res.data.count;
|
|
135
|
-
this.notification = res.data.result || [];
|
|
136
|
-
this.setPaginationSizes();
|
|
137
|
-
if (this.total < 10) {
|
|
138
|
-
this.paginationSizes = [this.total];
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
this.paginationSizes = [10, 20, 30];
|
|
142
|
-
}
|
|
143
|
-
this.loading = false;
|
|
144
|
-
this.noData = false;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
this.noData = true;
|
|
148
|
-
this.loading = false;
|
|
149
|
-
this.notification = [];
|
|
150
|
-
}
|
|
151
|
-
this.cd.detectChanges();
|
|
152
|
-
},
|
|
153
|
-
error: (err) => {
|
|
154
|
-
this.noData = true;
|
|
155
|
-
this.loading = false;
|
|
156
|
-
this.notification = [];
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
updateNotification(data, btnDetails) {
|
|
161
|
-
this.loading = true;
|
|
162
|
-
this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
163
|
-
if (res && res.code == 200) {
|
|
164
|
-
if (!btnDetails || btnDetails?.redirectionUrl != 'subscribed')
|
|
165
|
-
this.toast.getSuccessToast(res.message);
|
|
166
|
-
setTimeout(() => {
|
|
167
|
-
this.notificationList();
|
|
168
|
-
}, 1000);
|
|
169
|
-
if (btnDetails && btnDetails?.redirectionUrl != '' && btnDetails?.redirectionUrl.split('/').length > 1) {
|
|
170
|
-
this.router.navigateByUrl(btnDetails.redirectionUrl);
|
|
171
|
-
}
|
|
172
|
-
if (btnDetails && btnDetails?.redirectionUrl == 'remind') {
|
|
173
|
-
this.service.updateRemind(data._id).pipe(takeUntil(this.destroy$)).subscribe(() => { });
|
|
174
|
-
}
|
|
175
|
-
if (btnDetails && btnDetails?.redirectionUrl == 'trialApproved') {
|
|
176
|
-
let params = {
|
|
177
|
-
id: btnDetails.id,
|
|
178
|
-
type: 'approve'
|
|
179
|
-
};
|
|
180
|
-
this.service.trialApproved(params).pipe(takeUntil(this.destroy$)).subscribe(() => { });
|
|
181
|
-
}
|
|
182
|
-
if (btnDetails && btnDetails?.redirectionUrl == 'subscribed') {
|
|
183
|
-
let params = {
|
|
184
|
-
clientId: btnDetails?.clientId,
|
|
185
|
-
products: [
|
|
186
|
-
{
|
|
187
|
-
name: btnDetails.product,
|
|
188
|
-
productName: btnDetails.name,
|
|
189
|
-
type: "subscription",
|
|
190
|
-
content: "new"
|
|
191
|
-
}
|
|
192
|
-
]
|
|
193
|
-
};
|
|
194
|
-
this.service.updateSubscription(params).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
195
|
-
if (res && res.code == 200) {
|
|
196
|
-
this.toast.getSuccessToast('Product Subscribed Successfully');
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
this.cd.detectChanges();
|
|
201
|
-
}
|
|
202
|
-
}, (error) => {
|
|
203
|
-
this.loading = false;
|
|
204
|
-
this.noData = true;
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
chooseManager(type) {
|
|
208
|
-
this.tabtype = type;
|
|
209
|
-
this.sortColumName = "",
|
|
210
|
-
this.sortDirection = "",
|
|
211
|
-
this.searchValue = "",
|
|
212
|
-
this.limit = 10,
|
|
213
|
-
this.offset = 1,
|
|
214
|
-
this.currentPage = 1,
|
|
215
|
-
this.pageSize = 10;
|
|
216
|
-
this.router.navigate([], {
|
|
217
|
-
relativeTo: this.route,
|
|
218
|
-
queryParams: { tab: type },
|
|
219
|
-
queryParamsHandling: 'merge' // keeps existing query params and merges with new ones
|
|
220
|
-
});
|
|
221
|
-
if (this.tabtype === 'alert') {
|
|
222
|
-
this.showalert = true;
|
|
223
|
-
this.showdownload = false;
|
|
224
|
-
this.notificationList();
|
|
225
|
-
}
|
|
226
|
-
else if (this.tabtype === 'download') {
|
|
227
|
-
this.showdownload = true;
|
|
228
|
-
this.showalert = false;
|
|
229
|
-
this.downloadmanagerList();
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
setPaginationSizes() {
|
|
233
|
-
if (this.totalItems > 10) {
|
|
234
|
-
this.paginationSizes = [10, 20, 30];
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
this.paginationSizes = [this.totalItems];
|
|
238
|
-
this.pageSize = this.totalItems; // Just one option if less than 10
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
onPageChange(pageOffset) {
|
|
242
|
-
this.offset = Number(pageOffset);
|
|
243
|
-
if (this.tabtype === 'alert') {
|
|
244
|
-
this.notificationList();
|
|
245
|
-
}
|
|
246
|
-
else if (this.tabtype === 'download') {
|
|
247
|
-
this.downloadmanagerList();
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
onPageSizeChange(pageSize) {
|
|
251
|
-
this.currentPage = 1;
|
|
252
|
-
this.limit = Number(pageSize);
|
|
253
|
-
this.offset = 1;
|
|
254
|
-
if (this.tabtype === 'alert') {
|
|
255
|
-
this.notificationList();
|
|
256
|
-
}
|
|
257
|
-
else if (this.tabtype === 'download') {
|
|
258
|
-
this.downloadmanagerList();
|
|
259
|
-
}
|
|
260
|
-
// this.notificationList();
|
|
261
|
-
}
|
|
262
|
-
paginationSize() {
|
|
263
|
-
if (this.total < 10) {
|
|
264
|
-
return this.total;
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
return this.limit;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
downloadmanagerList() {
|
|
271
|
-
this.downloadloading = true;
|
|
272
|
-
const requestData = {
|
|
273
|
-
clientId: this.clientId,
|
|
274
|
-
limit: this.limit,
|
|
275
|
-
offset: this.offset - 1,
|
|
276
|
-
sortBy: this.sortDirection,
|
|
277
|
-
sortColumnName: this.sortColumName,
|
|
278
|
-
searchValue: this.searchInput,
|
|
279
|
-
createdBy: this.user_id
|
|
280
|
-
};
|
|
281
|
-
this.service.getdownloadlist(requestData)
|
|
282
|
-
.pipe(takeUntil(this.destroy$))
|
|
283
|
-
.subscribe({
|
|
284
|
-
next: (res) => {
|
|
285
|
-
if (res && res.code === 200) {
|
|
286
|
-
this.downloads = res.data.data;
|
|
287
|
-
this.total = res.data.count;
|
|
288
|
-
this.setPaginationSizes();
|
|
289
|
-
this.paginationSizes = this.total < 10 ? [this.total] : [10, 20, 30];
|
|
290
|
-
this.downloadloading = false;
|
|
291
|
-
this.downloadnoData = this.downloads.length === 0;
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
this.downloadnoData = true;
|
|
295
|
-
this.downloadloading = false;
|
|
296
|
-
this.downloads = [];
|
|
297
|
-
}
|
|
298
|
-
this.cd.detectChanges();
|
|
299
|
-
},
|
|
300
|
-
error: () => {
|
|
301
|
-
this.downloadnoData = true;
|
|
302
|
-
this.downloadloading = false;
|
|
303
|
-
this.downloads = [];
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
downloadFile(record) {
|
|
308
|
-
window.open(record.url, '_blank');
|
|
309
|
-
}
|
|
310
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.PageInfoService }, { token: i1.GlobalStateService }, { token: i2.ActivatedRoute }, { token: i3.NotificationService }, { token: i0.ChangeDetectorRef }, { token: i4.ToastService }, { token: i2.Router }, { token: i5.NgbModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
311
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotificationComponent, selector: "lib-notification", ngImport: i0, template: "<div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div>\r\n<div *ngIf=\"showalert\" class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"card topbar\" *ngIf=\"showdownload\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Download Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <ng-container *ngIf=\"downloadloading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"downloadnoData && !downloadloading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No data found</span>\r\n <span class=\"noNotification mt-2\">There is no result for Download Manager.\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"downloads?.length && !downloadloading\">\r\n <div *ngFor=\"let record of downloads\" class=\"col-md-5 card border px-5 py-5 mt-5\" style=\"margin-left: 70px;\">\r\n <div class=\"d-flex justify-content-between\" *ngIf=\"downloads?.length\">\r\n <div class=\"d-flex\">\r\n <img class=\"downloadimage\" src=\"./assets/tango/Icons/Trax_Folder_Icon.svg\" alt=\"Folder Icon\">\r\n <div class=\"mx-5\">\r\n <!--.{{record?.type ? record.type : 'zip' }} -->\r\n <span class=\"foldername\">{{ record.name }}</span><br>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'completed'\">\r\n Initiated Time: {{ record.downloadedTime }} | {{ record.downloadedDate }}\r\n </span>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'inprogress'\">Processing...</span>\r\n <span class=\"text-primary text-decoration-underline cursor-pointer ms-10\" *ngIf=\"record.status === 'inprogress'\" (click)=\"cancelDownload(record._id)\" >Cancel</span>\r\n </div>\r\n </div>\r\n <button *ngIf=\"record.status === 'completed' && record.url && record.url.trim() !== ''\" class=\"btn btn-primary download\" (click)=\"downloadFile(record)\">\r\n Download\r\n </button>\r\n <button *ngIf=\"record.status === 'completed' && (!record.url || record.url.trim() === '')\" class=\"btn btn-outline nofilefound\">\r\n No File Found\r\n </button>\r\n <div *ngIf=\"record.status === 'inprogress'\">\r\n <img class=\"loader\" src=\"./assets/tango/Icons/Trax-Loader GIF.gif\" alt=\"Loading\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"downloads?.length && !downloadloading\" class=\"my-3\">\r\n <lib-pagination \r\n [itemsPerPage]=\"limit\" \r\n [currentPage]=\"offset\" \r\n [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" \r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\">\r\n </lib-pagination>\r\n </div>\r\n </div>\r\n </div>", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.downloadimage{width:56px;height:56px}.foldername{color:var(--gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.downloadstatus{color:var(--gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.download{border-radius:8px;border:1px solid var(--primary-600, #00A3FF);background:var(--primary-600, #00A3FF);box-shadow:0 1px 2px #1018280d;padding:10px 18px;justify-content:center;align-items:center;gap:8px;height:45px;color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}.nofilefound{color:var(--Gray-500, #667085);font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px}.btn-outline{border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;display:flex;justify-content:center;align-items:center;gap:8px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i8.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
312
|
-
}
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
314
|
-
type: Component,
|
|
315
|
-
args: [{ selector: 'lib-notification', template: "<div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div>\r\n<div *ngIf=\"showalert\" class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"card topbar\" *ngIf=\"showdownload\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Download Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <ng-container *ngIf=\"downloadloading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"downloadnoData && !downloadloading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No data found</span>\r\n <span class=\"noNotification mt-2\">There is no result for Download Manager.\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"downloads?.length && !downloadloading\">\r\n <div *ngFor=\"let record of downloads\" class=\"col-md-5 card border px-5 py-5 mt-5\" style=\"margin-left: 70px;\">\r\n <div class=\"d-flex justify-content-between\" *ngIf=\"downloads?.length\">\r\n <div class=\"d-flex\">\r\n <img class=\"downloadimage\" src=\"./assets/tango/Icons/Trax_Folder_Icon.svg\" alt=\"Folder Icon\">\r\n <div class=\"mx-5\">\r\n <!--.{{record?.type ? record.type : 'zip' }} -->\r\n <span class=\"foldername\">{{ record.name }}</span><br>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'completed'\">\r\n Initiated Time: {{ record.downloadedTime }} | {{ record.downloadedDate }}\r\n </span>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'inprogress'\">Processing...</span>\r\n <span class=\"text-primary text-decoration-underline cursor-pointer ms-10\" *ngIf=\"record.status === 'inprogress'\" (click)=\"cancelDownload(record._id)\" >Cancel</span>\r\n </div>\r\n </div>\r\n <button *ngIf=\"record.status === 'completed' && record.url && record.url.trim() !== ''\" class=\"btn btn-primary download\" (click)=\"downloadFile(record)\">\r\n Download\r\n </button>\r\n <button *ngIf=\"record.status === 'completed' && (!record.url || record.url.trim() === '')\" class=\"btn btn-outline nofilefound\">\r\n No File Found\r\n </button>\r\n <div *ngIf=\"record.status === 'inprogress'\">\r\n <img class=\"loader\" src=\"./assets/tango/Icons/Trax-Loader GIF.gif\" alt=\"Loading\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"downloads?.length && !downloadloading\" class=\"my-3\">\r\n <lib-pagination \r\n [itemsPerPage]=\"limit\" \r\n [currentPage]=\"offset\" \r\n [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" \r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\">\r\n </lib-pagination>\r\n </div>\r\n </div>\r\n </div>", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.downloadimage{width:56px;height:56px}.foldername{color:var(--gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.downloadstatus{color:var(--gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.download{border-radius:8px;border:1px solid var(--primary-600, #00A3FF);background:var(--primary-600, #00A3FF);box-shadow:0 1px 2px #1018280d;padding:10px 18px;justify-content:center;align-items:center;gap:8px;height:45px;color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}.nofilefound{color:var(--Gray-500, #667085);font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px}.btn-outline{border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;display:flex;justify-content:center;align-items:center;gap:8px}\n"] }]
|
|
316
|
-
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i1.GlobalStateService }, { type: i2.ActivatedRoute }, { type: i3.NotificationService }, { type: i0.ChangeDetectorRef }, { type: i4.ToastService }, { type: i2.Router }, { type: i5.NgbModal }] });
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7OztBQU0vRSxNQUFNLE9BQU8scUJBQXFCO0lBZ0NaO0lBQWtDO0lBQWdDO0lBQStCO0lBQXNDO0lBQStCO0lBQTZCO0lBQXVCO0lBL0I5TyxTQUFTLEdBQVksSUFBSSxDQUFDO0lBQzFCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDOUIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixNQUFNLEdBQVksS0FBSyxDQUFDO0lBQ3hCLGVBQWUsR0FBWSxJQUFJLENBQUM7SUFDaEMsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxJQUFJLENBQU07SUFDVixZQUFZLENBQU07SUFDbEIsUUFBUSxDQUFNO0lBQ2QsR0FBRyxDQUFNO0lBQ1QsSUFBSSxDQUFLO0lBQ1EsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDMUMsWUFBWSxDQUFNO0lBQ2xCLEtBQUssQ0FBTTtJQUNYLFNBQVMsR0FBVSxFQUFFLENBQUM7SUFDdEIsVUFBVSxDQUFNO0lBQ2hCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQUs7SUFDWixPQUFPLENBQU07SUFDTCxjQUFjLENBQU07SUFFNUIsWUFBb0IsUUFBeUIsRUFBUyxFQUFzQixFQUFVLEtBQXFCLEVBQVUsT0FBNEIsRUFBVSxFQUFxQixFQUFVLEtBQW1CLEVBQVUsTUFBYyxFQUFTLFlBQXNCO1FBQWhQLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFVO0lBQUssQ0FBQztJQUcxUSxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksUUFBYSxDQUFDO1FBRWxCLElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDbkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQzFDLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7WUFDbEUsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ3hCO2dCQUNELElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07b0JBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBRWpGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM5QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2pCLElBQUksT0FBTyxFQUFFOzRCQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQzdCOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQzdCO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFWixDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQVM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDN0QsU0FBUyxDQUFDO29CQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO3dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTs0QkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzt5QkFDNUI7b0JBQ0gsQ0FBQztpQkFDRixDQUFDLENBQUE7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBSUYsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUc7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO29CQUMxQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtvQkFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtxQkFDcEM7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQ3JDO29CQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDckI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztpQkFDeEI7Z0JBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVMsRUFBRSxVQUFlO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDOUYsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxFQUFFLGNBQWMsSUFBSSxZQUFZO29CQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzFCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDVCxJQUFJLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN0RyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ3REO2dCQUNELElBQUksVUFBVSxJQUFJLFVBQVUsRUFBRSxjQUFjLElBQUksUUFBUSxFQUFFO29CQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7aUJBQ3hGO2dCQUNELElBQUksVUFBVSxJQUFJLFVBQVUsRUFBRSxjQUFjLElBQUksZUFBZSxFQUFFO29CQUMvRCxJQUFJLE1BQU0sR0FBRzt3QkFDWCxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUU7d0JBQ2pCLElBQUksRUFBRSxTQUFTO3FCQUNoQixDQUFBO29CQUNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO2lCQUN2RjtnQkFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLFlBQVksRUFBRTtvQkFDNUQsSUFBSSxNQUFNLEdBQUc7d0JBQ1gsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO3dCQUM5QixRQUFRLEVBQUU7NEJBQ1I7Z0NBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dDQUN4QixXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0NBQzVCLElBQUksRUFBRSxjQUFjO2dDQUNwQixPQUFPLEVBQUUsS0FBSzs2QkFDZjt5QkFDRjtxQkFDRixDQUFBO29CQUNELElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTt3QkFDNUYsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7NEJBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7eUJBQy9EO29CQUNILENBQUMsQ0FBQyxDQUFBO2lCQUNIO2dCQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDekI7UUFDSCxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztZQUN0QixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzFCLG1CQUFtQixFQUFFLE9BQU8sQ0FBRSx1REFBdUQ7U0FDdEYsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsa0NBQWtDO1NBQ3BFO0lBRUgsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtRQUNELDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBSUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDMUIsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDeEIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQzthQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO29CQUV6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztvQkFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7aUJBQ25EO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO29CQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7aUJBQ3JCO2dCQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQXZTVSxxQkFBcUI7NEZBQXJCLHFCQUFxQix3RENibEMsaytiQWdOUTs7NEZEbk1LLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBDb25mb3JtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb25mb3JtYXRpb24vY29uZm9ybWF0aW9uLmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW5vdGlmaWNhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBzaG93YWxlcnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRvd25sb2FkbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgZG93bmxvYWRub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpdGVtc1BlclBhZ2UgPSAxMDtcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgdG90YWxJdGVtcyA9IDA7XHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gIGxpbWl0OiBudW1iZXIgPSAxMDtcclxuICBvZmZzZXQ6IG51bWJlciA9IDE7XHJcbiAgcGFnZVNpemUgPSAxMDtcclxuICB1c2VyOiBhbnk7XHJcbiAgaGVhZGVyRmlsdGVyOiBhbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBfaWQ6IGFueTtcclxuICBkYXRhOiBhbnlcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBub3RpZmljYXRpb246IGFueTtcclxuICB0b3RhbDogYW55O1xyXG4gIGRvd25sb2FkczogYW55W10gPSBbXTtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgc2VhcmNoSW5wdXQ6IGFueSA9IFwiXCI7XHJcbiAgc29ydENvbHVtTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgc29ydERpcmVjdGlvbjogYW55ID0gJyc7XHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcclxuICB0YWJ0eXBlOiBhbnlcclxuICB1c2VyX2lkOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWxvYWRJbnRlcnZhbDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBzZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwpIHsgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICBsZXQgdXNlckRhdGE6IGFueTtcclxuXHJcbiAgICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdXNlckRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVzZXJfaWQgPSB1c2VyRGF0YS5faWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdzPy5kYXRhUmFuZ2VWYWx1ZS5waXBlKCh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhPy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh1c2VyRGF0YT8uY2xpZW50SWQgfHwgdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQpXHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gdXNlckRhdGEuY2xpZW50SWQgPyB1c2VyRGF0YS5jbGllbnRJZCA6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQ7XHJcblxyXG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0YWJUeXBlID0gcGFyYW1zWyd0YWInXTtcclxuICAgICAgICAgIGlmICh0aGlzLmNsaWVudElkKSB7XHJcbiAgICAgICAgICAgIGlmICh0YWJUeXBlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaG9vc2VNYW5hZ2VyKHRhYlR5cGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hvb3NlTWFuYWdlcignYWxlcnQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVsb2FkSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRtYW5hZ2VyTGlzdCgpO1xyXG4gICAgfSwgMTAwMDApO1xyXG5cclxuICB9XHJcbiAgY2FuY2VsRG93bmxvYWQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ29uZm9ybWF0aW9uQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLCB9KTtcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSAnc3VibWl0Jykge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNhbmNlbERvd25sb2FkKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRtYW5hZ2VyTGlzdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9KVxyXG5cclxuXHJcblxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIGlmICh0aGlzLnJlbG9hZEludGVydmFsKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5yZWxvYWRJbnRlcnZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIkFsZXJ0c1wiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJUcmFjayBhbGwgeW91ciBhY3Rpdml0aWVzIGFuZCBub3RpZmljYXRpb25zIGhlcmVcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJcIiwgcGF0aDogXCJcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgbm90aWZpY2F0aW9uTGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgbGltaXQ6IHRoaXMubGltaXQsXHJcbiAgICAgIG9mZnNldDogdGhpcy5vZmZzZXRcclxuICAgIH07XHJcbiAgICB0aGlzLnNlcnZpY2Uubm90aWZpY2F0aW9uTGlzdChkYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbiA9IHJlcy5kYXRhLnJlc3VsdCB8fCBbXTtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uU2l6ZXMoKVxyXG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbCA8IDEwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbF1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vdGlmaWNhdGlvbihkYXRhOiBhbnksIGJ0bkRldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5ub3RpZmljYXRpb25VcGRhdGUoZGF0YS5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgaWYgKCFidG5EZXRhaWxzIHx8IGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsICE9ICdzdWJzY3JpYmVkJylcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIGlmIChidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsICE9ICcnICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsLnNwbGl0KCcvJykubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChidG5EZXRhaWxzLnJlZGlyZWN0aW9uVXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGJ0bkRldGFpbHMgJiYgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgPT0gJ3JlbWluZCcpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVSZW1pbmQoZGF0YS5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4geyB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCA9PSAndHJpYWxBcHByb3ZlZCcpIHtcclxuICAgICAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGlkOiBidG5EZXRhaWxzLmlkLFxyXG4gICAgICAgICAgICB0eXBlOiAnYXBwcm92ZSdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VydmljZS50cmlhbEFwcHJvdmVkKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7IH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsID09ICdzdWJzY3JpYmVkJykge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgY2xpZW50SWQ6IGJ0bkRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgICBwcm9kdWN0czogW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGJ0bkRldGFpbHMucHJvZHVjdCxcclxuICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lOiBidG5EZXRhaWxzLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN1YnNjcmlwdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJuZXdcIlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YnNjcmlwdGlvbihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1Byb2R1Y3QgU3Vic2NyaWJlZCBTdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hvb3NlTWFuYWdlcih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMudGFidHlwZSA9IHR5cGVcclxuICAgIHRoaXMuc29ydENvbHVtTmFtZSA9IFwiXCIsXHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IFwiXCIsXHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBcIlwiLFxyXG4gICAgICB0aGlzLmxpbWl0ID0gMTAsXHJcbiAgICAgIHRoaXMub2Zmc2V0ID0gMSxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDEsXHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSAxMFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgdGFiOiB0eXBlIH0sXHJcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScgIC8vIGtlZXBzIGV4aXN0aW5nIHF1ZXJ5IHBhcmFtcyBhbmQgbWVyZ2VzIHdpdGggbmV3IG9uZXNcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudGFidHlwZSA9PT0gJ2FsZXJ0Jykge1xyXG4gICAgICB0aGlzLnNob3dhbGVydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd2Rvd25sb2FkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRhYnR5cGUgPT09ICdkb3dubG9hZCcpIHtcclxuICAgICAgdGhpcy5zaG93ZG93bmxvYWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dhbGVydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRvd25sb2FkbWFuYWdlckxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhZ2luYXRpb25TaXplcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsSXRlbXMgPiAxMCkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnRvdGFsSXRlbXM7IC8vIEp1c3Qgb25lIG9wdGlvbiBpZiBsZXNzIHRoYW4gMTBcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IE51bWJlcihwYWdlT2Zmc2V0KTtcclxuICAgIGlmICh0aGlzLnRhYnR5cGUgPT09ICdhbGVydCcpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGFidHlwZSA9PT0gJ2Rvd25sb2FkJykge1xyXG4gICAgICB0aGlzLmRvd25sb2FkbWFuYWdlckxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlciwpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5saW1pdCA9IE51bWJlcihwYWdlU2l6ZSk7XHJcbiAgICB0aGlzLm9mZnNldCA9IDE7XHJcbiAgICBpZiAodGhpcy50YWJ0eXBlID09PSAnYWxlcnQnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRhYnR5cGUgPT09ICdkb3dubG9hZCcpIHtcclxuICAgICAgdGhpcy5kb3dubG9hZG1hbmFnZXJMaXN0KCk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLm5vdGlmaWNhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25TaXplKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy50b3RhbCA8IDEwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGltaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGRvd25sb2FkbWFuYWdlckxpc3QoKSB7XHJcbiAgICB0aGlzLmRvd25sb2FkbG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0IC0gMSxcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnREaXJlY3Rpb24sXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRDb2x1bU5hbWUsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNlYXJjaElucHV0LFxyXG4gICAgICBjcmVhdGVkQnk6IHRoaXMudXNlcl9pZFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0ZG93bmxvYWRsaXN0KHJlcXVlc3REYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRzID0gcmVzLmRhdGEuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhZ2luYXRpb25TaXplcygpXHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IHRoaXMudG90YWwgPCAxMCA/IFt0aGlzLnRvdGFsXSA6IFsxMCwgMjAsIDMwXTtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZG5vRGF0YSA9IHRoaXMuZG93bmxvYWRzLmxlbmd0aCA9PT0gMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkcyA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZG5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmRvd25sb2FkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZHMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRGaWxlKHJlY29yZDogYW55KSB7XHJcbiAgICB3aW5kb3cub3BlbihyZWNvcmQudXJsLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvdyBidXR0b25zZWMgbWItMTBcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwic2hvd2FsZXJ0PycnOidzdWJtZW51J1wiIGNsYXNzPVwiIGNvbC1sZy02IGJ0biBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNob29zZU1hbmFnZXIoJ2FsZXJ0JylcIj5BbGVydHMgTWFuYWdlcjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJzaG93ZG93bmxvYWQ/Jyc6J3N1Ym1lbnUnXCIgY2xhc3M9XCJjb2wtbGctNiBidG4gYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJjaG9vc2VNYW5hZ2VyKCdkb3dubG9hZCcpXCI+RG93bmxvYWQgTWFuYWdlcjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuPGRpdiAgKm5nSWY9XCJzaG93YWxlcnRcIiBjbGFzcz1cImNhcmQgdG9wYmFyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0yXCI+QWxlcnRzIE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC14bC1yb3cgcC03IFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1sZy1yb3ctZmx1aWQgIG1iLTIwIG1iLXhsLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbm9Ob3RpZmljYXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbkFsaWduIG10LTEwXCI+Tm8gTmV3IE5vdGlmaWNhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9Ob3RpZmljYXRpb24gbXQtMlwiPkFueSBuZXcgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2hvd25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXJlLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIiAqbmdJZj1cIm5vdGlmaWNhdGlvbj8ubGVuZ3RoICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBub3RpZmljYXRpb247bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItOCBib3JkZXItdmFsdWUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC01MHB4IG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMjEwOF81NjM2NylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuOTk5MyAyMy4zMzMzVjIwTTE5Ljk5OTMgMTYuNjY2NkgyMC4wMDc3TTI4LjMzMjcgMjBDMjguMzMyNyAyNC42MDIzIDI0LjYwMTcgMjguMzMzMyAxOS45OTkzIDI4LjMzMzNDMTUuMzk3IDI4LjMzMzMgMTEuNjY2IDI0LjYwMjMgMTEuNjY2IDIwQzExLjY2NiAxNS4zOTc2IDE1LjM5NyAxMS42NjY2IDE5Ljk5OTMgMTEuNjY2NkMyNC42MDE3IDExLjY2NjYgMjguMzMyNyAxNS4zOTc2IDI4LjMzMjcgMjBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTIxMDhfNTYzNjdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10aXRsZSBteC00XCI+e3sgaXRlbS5fc291cmNlLnRpdGxlIH19PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0ZG90IG0tMlwiPuKAojwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnRkb3RcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uX3NvdXJjZS5kYXRlIHwgY3VzdG9tRGF0ZUZvcm1hdCB9fSBUb2RheTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWx0LWRlc2MgZC1ibG9jayBtcy0xN1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLl9zb3VyY2UuZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVOb3RpZmljYXRpb24oaXRlbSwnJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgNUw1IDE1TTUgNUwxNSAxNVwiIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTIwIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY3RhIG9mIGl0ZW0uX3NvdXJjZS5hbGVydEN0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFbJ3JlbWluZCcsJ2NhbmNlbCddLmluY2x1ZGVzKGN0YS5yZWRpcmVjdGlvblVybClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVOb3RpZmljYXRpb24oaXRlbSxjdGEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIj57eyBjdGEuYnV0dG9uTmFtZSB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJbJ3JlbWluZCcsJ2NhbmNlbCddLmluY2x1ZGVzKGN0YS5yZWRpcmVjdGlvblVybClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVOb3RpZmljYXRpb24oaXRlbSxjdGEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBteC02IHJlbWluZGxhdGVydGV4dCBjdXJzb3ItcG9pbnRlclwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3RhLmJ1dHRvbk5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3RpZmljYXRpb24/Lmxlbmd0aCAmJiAhbG9hZGluZ1wiIGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwibGltaXRcIiBbY3VycmVudFBhZ2VdPVwib2Zmc2V0XCIgW3RvdGFsSXRlbXNdPVwidG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2luYXRpb25TaXplKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmQgdG9wYmFyXCIgKm5nSWY9XCJzaG93ZG93bmxvYWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIG1iLTJcIj5Eb3dubG9hZCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3dubG9hZG5vRGF0YSAmJiAhZG93bmxvYWRsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbkFsaWduIG10LTEwXCI+Tm8gZGF0YSBmb3VuZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub05vdGlmaWNhdGlvbiBtdC0yXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciBEb3dubG9hZCBNYW5hZ2VyLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImRvd25sb2Fkcz8ubGVuZ3RoICYmICFkb3dubG9hZGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmVjb3JkIG9mIGRvd25sb2Fkc1wiIGNsYXNzPVwiY29sLW1kLTUgY2FyZCBib3JkZXIgcHgtNSBweS01IG10LTVcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA3MHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdJZj1cImRvd25sb2Fkcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkb3dubG9hZGltYWdlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvVHJheF9Gb2xkZXJfSWNvbi5zdmdcIiBhbHQ9XCJGb2xkZXIgSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tLnt7cmVjb3JkPy50eXBlID8gcmVjb3JkLnR5cGUgOiAnemlwJyB9fSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbGRlcm5hbWVcIj57eyByZWNvcmQubmFtZSB9fTwvc3Bhbj48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3dubG9hZHN0YXR1c1wiICpuZ0lmPVwicmVjb3JkLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhdGVkIFRpbWU6IHt7IHJlY29yZC5kb3dubG9hZGVkVGltZSB9fSB8IHt7IHJlY29yZC5kb3dubG9hZGVkRGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvd25sb2Fkc3RhdHVzXCIgKm5nSWY9XCJyZWNvcmQuc3RhdHVzID09PSAnaW5wcm9ncmVzcydcIj5Qcm9jZXNzaW5nLi4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgbXMtMTBcIiAqbmdJZj1cInJlY29yZC5zdGF0dXMgPT09ICdpbnByb2dyZXNzJ1wiIChjbGljayk9XCJjYW5jZWxEb3dubG9hZChyZWNvcmQuX2lkKVwiICA+Q2FuY2VsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJlY29yZC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmIHJlY29yZC51cmwgJiYgcmVjb3JkLnVybC50cmltKCkgIT09ICcnXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZG93bmxvYWRcIiAoY2xpY2spPVwiZG93bmxvYWRGaWxlKHJlY29yZClcIj5cclxuICAgICAgICAgICAgICAgICAgRG93bmxvYWRcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJlY29yZC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmICghcmVjb3JkLnVybCB8fCByZWNvcmQudXJsLnRyaW0oKSA9PT0gJycpXCIgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lICBub2ZpbGVmb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIEZpbGUgRm91bmRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjb3JkLnN0YXR1cyA9PT0gJ2lucHJvZ3Jlc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJsb2FkZXJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9UcmF4LUxvYWRlciBHSUYuZ2lmXCIgYWx0PVwiTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRzPy5sZW5ndGggJiYgIWRvd25sb2FkbG9hZGluZ1wiIGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gXHJcbiAgICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFxyXG4gICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIiBcclxuICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbFwiXHJcbiAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBcclxuICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblNpemUoKVwiXHJcbiAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
-
import { NotificationComponent } from './notification/notification.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
const routes = [
|
|
7
|
-
{
|
|
8
|
-
path: 'alerts',
|
|
9
|
-
component: NotificationComponent
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
path: 'downloadmanager',
|
|
13
|
-
component: NotificationComponent
|
|
14
|
-
}
|
|
15
|
-
];
|
|
16
|
-
export class NotificationRoutingModule {
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
19
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, decorators: [{
|
|
22
|
-
type: NgModule,
|
|
23
|
-
args: [{
|
|
24
|
-
imports: [RouterModule.forChild(routes)],
|
|
25
|
-
exports: [RouterModule]
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRTlFLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFDLFFBQVE7UUFDYixTQUFTLEVBQUMscUJBQXFCO0tBQ2hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUMsaUJBQWlCO1FBQ3RCLFNBQVMsRUFBQyxxQkFBcUI7S0FDaEM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLHlCQUF5Qjt3R0FBekIseUJBQXlCO3lHQUF6Qix5QkFBeUIsd0NBRjFCLFlBQVk7eUdBRVgseUJBQXlCLFlBSDFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLHlCQUF5QjtrQkFKckMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6J2FsZXJ0cycsXHJcbiAgICBjb21wb25lbnQ6Tm90aWZpY2F0aW9uQ29tcG9uZW50XHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOidkb3dubG9hZG1hbmFnZXInLFxyXG4gICAgY29tcG9uZW50Ok5vdGlmaWNhdGlvbkNvbXBvbmVudFxyXG4gIH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uUm91dGluZ01vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NotificationRoutingModule } from './notification-routing.module';
|
|
4
|
-
import { NotificationComponent } from './notification/notification.component';
|
|
5
|
-
import { CommonSharedModule } from '../common/common-shared.module';
|
|
6
|
-
import { ConformationComponent } from './conformation/conformation.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class NotificationModule {
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, declarations: [NotificationComponent,
|
|
11
|
-
ConformationComponent], imports: [CommonModule,
|
|
12
|
-
NotificationRoutingModule,
|
|
13
|
-
CommonSharedModule] });
|
|
14
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, imports: [CommonModule,
|
|
15
|
-
NotificationRoutingModule,
|
|
16
|
-
CommonSharedModule] });
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, decorators: [{
|
|
19
|
-
type: NgModule,
|
|
20
|
-
args: [{
|
|
21
|
-
declarations: [
|
|
22
|
-
NotificationComponent,
|
|
23
|
-
ConformationComponent,
|
|
24
|
-
],
|
|
25
|
-
imports: [
|
|
26
|
-
CommonModule,
|
|
27
|
-
NotificationRoutingModule,
|
|
28
|
-
CommonSharedModule
|
|
29
|
-
]
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWM5RSxNQUFNLE9BQU8sa0JBQWtCO3dHQUFsQixrQkFBa0I7eUdBQWxCLGtCQUFrQixpQkFUM0IscUJBQXFCO1lBQ3JCLHFCQUFxQixhQUdyQixZQUFZO1lBQ1oseUJBQXlCO1lBQ3pCLGtCQUFrQjt5R0FHVCxrQkFBa0IsWUFMM0IsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixrQkFBa0I7OzRGQUdULGtCQUFrQjtrQkFYOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Sb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi1zaGFyZWQubW9kdWxlJztcclxuaW1wb3J0IHsgQ29uZm9ybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb25mb3JtYXRpb24vY29uZm9ybWF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcclxuICAgIENvbmZvcm1hdGlvbkNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE5vdGlmaWNhdGlvblJvdXRpbmdNb2R1bGUsXHJcbiAgICBDb21tb25TaGFyZWRNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Nb2R1bGUgeyB9XHJcbiJdfQ==
|