@sunbird-cb/toc 0.0.9 → 0.0.10-mauritius
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/esm2022/lib/_collection/_common/ai-tutor/ai-tutor.component.mjs +1169 -0
- package/esm2022/lib/_collection/_common/ai-tutor/socket.service.mjs +121 -0
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
- package/esm2022/lib/_collection/_common/card-competency/card-competency.component.mjs +58 -0
- package/esm2022/lib/_collection/_common/card-competency/card-competency.module.mjs +22 -0
- package/esm2022/lib/_collection/_common/card-content-v2/card-content-v2.model.mjs +23 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +223 -120
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +96 -92
- package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
- package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
- package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
- package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +961 -941
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
- package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +304 -248
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1227 -1148
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
- package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
- package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
- package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
- package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
- package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +835 -847
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +224 -219
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +276 -209
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
- package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
- package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
- package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
- package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
- package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
- package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
- package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
- package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +115 -112
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
- package/esm2022/lib/_collection-api.mjs +57 -57
- package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
- package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
- package/esm2022/lib/_models/common.model.mjs +2 -2
- package/esm2022/lib/_models/error.model.mjs +2 -2
- package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
- package/esm2022/lib/_services/rating.service.mjs +89 -89
- package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
- package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
- package/esm2022/lib/_services/widget-content.model.mjs +254 -247
- package/esm2022/lib/_services/widget-content.service.mjs +594 -594
- package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
- package/esm2022/lib/app-toc-lib.module.mjs +508 -499
- package/esm2022/lib/collection.config.mjs +161 -161
- package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
- package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +522 -475
- package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
- package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
- package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
- package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2230 -2229
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +3017 -2907
- package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
- package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
- package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
- package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
- package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
- package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
- package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
- package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1854 -1838
- package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
- package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
- package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
- package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +258 -256
- package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
- package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
- package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
- package/esm2022/lib/models/app-toc.model.mjs +38 -38
- package/esm2022/lib/models/auto-complete.model.mjs +2 -2
- package/esm2022/lib/models/card-content.model.mjs +13 -13
- package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
- package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
- package/esm2022/lib/models/goal.model.mjs +2 -2
- package/esm2022/lib/models/meta-tag.model.mjs +8 -8
- package/esm2022/lib/models/playlist.model.mjs +2 -2
- package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
- package/esm2022/lib/models/rating.model.mjs +2 -2
- package/esm2022/lib/models/user-profile.model.mjs +21 -21
- package/esm2022/lib/registration-toc-lib.config.mjs +14 -0
- package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
- package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
- package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
- package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
- package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
- package/esm2022/lib/services/access-control.service.mjs +56 -56
- package/esm2022/lib/services/action.service.mjs +23 -23
- package/esm2022/lib/services/app-toc-v2.service.mjs +368 -313
- package/esm2022/lib/services/app-toc.service.mjs +1577 -1613
- package/esm2022/lib/services/certificate.service.mjs +114 -69
- package/esm2022/lib/services/discuss-utils.service.mjs +45 -58
- package/esm2022/lib/services/editor.service.mjs +34 -34
- package/esm2022/lib/services/load-check.service.mjs +21 -21
- package/esm2022/lib/services/loader.service.mjs +33 -33
- package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
- package/esm2022/lib/services/netcore.service.mjs +126 -56
- package/esm2022/lib/services/nps-grid.service.mjs +43 -31
- package/esm2022/lib/services/otp.service.mjs +81 -43
- package/esm2022/lib/services/profile-v2.service.mjs +71 -43
- package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
- package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
- package/esm2022/lib/services/root.service.mjs +106 -0
- package/esm2022/lib/services/timer.service.mjs +23 -23
- package/esm2022/lib/services/title-tag.service.mjs +71 -71
- package/esm2022/lib/services/user-profile.service.mjs +180 -55
- package/esm2022/lib/services/viewer-data.service.mjs +64 -64
- package/esm2022/lib/services/viewer-util.service.mjs +627 -590
- package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
- package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
- package/esm2022/public-api.mjs +81 -71
- package/esm2022/sunbird-cb-toc.mjs +4 -4
- package/fesm2022/sunbird-cb-toc.mjs +27145 -24836
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts +139 -0
- package/lib/_collection/_common/ai-tutor/socket.service.d.ts +19 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -16
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -31
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -15
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -20
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -22
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -15
- package/lib/_collection/_common/card-competency/card-competency.component.d.ts +14 -0
- package/lib/_collection/_common/card-competency/card-competency.module.d.ts +8 -0
- package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts +44 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +31 -22
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +23 -22
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -9
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -11
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -12
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -18
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -14
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -11
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -17
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -14
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -199
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -16
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -10
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -38
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -19
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -11
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +187 -183
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -41
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -54
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -47
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +56 -49
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +195 -171
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -8
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -16
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -40
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -21
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -45
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +131 -128
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +52 -51
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +32 -29
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -9
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -28
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -24
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -14
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -9
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -12
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -10
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -22
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -8
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -18
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -8
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -15
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -35
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -19
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -14
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -13
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -11
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -11
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -15
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -10
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -16
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -11
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -34
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -17
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -15
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -15
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -21
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -12
- package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -21
- package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -9
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -47
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -14
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -22
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -19
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -15
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +26 -25
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -21
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -18
- package/lib/_collection-api.d.ts +34 -34
- package/lib/_constants/widget-content.constants.d.ts +7 -7
- package/lib/_directives/tooltip.directive.d.ts +17 -17
- package/lib/_models/common.model.d.ts +3 -3
- package/lib/_models/error.model.d.ts +5 -5
- package/lib/_pipes/highlight.pipe.d.ts +10 -10
- package/lib/_services/rating.service.d.ts +18 -18
- package/lib/_services/samuhik-charcha.service.d.ts +13 -13
- package/lib/_services/viewer-route-util.d.ts +8 -8
- package/lib/_services/widget-content.model.d.ts +521 -515
- package/lib/_services/widget-content.service.d.ts +101 -101
- package/lib/_shared/translate-loader.factory.d.ts +7 -7
- package/lib/app-toc-lib.module.d.ts +89 -88
- package/lib/collection.config.d.ts +159 -159
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -17
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -225
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +83 -78
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -22
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -31
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -47
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -14
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -21
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +315 -314
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +418 -408
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -47
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -22
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -14
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -149
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -42
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -27
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -15
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +197 -195
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -44
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -54
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -18
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +44 -43
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -20
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -13
- package/lib/models/app-toc-analytics.model.d.ts +152 -152
- package/lib/models/app-toc.model.d.ts +84 -84
- package/lib/models/auto-complete.model.d.ts +27 -27
- package/lib/models/card-content.model.d.ts +19 -19
- package/lib/models/content-strip-with-tabs.model.d.ts +44 -44
- package/lib/models/discussion-forum.model.d.ts +40 -40
- package/lib/models/goal.model.d.ts +22 -22
- package/lib/models/meta-tag.model.d.ts +6 -6
- package/lib/models/playlist.model.d.ts +23 -23
- package/lib/models/profile-revamp.model.d.ts +14 -14
- package/lib/models/rating.model.d.ts +17 -17
- package/lib/models/user-profile.model.d.ts +124 -37
- package/lib/registration-toc-lib.config.d.ts +4 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -16
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-resolver.service.d.ts +16 -16
- package/lib/resolvers/config-resolver.service.d.ts +11 -11
- package/lib/resolvers/profile-resolver.service.d.ts +11 -11
- package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -11
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -19
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -8
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -8
- package/lib/services/access-control.service.d.ts +29 -29
- package/lib/services/action.service.d.ts +9 -9
- package/lib/services/app-toc-v2.service.d.ts +17 -16
- package/lib/services/app-toc.service.d.ts +190 -235
- package/lib/services/certificate.service.d.ts +41 -42
- package/lib/services/discuss-utils.service.d.ts +11 -33
- package/lib/services/editor.service.d.ts +17 -17
- package/lib/services/load-check.service.d.ts +8 -8
- package/lib/services/loader.service.d.ts +16 -16
- package/lib/services/mobile-apps.service.d.ts +38 -38
- package/lib/services/netcore.service.d.ts +21 -33
- package/lib/services/nps-grid.service.d.ts +16 -15
- package/lib/services/otp.service.d.ts +15 -20
- package/lib/services/profile-v2.service.d.ts +17 -20
- package/lib/services/reset-ratings.service.d.ts +8 -8
- package/lib/services/resource-download-helper.service.d.ts +29 -29
- package/lib/services/root.service.d.ts +26 -0
- package/lib/services/timer.service.d.ts +9 -9
- package/lib/services/title-tag.service.d.ts +21 -21
- package/lib/services/user-profile.service.d.ts +44 -24
- package/lib/services/viewer-data.service.d.ts +62 -58
- package/lib/services/viewer-util.service.d.ts +76 -76
- package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -56
- package/lib/share-toc/share-toc.module.d.ts +32 -32
- package/package.json +3 -3
- package/public-api.d.ts +65 -56
- package/sunbird-cb-toc-0.0.10-mauritius.tgz +0 -0
|
@@ -1,209 +1,276 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { NsContent } from '@sunbird-cb/utils-v2';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ngx-translate/core";
|
|
5
|
-
import * as i2 from "@sunbird-cb/utils-v2";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "../../../sliders-dynamic/sliders-dynamic.component";
|
|
8
|
-
export class KarmaPointsComponent {
|
|
9
|
-
constructor(translate, langTranslations) {
|
|
10
|
-
this.translate = translate;
|
|
11
|
-
this.langTranslations = langTranslations;
|
|
12
|
-
this.kpArray = [];
|
|
13
|
-
this.content = null;
|
|
14
|
-
this.data = [];
|
|
15
|
-
this.pCategory = '';
|
|
16
|
-
this.clickClaimKarmaPoints = new EventEmitter();
|
|
17
|
-
this.btnCategory = '';
|
|
18
|
-
this.disableKarmaPoints = false;
|
|
19
|
-
if (localStorage.getItem('websiteLanguage')) {
|
|
20
|
-
this.translate.setDefaultLang('en');
|
|
21
|
-
const lang = localStorage.getItem('websiteLanguage');
|
|
22
|
-
this.translate.use(lang);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this.constructNudgeData();
|
|
27
|
-
if (this.content && this.content.courseCategory === NsContent.ECourseCategory.CASE_STUDY) {
|
|
28
|
-
this.disableKarmaPoints = true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
ngOnChanges(changes) {
|
|
32
|
-
this.condition = changes.condition && changes.condition.currentValue || null;
|
|
33
|
-
if (!this.condition) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (this.condition && !this.condition.event) {
|
|
37
|
-
// For TOC karma points
|
|
38
|
-
if (!this.condition.isPostAssessment && (this.condition.content && this.condition.content.hasOwnProperty('completionPercentage')
|
|
39
|
-
&& !this.condition.content.completionPercentage
|
|
40
|
-
|| (this.condition.content && this.condition.content.completionPercentage < 100))
|
|
41
|
-
&& !this.condition.certData) {
|
|
42
|
-
if (this.condition.isAcbpClaim) {
|
|
43
|
-
this.getKPData('ACBP');
|
|
44
|
-
}
|
|
45
|
-
if (this.condition.content.primaryCategory === this.condition.primaryCategory.COURSE) {
|
|
46
|
-
if (!this.condition.isAcbpClaim && !this.condition.monthlyCapExceed) {
|
|
47
|
-
this.getKPData('Resume');
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
this.getKPData('Start again');
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
this.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
this.
|
|
89
|
-
|
|
90
|
-
if (this.condition.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (!this.condition.isAcbpCourse && this.condition.monthlyCapExceed
|
|
107
|
-
this.getKPData('Start again');
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (this.condition.userRating) {
|
|
120
|
-
this.getKPData('
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (this.condition.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (this.condition.enrolledEvent.status
|
|
136
|
-
this.getKPData('
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FybWEtcG9pbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL2thcm1hLXBvaW50cy9rYXJtYS1wb2ludHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2Mva2FybWEtcG9pbnRzL2thcm1hLXBvaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQTtBQUd4RyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7QUFRakYsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLFNBQTJCLEVBQzNCLGdCQUFpRDtRQURqRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBSDNELFlBQU8sR0FBVSxFQUFFLENBQUE7UUFZVixZQUFPLEdBQThCLElBQUksQ0FBQTtRQUN6QyxTQUFJLEdBQVEsRUFBRSxDQUFBO1FBQ2QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUViLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7UUFFbkQsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFHekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFBO1FBaEJ4QixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFFLENBQUE7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDekI7SUFDSCxDQUFDO0lBYUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBRXpCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtZQUN4RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFBO1FBRTVFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTTtTQUFFO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzNDLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQzttQkFDM0gsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0I7bUJBQzVDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDLENBQUM7bUJBQzlFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7aUJBQ3ZCO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtxQkFDekI7aUJBQ0Y7YUFDRjtZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCO21CQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEtBQUssR0FBRyxDQUFDO3VCQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7b0JBQzFGLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7b0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFBO2lCQUMzQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BGLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtxQkFDOUI7b0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFO3dCQUMzRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO3FCQUM5QjtpQkFDRjthQUNGO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCO21CQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQjttQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNsQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzttQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUTttQkFDbkYsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO29CQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUN2QjtnQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjtvQkFDbEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO29CQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUN6QjthQUNGO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7bUJBQ2pELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDO3VCQUN0RixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFvQjt1QkFDNUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUVyRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUN2QjtnQkFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO2FBQ0Y7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjttQkFDakQsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO29CQUMxRixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQTtpQkFDM0I7Z0JBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO29CQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO3dCQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO3FCQUM5QjtvQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUU7d0JBQzNHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7cUJBQzlCO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQjttQkFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNsQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7aUJBQ25DO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7aUJBQzlCO2FBQ0Y7U0FDRjthQUFNO1lBQ0wseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzFELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtvQkFDL0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTt3QkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtxQkFDM0I7b0JBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTt3QkFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO3lCQUNuQjt3QkFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7eUJBQzVCO3FCQUNGO2lCQUNGO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO29CQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO3dCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO3FCQUMzQjtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssWUFBWSxFQUFFO2dCQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtnQkFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQzNGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtpQkFDL0I7YUFDRjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxZQUFZLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLFNBQVMsR0FBUTtZQUNyQixJQUFJLEVBQUUsY0FBYztZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsRUFBRTtZQUNkLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxVQUFVO1lBQ3pCLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUE7UUFFRCxTQUFTLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUN6QixTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtTQUMvRDtRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUMxRSxDQUFDOytHQW5OVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwwUUNYakMseTFCQVdlOzs0RkRBRixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usd0JBQXdCO3FKQWtCekIsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0kscUJBQXFCO3NCQUE5QixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcclxuXHJcbmltcG9ydCB7IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UsIE5zQ29udGVudCB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQta2FybWEtcG9pbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va2FybWEtcG9pbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rYXJtYS1wb2ludHMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBLYXJtYVBvaW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBrcEFycmF5OiBhbnlbXSA9IFtdXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ1RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZVxyXG4gICkge1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxyXG4gICAgICBjb25zdCBsYW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpIVxyXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwgPSBudWxsXHJcbiAgQElucHV0KCkgZGF0YTogYW55ID0gW11cclxuICBASW5wdXQoKSBwQ2F0ZWdvcnkgPSAnJ1xyXG4gIEBJbnB1dCgpIGNvbmRpdGlvbjogYW55XHJcbiAgQE91dHB1dCgpIGNsaWNrQ2xhaW1LYXJtYVBvaW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXHJcbiAga3BEYXRhOiBhbnlcclxuICBASW5wdXQoKSBidG5DYXRlZ29yeSA9ICcnXHJcbiAga2FybWFQb2ludHNTbGlkZXI6IGFueVxyXG4gIGJ0bktQRGF0YTogYW55XHJcbiAgZGlzYWJsZUthcm1hUG9pbnRzID0gZmFsc2VcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdE51ZGdlRGF0YSgpXHJcblxyXG4gICAgaWYgKHRoaXMuY29udGVudCAmJiB0aGlzLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09IE5zQ29udGVudC5FQ291cnNlQ2F0ZWdvcnkuQ0FTRV9TVFVEWSkge1xyXG4gICAgICB0aGlzLmRpc2FibGVLYXJtYVBvaW50cyA9IHRydWVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZGl0aW9uID0gY2hhbmdlcy5jb25kaXRpb24gJiYgY2hhbmdlcy5jb25kaXRpb24uY3VycmVudFZhbHVlIHx8IG51bGxcclxuXHJcbiAgICBpZiAoIXRoaXMuY29uZGl0aW9uKSB7IHJldHVybiB9XHJcbiAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmV2ZW50KSB7XHJcbiAgICAgIC8vIEZvciBUT0Mga2FybWEgcG9pbnRzXHJcbiAgICAgIGlmICghdGhpcy5jb25kaXRpb24uaXNQb3N0QXNzZXNzbWVudCAmJiAodGhpcy5jb25kaXRpb24uY29udGVudCAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50Lmhhc093blByb3BlcnR5KCdjb21wbGV0aW9uUGVyY2VudGFnZScpXHJcbiAgICAgICAgJiYgIXRoaXMuY29uZGl0aW9uLmNvbnRlbnQuY29tcGxldGlvblBlcmNlbnRhZ2VcclxuICAgICAgICB8fCAodGhpcy5jb25kaXRpb24uY29udGVudCAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50LmNvbXBsZXRpb25QZXJjZW50YWdlIDwgMTAwKSlcclxuICAgICAgICAmJiAhdGhpcy5jb25kaXRpb24uY2VydERhdGEpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uaXNBY2JwQ2xhaW0pIHtcclxuICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdBQ0JQJylcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gdGhpcy5jb25kaXRpb24ucHJpbWFyeUNhdGVnb3J5LkNPVVJTRSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDbGFpbSAmJiAhdGhpcy5jb25kaXRpb24ubW9udGhseUNhcEV4Y2VlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnUmVzdW1lJylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiAhdGhpcy5jb25kaXRpb24uaXNQb3N0QXNzZXNzbWVudFxyXG4gICAgICAgICYmICgodGhpcy5jb25kaXRpb24uY29udGVudCAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDApXHJcbiAgICAgICAgICB8fCB0aGlzLmNvbmRpdGlvbi5jZXJ0RGF0YSkpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uaXNBY2JwQ291cnNlICYmIHRoaXMuY29uZGl0aW9uLmlzQWNicENsYWltICYmICF0aGlzLmNvbmRpdGlvbi5pc0NsYWltZWQpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdBQ0JQIENMQUlNJylcclxuICAgICAgICAgIHRoaXMuYnRuQ2F0ZWdvcnkgPSAnY2xhaW0nXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IHRoaXMuY29uZGl0aW9uLnByaW1hcnlDYXRlZ29yeS5DT1VSU0UpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiAhdGhpcy5jb25kaXRpb24uaXNBY2JwQ291cnNlICYmICF0aGlzLmNvbmRpdGlvbi5tb250aGx5Q2FwRXhjZWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdTdGFydCBhZ2FpbicpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgdGhpcy5jb25kaXRpb24ubW9udGhseUNhcEV4Y2VlZCAmJiAhdGhpcy5jb25kaXRpb24uaXNDb21wbGV0ZWRUaGlzTW9udGgpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1N0YXJ0IGFnYWluJylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiB0aGlzLmNvbmRpdGlvbi5pc1Bvc3RBc3Nlc3NtZW50XHJcbiAgICAgICAgJiYgdGhpcy5jb25kaXRpb24uc2hvd1Rha2VBc3Nlc3NtZW50XHJcbiAgICAgICAgJiYgdGhpcy5jb25kaXRpb24uc2hvd1Rha2VBc3Nlc3NtZW50LnBvc3RfYXNzZXNzbWVudCkge1xyXG4gICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdUYWtlIEFzc2Vzc21lbnQnKVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnRcclxuICAgICAgICAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50LnByaW1hcnlDYXRlZ29yeSkgIT09IHRoaXMuY29uZGl0aW9uLnByaW1hcnlDYXRlZ29yeS5SRVNPVVJDRVxyXG4gICAgICAgICYmICF0aGlzLmNvbmRpdGlvbi5lbnJvbGxCdG5Mb2FkaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmlzQWNicENvdXJzZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAnKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgIXRoaXMuY29uZGl0aW9uLm1vbnRobHlDYXBFeGNlZWQgJiZcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uLnVzZXJFbnJvbGxtZW50TGlzdCAmJiAhdGhpcy5jb25kaXRpb24udXNlckVucm9sbG1lbnRMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0Vucm9sbCcpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmlzUG9zdEFzc2Vzc21lbnRcclxuICAgICAgICAmJiAodGhpcy5jb25kaXRpb24uY29udGVudCAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50Lmhhc093blByb3BlcnR5KCdjb21wbGV0aW9uUGVyY2VudGFnZScpXHJcbiAgICAgICAgICAmJiAhdGhpcy5jb25kaXRpb24uY29udGVudC5jb21wbGV0aW9uUGVyY2VudGFnZVxyXG4gICAgICAgICAgfHwgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQgJiYgdGhpcy5jb25kaXRpb24uY29udGVudC5jb21wbGV0aW9uUGVyY2VudGFnZSA8IDEwMCkpKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5pc0FjYnBDbGFpbSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAnKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSB0aGlzLmNvbmRpdGlvbi5wcmltYXJ5Q2F0ZWdvcnkuQ09VUlNFKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29uZGl0aW9uLmlzQWNicENsYWltICYmICF0aGlzLmNvbmRpdGlvbi5tb250aGx5Q2FwRXhjZWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdSZXN1bWUnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmICF0aGlzLmNvbmRpdGlvbi5pc1Bvc3RBc3Nlc3NtZW50XHJcbiAgICAgICAgJiYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQgJiYgdGhpcy5jb25kaXRpb24uY29udGVudC5jb21wbGV0aW9uUGVyY2VudGFnZSA9PT0gMTAwKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgdGhpcy5jb25kaXRpb24uaXNBY2JwQ2xhaW0gJiYgIXRoaXMuY29uZGl0aW9uLmlzQ2xhaW1lZCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAgQ0xBSU0nKVxyXG4gICAgICAgICAgdGhpcy5idG5DYXRlZ29yeSA9ICdjbGFpbSdcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gdGhpcy5jb25kaXRpb24ucHJpbWFyeUNhdGVnb3J5LkNPVVJTRSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgIXRoaXMuY29uZGl0aW9uLm1vbnRobHlDYXBFeGNlZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1N0YXJ0IGFnYWluJylcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29uZGl0aW9uLmlzQWNicENvdXJzZSAmJiB0aGlzLmNvbmRpdGlvbi5tb250aGx5Q2FwRXhjZWVkICYmICF0aGlzLmNvbmRpdGlvbi5pc0NvbXBsZXRlZFRoaXNNb250aCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnU3RhcnQgYWdhaW4nKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgdGhpcy5jb25kaXRpb24uaXNQb3N0QXNzZXNzbWVudCAmJiB0aGlzLmNvbmRpdGlvbi5zaG93VGFrZUFzc2Vzc21lbnRcclxuICAgICAgICAmJiB0aGlzLmNvbmRpdGlvbi5zaG93VGFrZUFzc2Vzc21lbnQucG9zdF9hc3Nlc3NtZW50KSB7XHJcbiAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1Rha2UgQXNzZXNzbWVudCcpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiB0aGlzLmNvbmRpdGlvbi5yZXN1bWVEYXRhKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi51c2VyUmF0aW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnUmF0ZSB0aGlzIGNvdXJzZScpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24udXNlclJhdGluZykge1xyXG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0VkaXQgcmF0aW5nJylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEZvciBldmVudCBrYXJtYSBwb2ludHNcclxuICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmICF0aGlzLmNvbmRpdGlvbi5jb21wbGV0ZWRBZnRlckV4cGlyeSkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiB0aGlzLmNvbmRpdGlvbi5pc0Vucm9sbGVkKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY3VycmVudEV2ZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdDb21wbGV0ZScpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLnBhc3RFdmVudCAmJiB0aGlzLmNvbmRpdGlvbi5lbnJvbGxlZEV2ZW50KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5lbnJvbGxlZEV2ZW50LnN0YXR1cyA8IDIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uZW5yb2xsZWRFdmVudC5zdGF0dXMgPT09IDIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnY29tcGxldGVkJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmICF0aGlzLmNvbmRpdGlvbi5pc0Vucm9sbGVkKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY3VycmVudEV2ZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdDb21wbGV0ZScpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRLUERhdGEoYnRuVHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5kaXNwbGF5QnV0dG9uID09PSBidG5UeXBlICYmIGl0ZW0uZGlzcGxheUJ1dHRvbiAhPT0gJ0FDQlAgQ0xBSU0nKSB7XHJcbiAgICAgICAgdGhpcy5rcERhdGEgPSBpdGVtXHJcbiAgICAgICAgaWYgKHRoaXMua3BBcnJheS5maW5kSW5kZXgoKF9vYmo6IGFueSkgPT4gX29iai5kaXNwbGF5QnV0dG9uID09PSBpdGVtLmRpc3BsYXlCdXR0b24pID09PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5rcEFycmF5LnB1c2godGhpcy5rcERhdGEpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRpc3BsYXlCdXR0b24gPT09ICdBQ0JQIENMQUlNJykge1xyXG4gICAgICAgIHRoaXMuYnRuS1BEYXRhID0gaXRlbVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DbGlja09mQ2xhaW0oKSB7XHJcbiAgICB0aGlzLmNsaWNrQ2xhaW1LYXJtYVBvaW50cy5lbWl0KCdjbGFpbScpXHJcbiAgICB0aGlzLmJ0bkNhdGVnb3J5ID0gJydcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdE51ZGdlRGF0YSgpIHtcclxuICAgIGNvbnN0IG51ZGdlRGF0YTogYW55ID0ge1xyXG4gICAgICB0eXBlOiAna2FybWEtcG9pbnRzJyxcclxuICAgICAgaWNvbnNEaXNwbGF5OiBmYWxzZSxcclxuICAgICAgY2FyZENsYXNzOiAnc2xpZGVyLWNvbnRhaW5lcicsXHJcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICB3aWR0aDogJycsXHJcbiAgICAgIHNsaWRlckRhdGE6IFtdLFxyXG4gICAgICBuZWdhdGl2ZURpc3BsYXk6IGZhbHNlLFxyXG4gICAgICAnZG90LWRlZmF1bHQnOiAnZG90LWdyZXknLFxyXG4gICAgICAnZG90LWFjdGl2ZSc6ICdkb3QtYWN0aXZlJyxcclxuICAgIH1cclxuXHJcbiAgICBudWRnZURhdGEuc2xpZGVyRGF0YSA9IFtdXHJcbiAgICBudWRnZURhdGEuc2xpZGVyRGF0YSA9IHRoaXMua3BBcnJheVxyXG4gICAgdGhpcy5rYXJtYVBvaW50c1NsaWRlciA9IG51ZGdlRGF0YVxyXG4gIH1cclxuXHJcbiAgZ2V0RHluYW1pY1RleHQoaGVsVGV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5wQ2F0ZWdvcnkgIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBoZWxUZXh0LnJlcGxhY2UoJ2NvdXJzZScsIHRoaXMucENhdGVnb3J5LnRvTG93ZXJDYXNlKCkpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGVsVGV4dFxyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ1RyYW5zbGF0aW9ucy50cmFuc2xhdGVMYWJlbFdpdGhvdXRzcGFjZShsYWJlbCwgdHlwZSwgJycpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVLYXJtYVBvaW50c1wiPlxyXG4gICAgPHdzLXdpZGdldC1zbGlkZXJzLWR5bmFtaWMgW3dpZGdldERhdGFdPVwia2FybWFQb2ludHNTbGlkZXJcIj48L3dzLXdpZGdldC1zbGlkZXJzLWR5bmFtaWM+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ0bkNhdGVnb3J5ID09PSAnY2xhaW0nXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0xIGNsYWltLWJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrT2ZDbGFpbSgpXCIgPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaWNvbnMvaG9tZS9rYXJtYS1iYWRnZS5zdmdcIiB3aWR0aD1cIjI4cHhcIiBjbGFzcz1cIm1yLTJcIiBhbHQ9XCJrYXJtYS1wb2ludHMgaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnRuS1BEYXRhPy50ZXh0QmVmb3JlSWNvblwiPnt7IGJ0bktQRGF0YS50ZXh0QmVmb3JlSWNvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnRuS1BEYXRhLnBvaW50c1wiPnt7IGJ0bktQRGF0YS5wb2ludHMgfX0ge3sgdHJhbnNsYXRlTGFiZWxzKGJ0bktQRGF0YS50ZXh0QWZ0ZXJQb2ludHMsICdhcHBLYXJtYXBvaW50c1BhbmVsJykgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJ0bktQRGF0YT8udGV4dEFmdGVySWNvblwiPnt7IHRyYW5zbGF0ZUxhYmVscyhidG5LUERhdGEudGV4dEFmdGVySWNvbiwgJ2FwcEthcm1hcG9pbnRzUGFuZWwnKSB9fTwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+IFxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { NsContent } from '@sunbird-cb/utils-v2';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
import * as i2 from "@sunbird-cb/utils-v2";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "../../../sliders-dynamic/sliders-dynamic.component";
|
|
8
|
+
export class KarmaPointsComponent {
|
|
9
|
+
constructor(translate, langTranslations) {
|
|
10
|
+
this.translate = translate;
|
|
11
|
+
this.langTranslations = langTranslations;
|
|
12
|
+
this.kpArray = [];
|
|
13
|
+
this.content = null;
|
|
14
|
+
this.data = [];
|
|
15
|
+
this.pCategory = '';
|
|
16
|
+
this.clickClaimKarmaPoints = new EventEmitter();
|
|
17
|
+
this.btnCategory = '';
|
|
18
|
+
this.disableKarmaPoints = false;
|
|
19
|
+
if (localStorage.getItem('websiteLanguage')) {
|
|
20
|
+
this.translate.setDefaultLang('en');
|
|
21
|
+
const lang = localStorage.getItem('websiteLanguage');
|
|
22
|
+
this.translate.use(lang);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.constructNudgeData();
|
|
27
|
+
if (this.content && this.content.courseCategory === NsContent.ECourseCategory.CASE_STUDY) {
|
|
28
|
+
this.disableKarmaPoints = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
this.condition = changes.condition && changes.condition.currentValue || null;
|
|
33
|
+
if (!this.condition) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (this.condition && !this.condition.event) {
|
|
37
|
+
// For TOC karma points
|
|
38
|
+
if (!this.condition.isPostAssessment && (this.condition.content && this.condition.content.hasOwnProperty('completionPercentage')
|
|
39
|
+
&& !this.condition.content.completionPercentage
|
|
40
|
+
|| (this.condition.content && this.condition.content.completionPercentage < 100))
|
|
41
|
+
&& !this.condition.certData) {
|
|
42
|
+
if (this.condition.isAcbpClaim) {
|
|
43
|
+
this.getKPData('ACBP');
|
|
44
|
+
}
|
|
45
|
+
if (this.condition.content.primaryCategory === this.condition.primaryCategory.COURSE) {
|
|
46
|
+
if (!this.condition.isAcbpClaim && !this.condition.monthlyCapExceed) {
|
|
47
|
+
this.getKPData('Resume');
|
|
48
|
+
}
|
|
49
|
+
else if (this.content.courseCategory === 'Learning Pathway') {
|
|
50
|
+
this.getKPData('Resume');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (this.condition && !this.condition.isPostAssessment
|
|
55
|
+
&& ((this.condition.content && this.condition.content.completionPercentage === 100)
|
|
56
|
+
|| this.condition.certData)) {
|
|
57
|
+
if (this.condition.isAcbpCourse && this.condition.isAcbpClaim && !this.condition.isClaimed) {
|
|
58
|
+
this.getKPData('ACBP CLAIM');
|
|
59
|
+
this.btnCategory = 'claim';
|
|
60
|
+
}
|
|
61
|
+
if (this.condition.content.primaryCategory === this.condition.primaryCategory.COURSE) {
|
|
62
|
+
if (this.condition && !this.condition.isAcbpCourse && !this.condition.monthlyCapExceed) {
|
|
63
|
+
this.getKPData('Start again');
|
|
64
|
+
}
|
|
65
|
+
if (!this.condition.isAcbpCourse && this.condition.monthlyCapExceed && !this.condition.isCompletedThisMonth) {
|
|
66
|
+
this.getKPData('Start again');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (this.condition && this.condition.isPostAssessment
|
|
71
|
+
&& this.condition.showTakeAssessment
|
|
72
|
+
&& this.condition.showTakeAssessment.post_assessment) {
|
|
73
|
+
this.getKPData('Take Assessment');
|
|
74
|
+
}
|
|
75
|
+
if (this.condition && (this.condition.content
|
|
76
|
+
&& this.condition.content.primaryCategory) !== this.condition.primaryCategory.RESOURCE
|
|
77
|
+
&& !this.condition.enrollBtnLoading) {
|
|
78
|
+
if (this.condition.isAcbpCourse) {
|
|
79
|
+
this.getKPData('ACBP');
|
|
80
|
+
}
|
|
81
|
+
if (!this.condition.isAcbpCourse && !this.condition.monthlyCapExceed &&
|
|
82
|
+
this.condition.userEnrollmentList && !this.condition.userEnrollmentList.length) {
|
|
83
|
+
this.getKPData('Enroll');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (this.condition && !this.condition.isPostAssessment
|
|
87
|
+
&& (this.condition.content && this.condition.content.hasOwnProperty('completionPercentage')
|
|
88
|
+
&& !this.condition.content.completionPercentage
|
|
89
|
+
|| (this.condition.content && this.condition.content.completionPercentage < 100))) {
|
|
90
|
+
if (this.condition.isAcbpClaim) {
|
|
91
|
+
this.getKPData('ACBP');
|
|
92
|
+
}
|
|
93
|
+
if (this.condition.content.primaryCategory === this.condition.primaryCategory.COURSE) {
|
|
94
|
+
if (!this.condition.isAcbpClaim && !this.condition.monthlyCapExceed) {
|
|
95
|
+
this.getKPData('Resume');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (this.condition && !this.condition.isPostAssessment
|
|
100
|
+
&& (this.condition.content && this.condition.content.completionPercentage === 100)) {
|
|
101
|
+
if (this.condition.isAcbpCourse && this.condition.isAcbpClaim && !this.condition.isClaimed) {
|
|
102
|
+
this.getKPData('ACBP CLAIM');
|
|
103
|
+
this.btnCategory = 'claim';
|
|
104
|
+
}
|
|
105
|
+
if (this.condition.content.primaryCategory === this.condition.primaryCategory.COURSE) {
|
|
106
|
+
if (!this.condition.isAcbpCourse && !this.condition.monthlyCapExceed) {
|
|
107
|
+
this.getKPData('Start again');
|
|
108
|
+
}
|
|
109
|
+
if (!this.condition.isAcbpCourse && this.condition.monthlyCapExceed && !this.condition.isCompletedThisMonth) {
|
|
110
|
+
this.getKPData('Start again');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (this.condition && this.condition.isPostAssessment && this.condition.showTakeAssessment
|
|
115
|
+
&& this.condition.showTakeAssessment.post_assessment) {
|
|
116
|
+
this.getKPData('Take Assessment');
|
|
117
|
+
}
|
|
118
|
+
if (this.condition && this.condition.resumeData) {
|
|
119
|
+
if (!this.condition.userRating) {
|
|
120
|
+
this.getKPData('Rate this course');
|
|
121
|
+
}
|
|
122
|
+
if (this.condition.userRating) {
|
|
123
|
+
this.getKPData('Edit rating');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// For event karma points
|
|
129
|
+
if (this.condition && !this.condition.completedAfterExpiry) {
|
|
130
|
+
if (this.condition && this.condition.isEnrolled) {
|
|
131
|
+
if (this.condition.currentEvent) {
|
|
132
|
+
this.getKPData('Complete');
|
|
133
|
+
}
|
|
134
|
+
if (this.condition.pastEvent && this.condition.enrolledEvent) {
|
|
135
|
+
if (this.condition.enrolledEvent.status < 2) {
|
|
136
|
+
this.getKPData('');
|
|
137
|
+
}
|
|
138
|
+
if (this.condition.enrolledEvent.status === 2) {
|
|
139
|
+
this.getKPData('completed');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (this.condition && !this.condition.isEnrolled) {
|
|
144
|
+
if (this.condition.currentEvent) {
|
|
145
|
+
this.getKPData('Complete');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
this.addBadgeSlide();
|
|
151
|
+
}
|
|
152
|
+
getKPData(btnType) {
|
|
153
|
+
this.data?.forEach((item) => {
|
|
154
|
+
if (item.displayButton === btnType && item.displayButton !== 'ACBP CLAIM') {
|
|
155
|
+
this.kpData = item;
|
|
156
|
+
if (this.kpArray.findIndex((_obj) => _obj.displayButton === item.displayButton) === -1) {
|
|
157
|
+
this.kpArray.push(this.kpData);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (item.displayButton === 'ACBP CLAIM') {
|
|
161
|
+
this.btnKPData = item;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
addBadgeSlide() {
|
|
166
|
+
const badgeDetails = this.baseContentReadData?.badgeDetails_v1;
|
|
167
|
+
if (!badgeDetails || !badgeDetails.length) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const badge = badgeDetails[0];
|
|
171
|
+
if (!badge.badgeEarningDateEnabled) {
|
|
172
|
+
const isEligibleslide = this?.content?.completionPercentage === undefined || this?.content?.completionPercentage < 100;
|
|
173
|
+
const badgeSlide = {
|
|
174
|
+
displayButton: 'Quick Learner Badge',
|
|
175
|
+
textBeforeIcon: this.getQuickLearnerBadgeText(badge),
|
|
176
|
+
points: '',
|
|
177
|
+
textAfterPoints: '',
|
|
178
|
+
toolTipText: 'quickLearnerBadgeTip',
|
|
179
|
+
};
|
|
180
|
+
const badgeExists = this.kpArray.find((item) => item.displayButton === 'Quick Learner Badge');
|
|
181
|
+
if (!badgeExists && isEligibleslide) {
|
|
182
|
+
this.kpArray.push(badgeSlide);
|
|
183
|
+
this.constructNudgeData();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
const badgeTime = badge.badgeEarningDateTime;
|
|
188
|
+
const currentTime = Date.now();
|
|
189
|
+
const isEligibleslide = this?.content?.completionPercentage === undefined || this?.content?.completionPercentage < 100;
|
|
190
|
+
const badgeSlide = {
|
|
191
|
+
displayButton: 'Quick Learner Badge',
|
|
192
|
+
textBeforeIcon: this.getQuickLearnerBadgeText(badge),
|
|
193
|
+
points: '',
|
|
194
|
+
textAfterPoints: '',
|
|
195
|
+
toolTipText: 'quickLearnerBadgeTip',
|
|
196
|
+
};
|
|
197
|
+
const badgeExists = this.kpArray.find((item) => item.displayButton === 'Quick Learner Badge');
|
|
198
|
+
if (isEligibleslide) {
|
|
199
|
+
if (badge?.badgeEarningDateEnabled === true) {
|
|
200
|
+
if (badgeTime > currentTime) {
|
|
201
|
+
if (!badgeExists) {
|
|
202
|
+
this.kpArray.push(badgeSlide);
|
|
203
|
+
this.constructNudgeData();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
if (!badgeExists) {
|
|
209
|
+
this.kpArray.push(badgeSlide);
|
|
210
|
+
this.constructNudgeData();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
onClickOfClaim() {
|
|
217
|
+
this.clickClaimKarmaPoints.emit('claim');
|
|
218
|
+
this.btnCategory = '';
|
|
219
|
+
}
|
|
220
|
+
constructNudgeData() {
|
|
221
|
+
const nudgeData = {
|
|
222
|
+
type: 'karma-points',
|
|
223
|
+
iconsDisplay: false,
|
|
224
|
+
cardClass: 'slider-container',
|
|
225
|
+
height: 'auto',
|
|
226
|
+
width: '',
|
|
227
|
+
sliderData: [],
|
|
228
|
+
negativeDisplay: false,
|
|
229
|
+
'dot-default': 'dot-grey',
|
|
230
|
+
'dot-active': 'dot-active',
|
|
231
|
+
};
|
|
232
|
+
nudgeData.sliderData = [];
|
|
233
|
+
nudgeData.sliderData = this.kpArray;
|
|
234
|
+
this.karmaPointsSlider = nudgeData;
|
|
235
|
+
}
|
|
236
|
+
getDynamicText(helText) {
|
|
237
|
+
if (this.pCategory !== '') {
|
|
238
|
+
return helText.replace('course', this.pCategory.toLowerCase());
|
|
239
|
+
}
|
|
240
|
+
return helText;
|
|
241
|
+
}
|
|
242
|
+
translateLabels(label, type) {
|
|
243
|
+
return this.langTranslations.translateLabelWithoutspace(label, type, '');
|
|
244
|
+
}
|
|
245
|
+
getQuickLearnerBadgeText(badge) {
|
|
246
|
+
const courseCategory = this.content?.courseCategory?.toLowerCase() || 'course';
|
|
247
|
+
if (this.content?.courseCategory === 'Curated Program') {
|
|
248
|
+
if (badge?.criteria === 'partialRandomCompletion') {
|
|
249
|
+
return `Earn the AI Daksh badge by completing any ${badge?.requiredCourseCompletions} courses of this program.`;
|
|
250
|
+
}
|
|
251
|
+
return `By completing this ${courseCategory} earn Quick Learner Badge`;
|
|
252
|
+
}
|
|
253
|
+
return `By completing this ${courseCategory} earn Quick Learner Badge`;
|
|
254
|
+
}
|
|
255
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KarmaPointsComponent, deps: [{ token: i1.TranslateService }, { token: i2.MultilingualTranslationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
256
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: KarmaPointsComponent, selector: "ws-widget-karma-points", inputs: { content: "content", data: "data", pCategory: "pCategory", condition: "condition", baseContentReadData: "baseContentReadData", btnCategory: "btnCategory" }, outputs: { clickClaimKarmaPoints: "clickClaimKarmaPoints" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!disableKarmaPoints\">\n <ws-widget-sliders-dynamic [widgetData]=\"karmaPointsSlider\" [baseContentReadData] = \"baseContentReadData\"></ws-widget-sliders-dynamic>\n\n <ng-container *ngIf=\"btnCategory === 'claim'\">\n <button class=\"flex flex-wrap gap-1 claim-button\" (click)=\"onClickOfClaim()\" >\n <img src=\"/assets/icons/home/karma-badge.svg\" width=\"28px\" class=\"mr-2\" alt=\"karma-points image\" />\n <div *ngIf=\"btnKPData?.textBeforeIcon\">{{ btnKPData.textBeforeIcon }}</div>\n <div *ngIf=\"btnKPData.points\">{{ btnKPData.points }} {{ translateLabels(btnKPData.textAfterPoints, 'appKarmapointsPanel') }}</div>\n <div *ngIf=\"btnKPData?.textAfterIcon\">{{ translateLabels(btnKPData.textAfterIcon, 'appKarmapointsPanel') }}</div>\n </button>\n </ng-container> \n</ng-container>", styles: [".claim-button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:2px;text-align:center;color:#fff!important;border-radius:64px;padding:8px 0;background-color:#ef951e;cursor:pointer;border:none;font-weight:700;width:100%;font-size:14px;margin:16px auto 0;max-width:344px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SlidersDynamicComponent, selector: "ws-widget-sliders-dynamic", inputs: ["widgetData", "baseContentReadData"] }] }); }
|
|
257
|
+
}
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KarmaPointsComponent, decorators: [{
|
|
259
|
+
type: Component,
|
|
260
|
+
args: [{ selector: 'ws-widget-karma-points', template: "<ng-container *ngIf=\"!disableKarmaPoints\">\n <ws-widget-sliders-dynamic [widgetData]=\"karmaPointsSlider\" [baseContentReadData] = \"baseContentReadData\"></ws-widget-sliders-dynamic>\n\n <ng-container *ngIf=\"btnCategory === 'claim'\">\n <button class=\"flex flex-wrap gap-1 claim-button\" (click)=\"onClickOfClaim()\" >\n <img src=\"/assets/icons/home/karma-badge.svg\" width=\"28px\" class=\"mr-2\" alt=\"karma-points image\" />\n <div *ngIf=\"btnKPData?.textBeforeIcon\">{{ btnKPData.textBeforeIcon }}</div>\n <div *ngIf=\"btnKPData.points\">{{ btnKPData.points }} {{ translateLabels(btnKPData.textAfterPoints, 'appKarmapointsPanel') }}</div>\n <div *ngIf=\"btnKPData?.textAfterIcon\">{{ translateLabels(btnKPData.textAfterIcon, 'appKarmapointsPanel') }}</div>\n </button>\n </ng-container> \n</ng-container>", styles: [".claim-button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:2px;text-align:center;color:#fff!important;border-radius:64px;padding:8px 0;background-color:#ef951e;cursor:pointer;border:none;font-weight:700;width:100%;font-size:14px;margin:16px auto 0;max-width:344px}\n"] }]
|
|
261
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.MultilingualTranslationsService }]; }, propDecorators: { content: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], data: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], pCategory: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], condition: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], baseContentReadData: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], clickClaimKarmaPoints: [{
|
|
272
|
+
type: Output
|
|
273
|
+
}], btnCategory: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}] } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FybWEtcG9pbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL2thcm1hLXBvaW50cy9rYXJtYS1wb2ludHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2Mva2FybWEtcG9pbnRzL2thcm1hLXBvaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQTtBQUd4RyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7QUFRakYsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLFNBQTJCLEVBQzNCLGdCQUFpRDtRQURqRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBSDNELFlBQU8sR0FBVSxFQUFFLENBQUE7UUFZVixZQUFPLEdBQThCLElBQUksQ0FBQTtRQUN6QyxTQUFJLEdBQVEsRUFBRSxDQUFBO1FBQ2QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUdiLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7UUFFbkQsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFHekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFBO1FBakJ4QixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFFLENBQUE7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDekI7SUFDSCxDQUFDO0lBY0QsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtZQUN4RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFBO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTTtTQUFFO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzNDLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQzttQkFDM0gsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0I7bUJBQzVDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDLENBQUM7bUJBQzlFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7aUJBQ3ZCO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtxQkFDekI7eUJBQU0sSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSyxrQkFBa0IsRUFBRzt3QkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtxQkFFekI7aUJBQ0Y7YUFDRjtZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCO21CQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEtBQUssR0FBRyxDQUFDO3VCQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7b0JBQzFGLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7b0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFBO2lCQUMzQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BGLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtxQkFDOUI7b0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFO3dCQUMzRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO3FCQUM5QjtpQkFDRjthQUNGO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCO21CQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQjttQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNsQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzttQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUTttQkFDbkYsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO29CQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUN2QjtnQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjtvQkFDbEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO29CQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUN6QjthQUNGO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7bUJBQ2pELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDO3VCQUN0RixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFvQjt1QkFDNUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUVyRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUN2QjtnQkFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO2FBQ0Y7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjttQkFDakQsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO29CQUMxRixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQTtpQkFDM0I7Z0JBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO29CQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO3dCQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO3FCQUM5QjtvQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUU7d0JBQzNHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7cUJBQzlCO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQjttQkFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNsQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7aUJBQ25DO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7aUJBQzlCO2FBQ0Y7U0FDRjthQUFNO1lBQ0wseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzFELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtvQkFDL0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTt3QkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtxQkFDM0I7b0JBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTt3QkFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO3lCQUNuQjt3QkFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7eUJBQzVCO3FCQUNGO2lCQUNGO2dCQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO29CQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO3dCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO3FCQUMzQjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFlBQVksRUFBRTtnQkFDekUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUMzRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7aUJBQy9CO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssWUFBWSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNILGFBQWE7UUFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFBO1FBRTlELElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE9BQU07U0FDUDtRQUVELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3QixJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFO1lBQ2xDLE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEtBQUssU0FBUyxJQUFLLElBQUksRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEdBQUcsR0FBRyxDQUFBO1lBQ3ZILE1BQU0sVUFBVSxHQUFHO2dCQUNqQixhQUFhLEVBQUUscUJBQXFCO2dCQUNwQyxjQUFjLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQztnQkFDcEQsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLFdBQVcsRUFBRSxzQkFBc0I7YUFDcEMsQ0FBQTtZQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNuQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsQ0FDNUQsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLElBQUksZUFBZSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDN0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7YUFDMUI7U0FDRjthQUFNO1lBQ0wsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFBO1lBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixLQUFLLFNBQVMsSUFBSyxJQUFJLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTtZQUN2SCxNQUFNLFVBQVUsR0FBRztnQkFDakIsYUFBYSxFQUFFLHFCQUFxQjtnQkFDcEMsY0FBYyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BELE1BQU0sRUFBRSxFQUFFO2dCQUNWLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDLENBQUE7WUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUsscUJBQXFCLENBQzVELENBQUE7WUFFRCxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsSUFBSSxLQUFLLEVBQUUsdUJBQXVCLEtBQUssSUFBSSxFQUFHO29CQUM5QyxJQUFJLFNBQVMsR0FBRyxXQUFXLEVBQUU7d0JBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUU7NEJBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBOzRCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTt5QkFDMUI7cUJBQ0Y7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7d0JBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO3FCQUMxQjtpQkFDRjthQUNGO1NBQ0Y7SUFFRCxDQUFDO0lBQ0MsY0FBYztRQUNaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLFNBQVMsR0FBUTtZQUNyQixJQUFJLEVBQUUsY0FBYztZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsRUFBRTtZQUNkLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxVQUFVO1lBQ3pCLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUE7UUFFRCxTQUFTLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUN6QixTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtTQUMvRDtRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRU8sd0JBQXdCLENBQUMsS0FBVTtRQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsSUFBSSxRQUFRLENBQUE7UUFFOUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsS0FBSyxpQkFBaUIsRUFBRTtZQUN0RCxJQUFJLEtBQUssRUFBRSxRQUFRLEtBQUsseUJBQXlCLEVBQUU7Z0JBQ2pELE9BQU8sNkNBQTZDLEtBQUssRUFBRSx5QkFBeUIsMkJBQTJCLENBQUE7YUFDaEg7WUFDRCxPQUFPLHNCQUFzQixjQUFjLDJCQUEyQixDQUFBO1NBQ3ZFO1FBQ0QsT0FBTyxzQkFBc0IsY0FBYywyQkFBMkIsQ0FBQTtJQUN4RSxDQUFDOytHQTNSVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzVENYakMsbTNCQVdlOzs0RkRBRixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usd0JBQXdCO3FKQWtCekIsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFRSxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG5pbXBvcnQgeyBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLCBOc0NvbnRlbnQgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3Mtd2lkZ2V0LWthcm1hLXBvaW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYXJtYS1wb2ludHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rYXJtYS1wb2ludHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBLYXJtYVBvaW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAga3BBcnJheTogYW55W10gPSBbXVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmdUcmFuc2xhdGlvbnM6IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2VcbiAgKSB7XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2VuJylcbiAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQgfCBudWxsID0gbnVsbFxuICBASW5wdXQoKSBkYXRhOiBhbnkgPSBbXVxuICBASW5wdXQoKSBwQ2F0ZWdvcnkgPSAnJ1xuICBASW5wdXQoKSBjb25kaXRpb246IGFueVxuICBASW5wdXQoKSBiYXNlQ29udGVudFJlYWREYXRhOiBhbnlcbiAgQE91dHB1dCgpIGNsaWNrQ2xhaW1LYXJtYVBvaW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIGtwRGF0YTogYW55XG4gIEBJbnB1dCgpIGJ0bkNhdGVnb3J5ID0gJydcbiAga2FybWFQb2ludHNTbGlkZXI6IGFueVxuICBidG5LUERhdGE6IGFueVxuICBkaXNhYmxlS2FybWFQb2ludHMgPSBmYWxzZVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uc3RydWN0TnVkZ2VEYXRhKClcbiAgICBpZiAodGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudC5jb3Vyc2VDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVDb3Vyc2VDYXRlZ29yeS5DQVNFX1NUVURZKSB7XG4gICAgICB0aGlzLmRpc2FibGVLYXJtYVBvaW50cyA9IHRydWVcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jb25kaXRpb24gPSBjaGFuZ2VzLmNvbmRpdGlvbiAmJiBjaGFuZ2VzLmNvbmRpdGlvbi5jdXJyZW50VmFsdWUgfHwgbnVsbFxuICAgIGlmICghdGhpcy5jb25kaXRpb24pIHsgcmV0dXJuIH1cbiAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmV2ZW50KSB7XG4gICAgICAvLyBGb3IgVE9DIGthcm1hIHBvaW50c1xuICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc1Bvc3RBc3Nlc3NtZW50ICYmICh0aGlzLmNvbmRpdGlvbi5jb250ZW50ICYmIHRoaXMuY29uZGl0aW9uLmNvbnRlbnQuaGFzT3duUHJvcGVydHkoJ2NvbXBsZXRpb25QZXJjZW50YWdlJylcbiAgICAgICAgJiYgIXRoaXMuY29uZGl0aW9uLmNvbnRlbnQuY29tcGxldGlvblBlcmNlbnRhZ2VcbiAgICAgICAgfHwgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQgJiYgdGhpcy5jb25kaXRpb24uY29udGVudC5jb21wbGV0aW9uUGVyY2VudGFnZSA8IDEwMCkpXG4gICAgICAgICYmICF0aGlzLmNvbmRpdGlvbi5jZXJ0RGF0YSkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uaXNBY2JwQ2xhaW0pIHtcbiAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnQUNCUCcpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IHRoaXMuY29uZGl0aW9uLnByaW1hcnlDYXRlZ29yeS5DT1VSU0UpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuY29uZGl0aW9uLmlzQWNicENsYWltICYmICF0aGlzLmNvbmRpdGlvbi5tb250aGx5Q2FwRXhjZWVkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnUmVzdW1lJylcbiAgICAgICAgICB9IGVsc2UgaWYgKCB0aGlzLmNvbnRlbnQuY291cnNlQ2F0ZWdvcnkgPT09ICdMZWFybmluZyBQYXRod2F5JyApIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdSZXN1bWUnKVxuICAgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmlzUG9zdEFzc2Vzc21lbnRcbiAgICAgICAgJiYgKCh0aGlzLmNvbmRpdGlvbi5jb250ZW50ICYmIHRoaXMuY29uZGl0aW9uLmNvbnRlbnQuY29tcGxldGlvblBlcmNlbnRhZ2UgPT09IDEwMClcbiAgICAgICAgICB8fCB0aGlzLmNvbmRpdGlvbi5jZXJ0RGF0YSkpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmlzQWNicENvdXJzZSAmJiB0aGlzLmNvbmRpdGlvbi5pc0FjYnBDbGFpbSAmJiAhdGhpcy5jb25kaXRpb24uaXNDbGFpbWVkKSB7XG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAgQ0xBSU0nKVxuICAgICAgICAgIHRoaXMuYnRuQ2F0ZWdvcnkgPSAnY2xhaW0nXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IHRoaXMuY29uZGl0aW9uLnByaW1hcnlDYXRlZ29yeS5DT1VSU0UpIHtcbiAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmlzQWNicENvdXJzZSAmJiAhdGhpcy5jb25kaXRpb24ubW9udGhseUNhcEV4Y2VlZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1N0YXJ0IGFnYWluJylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRoaXMuY29uZGl0aW9uLmlzQWNicENvdXJzZSAmJiB0aGlzLmNvbmRpdGlvbi5tb250aGx5Q2FwRXhjZWVkICYmICF0aGlzLmNvbmRpdGlvbi5pc0NvbXBsZXRlZFRoaXNNb250aCkge1xuICAgICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1N0YXJ0IGFnYWluJylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmIHRoaXMuY29uZGl0aW9uLmlzUG9zdEFzc2Vzc21lbnRcbiAgICAgICAgJiYgdGhpcy5jb25kaXRpb24uc2hvd1Rha2VBc3Nlc3NtZW50XG4gICAgICAgICYmIHRoaXMuY29uZGl0aW9uLnNob3dUYWtlQXNzZXNzbWVudC5wb3N0X2Fzc2Vzc21lbnQpIHtcbiAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1Rha2UgQXNzZXNzbWVudCcpXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiAodGhpcy5jb25kaXRpb24uY29udGVudFxuICAgICAgICAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50LnByaW1hcnlDYXRlZ29yeSkgIT09IHRoaXMuY29uZGl0aW9uLnByaW1hcnlDYXRlZ29yeS5SRVNPVVJDRVxuICAgICAgICAmJiAhdGhpcy5jb25kaXRpb24uZW5yb2xsQnRuTG9hZGluZykge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uaXNBY2JwQ291cnNlKSB7XG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAnKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgIXRoaXMuY29uZGl0aW9uLm1vbnRobHlDYXBFeGNlZWQgJiZcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbi51c2VyRW5yb2xsbWVudExpc3QgJiYgIXRoaXMuY29uZGl0aW9uLnVzZXJFbnJvbGxtZW50TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnRW5yb2xsJylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmlzUG9zdEFzc2Vzc21lbnRcbiAgICAgICAgJiYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQgJiYgdGhpcy5jb25kaXRpb24uY29udGVudC5oYXNPd25Qcm9wZXJ0eSgnY29tcGxldGlvblBlcmNlbnRhZ2UnKVxuICAgICAgICAgICYmICF0aGlzLmNvbmRpdGlvbi5jb250ZW50LmNvbXBsZXRpb25QZXJjZW50YWdlXG4gICAgICAgICAgfHwgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQgJiYgdGhpcy5jb25kaXRpb24uY29udGVudC5jb21wbGV0aW9uUGVyY2VudGFnZSA8IDEwMCkpKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmlzQWNicENsYWltKSB7XG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ0FDQlAnKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSB0aGlzLmNvbmRpdGlvbi5wcmltYXJ5Q2F0ZWdvcnkuQ09VUlNFKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDbGFpbSAmJiAhdGhpcy5jb25kaXRpb24ubW9udGhseUNhcEV4Y2VlZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1Jlc3VtZScpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiAhdGhpcy5jb25kaXRpb24uaXNQb3N0QXNzZXNzbWVudFxuICAgICAgICAmJiAodGhpcy5jb25kaXRpb24uY29udGVudCAmJiB0aGlzLmNvbmRpdGlvbi5jb250ZW50LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSAxMDApKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgdGhpcy5jb25kaXRpb24uaXNBY2JwQ2xhaW0gJiYgIXRoaXMuY29uZGl0aW9uLmlzQ2xhaW1lZCkge1xuICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdBQ0JQIENMQUlNJylcbiAgICAgICAgICB0aGlzLmJ0bkNhdGVnb3J5ID0gJ2NsYWltJ1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSB0aGlzLmNvbmRpdGlvbi5wcmltYXJ5Q2F0ZWdvcnkuQ09VUlNFKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgIXRoaXMuY29uZGl0aW9uLm1vbnRobHlDYXBFeGNlZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdTdGFydCBhZ2FpbicpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5pc0FjYnBDb3Vyc2UgJiYgdGhpcy5jb25kaXRpb24ubW9udGhseUNhcEV4Y2VlZCAmJiAhdGhpcy5jb25kaXRpb24uaXNDb21wbGV0ZWRUaGlzTW9udGgpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0S1BEYXRhKCdTdGFydCBhZ2FpbicpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgdGhpcy5jb25kaXRpb24uaXNQb3N0QXNzZXNzbWVudCAmJiB0aGlzLmNvbmRpdGlvbi5zaG93VGFrZUFzc2Vzc21lbnRcbiAgICAgICAgJiYgdGhpcy5jb25kaXRpb24uc2hvd1Rha2VBc3Nlc3NtZW50LnBvc3RfYXNzZXNzbWVudCkge1xuICAgICAgICB0aGlzLmdldEtQRGF0YSgnVGFrZSBBc3Nlc3NtZW50JylcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmIHRoaXMuY29uZGl0aW9uLnJlc3VtZURhdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi51c2VyUmF0aW5nKSB7XG4gICAgICAgICAgdGhpcy5nZXRLUERhdGEoJ1JhdGUgdGhpcyBjb3Vyc2UnKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLnVzZXJSYXRpbmcpIHtcbiAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnRWRpdCByYXRpbmcnKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBldmVudCBrYXJtYSBwb2ludHNcbiAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAmJiAhdGhpcy5jb25kaXRpb24uY29tcGxldGVkQWZ0ZXJFeHBpcnkpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uICYmIHRoaXMuY29uZGl0aW9uLmlzRW5yb2xsZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY3VycmVudEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnQ29tcGxldGUnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5wYXN0RXZlbnQgJiYgdGhpcy5jb25kaXRpb24uZW5yb2xsZWRFdmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLmVucm9sbGVkRXZlbnQuc3RhdHVzIDwgMikge1xuICAgICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbi5lbnJvbGxlZEV2ZW50LnN0YXR1cyA9PT0gMikge1xuICAgICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnY29tcGxldGVkJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24gJiYgIXRoaXMuY29uZGl0aW9uLmlzRW5yb2xsZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24uY3VycmVudEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmdldEtQRGF0YSgnQ29tcGxldGUnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFkZEJhZGdlU2xpZGUoKVxuICB9XG5cbiAgZ2V0S1BEYXRhKGJ0blR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbS5kaXNwbGF5QnV0dG9uID09PSBidG5UeXBlICYmIGl0ZW0uZGlzcGxheUJ1dHRvbiAhPT0gJ0FDQlAgQ0xBSU0nKSB7XG4gICAgICAgIHRoaXMua3BEYXRhID0gaXRlbVxuICAgICAgICBpZiAodGhpcy5rcEFycmF5LmZpbmRJbmRleCgoX29iajogYW55KSA9PiBfb2JqLmRpc3BsYXlCdXR0b24gPT09IGl0ZW0uZGlzcGxheUJ1dHRvbikgPT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5rcEFycmF5LnB1c2godGhpcy5rcERhdGEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLmRpc3BsYXlCdXR0b24gPT09ICdBQ0JQIENMQUlNJykge1xuICAgICAgICB0aGlzLmJ0bktQRGF0YSA9IGl0ZW1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5hZGRCYWRnZVNsaWRlKCkge1xuICBjb25zdCBiYWRnZURldGFpbHMgPSB0aGlzLmJhc2VDb250ZW50UmVhZERhdGE/LmJhZGdlRGV0YWlsc192MVxuXG4gIGlmICghYmFkZ2VEZXRhaWxzIHx8ICFiYWRnZURldGFpbHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBiYWRnZSA9IGJhZGdlRGV0YWlsc1swXVxuXG4gIGlmICghYmFkZ2UuYmFkZ2VFYXJuaW5nRGF0ZUVuYWJsZWQpIHtcbiAgICBjb25zdCBpc0VsaWdpYmxlc2xpZGUgPSB0aGlzPy5jb250ZW50Py5jb21wbGV0aW9uUGVyY2VudGFnZSA9PT0gdW5kZWZpbmVkIHx8ICB0aGlzPy5jb250ZW50Py5jb21wbGV0aW9uUGVyY2VudGFnZSA8IDEwMFxuICAgIGNvbnN0IGJhZGdlU2xpZGUgPSB7XG4gICAgICBkaXNwbGF5QnV0dG9uOiAnUXVpY2sgTGVhcm5lciBCYWRnZScsXG4gICAgICB0ZXh0QmVmb3JlSWNvbjogdGhpcy5nZXRRdWlja0xlYXJuZXJCYWRnZVRleHQoYmFkZ2UpLFxuICAgICAgcG9pbnRzOiAnJyxcbiAgICAgIHRleHRBZnRlclBvaW50czogJycsXG4gICAgICB0b29sVGlwVGV4dDogJ3F1aWNrTGVhcm5lckJhZGdlVGlwJyxcbiAgICB9XG4gICAgY29uc3QgYmFkZ2VFeGlzdHMgPSB0aGlzLmtwQXJyYXkuZmluZChcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZGlzcGxheUJ1dHRvbiA9PT0gJ1F1aWNrIExlYXJuZXIgQmFkZ2UnXG4gICAgKVxuICAgIGlmICghYmFkZ2VFeGlzdHMgJiYgaXNFbGlnaWJsZXNsaWRlKSB7XG4gICAgICB0aGlzLmtwQXJyYXkucHVzaChiYWRnZVNsaWRlKVxuICAgICAgdGhpcy5jb25zdHJ1Y3ROdWRnZURhdGEoKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiYWRnZVRpbWUgPSBiYWRnZS5iYWRnZUVhcm5pbmdEYXRlVGltZVxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKVxuICAgIGNvbnN0IGlzRWxpZ2libGVzbGlkZSA9IHRoaXM/LmNvbnRlbnQ/LmNvbXBsZXRpb25QZXJjZW50YWdlID09PSB1bmRlZmluZWQgfHwgIHRoaXM/LmNvbnRlbnQ/LmNvbXBsZXRpb25QZXJjZW50YWdlIDwgMTAwXG4gICAgY29uc3QgYmFkZ2VTbGlkZSA9IHtcbiAgICAgIGRpc3BsYXlCdXR0b246ICdRdWljayBMZWFybmVyIEJhZGdlJyxcbiAgICAgIHRleHRCZWZvcmVJY29uOiB0aGlzLmdldFF1aWNrTGVhcm5lckJhZGdlVGV4dChiYWRnZSksXG4gICAgICBwb2ludHM6ICcnLFxuICAgICAgdGV4dEFmdGVyUG9pbnRzOiAnJyxcbiAgICAgIHRvb2xUaXBUZXh0OiAncXVpY2tMZWFybmVyQmFkZ2VUaXAnLFxuICAgIH1cbiAgICBjb25zdCBiYWRnZUV4aXN0cyA9IHRoaXMua3BBcnJheS5maW5kKFxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5kaXNwbGF5QnV0dG9uID09PSAnUXVpY2sgTGVhcm5lciBCYWRnZSdcbiAgICApXG5cbiAgICBpZiAoaXNFbGlnaWJsZXNsaWRlKSB7XG4gICAgICBpZiAoYmFkZ2U/LmJhZGdlRWFybmluZ0RhdGVFbmFibGVkID09PSB0cnVlICkge1xuICAgICAgaWYgKGJhZGdlVGltZSA+IGN1cnJlbnRUaW1lKSB7XG4gICAgICAgIGlmICghYmFkZ2VFeGlzdHMpIHtcbiAgICAgICAgICB0aGlzLmtwQXJyYXkucHVzaChiYWRnZVNsaWRlKVxuICAgICAgICAgIHRoaXMuY29uc3RydWN0TnVkZ2VEYXRhKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWJhZGdlRXhpc3RzKSB7XG4gICAgICAgIHRoaXMua3BBcnJheS5wdXNoKGJhZGdlU2xpZGUpXG4gICAgICAgIHRoaXMuY29uc3RydWN0TnVkZ2VEYXRhKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiAgXG59XG4gIG9uQ2xpY2tPZkNsYWltKCkge1xuICAgIHRoaXMuY2xpY2tDbGFpbUthcm1hUG9pbnRzLmVtaXQoJ2NsYWltJylcbiAgICB0aGlzLmJ0bkNhdGVnb3J5ID0gJydcbiAgfVxuXG4gIGNvbnN0cnVjdE51ZGdlRGF0YSgpIHtcbiAgICBjb25zdCBudWRnZURhdGE6IGFueSA9IHtcbiAgICAgIHR5cGU6ICdrYXJtYS1wb2ludHMnLFxuICAgICAgaWNvbnNEaXNwbGF5OiBmYWxzZSxcbiAgICAgIGNhcmRDbGFzczogJ3NsaWRlci1jb250YWluZXInLFxuICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICB3aWR0aDogJycsXG4gICAgICBzbGlkZXJEYXRhOiBbXSxcbiAgICAgIG5lZ2F0aXZlRGlzcGxheTogZmFsc2UsXG4gICAgICAnZG90LWRlZmF1bHQnOiAnZG90LWdyZXknLFxuICAgICAgJ2RvdC1hY3RpdmUnOiAnZG90LWFjdGl2ZScsXG4gICAgfVxuXG4gICAgbnVkZ2VEYXRhLnNsaWRlckRhdGEgPSBbXVxuICAgIG51ZGdlRGF0YS5zbGlkZXJEYXRhID0gdGhpcy5rcEFycmF5XG4gICAgdGhpcy5rYXJtYVBvaW50c1NsaWRlciA9IG51ZGdlRGF0YVxuICB9XG5cbiAgZ2V0RHluYW1pY1RleHQoaGVsVGV4dDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucENhdGVnb3J5ICE9PSAnJykge1xuICAgICAgcmV0dXJuIGhlbFRleHQucmVwbGFjZSgnY291cnNlJywgdGhpcy5wQ2F0ZWdvcnkudG9Mb3dlckNhc2UoKSlcbiAgICB9XG4gICAgcmV0dXJuIGhlbFRleHRcbiAgfVxuXG4gIHRyYW5zbGF0ZUxhYmVscyhsYWJlbDogc3RyaW5nLCB0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5nVHJhbnNsYXRpb25zLnRyYW5zbGF0ZUxhYmVsV2l0aG91dHNwYWNlKGxhYmVsLCB0eXBlLCAnJylcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVpY2tMZWFybmVyQmFkZ2VUZXh0KGJhZGdlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdXJzZUNhdGVnb3J5ID0gdGhpcy5jb250ZW50Py5jb3Vyc2VDYXRlZ29yeT8udG9Mb3dlckNhc2UoKSB8fCAnY291cnNlJ1xuXG4gICAgaWYgKHRoaXMuY29udGVudD8uY291cnNlQ2F0ZWdvcnkgPT09ICdDdXJhdGVkIFByb2dyYW0nKSB7XG4gICAgICBpZiAoYmFkZ2U/LmNyaXRlcmlhID09PSAncGFydGlhbFJhbmRvbUNvbXBsZXRpb24nKSB7XG4gICAgICAgIHJldHVybiBgRWFybiB0aGUgQUkgRGFrc2ggYmFkZ2UgYnkgY29tcGxldGluZyBhbnkgJHtiYWRnZT8ucmVxdWlyZWRDb3Vyc2VDb21wbGV0aW9uc30gY291cnNlcyBvZiB0aGlzIHByb2dyYW0uYFxuICAgICAgfVxuICAgICAgcmV0dXJuIGBCeSBjb21wbGV0aW5nIHRoaXMgJHtjb3Vyc2VDYXRlZ29yeX0gZWFybiBRdWljayBMZWFybmVyIEJhZGdlYFxuICAgIH1cbiAgICByZXR1cm4gYEJ5IGNvbXBsZXRpbmcgdGhpcyAke2NvdXJzZUNhdGVnb3J5fSBlYXJuIFF1aWNrIExlYXJuZXIgQmFkZ2VgXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZUthcm1hUG9pbnRzXCI+XG4gICAgPHdzLXdpZGdldC1zbGlkZXJzLWR5bmFtaWMgW3dpZGdldERhdGFdPVwia2FybWFQb2ludHNTbGlkZXJcIiBbYmFzZUNvbnRlbnRSZWFkRGF0YV0gPSBcImJhc2VDb250ZW50UmVhZERhdGFcIj48L3dzLXdpZGdldC1zbGlkZXJzLWR5bmFtaWM+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnRuQ2F0ZWdvcnkgPT09ICdjbGFpbSdcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0xIGNsYWltLWJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrT2ZDbGFpbSgpXCIgPlxuICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ljb25zL2hvbWUva2FybWEtYmFkZ2Uuc3ZnXCIgd2lkdGg9XCIyOHB4XCIgY2xhc3M9XCJtci0yXCIgYWx0PVwia2FybWEtcG9pbnRzIGltYWdlXCIgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJidG5LUERhdGE/LnRleHRCZWZvcmVJY29uXCI+e3sgYnRuS1BEYXRhLnRleHRCZWZvcmVJY29uIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnRuS1BEYXRhLnBvaW50c1wiPnt7IGJ0bktQRGF0YS5wb2ludHMgfX0ge3sgdHJhbnNsYXRlTGFiZWxzKGJ0bktQRGF0YS50ZXh0QWZ0ZXJQb2ludHMsICdhcHBLYXJtYXBvaW50c1BhbmVsJykgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJidG5LUERhdGE/LnRleHRBZnRlckljb25cIj57eyB0cmFuc2xhdGVMYWJlbHMoYnRuS1BEYXRhLnRleHRBZnRlckljb24sICdhcHBLYXJtYXBvaW50c1BhbmVsJykgfX08L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+IFxuPC9uZy1jb250YWluZXI+Il19
|