{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///external \"Vue\"","webpack:///./Scripts/mixins/siteText.ts","webpack:///./Scripts/filters/sitetext.ts","webpack:///./Scripts/enums/ChallengeStatus.ts","webpack:///./Scripts/api/userTelemetry.ts","webpack:///./Scripts/enums/ChallengeType.ts","webpack:///./Scripts/components/Slide.vue","webpack:///./Scripts/enums/ElementIds.ts","webpack:///./Scripts/components/ContainerSlide.vue","webpack:///./Scripts/components/SlideHeaderWithNav.vue","webpack:///./Scripts/components/IsotopeHeader.vue","webpack:///./Scripts/enums/AuthenticationFactor.ts","webpack:///./Scripts/components/SlideHeader.vue","webpack:///./Scripts/components/challenges/index.ts","webpack:///./Scripts/enums/ScenarioType.ts","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue","webpack:///./Scripts/components/stepup/index.ts","webpack:///./Scripts/App.vue?0cc1","webpack:///./Scripts/App.vue?d581","webpack:///./Scripts/views/Authentication.vue?e679","webpack:///./Scripts/views/Authentication.vue?9dee","webpack:///./Scripts/views/Registration.vue?1f50","webpack:///./Scripts/views/Registration.vue?be16","webpack:///./Scripts/views/ForgotUsername.vue?473c","webpack:///./Scripts/views/ForgotUsername.vue?5fd2","webpack:///./Scripts/views/ForgotPassword.vue?39fb","webpack:///./Scripts/views/ForgotPassword.vue?d3e8","webpack:///./Scripts/views/LoginGrouping.vue?3167","webpack:///./Scripts/views/LoginGrouping.vue?b76a","webpack:///./Scripts/components/challenges/ChangePassword.vue?60f2","webpack:///./Scripts/components/challenges/ChangePassword.vue?7b0a","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?4471","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?255a","webpack:///./Scripts/components/Slide.vue?db83","webpack:///./Scripts/components/Slide.vue?a86a","webpack:///./Scripts/components/SyncFailure.vue?3958","webpack:///./Scripts/components/SyncFailure.vue?d0aa","webpack:///./Scripts/components/SlideHeader.vue?c379","webpack:///./Scripts/components/SlideHeader.vue?b726","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?f318","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?6376","webpack:///./Scripts/components/ContainerSlide.vue?73e5","webpack:///./Scripts/components/ContainerSlide.vue?8cbd","webpack:///./Scripts/components/SlideHeaderWithNav.vue?03e8","webpack:///./Scripts/components/SlideHeaderWithNav.vue?8c07","webpack:///./Scripts/components/ProgressBar.vue?f8ab","webpack:///./Scripts/components/ProgressBar.vue?5e1c","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?62b4","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?2d91","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?cf5d","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?98f4","webpack:///./Scripts/components/IsotopeHeader.vue?221a","webpack:///./Scripts/components/IsotopeHeader.vue?8177","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?a4ea","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?7c79","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?34c2","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?c48b","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?64f8","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?fd60","webpack:///./Scripts/components/challenges/ConvertedUser.vue?8f3c","webpack:///./Scripts/components/challenges/ConvertedUser.vue?2fdc","webpack:///./Scripts/components/challenges/CreateUser.vue?3fa8","webpack:///./Scripts/components/challenges/CreateUser.vue?c155","webpack:///./Scripts/components/challenges/CreateUsername.vue?3038","webpack:///./Scripts/components/challenges/CreateUsername.vue?f8f7","webpack:///./Scripts/components/challenges/Empty.vue?3153","webpack:///./Scripts/components/challenges/Empty.vue?6c36","webpack:///./Scripts/components/challenges/ForgotPassword.vue?eb94","webpack:///./Scripts/components/challenges/ForgotPassword.vue?4e4f","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?dfb4","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?e7c4","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?87bb","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?3083","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?c56d","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?3985","webpack:///./Scripts/components/Disclosure.vue?8622","webpack:///./Scripts/components/Disclosure.vue?24cc","webpack:///./Scripts/components/challenges/ForgotUsername.vue?a454","webpack:///./Scripts/components/challenges/ForgotUsername.vue?89e6","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?1196","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?04ba","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?dfa3","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?6a30","webpack:///./Scripts/components/challenges/OneTimeCode.vue","webpack:///./Scripts/components/challenges/OneTimeCode.vue?342b","webpack:///./Scripts/components/challenges/OneTimeCode.vue?ea25","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?65c0","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?67af","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?0e48","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?d5bd","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?9494","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?1fdb","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?24c4","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?db84","webpack:///./Scripts/components/challenges/ResetPassword.vue?7535","webpack:///./Scripts/components/challenges/ResetPassword.vue?1c2d","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?779c","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?237d","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?2bf0","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?4e8a","webpack:///./Scripts/components/challenges/StartRegistration.vue?0429","webpack:///./Scripts/components/challenges/StartRegistration.vue?fcd9","webpack:///./Scripts/components/challenges/StepUp.vue?34b0","webpack:///./Scripts/components/challenges/StepUp.vue?2ddd","webpack:///./Scripts/components/stepup/Biometric.vue?37f3","webpack:///./Scripts/components/stepup/Biometric.vue?5f61","webpack:///./Scripts/components/stepup/EmailCode.vue?5c1d","webpack:///./Scripts/components/stepup/EmailCode.vue?6eb3","webpack:///./Scripts/components/CodeStepup.vue?99e5","webpack:///./Scripts/components/CodeStepup.vue?6863","webpack:///./Scripts/components/RememberDevice.vue?6a2e","webpack:///./Scripts/components/RememberDevice.vue?37b9","webpack:///./Scripts/components/stepup/PushNotification.vue?f3a3","webpack:///./Scripts/components/stepup/PushNotification.vue?36d9","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?3e13","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?89a9","webpack:///./Scripts/components/stepup/SmsCode.vue?2d14","webpack:///./Scripts/components/stepup/SmsCode.vue?205c","webpack:///./Scripts/components/stepup/StepUpOption.vue?d471","webpack:///./Scripts/components/stepup/StepUpOption.vue?f9e6","webpack:///./Scripts/components/stepup/TOTP.vue?5d4a","webpack:///./Scripts/components/stepup/TOTP.vue?ddbd","webpack:///./Scripts/components/TokenStepup.vue?326c","webpack:///./Scripts/components/TokenStepup.vue?b193","webpack:///./Scripts/components/stepup/Token.vue?51e9","webpack:///./Scripts/components/stepup/Token.vue?c17d","webpack:///./Scripts/components/stepup/Unknown.vue?f086","webpack:///./Scripts/components/stepup/Unknown.vue?f246","webpack:///./Scripts/components/stepup/VoiceCode.vue?8d75","webpack:///./Scripts/components/stepup/VoiceCode.vue?cb52","webpack:///./Scripts/components/stepup/VoicePrompt.vue?a6a5","webpack:///./Scripts/components/stepup/VoicePrompt.vue?89f2","webpack:///./Scripts/components/stepup/WebAuthn.vue?3b57","webpack:///./Scripts/components/stepup/WebAuthn.vue?f293","webpack:///./Scripts/components/challenges/StepUpForgot.vue?03ec","webpack:///./Scripts/components/challenges/StepUpForgot.vue?9834","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?aadd","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?fa72","webpack:///./Scripts/components/challenges/Tethered.vue?f7cb","webpack:///./Scripts/components/challenges/Tethered.vue?f7ea","webpack:///./Scripts/components/Turnstile.vue?0570","webpack:///./Scripts/components/Turnstile.vue?587b","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?7564","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?1050","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?200d","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?1236","webpack:///./Scripts/components/ForgotLinks.vue?332e","webpack:///./Scripts/components/ForgotLinks.vue?061b","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?b915","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?bab0","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue","webpack:///./Scripts/components/CodeStepup.vue","webpack:///./Scripts/components/stepup/StepUpOption.vue","webpack:///./Scripts/App.vue?7e62","webpack:///./Scripts/views/Authentication.vue?7af2","webpack:///./Scripts/views/Registration.vue?98f7","webpack:///./Scripts/views/ForgotUsername.vue?0ec1","webpack:///./Scripts/views/ForgotPassword.vue?52ca","webpack:///./Scripts/views/LoginGrouping.vue?e28f","webpack:///./Scripts/components/challenges/ChangePassword.vue?acc9","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?e91a","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?567f","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?f236","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?5e4f","webpack:///./Scripts/components/challenges/ConvertedUser.vue?9a39","webpack:///./Scripts/components/challenges/CreateUser.vue?2eec","webpack:///./Scripts/components/challenges/CreateUsername.vue?4d12","webpack:///./Scripts/components/challenges/Empty.vue?7c19","webpack:///./Scripts/components/challenges/ForgotPassword.vue?e441","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?f9eb","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?0f94","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?4aef","webpack:///./Scripts/components/challenges/ForgotUsername.vue?dd31","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?d716","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?4b3d","webpack:///./Scripts/components/challenges/OneTimeCode.vue?76e0","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?8c6a","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?b760","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?85b7","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?c5f0","webpack:///./Scripts/components/challenges/ResetPassword.vue?c78e","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?ad4c","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?ede0","webpack:///./Scripts/components/challenges/StartRegistration.vue?97cc","webpack:///./Scripts/components/challenges/StepUp.vue?9c65","webpack:///./Scripts/components/challenges/StepUpForgot.vue?abfc","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?3e3e","webpack:///./Scripts/components/challenges/Tethered.vue?5782","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?3ef1","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?79c5","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?6c29","webpack:///./Scripts/components/Slide.vue?ccd3","webpack:///./Scripts/components/SyncFailure.vue?5018","webpack:///./Scripts/components/SlideHeader.vue?2a3f","webpack:///./Scripts/components/ContainerSlide.vue?492a","webpack:///./Scripts/components/SlideHeaderWithNav.vue?1b0c","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?860c","webpack:///./Scripts/components/IsotopeHeader.vue?c642","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?db24","webpack:///./Scripts/components/Disclosure.vue?e93b","webpack:///./Scripts/components/stepup/StepUpOption.vue?ca0b","webpack:///./Scripts/components/Turnstile.vue?b9ed","webpack:///./Scripts/components/ForgotLinks.vue?aa68","webpack:///./Scripts/components/stepup/Biometric.vue?e1df","webpack:///./Scripts/components/stepup/EmailCode.vue?3ea9","webpack:///./Scripts/components/stepup/PushNotification.vue?6abc","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?faee","webpack:///./Scripts/components/stepup/SmsCode.vue?a5ef","webpack:///./Scripts/components/stepup/TOTP.vue?4eaa","webpack:///./Scripts/components/stepup/Token.vue?d191","webpack:///./Scripts/components/stepup/Unknown.vue?c67a","webpack:///./Scripts/components/stepup/VoiceCode.vue?2265","webpack:///./Scripts/components/stepup/VoicePrompt.vue?51e2","webpack:///./Scripts/components/stepup/WebAuthn.vue?9041","webpack:///./Scripts/components/ProgressBar.vue?b452","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?1201","webpack:///./Scripts/components/CodeStepup.vue?7d88","webpack:///./Scripts/components/TokenStepup.vue?aa05","webpack:///./Scripts/components/RememberDevice.vue?dc5e","webpack:///./Scripts/enums/Workflow.ts","webpack:///./Scripts/store/index.ts","webpack:///external \"Vuex\"","webpack:///./Scripts/api/index.ts","webpack:///./Scripts/lib/MachineSecretManager.ts","webpack:///./Scripts/lib/fromEntries.ts","webpack:///./Scripts/components/challenges/ChangePassword.vue","webpack:///./Scripts/components/challenges/CheckSyncResult.vue","webpack:///./Scripts/components/SyncFailure.vue","webpack:///./Scripts/lib/SiteText.ts","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue","webpack:///./Scripts/enums/UserIdentifyingFieldType.ts","webpack:///./Scripts/components/challenges/ConvertedUser.vue","webpack:///./Scripts/components/challenges/CreateUser.vue","webpack:///./Scripts/components/challenges/CreateUsername.vue","webpack:///./Scripts/components/challenges/Empty.vue","webpack:///./Scripts/components/challenges/ForgotPassword.vue","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue","webpack:///./Scripts/components/Disclosure.vue","webpack:///./Scripts/components/challenges/ForgotUsername.vue","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue","webpack:///./Scripts/components/challenges/ResetPassword.vue","webpack:///./Scripts/components/challenges/StartForgotPassword.vue","webpack:///./Scripts/components/challenges/StartForgotUsername.vue","webpack:///./Scripts/components/challenges/StartRegistration.vue","webpack:///./Scripts/components/challenges/StepUp.vue","webpack:///./Scripts/components/stepup/Biometric.vue","webpack:///./Scripts/components/stepup/EmailCode.vue","webpack:///./Scripts/components/RememberDevice.vue","webpack:///./Scripts/components/stepup/PushNotification.vue","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue","webpack:///./Scripts/components/stepup/SmsCode.vue","webpack:///./Scripts/components/stepup/TOTP.vue","webpack:///./Scripts/components/TokenStepup.vue","webpack:///./Scripts/components/stepup/Token.vue","webpack:///./Scripts/components/stepup/Unknown.vue","webpack:///./Scripts/components/stepup/VoiceCode.vue","webpack:///./Scripts/components/stepup/VoicePrompt.vue","webpack:///./Scripts/components/stepup/WebAuthn.vue","webpack:///./Scripts/components/challenges/StepUpForgot.vue","webpack:///./Scripts/components/challenges/TemporaryPassword.vue","webpack:///./Scripts/components/challenges/Tethered.vue","webpack:///./Scripts/components/Turnstile.vue","webpack:///./Scripts/components/challenges/UpdateBusiness.vue","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue","webpack:///./Scripts/components/challenges/UsernameRecovered.vue","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue?d24b","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue?f77a","webpack:///Scripts/components/challenges/OneTimeCodeDestination.vue","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue","webpack:///./Scripts/app.ts","webpack:///./Scripts/App.vue","webpack:///./Scripts/router.ts","webpack:///external \"VueRouter\"","webpack:///./Scripts/views/Authentication.vue","webpack:///./Scripts/enums/UserTelemetry.ts","webpack:///./Scripts/interfaces/IUserTelemetry.ts","webpack:///./Scripts/views/Registration.vue","webpack:///./Scripts/views/ForgotUsername.vue","webpack:///./Scripts/views/ForgotPassword.vue","webpack:///./Scripts/views/LoginGrouping.vue","webpack:///./Scripts/enums/Validations.ts","webpack:///./Scripts/enums/MachineSecretProviderType.ts","webpack:///./Scripts/lib/EntrustMachineSecretProvider.ts","webpack:///./Scripts/lib/DefaultMachineSecretProvider.ts","webpack:///./Scripts/components/challenges sync ^\\.\\/.*$","webpack:///../node_modules/lottie-web/build/player/lottie.js","webpack:///../node_modules/webpack/buildin/amd-options.js","webpack:///./Scripts/assets/confirmation-error-64.ts","webpack:///./Scripts/components/ProgressBar.vue","webpack:///./Scripts/enums/UserLookupType.ts","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue","webpack:///./Scripts/components/stepup sync ^\\.\\/.*$","webpack:///./Scripts/components/ForgotLinks.vue","webpack:///./Scripts/interfaces/IFDICResponse.ts","webpack:///./tests/e2e/setup/index.ts","webpack:///./tests/e2e/setup/injectResources.ts","webpack:///./tests/e2e/setup/setupSiteText.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","__createBinding","k","k2","undefined","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","__classPrivateFieldSet","set","Vue","vue_1","SiteText_1","siteText","extend","methods","siteTextKey","replacements","store","$store","siteTextMap","getters","debug","debugSiteText","getSiteTextItem","siteTextFilter","tslib_1","store_1","optionsFn","ChallengeStatus","ICustomTelemetryEvent","userAction","stepName","stepType","workflowName","getWorkflowName","getStepName","telemetry","ChallengeType_1","Workflow_1","UserTelemetry_1","IUserTelemetry_1","_userTelemetry","status","enabled","retries","delay","cachedEvents","requests","Map","checkTelemetry","async","_a","_b","window","Alkami","UserTelemetry","setTimeout","event","type","page","custom","identify","workflow","isDupe","logPageEventAsync","action","eventProperties","logCustomEventAsync","identifyAuthenticatedUserAsync","timeout","ms","now","Date","prev","size","forEach","userTelemetryObj","challenge","retail_registration","ChallengeType","ChooseRegistrationType","registration_type","RegistrationDisclosure","disclosure","ConfirmIdentity","confirm_your_identity","StepUp","verify_your_identity","OneTimeCode","verification_code","CreateUsername","create_username","CreateUser","create_password","UpdateBusiness","business_information","unknown","Workflow","Registration","factory","component","ElementIds","AuthenticationFactor","fromEntries_1","entries","keys","map","challengeType","filter","x","ScenarioType","AuthenticationFactor_1","stepupType","computed","currentChallengeType","watch","previousChallengeType","CustomEvent","bubbles","cancelable","detail","$el","dispatchEvent","userTelemetry_1","props","authenticatedModel","isSyncing","newAuthenticatedModel","username","nonce","$nextTick","formElement","document","querySelector","commit","submit","checkSyncResultChallenge","dispatch","components","configuration","loginCredentials","UserName","ChallengeTypeValue","initialChallengeType","Progression","StepUpForgot","OneTimeCodeForgotContainer","CheckSyncResult","CheckSyncResultForgot","newAuthenticationModel","state","currentChallenge","UsernameAndPassword","StartForgotUsername","preventDefault","nextChallenge","nextRequestedChallenge","index","destinationIndex","StepUpCategories","category","$id","toString","StepUpModel","Destinations","destination","Slide_vue_1","SyncFailure_vue_1","baseUrl","IsotopeSlide","SyncFailure","$slots","header","footer","siteText_1","sitetext_1","SlideHeader_vue_1","lottie_web_1","confirmation_error_64_1","buttonText","String","url","mixins","filters","sitetext","errors","errorCode","CustomSubCode","startsWith","getSiteText","SlideHeader","loadAnimation","container","renderer","animationData","ConfirmationError64","loop","autoplay","subtitle","$refs","heading","focus","ContainerSlide_vue_1","SlideHeaderWithNav_vue_1","isRegistering","isForgotPasswordWorkflow","ContainerSlide","SlideHeaderWithNav","isMobile","ChallengeStatus_1","ProgressBar_vue_1","vuex_1","data","contentToggle","displayErrorMessage","suppressedChallengeStatus","InvalidOneTimeCode","PdfCodeInvalid","SyncError","OTPExpired","mapGetters","mapState","errorMessage","hasSessionExpiredError","includes","challengeStatus","hasInvalidChallengeStatus","SessionInfo","Id","hasServerError","setDisplayError","isForgotUsernameWorkflow","toggleOption","option","slide","scrollIntoView","behavior","progression","cancel_clicked","toggleSheet","cancellation","quit_confirmation","yes_clicked","isCypress","location","href","sheet_closed","_c","setAttribute","ProgressBar","currentWorkflowMaxSteps","currentWorkflowStep","currentCompletion","ChooseScenario_vue_1","ChooseScenario","ScenarioType_1","UserLookupType_1","IsotopeHeader_vue_1","selectedScenario","cardName","required","validator","prop","isSubmittingChallenge","Scenarios","scenarios","ScenarioTypeValue","selectedItem","lookupType","find","UserLookupTypeValue","UserLookupType","None","Business","business_account_clicked","individual_account_clicked","submitForm","submitting","chosenScenario","validationResults","ErrorCode","Field","ItemIndex","Message","join","Origin","Severity","SubCode","ChosenScenarioId","Unknown","IsotopeHeader","classes","UserIdentifyingFieldType_1","ElementIds_1","UserIdentifyingFieldGroup_vue_1","showNotification","fieldValidationStatus","hasInvalidField","confirmIdentityChallenge","properties","Scenario","FieldGroups","reduce","acc","val","Fields","Value","trim","continue_clicked","scenarioType","UserIdentifyingFieldType","fieldType","isValid","hasInvalidStatus","values","elementIds","notificationMessage","UserIdentifyingFieldGroup","UserIdentifyingField_vue_1","Number","fields","scenarioName","bankName","$emit","UserIdentifyingField","MothersMaidenName","isRequired","Boolean","isSensitive","regex","states","inputVal","IsBusiness","sName","scenarioTypeSpecificLabel","scenarioTypeSpecificHelperText","isOfFieldType","fieldTypeName","validationRegex","test","RegExp","ex","console","TaxId","EIN","HomePhone","WorkPhone","CellPhone","Email","State","toggleMode","toggleText","currentScrollPosition","screenY","pageYOffset","textFieldPosition","getBoundingClientRect","top","scrollTo","innerHeight","password","confirmPassword","invalidPassword","passwordMismatch","PasswordRegex","PasswordStrengthEnabled","PasswordStrengthMinLength","PasswordMediumStrengthRegex","PasswordStrongStrengthRegex","isSubmittingAuthenticatedModel","passwordRegex","inputUserName","passwordStrengthEnabled","passwordStrengthMinLength","passwordStrongStrengthRegex","passwordMediumStrengthRegex","telemetryPromise","create_password_clicked","Password","createPasswordPromise","all","inputValue","usernameMinLength","usernameMaxLength","isValidUsername","SuggestedUsernames","suggestedUsernames","HasExceededTries","hasExceededTries","UsernameRegex","UsernameMinLength","UsernameMaxLength","usernameRegex","ev","input","validateUsername","triesExceeded","Username","create_username_clicked","IsAvailable","ConfirmIdentity_vue_1","Disclosure_vue_1","disclosureAccepted","DisclosureContent","DisclosureId","disclosureContent","Success","DisclosureID","disclosureID","Accepted","Disclosure","content","checkboxLabel","printLinkText","DisclosureName","nearestQuarter","agree_clicked","print_pdf_clicked","scrollPercent","scrollTop","scrollHeight","clientHeight","Math","round","disclosure_scroll","oneTimeCode","resendingCode","navigatingBack","canResendCode","clearError","$data","codeSentText","AuthenticationFactorValue","EmailCode","Destination","MaskedAddress","toLowerCase","SmsCode","VoiceCode","lastDigits","slice","isManualMfa","MinutesToLive","ValidationKey","RememberDevice","rememberDevice","DeviceName","deviceName","hasError","oneTimeCodeUpdated","OneTimeCodeDestination","authenticationFactor","Token","replace","TOTP","valid","tokenLength","code","resend_code_clicked","change_method_clicked","OneTimeCodeForgot_vue_1","isSubmitting","userPdfCode","pdfEnabled","siteTextName","pdfDisclosureLocation","some","er","ShouldCheckPdf","UserSubmittedPdfCode","open_pdf_clicked","open","pdfUrl","stepup_1","selectedStepUpCategoryId","selectedStepUpCategory","id","stepUpCategories","getMetaData","icon","selectedCategory","manualMfaEnabled","NextChallenge","CodeStepup_vue_1","stepUpCategory","CodeStepup","RememberDevice_vue_1","selectedDestinationId","selectedDestination","destinations","newDestinationId","DeviceNameAlreadyExists","canRememberDevice","newValue","isStepUpMandatory","isSelectedCategory","internalSelectedDestination","getText","items","dest","destinationId","resource","TokenStepup_vue_1","TokenStepup","tokenCode","isNavigatingBack","currentAuthenticationFactorValue","helperText","isTOTP","ProviderId","tokenCodeUpdated","StepUpOption_vue_1","tokenTOTP","show","stepUpChallenge","authModel","isRedirecting","OTPVerify","StepUpContinue","verificationType","verification_type_chosen","nextStepNum","previousStepNum","StepUpOption","circle_indeterminate_40_json_1","Turnstile_vue_1","turnstileValidationStatus","turnstileToken","turnstileError","NotApplicable","getAnimationJSON","turnstileEnabled","turnstileSitekey","Failed","currentChallengeStatus","InProgress","Succeeded","token","err","decodeURIComponent","BotDetected","Turnstile","filterAction","sitekey","language","src","widgetId","filteredErrors","disable","renderOptions","theme","callback","response","expired","retry","turnstile","turnstileContainer","reset","remove","filteredError","script","createElement","addEventListener","head","appendChild","formatPhoneNumber","phone","phoneNumber","exec","businessName","BusinessName","businessPhone","BusinessPhoneNumber","businessPhoneType","BusinessPhoneType","businessAddressLine1","BusinessAddressLine1","businessAddressLine2","BusinessAddressLine2","businessCity","BusinessCity","businessState","BusinessState","businessZip","BusinessPostalCode","businessEin","BusinessEin","hasPhoneError","hasZipError","hasEinError","phoneTypes","updateBusinessChallenge","formattedPhone","zipCodeRegex","_d","_e","_f","_g","_h","ForgotLinks_vue_1","api_1","IFDICResponse_1","rememberUsername","mobileInfoPanel","showSheet","hasResetError","FUFPToggle","logoPath","widgetConfig","background","fdic","FDICResponse","displayForgotPasswordLink","displayAccountOpeningLink","displayForgotUsernameLink","ellipsisConfig","InvalidCredentials","mobileRegistrationEnabled","disableDesktopRegistration","isNativeApplication","isOauthRedirect","layers","enableRememberMe","mobile","login","isEnabled","signColor","remember_me_checked","entry","showSheetNewValue","element","bottomSheetRef","classList","changingUsername","skipReset","challengeHistory","Tethered","LockedOut","selectedMenuItem","item","iconName","getReturnUrl","URLSearchParams","search","returnUrl","internalUrlParams","redirect_uri","from","endsWith","alkamiThemesRef","Themes","baseAssetUrl","logoFileName","Config","brandLogos","wide","fileName","widgetConfigFromServer","getWidgetConfig","log","loginPage","style","setProperty","color","bgColor","image","attachment","baseWidgetUrl","positionX","positionY","repeat","opacity","overflow_menu_clicked","register_account_clicked","registrationRedirectUrl","GetFDICConfiguration","update","warn","toggleAttribute","desktop","ForgotLinks","rememberedUsername","mobileInfoPanelElement","getElementById","innerHTML","mobileInfoEllipsisConfig","loadedEvent","setupThemeBuilderItems","FDIC","showForgotUsernameLink","showForgotPasswordLink","linkText","useIrisSheetForFUFP","forgotUsernameUrl","forgotPasswordUrl","uCount","pCount","match","count","irisSheetCloseButton","getAttribute","forgot_username_clicked","forgot_password_clicked","RecoveredUsername","usernameRecovered","$createElement","_self","staticClass","class","$route","attrs","_vm","tag","redirectUrl","directives","rawName","expression","domProps","on","$event","composing","$set","slot","_l","group","Name","validationCheck","ConfirmIdentityContinue","buttonDisabled","_v","_s","instructions","linkForCreateNewPassword","passwordStrengths","checkPasswordStrength","checkPasswordValid","checkPasswordMatches","model","$$v","confirmPasswordErrorMessage","isLoading","getSubheading","validateBlur","usernameSuggestionHeading","suggestion","chooseUsername","ref","toggleAccepted","DisclosureContinue","canContinue","UsernameChooseScenarioCard","errorText","codeEntryHelperText","onFocus","resendButtonText","resendCode","navigateBack","subHeadingText","OTPCodeInput","actionText","inputHelperText","OTPResendCode","OTPChangeMethod","changeMethod","changeStepupMethod","otpCodeEntered","htmlBeforeDisclosure","PDFOpen","pdfCodeErrorMessages","handleTextfieldFocus","submitManualMfa","authenticationFactorMetaData","categoryChanged","headerText","stepupCategorySelected","stepupDestinationSelected","buttonID","turnstileSiteKey","setTurnstileToken","turnstileTokenExpired","setTurnstileError","disableTurnstile","displayError","getCustomErrorMessage","phoneHasErrorCheck","getPhoneErrorMessage","validatePhone","getPhoneTypeSiteText","zipHasErrorCheck","getZipErrorMessage","validateZip","einHasErrorCheck","getEinErrorMessage","validateEin","mobileInfoPanelClass","contentToggled","scopedSlots","_u","fn","proxy","desktopLoginLayers","showFDIC","FDICTheme","kind","variation","ellipsisItemSelected","ellipsisToggled","wrongCredentials","resetValidationError","rememberMeDesktopText","toggleRememberMe","serverErrorMessage","displayServerError","AuthenticationSubmit","submitDisabled","shouldHideRegistration","showAccountOpeningLink","goToRegistration","openAccountRedirectUrl","recoveredUsername","_t","mainIconName","closeButtonText","clickCloseButton","closeNotification","sheetClosed","cancelConfirmText","clickConfirmClose","clickCancelClose","scenario","selectScenario","_k","keyCode","cssClasses","textForGroup","field","IdentifyingFieldType","IsRequired","IsSensitive","MatchRegEx","scrollDisclosure","DisclosureCheckbox","disclosurePrintLink","printClicked","stepUpType","StepUpCategory","buttonChanged","StepUpDestination","getStrings","getItems","FUFPText","handleClick","click","mobileForgotUsernameOrPassword","progressBarHeading","width","percentComplete","getNameForField","optionalText","validationRules","requiredText","toggleHiddenText","sendCode","ariaDescriptionId","changeDestinationSelection","verifyCode","elementId","toggleRememberStatus","use","Store","Empty","machineSecretProvider","remainOnStepUpScreenOnFailure","hasRememberedUsername","showRememberDevice","isResendingOTP","currentMachineSecretProvider","JSON","parse","stringify","SessionExpired","StartForgotPassword","StartRegistration","ForgotPassword","ForgotUsername","Authentication","enableAppStoreNavigationPrompt","toLocaleLowerCase","mutations","provider","bool","clearLoginCredentials","setRememberDevice","setDeviceName","setRemainOnStepUpScreenOnFailure","setRememberUsername","updateEllipsisConfig","setRememberedUsername","setShowRememberDevice","setIsStepUpMandatory","setCurrentWorkflowMaxSteps","setCurrentWorkflowStep","setIsResendingOTP","resendingOTP","setIsSubmittingAuthenticatedModel","setTurnstileEnableState","setUserName","actions","initializeIsotope","payload","submitChallenge","challengeProcessor","ChallengeProcessor","json","ChallengeStatusValue","ValidationResults","postSubmitChallenge","goToPreviousChallenge","previousChallenge","Nonce","previousStep","resetErrorStatus","getRememberedUsername","GetRememberedUsername","setChallengeStatus","remember","Helpers","f_rememberMeSwitch","postMessage","rememberMe","RemoveRememberedUsername","Vuex","getChallenges","Validations_1","MachineSecretManager_1","fetch","ok","Error","text","rootUrl","headers","clientKey","bankUri","method","request","preSubmitChallenge","lastSentResponse","initialize","sessionInfo","AdditionalParameters","rememberUserName","persistentSessionIdentifier","Global_PersistentSessionIdentifier","isTetheredLogin","sessionId","MachineInfo","read","submittedChallenge","UserAgentString","navigator","userAgent","Request","BankIdentifier","BankUri","SubmittedChallenge","RedirectUrl","getChallengeUrl","credentials","ForgotPasswordDisclosure","ForgotPasswordChooseScenario","ForgotPasswordConfirmIdentity","ForgotUsernameChooseScenario","ForgotUsernameConfirmIdentity","sessionStorage","setItem","reload","NextRequestedChallenge","updateMachineInfo","getNumberOfSteps","updateCurrentStep","handleLockout","Done","handleDoneChallenge","handleStepUpChallenge","handleCheckSyncResultChallenge","repeatStep","HasError","handleValidationErrors","UpdateMachineInfo","write","_j","numSteps","NumberOfStepsRequired","maxSteps","parseInt","isNaN","currentStep","redirect","doneChallenge","Grant","stepupChallenge","IsRememberDeviceOptionSupported","IsStepUpMandatory","Fatal","MachineSecretProviderType_1","EntrustMachineSecretProvider_1","DefaultMachineSecretProvider_1","DefaultMachineSecretProvider","machineSecretProviderType","MachineSecretProviderType","EntrustRememberedDevicesProvider","EntrustMachineSecretProvider","iterable","obj","init","App_vue_1","router_1","challenges_1","setup_1","vm","config","mockPromise","$destroy","providedConfig","componentOverrides","challengeTypes","configuredComponentOverrides","findIndex","splice","globalComponents","router","createProvider","getItem","removeItem","ALBUS_LOCAL_DEV","$mount","ignoredElements","global","Isotope","vue_router_1","Authentication_vue_1","Registration_vue_1","ForgotUsername_vue_1","ForgotPassword_vue_1","LoginGrouping_vue_1","base","routes","path","VueRouter","machineSecret","setDebugOn","setStorageTypeExclusions","setMachineNonceName","getMachineNonceName","setSequenceNonceName","getSequenceNonceName","MachineNonce","fetchMachineNonce","SequenceNonce","fetchSequenceNonce","DeviceFingerprint","cleanUpFingerprint","getDeviceFingerprint","storeMachineNonce","storeSequenceNonce","hostname","getHash","getRealm","prefix","keyArray","CryptoJS","enc","Utf8","inputArray","hash","HmacSHA1","Hex","toUpperCase","fingerPrintStr","fingerPrintObj","webGL","attributes","intIndexes","director","hasPlugin","mimeTypes","getMimeTypes","mimeTypesCount","plugins","getPlugins","pluginsCount","quickTime","realPlayer","windowsMediaPlayer","accrobatReader","svgViewer","clearType","screenColorDepth","screen","colorDepth","screenHeight","height","screenPixelDepth","pixelDepth","screenWidth","screenAvailHeigth","availHeight","screenAvailWidth","availWidth","appName","appVersion","appMinorVersion","cookieEnabled","cpuClass","systemLanguage","userLanguage","javaEnabled","platform","appCodeName","oscpu","vendor","vendorSub","product","productSub","taintEnabled","mimeType","plugin","pluginName","PluginDetect","getVersion","webpackContext","req","webpackContextResolve","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","sourcePrototype","len","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","idPrefix","isSafari","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","position","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","it","checkVersion","minimum","animVersionString","animVersion","split","minimumVersion","checkText","iterateLayers","textLayer","documentData","assets","checkChars","chars","charData","ip","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","send","completeData","animation","process","onComplete","onError","createProcess","processId","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","setParams","params","wrapper","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","trigger","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","hide","getDuration","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","out","quat","qx","qy","qz","qw","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","queryString","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","bodymovin","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ceil","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","tHelper","fontProps","fFamily","textContent","fClass","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","found","ch","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","helper","cache","getCharData","_char","charCodeAt","getFontByName","fName","measureText","_char2","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","layerInterface","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","effects","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","view","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_sourceText","sourceText","textProperty","stringValue","currentData","_prevValue","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_placeholder","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","setupGlobalData","fontsContainer","animationItem","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","SVGTintFilter","filterManager","matrixFilter","feMergeNode","feMerge","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","filterSize","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","colorBlack","colorWhite","groupPath","elemChildren","children","childNodes","masker","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","matteElement","transformedElement","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","insertBefore","setElementAsMask","symbol","hd","setMatte","sigma","dimensions","sigmaX","sigmaY","edgeMode","registeredEffects","SVGEffects","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","_sizeChanged","gg","layerElementParent","maskGroup","maskGrouper","feCTr","alphaRect","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","me","S","copy","mixkey","seed","smear","stringseed","tostring","shortseed","flatten","depth","typ","entropy","nodecrypto","Uint8Array","crypto","msCrypto","getRandomValues","browser","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof","ExpressionManager","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","__webpack_amd_options__","pages","injectResources_1","setupSiteText_1","cssToInject","jsToInject","Cypress","setupSiteText","injectResources","injectLottie","onResourceLoad","promises","_promise","scriptElement","createScriptElement","loadPromise","linkElement","createLinkElement","mockSiteTextMap","Localization","SiteText"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,K,+BC5EtC,SAASC,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAqBIC,EArBAC,EAAmC,mBAAlBT,EACjBA,EAAcS,QACdT,EAsDJ,GAnDIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,WAAY,GAIlBP,IACFM,EAAQE,YAAa,GAInBN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GACFE,EAAO,SAAUK,IAEfA,EACEA,GACCC,KAAKC,QAAUD,KAAKC,OAAOC,YAC3BF,KAAKG,QAAUH,KAAKG,OAAOF,QAAUD,KAAKG,OAAOF,OAAOC,aAEZ,oBAAxBE,sBACrBL,EAAUK,qBAGRd,GACFA,EAAalC,KAAK4C,KAAMD,GAGtBA,GAAWA,EAAQM,uBACrBN,EAAQM,sBAAsBC,IAAId,IAKtCG,EAAQY,aAAeb,GACdJ,IACTI,EAAOD,EACH,WACAH,EAAalC,KACX4C,MACCL,EAAQE,WAAaG,KAAKG,OAASH,MAAMQ,MAAMC,SAASC,aAG3DpB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQgB,cAAgBjB,EAExB,IAAIkB,EAAiBjB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAmC0B,EAAGd,GAErD,OADAL,EAAKtC,KAAK2C,GACHa,EAAeC,EAAGd,QAEtB,CAEL,IAAIe,EAAWnB,EAAQoB,aACvBpB,EAAQoB,aAAeD,EACnB,GAAGE,OAAOF,EAAUpB,GACpB,CAACA,GAIT,MAAO,CACL3C,QAASmC,EACTS,QAASA,GA/Fb,mC,6BCAA;;;;;;;;;;;;;;;AAgBA,IAAIsB,EAAgB,SAAS1D,EAAG2D,GAI5B,OAHAD,EAAgBtD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU9D,EAAG2D,GAAK3D,EAAE6D,UAAYF,IACvE,SAAU3D,EAAG2D,GAAK,IAAK,IAAInC,KAAKmC,EAAOA,EAAEpC,eAAeC,KAAIxB,EAAEwB,GAAKmC,EAAEnC,MACpDxB,EAAG2D,IAGrB,SAASI,EAAU/D,EAAG2D,GAEzB,SAASK,IAAOvB,KAAKwB,YAAcjE,EADnC0D,EAAc1D,EAAG2D,GAEjB3D,EAAEsB,UAAkB,OAANqC,EAAavD,OAAOY,OAAO2C,IAAMK,EAAG1C,UAAYqC,EAAErC,UAAW,IAAI0C,GAG5E,IAAIE,EAAW,WAQlB,OAPAA,EAAW9D,OAAO+D,QAAU,SAAkBvD,GAC1C,IAAK,IAAIa,EAAG/B,EAAI,EAAGyB,EAAIiD,UAAUC,OAAQ3E,EAAIyB,EAAGzB,IAE5C,IAAK,IAAI8B,KADTC,EAAI2C,UAAU1E,GACOU,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,KAAIZ,EAAEY,GAAKC,EAAED,IAE9E,OAAOZ,IAEK0D,MAAM7B,KAAM2B,YAGzB,SAASG,EAAO9C,EAAG+C,GACtB,IAAI5D,EAAI,GACR,IAAK,IAAIY,KAAKC,EAAOrB,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,IAAMgD,EAAEC,QAAQjD,GAAK,IAC9EZ,EAAEY,GAAKC,EAAED,IACb,GAAS,MAALC,GAAqD,mBAAjCrB,OAAOsE,sBACtB,KAAIhF,EAAI,EAAb,IAAgB8B,EAAIpB,OAAOsE,sBAAsBjD,GAAI/B,EAAI8B,EAAE6C,OAAQ3E,IAC3D8E,EAAEC,QAAQjD,EAAE9B,IAAM,GAAKU,OAAOkB,UAAUqD,qBAAqB9E,KAAK4B,EAAGD,EAAE9B,MACvEkB,EAAEY,EAAE9B,IAAM+B,EAAED,EAAE9B,KAE1B,OAAOkB,EAGJ,SAASgE,EAAWC,EAAYC,EAAQ7D,EAAK8D,GAChD,IAA2H/E,EAAvHD,EAAIqE,UAAUC,OAAQ7D,EAAIT,EAAI,EAAI+E,EAAkB,OAATC,EAAgBA,EAAO3E,OAAO4E,yBAAyBF,EAAQ7D,GAAO8D,EACrH,GAAuB,iBAAZE,SAAoD,mBAArBA,QAAQC,SAAyB1E,EAAIyE,QAAQC,SAASL,EAAYC,EAAQ7D,EAAK8D,QACpH,IAAK,IAAIrF,EAAImF,EAAWR,OAAS,EAAG3E,GAAK,EAAGA,KAASM,EAAI6E,EAAWnF,MAAIc,GAAKT,EAAI,EAAIC,EAAEQ,GAAKT,EAAI,EAAIC,EAAE8E,EAAQ7D,EAAKT,GAAKR,EAAE8E,EAAQ7D,KAAST,GAChJ,OAAOT,EAAI,GAAKS,GAAKJ,OAAOC,eAAeyE,EAAQ7D,EAAKT,GAAIA,EAGzD,SAAS2E,EAAQC,EAAYC,GAChC,OAAO,SAAUP,EAAQ7D,GAAOoE,EAAUP,EAAQ7D,EAAKmE,IAGpD,SAASE,EAAWC,EAAaC,GACpC,GAAuB,iBAAZP,SAAoD,mBAArBA,QAAQQ,SAAyB,OAAOR,QAAQQ,SAASF,EAAaC,GAG7G,SAASE,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUvF,GAAS,IAAMwF,EAAKL,EAAUM,KAAKzF,IAAW,MAAO6D,GAAKyB,EAAOzB,IACpF,SAAS6B,EAAS1F,GAAS,IAAMwF,EAAKL,EAAiB,MAAEnF,IAAW,MAAO6D,GAAKyB,EAAOzB,IACvF,SAAS2B,EAAKG,GAJlB,IAAe3F,EAIa2F,EAAOC,KAAOP,EAAQM,EAAO3F,QAJ1CA,EAIyD2F,EAAO3F,MAJhDA,aAAiBkF,EAAIlF,EAAQ,IAAIkF,GAAE,SAAUG,GAAWA,EAAQrF,OAIT6F,KAAKN,EAAWG,GAClGF,GAAML,EAAYA,EAAUxB,MAAMqB,EAASC,GAAc,KAAKQ,WAI/D,SAASK,EAAYd,EAASe,GACjC,IAAsGC,EAAGC,EAAGhG,EAAGiG,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPpG,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOqG,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAET,KAAMe,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAX1G,SAA0BoG,EAAEpG,OAAO2G,UAAY,WAAa,OAAO3E,OAAUoE,EACvJ,SAASM,EAAKhG,GAAK,OAAO,SAAUkG,GAAK,OACzC,SAAcC,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,KAAOT,GAAG,IACN,GAAIH,EAAI,EAAGC,IAAMhG,EAAY,EAAR0G,EAAG,GAASV,EAAU,OAAIU,EAAG,GAAKV,EAAS,SAAOhG,EAAIgG,EAAU,SAAMhG,EAAEf,KAAK+G,GAAI,GAAKA,EAAER,SAAWxF,EAAIA,EAAEf,KAAK+G,EAAGU,EAAG,KAAKf,KAAM,OAAO3F,EAE3J,OADIgG,EAAI,EAAGhG,IAAG0G,EAAK,CAAS,EAARA,EAAG,GAAQ1G,EAAED,QACzB2G,EAAG,IACP,KAAK,EAAG,KAAK,EAAG1G,EAAI0G,EAAI,MACxB,KAAK,EAAc,OAAXR,EAAEC,QAAgB,CAAEpG,MAAO2G,EAAG,GAAIf,MAAM,GAChD,KAAK,EAAGO,EAAEC,QAASH,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKR,EAAEI,IAAIM,MAAOV,EAAEG,KAAKO,MAAO,SACxC,QACI,KAAM5G,EAAIkG,EAAEG,MAAMrG,EAAIA,EAAEyD,OAAS,GAAKzD,EAAEA,EAAEyD,OAAS,KAAkB,IAAViD,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAER,EAAI,EAAG,SACjG,GAAc,IAAVQ,EAAG,MAAc1G,GAAM0G,EAAG,GAAK1G,EAAE,IAAM0G,EAAG,GAAK1G,EAAE,IAAM,CAAEkG,EAAEC,MAAQO,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYR,EAAEC,MAAQnG,EAAE,GAAI,CAAEkG,EAAEC,MAAQnG,EAAE,GAAIA,EAAI0G,EAAI,MAC7D,GAAI1G,GAAKkG,EAAEC,MAAQnG,EAAE,GAAI,CAAEkG,EAAEC,MAAQnG,EAAE,GAAIkG,EAAEI,IAAIO,KAAKH,GAAK,MACvD1G,EAAE,IAAIkG,EAAEI,IAAIM,MAChBV,EAAEG,KAAKO,MAAO,SAEtBF,EAAKZ,EAAK7G,KAAK8F,EAASmB,GAC1B,MAAOtC,GAAK8C,EAAK,CAAC,EAAG9C,GAAIoC,EAAI,EAAK,QAAUD,EAAI/F,EAAI,EACtD,GAAY,EAAR0G,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3G,MAAO2G,EAAG,GAAKA,EAAG,QAAK,EAAQf,MAAM,GArB9BJ,CAAK,CAAChF,EAAGkG,MAyBtD,SAASK,EAAgBvH,EAAGL,EAAG6H,EAAGC,QAC1BC,IAAPD,IAAkBA,EAAKD,GAC3BxH,EAAEyH,GAAM9H,EAAE6H,GAGP,SAASG,EAAahI,EAAGN,GAC5B,IAAK,IAAIgC,KAAK1B,EAAa,YAAN0B,GAAoBhC,EAAQ+B,eAAeC,KAAIhC,EAAQgC,GAAK1B,EAAE0B,IAGhF,SAASuG,EAAS5H,GACrB,IAAIsB,EAAsB,mBAAXhB,QAAyBA,OAAO2G,SAAUtH,EAAI2B,GAAKtB,EAAEsB,GAAI/B,EAAI,EAC5E,GAAII,EAAG,OAAOA,EAAED,KAAKM,GACrB,GAAIA,GAAyB,iBAAbA,EAAEkE,OAAqB,MAAO,CAC1C+B,KAAM,WAEF,OADIjG,GAAKT,GAAKS,EAAEkE,SAAQlE,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAET,KAAM6G,MAAOpG,KAG5C,MAAM,IAAIoH,UAAU9F,EAAI,0BAA4B,mCAGjD,SAASuG,EAAO7H,EAAGgB,GACtB,IAAIrB,EAAsB,mBAAXW,QAAyBN,EAAEM,OAAO2G,UACjD,IAAKtH,EAAG,OAAOK,EACf,IAAmBK,EAAYgE,EAA3B9E,EAAII,EAAED,KAAKM,GAAO8H,EAAK,GAC3B,IACI,WAAc,IAAN9G,GAAgBA,KAAM,MAAQX,EAAId,EAAE0G,QAAQG,MAAM0B,EAAGR,KAAKjH,EAAEG,OAExE,MAAOuH,GAAS1D,EAAI,CAAE0D,MAAOA,GAC7B,QACI,IACQ1H,IAAMA,EAAE+F,OAASzG,EAAIJ,EAAU,SAAII,EAAED,KAAKH,GAElD,QAAU,GAAI8E,EAAG,MAAMA,EAAE0D,OAE7B,OAAOD,EAGJ,SAASE,IACZ,IAAK,IAAIF,EAAK,GAAIvI,EAAI,EAAGA,EAAI0E,UAAUC,OAAQ3E,IAC3CuI,EAAKA,EAAGxE,OAAOuE,EAAO5D,UAAU1E,KACpC,OAAOuI,EAGJ,SAASG,IACZ,IAAK,IAAI3G,EAAI,EAAG/B,EAAI,EAAG2I,EAAKjE,UAAUC,OAAQ3E,EAAI2I,EAAI3I,IAAK+B,GAAK2C,UAAU1E,GAAG2E,OACxE,IAAI7D,EAAIsD,MAAMrC,GAAIkG,EAAI,EAA3B,IAA8BjI,EAAI,EAAGA,EAAI2I,EAAI3I,IACzC,IAAK,IAAI4I,EAAIlE,UAAU1E,GAAI6I,EAAI,EAAGC,EAAKF,EAAEjE,OAAQkE,EAAIC,EAAID,IAAKZ,IAC1DnH,EAAEmH,GAAKW,EAAEC,GACjB,OAAO/H,EAGJ,SAASiI,EAAQpB,GACpB,OAAO5E,gBAAgBgG,GAAWhG,KAAK4E,EAAIA,EAAG5E,MAAQ,IAAIgG,EAAQpB,GAG/D,SAASqB,EAAiB/C,EAASC,EAAYE,GAClD,IAAKrF,OAAOkI,cAAe,MAAM,IAAIpB,UAAU,wCAC/C,IAAoD7H,EAAhDmH,EAAIf,EAAUxB,MAAMqB,EAASC,GAAc,IAAQgD,EAAI,GAC3D,OAAOlJ,EAAI,GAAIyH,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWzH,EAAEe,OAAOkI,eAAiB,WAAc,OAAOlG,MAAS/C,EACpH,SAASyH,EAAKhG,GAAS0F,EAAE1F,KAAIzB,EAAEyB,GAAK,SAAUkG,GAAK,OAAO,IAAItB,SAAQ,SAAUuC,EAAG3E,GAAKiF,EAAEnB,KAAK,CAACtG,EAAGkG,EAAGiB,EAAG3E,IAAM,GAAKkF,EAAO1H,EAAGkG,QAC9H,SAASwB,EAAO1H,EAAGkG,GAAK,KACV7G,EADqBqG,EAAE1F,GAAGkG,IACnB1G,iBAAiB8H,EAAU1C,QAAQC,QAAQxF,EAAEG,MAAM0G,GAAGb,KAAKsC,EAAS7C,GAAU8C,EAAOH,EAAE,GAAG,GAAIpI,GADpE,MAAOgE,GAAKuE,EAAOH,EAAE,GAAG,GAAIpE,GAC3E,IAAchE,EACd,SAASsI,EAAQnI,GAASkI,EAAO,OAAQlI,GACzC,SAASsF,EAAOtF,GAASkI,EAAO,QAASlI,GACzC,SAASoI,EAAOpC,EAAGU,GAASV,EAAEU,GAAIuB,EAAEI,QAASJ,EAAEvE,QAAQwE,EAAOD,EAAE,GAAG,GAAIA,EAAE,GAAG,KAGzE,SAASK,EAAiB9I,GAC7B,IAAIT,EAAG8B,EACP,OAAO9B,EAAI,GAAIyH,EAAK,QAASA,EAAK,SAAS,SAAU3C,GAAK,MAAMA,KAAO2C,EAAK,UAAWzH,EAAEe,OAAO2G,UAAY,WAAc,OAAO3E,MAAS/C,EAC1I,SAASyH,EAAKhG,EAAGwF,GAAKjH,EAAEyB,GAAKhB,EAAEgB,GAAK,SAAUkG,GAAK,OAAQ7F,GAAKA,GAAK,CAAEb,MAAO8H,EAAQtI,EAAEgB,GAAGkG,IAAKd,KAAY,WAANpF,GAAmBwF,EAAIA,EAAEU,GAAKA,GAAOV,GAGxI,SAASuC,EAAc/I,GAC1B,IAAKM,OAAOkI,cAAe,MAAM,IAAIpB,UAAU,wCAC/C,IAAiC7H,EAA7BI,EAAIK,EAAEM,OAAOkI,eACjB,OAAO7I,EAAIA,EAAED,KAAKM,IAAMA,EAAqC4H,EAAS5H,GAA2BT,EAAI,GAAIyH,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWzH,EAAEe,OAAOkI,eAAiB,WAAc,OAAOlG,MAAS/C,GAC9M,SAASyH,EAAKhG,GAAKzB,EAAEyB,GAAKhB,EAAEgB,IAAM,SAAUkG,GAAK,OAAO,IAAItB,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQjG,EAAGqH,GAAKtB,QAAQC,QAAQqB,GAAGb,MAAK,SAASa,GAAKrB,EAAQ,CAAErF,MAAO0G,EAAGd,KAAMvG,MAASiG,IADJ8C,CAAO/C,EAASC,GAA7BoB,EAAIlH,EAAEgB,GAAGkG,IAA8Bd,KAAMc,EAAE1G,YAI7I,SAASwI,EAAqBC,EAAQC,GAEzC,OADIjJ,OAAOC,eAAkBD,OAAOC,eAAe+I,EAAQ,MAAO,CAAEzI,MAAO0I,IAAiBD,EAAOC,IAAMA,EAClGD,EAGJ,SAASE,EAAaC,GACzB,GAAIA,GAAOA,EAAIzI,WAAY,OAAOyI,EAClC,IAAIjD,EAAS,GACb,GAAW,MAAPiD,EAAa,IAAK,IAAI5B,KAAK4B,EAASnJ,OAAOmB,eAAe1B,KAAK0J,EAAK5B,KAAIrB,EAAOqB,GAAK4B,EAAI5B,IAE5F,OADArB,EAAOkD,QAAUD,EACVjD,EAGJ,SAASmD,EAAgBF,GAC5B,OAAQA,GAAOA,EAAIzI,WAAcyI,EAAM,CAAEC,QAASD,GAG/C,SAASG,EAAuBC,EAAUC,GAC7C,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAIpC,UAAU,kDAExB,OAAOqC,EAAWrJ,IAAIoJ,GAGnB,SAASG,EAAuBH,EAAUC,EAAYjJ,GACzD,IAAKiJ,EAAWC,IAAIF,GAChB,MAAM,IAAIpC,UAAU,kDAGxB,OADAqC,EAAWG,IAAIJ,EAAUhJ,GAClBA,I,cCxNXlB,EAAOD,QAAUwK,K,6BCCjB5J,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCS,EAAa,EAAQ,KACrBC,EAAWF,EAAMT,QAAQY,OAAO,CAClCC,QAAS,CACL,YAAYC,KAAgBC,GACxB,MAAMC,EAAQ/H,KAAKgI,OACbC,EAAcF,EAAMG,QAAQD,aAAe,GAC3CE,EAAQJ,EAAMG,QAAQE,gBAAiB,EAC7C,OAAO,EAAIX,EAAWY,iBAAiBR,EAAa,CAChDM,QACAL,eACAG,oBAKhBlL,EAAQgK,QAAUW,G,6BClBlB/J,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQuL,oBAAiB,EACzB,MAAMC,EAAU,EAAQ,GAClBd,EAAa,EAAQ,KACrBe,EAAUD,EAAQvB,gBAAgB,EAAQ,MAChD,IAA2ByB,EAW3B1L,EAAQuL,gBAXmBG,EAWgB,KAChC,CACHR,YAAaO,EAAQzB,QAAQmB,QAAQD,YACrCE,MAAOK,EAAQzB,QAAQmB,QAAQE,gBAb5B,CAAC5J,EAAKsJ,EAAcK,KACvB,MAAMxI,EAAU8I,IAChBX,EAAeA,GAAgBnI,EAAQmI,kBACzB1C,IAAV+C,IACAA,EAAQxI,EAAQwI,QAAS,GAE7B,MAAMF,EAActI,EAAQsI,aAAe,GAC3C,OAAO,EAAIR,EAAWY,iBAAiB7J,EAAK,CAAE2J,QAAOL,eAAcG,mB,6BCb3EtK,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ2L,qBAAkB,EAE1B,SAAWA,GACPA,EAAyC,wBAAI,0BAC7CA,EAA0B,SAAI,WAC9BA,EAAwC,uBAAI,yBAC5CA,EAAoC,mBAAI,qBACxCA,EAAoC,mBAAI,qBACxCA,EAA2B,UAAI,YAC/BA,EAA2B,UAAI,YAC/BA,EAAyB,QAAI,UAC7BA,EAAyB,QAAI,UAC7BA,EAAgC,eAAI,iBACpCA,EAAqD,oCAAI,sCACzDA,EAA8B,aAAI,eAClCA,EAAwC,uBAAI,yBAC5CA,EAAgC,eAAI,iBACpCA,EAA4B,WAAI,aAChCA,EAA6B,YAAI,cAhBrC,CAiBqB3L,EAAQ2L,kBAAoB3L,EAAQ2L,gBAAkB,M,6BCpB3E/K,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ4L,sBAAwB5L,EAAQ6L,WAAa7L,EAAQ8L,SAAW9L,EAAQ+L,SAAW/L,EAAQgM,aAAehM,EAAQiM,gBAAkBjM,EAAQkM,YAAclM,EAAQmM,eAAY,EACtL,MAAMC,EAAkB,EAAQ,GAC1BC,EAAa,EAAQ,KACrBC,EAAkB,EAAQ,KAChC1L,OAAOC,eAAeb,EAAS,eAAgB,CAAEc,YAAY,EAAMC,IAAK,WAAc,OAAOuL,EAAgBN,gBAC7GpL,OAAOC,eAAeb,EAAS,aAAc,CAAEc,YAAY,EAAMC,IAAK,WAAc,OAAOuL,EAAgBT,cAC3GjL,OAAOC,eAAeb,EAAS,WAAY,CAAEc,YAAY,EAAMC,IAAK,WAAc,OAAOuL,EAAgBP,YACzGnL,OAAOC,eAAeb,EAAS,WAAY,CAAEc,YAAY,EAAMC,IAAK,WAAc,OAAOuL,EAAgBR,YACzG,MAAMS,EAAmB,EAAQ,KACjC3L,OAAOC,eAAeb,EAAS,wBAAyB,CAAEc,YAAY,EAAMC,IAAK,WAAc,OAAOwL,EAAiBX,yBACvH,MAAMY,EACF,cACIvJ,KAAKwJ,OAAS,CACVC,SAAS,EACTC,QAAS,GACTC,MAAO,IACPC,aAAc,IAAIvI,OAEtBrB,KAAK6J,SAAW,IAAIC,IACpB9J,KAAK+J,eAAiBC,UAClB,IAAIC,EAAIC,EACR,GAAqF,QAAvD,QAAxBD,EAAKE,OAAOC,cAA2B,IAAPH,OAAgB,EAASA,EAAGI,qBAA4GjF,KAAvD,QAAxB8E,EAAKC,OAAOC,cAA2B,IAAPF,OAAgB,EAASA,EAAGG,iBAsBrJrK,KAAKwJ,OAAOE,SAAW,EACzB1J,KAAKwJ,OAAOI,aAAe,GAG/BU,WAAW,KAAatK,KAAK+J,kBAAqB/J,KAAKwJ,OAAOG,YAvB1D,GAFA3J,KAAKwJ,OAAOC,SAAU,EAElBzJ,KAAKwJ,OAAOI,aAAahI,OAAS,EAAG,CACrC,IAAK,MAAM2I,KAASvK,KAAKwJ,OAAOI,aAC5B,OAAQW,EAAMC,MACV,IAAK,aACKxK,KAAKyK,KAAKF,EAAMA,OACtB,MACJ,IAAK,eACKvK,KAAK0K,OAAOH,EAAMA,OACxB,MACJ,IAAK,iBACKvK,KAAK2K,WAIvB3K,KAAKwJ,OAAOI,aAAe,KAWvC5J,KAAKyK,KAAOT,MAAOY,IACf,IAAIX,GACoD,IAApDjK,KAAKyJ,QAAQ,CAAEe,KAAM,OAAQD,MAAOK,KAAyB5K,KAAK6K,OAAUD,EAAH,gBAE/B,QAAtCX,EAAKE,OAAOC,OAAOC,qBAAkC,IAAPJ,OAAgB,EAASA,EAAGa,kBAAkBF,KAExG5K,KAAK0K,OAASV,MAAOO,IACjB,IAAIN,EAAIC,GACwC,IAA5ClK,KAAKyJ,QAAQ,CAAEe,KAAM,SAAUD,WAAsBvK,KAAK6K,OAAO,GAAGN,EAAMxB,uBAAuBwB,EAAMQ,YAE3GR,EAAMS,gBAAmD,QAAhCf,EAAKM,EAAMS,uBAAoC,IAAPf,EAAgBA,EAAK,GACtFM,EAAMS,gBAAgBlC,SAAWyB,EAAMzB,SACvCyB,EAAMS,gBAAgBnC,SAAW0B,EAAM1B,eACO,QAAtCqB,EAAKC,OAAOC,OAAOC,qBAAkC,IAAPH,OAAgB,EAASA,EAAGe,oBAAoBV,EAAMxB,aAAcwB,EAAMQ,OAAQR,EAAMS,oBAElJhL,KAAK2K,SAAWX,UACZ,IAAIC,GACuC,IAAvCjK,KAAKyJ,QAAQ,CAAEe,KAAM,cAA2BxK,KAAK6K,OAAO,mBAElB,QAAtCZ,EAAKE,OAAOC,OAAOC,qBAAkC,IAAPJ,OAAgB,EAASA,EAAGiB,mCAEtFlL,KAAKmL,QAAUnB,MAAOoB,GACX,IAAI9H,QAAQC,IACf+G,WAAW/G,EAAS6H,KAG5BpL,KAAK6K,OAAUN,IACX,MAAMc,EAAMC,KAAKD,MACXE,EAAOvL,KAAK6J,SAAS/L,IAAIyM,GAE/B,GAAY,MAARgB,GAAgBF,EAAME,EAAO,GAC7B,OAAO,EAIX,GAFAvL,KAAK6J,SAASvC,IAAIiD,EAAOc,GAErBrL,KAAK6J,SAAS2B,KAAO,GAAI,CACzB,MAAMrN,EAAI,IAAI2L,IACd9J,KAAK6J,SAAS4B,QAAQ,CAACvN,EAAOM,KACtB6M,EAAMnN,EAAQ,IACdC,EAAEmJ,IAAI9I,EAAKN,KAEnB8B,KAAK6J,SAAW1L,EAEpB,OAAO,GAEN6B,KAAK+J,iBAEd,qBAGI,OAFM2B,aAA4BnC,IAC9BmC,EAAmB,IAAInC,GACpBmC,EAEX,cACI,IAAIzB,EACJ,OAA8C,QAAtCA,EAAKE,OAAOC,OAAOC,qBAAkC,IAAPJ,OAAgB,EAASA,EAAGlK,QAEtF,QAAQwK,GACJ,OAA4B,IAAxBvK,KAAKwJ,OAAOC,UAEZzJ,KAAKwJ,OAAOE,QAAU,GACtB1J,KAAKwJ,OAAOI,aAAa5E,KAAKuF,IAC3B,IAmCf,IAAImB,EAhCJnC,EAAeN,YAAc,CAAC2B,EAAUe,KAEpC,GAAIf,IAAavB,EAAgBN,aAAa6C,oBAC1C,OAAQD,GACJ,KAAKxC,EAAgB0C,cAAcC,uBAC/B,OAAOzC,EAAgBR,SAASkD,kBACpC,KAAK5C,EAAgB0C,cAAcG,uBAC/B,OAAO3C,EAAgBR,SAASoD,WACpC,KAAK9C,EAAgB0C,cAAcK,gBAC/B,OAAO7C,EAAgBR,SAASsD,sBACpC,KAAKhD,EAAgB0C,cAAcO,OAC/B,OAAO/C,EAAgBR,SAASwD,qBACpC,KAAKlD,EAAgB0C,cAAcS,YAC/B,OAAOjD,EAAgBR,SAAS0D,kBACpC,KAAKpD,EAAgB0C,cAAcW,eAC/B,OAAOnD,EAAgBR,SAAS4D,gBACpC,KAAKtD,EAAgB0C,cAAca,WAC/B,OAAOrD,EAAgBR,SAAS8D,gBACpC,KAAKxD,EAAgB0C,cAAce,eAC/B,OAAOvD,EAAgBR,SAASgE,qBAG5C,OAAOxD,EAAgBR,SAASiE,SAEpCvD,EAAeP,gBAAmB4B,IAE9B,OAAQA,GACJ,KAAKxB,EAAW2D,SAASC,aACrB,OAAO3D,EAAgBN,aAAa6C,oBAE5C,OAAOvC,EAAgBN,aAAa+D,SAGxC,MAAM5D,EAAYK,EAAe0D,QACjClQ,EAAQmM,UAAYA,EACpB,MAAMD,EAAcM,EAAeN,YACnClM,EAAQkM,YAAcA,EACtB,MAAMD,EAAkBO,EAAeP,gBACvCjM,EAAQiM,gBAAkBA,G,6BCxJ1BrL,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ8O,mBAAgB,EAExB,SAAWA,GACPA,EAA8B,eAAI,iBAClCA,EAA+B,gBAAI,kBACnCA,EAA4C,6BAAI,+BAChDA,EAA4C,6BAAI,+BAChDA,EAAsC,uBAAI,yBAC1CA,EAA6C,8BAAI,gCACjDA,EAA8B,eAAI,iBAClCA,EAAoB,KAAI,OACxBA,EAAqB,MAAI,QACzBA,EAA2B,YAAI,cAC/BA,EAAsC,uBAAI,yBAC1CA,EAAmC,oBAAI,sBACvCA,EAAoC,qBAAI,uBACxCA,EAAmC,oBAAI,sBACvCA,EAAmC,oBAAI,sBACvCA,EAAiC,kBAAI,oBACrCA,EAAyB,UAAI,YAC7BA,EAAsB,OAAI,SAC1BA,EAAiC,kBAAI,oBACrCA,EAAmC,oBAAI,sBACvCA,EAAiC,kBAAI,oBACrCA,EAAwB,SAAI,WAC5BA,EAA6B,cAAI,gBACjCA,EAAwC,yBAAI,2BAC5CA,EAA6C,8BAAI,gCACjDA,EAA4B,aAAI,eAChCA,EAA0C,2BAAI,6BAC9CA,EAAqC,sBAAI,wBACzCA,EAAsC,uBAAI,yBAC1CA,EAA+B,gBAAI,kBACnCA,EAA0B,WAAI,aAC9BA,EAA8B,eAAI,iBAhCtC,CAiCmB9O,EAAQ8O,gBAAkB9O,EAAQ8O,cAAgB,M,6BCrCrE,mIAOIqB,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCCjBfvP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQoQ,gBAAa,EASrB,SAAWA,GACPA,EAAqB,SAAI,WACzBA,EAAqB,SAAI,WACzBA,EAAiC,qBAAI,wBACrCA,EAA+B,mBAAI,2BACnCA,EAA+B,mBAAI,0BACnCA,EAAuC,2BAAI,eAC3CA,EAAiC,qBAAI,uBACrCA,EAAoC,wBAAI,4BACxCA,EAA2B,eAAI,iBAC/BA,EAA8B,kBAAI,oBAClCA,EAA2B,eAAI,0BAC/BA,EAAyB,aAAI,YAC7BA,EAA4B,gBAAI,mBAChCA,EAA0B,cAAI,gBAC9BA,EAAsB,UAAI,oBAC1BA,EAA2B,eAAI,qBAC/BA,EAA2B,eAAI,qBAjBnC,CAkBgBpQ,EAAQoQ,aAAepQ,EAAQoQ,WAAa,M,6BC7B5D,0IAQID,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCCjBfvP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqQ,0BAAuB,EAE/B,SAAWA,GACPA,EAA8B,QAAI,UAClCA,EAA8B,QAAI,UAClCA,EAAgC,UAAI,YACpCA,EAAgC,UAAI,YACpCA,EAA2B,KAAI,OAC/BA,EAA+B,SAAI,WACnCA,EAAuC,iBAAI,mBAC3CA,EAAkC,YAAI,cACtCA,EAA0C,oBAAI,sBAC9CA,EAA4B,MAAI,QAChCA,EAAgC,UAAI,YAXxC,CAY0BrQ,EAAQqQ,uBAAyBrQ,EAAQqQ,qBAAuB,M,6BChB1F,mIAOIF,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCCjBfvP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBY,EAAkB,EAAQ,GAC1BkE,EAAgB9E,EAAQvB,gBAAgB,EAAQ,MAChDsG,EAAU3P,OAAO4P,KAAKpE,EAAgB0C,eACvC2B,IAAKC,GAAkB,CAACA,EAAe,IAAMnK,QAAQC,UAAUQ,KAAK,IAAMwE,EAAQ1B,aAAa,OAAQ,KAAK4G,OAC5GC,OAAQC,GAAMA,GACnB5Q,EAAQgK,SAAU,EAAIsG,EAActG,SAASuG,I,6BCP7C3P,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ6Q,kBAAe,EAEvB,SAAWA,GACPA,EAAaA,EAAsB,QAAI,GAAK,UAC5CA,EAAaA,EAA2B,aAAI,GAAK,eACjDA,EAAaA,EAAgC,kBAAI,GAAK,oBACtDA,EAAaA,EAA6B,eAAI,GAAK,iBACnDA,EAAaA,EAA6B,eAAI,GAAK,iBACnDA,EAAaA,EAAyB,WAAI,GAAK,aANnD,CAOkB7Q,EAAQ6Q,eAAiB7Q,EAAQ6Q,aAAe,M,6BCXlE,0IAQIV,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCClBfvP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClB8E,EAAgB9E,EAAQvB,gBAAgB,EAAQ,MAChD6G,EAAyB,EAAQ,IACjCP,EAAU3P,OAAO4P,KAAKM,EAAuBT,sBAC9CI,IAAKM,GAAe,CAACA,EAAY,IAAMxK,QAAQC,UAAUQ,KAAK,IAAMwE,EAAQ1B,aAAa,OAAQ,KAAKiH,OAC3G/Q,EAAQgK,SAAU,EAAIsG,EAActG,SAASuG,I,6BCP7C,wHAAsL,YAAG,G,6BCCzL3P,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IAC9CjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,MACNuQ,SAAU,CACN,uBACI,OAAO/N,KAAKgI,OAAOE,QAAQ8F,uBAGnCC,MAAO,CACH,qBAAqBD,EAAsBE,GACvC,MAAM3D,EAAQ,IAAI4D,YAAY,sBAAuB,CACjDC,SAAS,EACTC,YAAY,EACZC,OAAQ,CACJN,uBACAE,2BAGRlO,KAAKuO,IAAIC,cAAcjE,Q,6BCrBnC,wHAAuM,YAAG,G,6BCC1M5M,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCyH,EAAkB,EAAQ,GAChC1R,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,iBACNkR,MAAO,GACPX,SAAU,CACN,qBACI,OAAO/N,KAAKgI,OAAOE,QAAQyG,oBAE/B,YACI,OAAO3O,KAAKgI,OAAOE,QAAQ0G,WAE/B,uBACI,OAAO5O,KAAKgI,OAAOE,QAAQ8F,uBAGnCC,MAAO,CACH,mBAAmBY,GACXA,GAAkE,iBAAlCA,EAAsBC,UAA8D,iBAA/BD,EAAsBE,OAC3G/O,KAAKgP,UAAU,KACX,MAAMC,EAAcC,SAASC,cAAc,uBACvCF,IACAjP,KAAKgI,OAAOoH,OAAO,qCAAqC,GACxDH,EAAYI,aAK5B,kBACI,KAAOrP,KAAKgI,OAAOE,QAAQ0G,YAAc5O,KAAK2O,mBAAmBG,SAASlN,QAAQ,CAC9E,MAAM+J,EAAY,IACX3L,KAAKgI,OAAOE,QAAQoH,gCAErBtP,KAAKgI,OAAOuH,SAAS,kBAAmB5D,SACxC,IAAIrI,QAASvF,GAAMuM,WAAWvM,EAAG,SAInDyR,WAAY,GACZ,gBACI,IAAIvF,EACCwE,EAAgBvF,UAAUuB,KAAKgE,EAAgB1F,aAAa6C,qBACoD,MAAlD,QAA7D3B,EAAKjK,KAAKgI,OAAOE,QAAQuH,cAAcC,wBAAqC,IAAPzF,OAAgB,EAASA,EAAG0F,iBAC7F3P,KAAKgI,OAAOuH,SAAS,yBAE/BvP,KAAKgI,OAAOoH,OAAO,mBAAoB,CACnCQ,mBAAoB5P,KAAKgI,OAAOE,QAAQuH,cAAcI,qBACtDC,YAAa,S,6BClDzB,wHAAqM,YAAG,G,6BCCxMnS,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCmC,EAAkB,EAAQ,GAC1BsF,EAAkB,EAAQ,GAChC1R,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,eACNkR,MAAO,GACPX,SAAU,CACN,uBACI,MAAMN,EAAgBzN,KAAKgI,OAAOE,QAAQ8F,qBAC1C,OAAQP,GACJ,KAAKtE,EAAgB0C,cAAcO,OAC/B,OAAOjD,EAAgB0C,cAAckE,aACzC,KAAK5G,EAAgB0C,cAAcS,YAC/B,OAAOnD,EAAgB0C,cAAcmE,2BACzC,KAAK7G,EAAgB0C,cAAcoE,gBAC/B,OAAO9G,EAAgB0C,cAAcqE,sBACzC,QACI,OAAOzC,IAGnB,qBACI,OAAOzN,KAAKgI,OAAOE,QAAQyG,oBAE/B,YACI,OAAO3O,KAAKgI,OAAOE,QAAQ0G,YAGnCX,MAAO,CACH,mBAAmBkC,GACXA,GAAoE,iBAAnCA,EAAuBrB,UAA+D,iBAAhCqB,EAAuBpB,OAC9G/O,KAAKgP,UAAU,KACX,MAAMC,EAAcC,SAASC,cAAc,uBACvCF,IACAjP,KAAKgI,OAAOoH,OAAO,qCAAqC,GACxDH,EAAYI,aAK5B,kBACI,KAAOrP,KAAKgI,OAAOE,QAAQ0G,WAAW,CAClC,MAAMjD,EAAY,IAAK3L,KAAKgI,OAAOE,QAAQoH,gCACrCtP,KAAKgI,OAAOuH,SAAS,kBAAmB5D,SACxC,IAAIrI,QAAQvF,GAAKuM,WAAWvM,EAAG,SAIjDyR,WAAY,GACZ,UACIxP,KAAKgI,OAAOoH,OAAO,mBAAoB,CACnCQ,mBAAoB5P,KAAKgI,OAAOE,QAAQuH,cAAcI,qBACtDC,YAAa,KAEZ9P,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,kBAC1D5B,EAAgBvF,UAAUuB,KAAKgE,EAAgB1F,aAAa6C,yB,6BCzDzE,wHAAuM,YAAG,G,6BCC1MjO,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCmC,EAAkB,EAAQ,GAChCpM,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,iBACNkR,MAAO,GACPX,SAAU,CACN,uBACI,MAAMN,EAAgBzN,KAAKgI,OAAOE,QAAQ8F,qBAC1C,OAAQP,GACJ,KAAKtE,EAAgB0C,cAAcO,OAC/B,OAAOjD,EAAgB0C,cAAckE,aACzC,KAAK5G,EAAgB0C,cAAcS,YAC/B,OAAOnD,EAAgB0C,cAAcmE,2BACzC,KAAK7G,EAAgB0C,cAAcyE,oBAM/B,OALAtQ,KAAKgI,OAAOoH,OAAO,mBAAoB,CACnCQ,mBAAoBzG,EAAgB0C,cAAc0E,oBAClDT,YAAa,KAEZ9P,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,kBACxDlH,EAAgB0C,cAAc0E,oBACzC,QACI,OAAO9C,KAIvB7F,QAAS,CACL,WAAW2C,GACFvK,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,kBAC/D9F,EAAMiG,mBAGdhB,WAAY,GACZ,UACIxP,KAAKgI,OAAOoH,OAAO,mBAAoB,CACnCQ,mBAAoB5P,KAAKgI,OAAOE,QAAQuH,cAAcI,qBACtDC,YAAa,KAEZ9P,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,sB,6BCxCvE,wHAAuM,YAAG,G,6BCC1M1S,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCmC,EAAkB,EAAQ,GAChCpM,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,iBACNkR,MAAO,GACPX,SAAU,CACN,uBACI,MAAMN,EAAgBzN,KAAKgI,OAAOE,QAAQ8F,qBAC1C,OAAQP,GACJ,KAAKtE,EAAgB0C,cAAcO,OAC/B,OAAOjD,EAAgB0C,cAAckE,aACzC,KAAK5G,EAAgB0C,cAAcS,YAC/B,OAAOnD,EAAgB0C,cAAcmE,2BACzC,KAAK7G,EAAgB0C,cAAcoE,gBAC/B,OAAO9G,EAAgB0C,cAAcqE,sBACzC,QACI,OAAOzC,KAIvB7F,QAAS,CACL,WAAW2C,GACFvK,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,kBAC/D9F,EAAMiG,mBAGdhB,WAAY,GACZ,UACIxP,KAAKgI,OAAOoH,OAAO,mBAAoB,CACnCQ,mBAAoB5P,KAAKgI,OAAOE,QAAQuH,cAAcI,qBACtDC,YAAa,KAEZ9P,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,sB,6BCnCvE,wHAAsM,YAAG,G,6BCCzM1S,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxCmC,EAAkB,EAAQ,GAChCpM,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,gBACNkR,MAAO,GACPX,SAAU,CACN,uBACI,MAAMN,EAAgBzN,KAAKgI,OAAOE,QAAQ8F,qBAC1C,OAAQP,GACJ,KAAKtE,EAAgB0C,cAAcO,OAC/B,OAAOjD,EAAgB0C,cAAckE,aACzC,KAAK5G,EAAgB0C,cAAcS,YAC/B,OAAOnD,EAAgB0C,cAAcmE,2BACzC,KAAK7G,EAAgB0C,cAAcoE,gBAC/B,OAAO9G,EAAgB0C,cAAcqE,sBACzC,QACI,OAAOzC,KAIvB7F,QAAS,CACL,WAAW2C,GACFvK,KAAKgI,OAAOuH,SAAS,kBAAmBvP,KAAKgI,OAAOoI,MAAMC,kBAC/D9F,EAAMiG,mBAGdhB,WAAY,GACZ,UACI,IAAIvF,EACJ,IAAIwG,EAAgB,IAAKzQ,KAAKgI,OAAOoI,MAAMX,cAAciB,wBACzDD,EAAcb,mBAAqBzG,EAAgB0C,cAAcO,OACjEpM,KAAKgI,OAAOoH,OAAO,mBAAoBqB,GAIvC,GADsBA,EACD,CACjB,IAAIE,EAAQ,EACRC,EAAmB,EACqB,QAA3C3G,EAJiBwG,EAIII,wBAAqC,IAAP5G,GAAyBA,EAAGwB,SAAQ,SAAUqF,GAC9F,IAAI7G,EACJ6G,EAASC,IAAMJ,EAAMK,WACrBF,EAASG,YAAYF,IAAMJ,EAAMK,WACY,QAA5C/G,EAAK6G,EAASG,YAAYC,oBAAiC,IAAPjH,GAAyBA,EAAGwB,SAAQ,SAAU0F,GAC/FA,EAAYJ,IAAMH,EAAiBI,WACnCJ,OAEJD,Y,6BCjDhB,wHAA6M,YAAG,G,6BCChNhT,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IAC9CjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,kBACNkR,MAAO,GACPX,SAAU,GACVnG,QAAS,GACT4H,WAAY,M,6BCThB,wHAA8M,YAAG,G,6BCCjN7R,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxCoK,EAAc7I,EAAQvB,gBAAgB,EAAQ,IAC9CqK,EAAoB9I,EAAQvB,gBAAgB,EAAQ,MAC1DjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,oBACNkR,MAAO,GACPX,SAAU,CACN,UACI,OAAO/N,KAAKgI,OAAOoI,MAAMX,cAAc6B,UAG/C9B,WAAY,CACR+B,aAAcH,EAAYrK,QAC1ByK,YAAaH,EAAkBtK,Y,6BChBvC,wHAA8L,YAAG,G,6BCCjMpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IAC9CjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,gBACNkR,MAAO,GACPX,SAAU,CACN,YACI,QAAS/N,KAAKyR,OAAOC,QAEzB,YACI,QAAS1R,KAAKyR,OAAOE,Y,6BCZjC,wHAAoM,YAAG,G,6BCCvMhU,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC4K,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrBC,EAAoBvJ,EAAQvB,gBAAgB,EAAQ,KACpD+K,EAAexJ,EAAQvB,gBAAgB,EAAQ,MAC/CgL,EAA0B,EAAQ,KACxCjV,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,eACNkR,MAAO,CACHuD,WAAY,CACRzH,KAAM0H,OACNnL,QAAS,IAEboL,IAAK,CACD3H,KAAM0H,OACNnL,QAAS,KAGjBqL,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzByF,SAAU,CACN,eACI,MAAMwE,EAASvS,KAAKgI,OAAOoI,MAAMmC,OACjC,IAAIC,EAAY,GAIhB,OAHID,EAAO3Q,OAAS,IAChB4Q,EAAYD,EAAO,GAAGE,eAER,OAAdD,GAAsBA,EAAUE,WAAW,OACpC1S,KAAK2S,YAAY,kBAAkBH,GAGnCxS,KAAK2S,YAAY,mBAIpCnD,WAAY,CACRoD,YAAad,EAAkB/K,SAEnC,UACIgL,EAAahL,QAAQ8L,cAAc,CAC/BC,UAAW5D,SAASC,cAAc,wBAClC4D,SAAU,MACVC,cAAehB,EAAwBiB,oBACvCC,MAAM,EACNC,UAAU,Q,6BCjDtB,wHAAoM,YAAG,G,6BCCvMxV,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IAC9CjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,eACNkR,MAAO,CACHgD,OAAQ,CACJlH,KAAM0H,OACNnL,QAAS,IAEbqM,SAAU,CACN5I,KAAM0H,OACNnL,QAAS,KAGjB,UACwB,KAAhB/G,KAAK0R,QACL1R,KAAKqT,MAAMC,QAAQC,Y,6BClB/B,wHAAoN,YAAG,G,6BCCvN5V,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxCqK,EAAoB9I,EAAQvB,gBAAgB,EAAQ,MACpDwM,EAAuBjL,EAAQvB,gBAAgB,EAAQ,KACvDyM,EAA2BlL,EAAQvB,gBAAgB,EAAQ,KACjEjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,oBACNkR,MAAO,GACPX,SAAU,CACN,UACI,OAAO/N,KAAKgI,OAAOoI,MAAMX,cAAc6B,SAE3C,MACI,QAAQ,GACJ,KAAKtR,KAAKgI,OAAOE,QAAQwL,cACrB,OAAU1T,KAAKsR,QAAR,eACX,KAAKtR,KAAKgI,OAAOE,QAAQyL,yBACrB,OAAU3T,KAAKsR,QAAR,iBAEf,OAAUtR,KAAKsR,QAAR,mBAGf9B,WAAY,CACRoE,eAAgBJ,EAAqBzM,QACrCyK,YAAaH,EAAkBtK,QAC/B8M,mBAAoBJ,EAAyB1M,Y,6BC3BrD,wHAAuM,YAAG,G,6BCC1MpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IAC9CjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,kBACNuQ,SAAU,CACN,YACI,QAAS/N,KAAKyR,OAAOC,QAEzB,YACI,QAAS1R,KAAKyR,OAAOE,QAEzB,WACI,OAAO3R,KAAKgI,OAAOE,QAAQ4L,c,6BCdvC,wHAA2M,YAAG,G,6BCC9MnW,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC4K,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrBkC,EAAoB,EAAQ,GAC5BC,EAAoBzL,EAAQvB,gBAAgB,EAAQ,MACpDiN,EAAS,EAAQ,KACjBxF,EAAkB,EAAQ,GAChC1R,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,wBACN4U,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzB4L,KAAI,KACO,CACHC,eAAe,EACfC,qBAAqB,EAErBC,0BAA2B,CACvBN,EAAkBrL,gBAAgB4L,mBAClCP,EAAkBrL,gBAAgB6L,eAClCR,EAAkBrL,gBAAgB8L,UAClCT,EAAkBrL,gBAAgB+L,cAI9C/F,MAAO,CACHyD,IAAK,CACD3H,KAAM0H,OACNnL,QAAS,KAEbgC,aAAc,CACVyB,KAAM0H,OACNnL,QAAS,KAGjBgH,SAAU,KACH,EAAIkG,EAAOS,YAAY,CAAC,yBAA0B,4BAA6B,iBAAkB,uBAChG,2BAA4B,2BAA4B,sBACzD,EAAIT,EAAOU,UAAU,CAAC,kBAAmB,mBAAoB,cAChE,WACI,OAAO3U,KAAKgI,OAAOE,QAAQ4L,UAE/B,eACI,IAAI7J,EACJ,IAAI2K,EAAe,GACnB,GAAI5U,KAAK6U,uBACLD,EAAe5U,KAAK2S,YAAY,uCAE/B,IAAK3S,KAAKqU,0BAA0BS,SAAS9U,KAAK+U,iBACnD,GAAI/U,KAAKgV,0BAA2B,CAChC,IAAInN,EAAc,mBAAmB7H,KAAK+U,gBACtC/U,KAAK+I,aAAanH,OAAS,IAC3BiG,EAAc,GAAG7H,KAAK+I,gBAAgBlB,KAC1C+M,EAAe5U,KAAK2S,YAAY9K,EAA0D,QAA5CoC,EAAKjK,KAAKqQ,iBAAiB4E,mBAAgC,IAAPhL,OAAgB,EAASA,EAAGiL,SAEzHlV,KAAKmV,iBACVP,EAAe5U,KAAK2S,YAAY,kBAIxC,OADA3S,KAAKoV,gBAAgBR,EAAahT,OAAS,GACpCgT,GAEX,kBACI,OAAI5U,KAAK2T,yBACE3T,KAAK2S,YAAY,6BACnB3S,KAAKqV,yBACHrV,KAAK2S,YAAY,6BACnB3S,KAAK0T,cACH1T,KAAK2S,YAAY,2BACrB,WAGf/K,QAAS,CACL,YAAY0N,EAAc/K,GACtBvK,KAAKmU,cAAgBmB,EACjB/K,GACAA,EAAMiG,kBAGd,oBACI,OAAIxQ,KAAKgI,OAAOE,QAAQyL,yBACb3T,KAAK2S,YAAY,qCACnB3S,KAAKgI,OAAOE,QAAQmN,yBAClBrV,KAAK2S,YAAY,qCACnB3S,KAAKgI,OAAOE,QAAQwL,cAClB1T,KAAK2S,YAAY,mCACrB,IAEX,gBAAgB4C,GACZvV,KAAKgP,UAAU,KACXhP,KAAKoU,oBAAsBmB,EACvBA,GACAvV,KAAKqT,MAAMmC,MAAMC,eAAe,CAAEC,SAAU,cAIxD,oBACI1V,KAAKoU,qBAAsB,GAE/B,iBAAiB7J,GACb,MAAMK,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UACtEA,IAAa6D,EAAgB1F,aAAa+D,SACrC2B,EAAgBvF,UAAUwB,OAAO,CAClC3B,aAAc6B,EACd9B,SAAU2F,EAAgB3F,SAAS6M,YACnC9M,UAAU,EAAI4F,EAAgBxF,aAAa2B,EAAU5K,KAAKgO,sBAC1DjD,OAAQ0D,EAAgB7F,WAAWgN,iBAG3C5V,KAAK6V,aAAY,EAAMtL,IAE3B,0BACI,MAAMK,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UACtEA,IAAa6D,EAAgB1F,aAAa+D,eACpC2B,EAAgBvF,UAAUwB,OAAO,CACnC3B,aAAc6B,EACd9B,SAAU2F,EAAgB3F,SAASgN,aACnCjN,SAAU4F,EAAgB5F,SAASkN,kBACnChL,OAAQ0D,EAAgB7F,WAAWoN,cAGvChW,KAAKiW,YAET/G,SAASgH,SAASC,KAAOnW,KAAKmS,MAElC,mBACI,MAAMvH,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UACtEA,IAAa6D,EAAgB1F,aAAa+D,SACrC2B,EAAgBvF,UAAUwB,OAAO,CAClC3B,aAAc6B,EACd9B,SAAU2F,EAAgB3F,SAASgN,aACnCjN,SAAU4F,EAAgB5F,SAASkN,kBACnChL,OAAQ0D,EAAgB7F,WAAWgN,iBAG3C5V,KAAK6V,aAAY,IAErB,cACI,MAAMjL,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UACtEA,IAAa6D,EAAgB1F,aAAa+D,SACrC2B,EAAgBvF,UAAUwB,OAAO,CAClC3B,aAAc6B,EACd9B,SAAU2F,EAAgB3F,SAASgN,aACnCjN,SAAU4F,EAAgB5F,SAASkN,kBACnChL,OAAQ0D,EAAgB7F,WAAWwN,iBAKnD,UACI,IAAInM,EAAIC,EAAImM,EAG6C,QAAxDpM,EAAKiF,SAASC,cAAc,8BAA2C,IAAPlF,GAAyBA,EAAGqM,aAAa,OAAQ,UAE3C,QAAtEpM,EAAKgF,SAASC,cAAc,4CAAyD,IAAPjF,GAAyBA,EAAGoM,aAAa,OAAQ,UAE5D,QAAnED,EAAKnH,SAASC,cAAc,yCAAsD,IAAPkH,GAAyBA,EAAGC,aAAa,OAAQ,UACzHtW,KAAKgI,OAAOE,QAAQ2M,wBACpB7U,KAAKoV,iBAAgB,IAG7B5F,WAAY,CACR+G,YAAavC,EAAkBjN,Y,6BCvKvC,wHAAoM,YAAG,G,6BCCvMpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC4K,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GAC3B9U,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,eACN4U,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzByF,SAAU,CACN,kBACI,OAAO/N,KAAKwW,wBAA0B,GAE1C,0BACI,OAAOxW,KAAKgI,OAAOE,QAAQsO,yBAE/B,sBACI,OAAOxW,KAAKgI,OAAOE,QAAQuO,qBAE/B,kBACI,MAAMC,EAA+C,IAA3B1W,KAAKyW,oBAA4BzW,KAAKwW,wBAChE,OAAOE,EAAoB,IAAM,IAAMA,GAE3C,qBACI,OAAO1W,KAAK2S,YAAY,6BAA8B3S,KAAKyW,oBAAqBzW,KAAKwW,8B,6BC3BjG,wHAAqN,YAAG,G,6BCCxN7Y,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC2P,EAAuBpO,EAAQvB,gBAAgB,EAAQ,MAC7DjK,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,2BACNgS,WAAY,CACRoH,eAAgBD,EAAqB5P,Y,6BCR7C,wHAA6M,YAAG,G,6BCChNpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC+M,EAAoB,EAAQ,GAC5B8C,EAAiB,EAAQ,IACzBC,EAAmB,EAAQ,KAC3BlF,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrB4B,EAA2BlL,EAAQvB,gBAAgB,EAAQ,KAC3DwM,EAAuBjL,EAAQvB,gBAAgB,EAAQ,KACvD+P,EAAsBxO,EAAQvB,gBAAgB,EAAQ,KACtDyH,EAAkB,EAAQ,GAChC1R,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,kBACN0W,KAAM,KACK,CACH8C,iBAAkB,IAG1BtI,MAAO,CACHuI,SAAU,CACNzM,KAAM0H,OACNgF,UAAU,EACVC,UAAWC,GAAwB,iBAATA,GAA8B,OAATA,EAC/CrQ,QAAS,OAGjBgH,SAAU,CACN,WACI,OAAO/N,KAAKgI,OAAOE,QAAQ4L,UAE/B,cACI,OAAiC,IAA1B9T,KAAKgX,kBAEhB,aACI,OAAOhX,KAAKgI,OAAOE,QAAQmP,uBAE/B,mBACI,OAAOrX,KAAKgI,OAAOoI,MAAMC,kBAE7B,YACI,OAAOrQ,KAAKgI,OAAOoI,MAAMC,iBAAiBiH,WAAa,KAG/DlF,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzBV,QAAS,CACL,UACI,OAAO5H,KAAKgI,OAAOoI,MAAMX,cAAc6B,SAE3C,eACI,MAAM9G,EAAOxK,KAAKuX,UAAU3V,OAAS,EAAI5B,KAAKuX,UAAU,GAAGC,kBAAoB,EAC/E,OAAOX,EAAejJ,aAAapD,IAEvC,qBAAqBiN,GACjB,IAAIxN,EAAIC,EACRlK,KAAKgX,iBAAmBS,EACxB,MAAM7M,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UAC1E,GAAIA,IAAa6D,EAAgB1F,aAAa+D,QAAS,CACnD,IAAI4K,EAA2I,QAA7HxN,EAAgE,QAA1DD,EAAKjK,KAAKuX,UAAUI,KAAK3Y,GAAKA,EAAEkW,KAAOuC,UAAkC,IAAPxN,OAAgB,EAASA,EAAG2N,2BAAwC,IAAP1N,EAAgBA,EAAK4M,EAAiBe,eAAeC,KACvMrJ,EAAgBvF,UAAUwB,OAAO,CAClC3B,aAAc6B,EACdG,OAAQ2M,IAAeZ,EAAiBe,eAAeE,SAAWtJ,EAAgB7F,WAAWoP,yBAA2BvJ,EAAgB7F,WAAWqP,2BACnJnP,SAAU2F,EAAgB3F,SAAS6M,YACnC9M,SAAU4F,EAAgB5F,SAASkD,0BAGrC/L,KAAKkY,cAEf,mBACI,GAAIlY,KAAKmY,WACL,OAEJ,IAAIC,EAAiBpY,KAAKgX,iBAC1B,IAAKoB,EAAgB,CACjB,MAAMC,EAAoB,CACtB,CACI5F,cAAe,GACf6F,UAAW,EACXC,MAAO,uBACPC,UAAW,EACXC,QAAS,0CAA0CzY,KAAKgX,4BAA4BhX,KAAKuX,UAAUmB,KAAK,OACxGC,OAAQ,4BACRC,SAAU,EACVC,QAAS,IAIjB,YADA7Y,KAAKgI,OAAOoH,OAAO,SAAUiJ,GAGjC,IAAI1M,EAAY,IACT3L,KAAKqQ,iBACRyI,iBAAkBV,GAGtBpY,KAAKgI,OAAOoH,OAAO,kBAAmB2E,EAAkBrL,gBAAgBqQ,eAElE/Y,KAAKgI,OAAOuH,SAAS,kBAAmB5D,KAGtD6D,WAAY,CACRqE,mBAAoBJ,EAAyB1M,QAC7C6M,eAAgBJ,EAAqBzM,QACrCiS,cAAejC,EAAoBhQ,Y,6BC1G3C,wHAAsM,YAAG,G,6BCCzMpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MACMsJ,EADU,EAAQ,GACFR,gBAAgB,EAAQ,IACxC6K,EAAa,EAAQ,GAC3B9U,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,iBACNkR,MAAO,CACHhH,SAAU,CACN8C,KAAM0H,OACNnL,QAAS,KAGjBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzByF,SAAU,CACN,WACI,OAAO/N,KAAKgI,OAAOE,QAAQ4L,UAE/B,aACI,IAAImF,EAAU,CAAC,iBAAkB,oBAKjC,OAJIjZ,KAAK8T,SACLmF,EAAQjU,KAAK,cAAe,uBAE5BiU,EAAQjU,KAAK,eAAgB,sBAC1BiU,IAGf,UACIjZ,KAAKqT,MAAMC,QAAQC,Y,6BC9B3B,wHAA8M,YAAG,G,6BCCjN5V,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC+M,EAAoB,EAAQ,GAC5B8C,EAAiB,EAAQ,IACzBqC,EAA6B,EAAQ,KACrCC,EAAe,EAAQ,GACvBvH,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrB4B,EAA2BlL,EAAQvB,gBAAgB,EAAQ,KAC3DwM,EAAuBjL,EAAQvB,gBAAgB,EAAQ,KACvDoS,EAAkC7Q,EAAQvB,gBAAgB,EAAQ,MAClE+P,EAAsBxO,EAAQvB,gBAAgB,EAAQ,KACtDyH,EAAkB,EAAQ,GAChC1R,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,mBACN0W,KAAI,KACO,CACHmF,kBAAkB,EAClBC,sBAAuB,IAAIxP,IAC3ByP,iBAAiB,IAGzBnH,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzBV,QAAS,CACL,UACI,OAAO5H,KAAKgI,OAAOoI,MAAMX,cAAc6B,SAE3C,mBACI,GAAItR,KAAKmY,WACL,OAEJ,MAAMxM,EAAY,IACX3L,KAAKwZ,0BAGZxZ,KAAKgI,OAAOoH,OAAO,kBAAmB2E,EAAkBrL,gBAAgBqQ,eAElE/Y,KAAKgI,OAAOuH,SAAS,kBAAmB5D,GAC9C,MAAMf,GAAW,EAAI6D,EAAgBzF,iBAAiBhJ,KAAKgI,OAAOE,QAAQ0C,UAC1E,GAAIA,IAAa6D,EAAgB1F,aAAa+D,QAAS,CAKnD,IAAI2M,EAAa,CACb,cAJe9N,EAAU+N,SAASC,YACjCC,OAAO,CAACC,EAAKC,IAAQD,EAAI7Y,OAAO8Y,EAAIC,QAAS,IAC7CrM,OAAOC,GAAiB,OAAZA,EAAEqM,OAAqC,iBAAZrM,EAAEqM,OAAsBrM,EAAEqM,MAAMC,OAAOrY,OAAS,GAE5DA,QAE5B5B,KAAKgI,OAAOE,QAAQ8M,4BACpByE,EAAWhU,MAAQzF,KAAKgI,OAAOE,QAAQ6M,iBAEtCtG,EAAgBvF,UAAUwB,OAAO,CAClC3B,aAAc6B,EACd9B,SAAU2F,EAAgB3F,SAAS6M,YACnC9M,SAAU4F,EAAgB5F,SAASsD,sBACnCpB,OAAQ0D,EAAgB7F,WAAWsR,iBACnClP,gBAAiByO,MAI7B,sBACI,OAAOzZ,KAAK2S,YAAe3S,KAAKma,aAAR,kCAE5B,gBAAgBjG,GACZlU,KAAKsZ,sBAAsBhS,IAAI4R,EAA2BkB,yBAAyBlG,EAAKmG,WAAYnG,EAAKoG,SACzG,IAAIC,GAAmB,EACvB,IAAK,IAAIrc,KAAS8B,KAAKsZ,sBAAsBkB,SACzC,IAAKtc,EAAO,CACRqc,GAAmB,EACnB,MAGRva,KAAKuZ,gBAAkBgB,IAG/BxM,SAAU,CACN,eACI,OAAO8I,EAAejJ,aAAa5N,KAAKwZ,yBAAyBE,SAASlC,oBAE9E,aACI,OAAOxX,KAAKgI,OAAOE,QAAQmP,uBAE/B,2BACI,OAAOrX,KAAKgI,OAAOoI,MAAMC,kBAE7B,iBACI,OAAOrQ,KAAKmY,YAAcnY,KAAKuZ,iBAEnCkB,WAAY,IAAMtB,EAAahM,YAEnC,UACI,IAAIlD,EACAjK,KAAK0a,wBACL1a,KAAKqZ,kBAAmB,GAGgD,QAA3EpP,EAAKiF,SAASC,cAAc,iDAA8D,IAAPlF,GAAyBA,EAAGqM,aAAa,OAAQ,WAEzI9G,WAAY,CACRqE,mBAAoBJ,EAAyB1M,QAC7C6M,eAAgBJ,EAAqBzM,QACrC4T,0BAA2BvB,EAAgCrS,QAC3DiS,cAAejC,EAAoBhQ,Y,6BC1G3C,wHAAwN,YAAG,G,6BCC3NpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC4K,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrB+I,EAA6BrS,EAAQvB,gBAAgB,EAAQ,MAC7D6P,EAAiB,EAAQ,IAC/B9Z,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,+BACNkR,MAAO,CACHiC,MAAO,CACHnG,KAAMqQ,OACN9T,QAAS,GAEbvJ,KAAM,CACFgN,KAAM0H,OACNnL,QAAS,IAEb+T,OAAQ,CACJtQ,KAAMnJ,MACN0F,QAAS,IAAM,IAEnBoT,aAAc,CACV3P,KAAMqQ,OACN9T,QAAS,GAEbgU,aAAc,CACVvQ,KAAM0H,OACNnL,QAAS,KAGjBqL,OAAQ,CAACR,EAAW7K,SACpBsL,QAAS,CACLC,SAAUT,EAAWvJ,gBAEzBV,QAAS,CACL,aAAauS,EAAcxJ,GACvB,MAAMqK,EAAWhb,KAAKgI,OAAOoI,MAAMX,cAAcuL,SACjD,OAAOhb,KAAK2S,YAAY,GAAGkE,EAAejJ,aAAauM,gCAA2CxJ,EAAQ,SAAUqK,IAExH,gBAAgB9G,GACZlU,KAAKib,MAAM,mBAAoB/G,KAGvC1E,WAAY,CACR0L,qBAAsBN,EAA2B7T,Y,6BC9CzD,wHAAmN,YAAG,G,6BCCtNpJ,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,MAAMqK,EAAU,EAAQ,GAClBf,EAAQe,EAAQvB,gBAAgB,EAAQ,IACxC4K,EAAarJ,EAAQvB,gBAAgB,EAAQ,IAC7C6K,EAAa,EAAQ,GACrBqH,EAA6B,EAAQ,KACrCrC,EAAiB,EAAQ,IACzBsC,EAAe,EAAQ,GAC7Bpc,EAAQgK,QAAUS,EAAMT,QAAQY,OAAO,CACnCnK,KAAM,yBACNkR,MAAO,CACH2L,UAAW,CACP7P,KAAMqQ,OACN9T,QAASmS,EAA2BkB,yBAAyBe,mBAEjEC,WAAY,CACR5Q,KAAM6Q,QACNtU,SAAS,GAEbuU,YAAa,CACT9Q,KAAM6Q,QACNtU,SAAS,GAEb7I,MAAO,CACHsM,KAAM0H,OACNnL,QAAS,IAEboT,aAAc,CACV3P,KAAMqQ,OACN9T,QAAS8P,EAAejJ,aAAamL,SAEzCgC,aAAc,CACVvQ,KAAM0H,OACNnL,QAAS,IAEbwU,MAAO,CACH/Q,KAAM0H,OACNnL,QAAS,KAGjBmN,KAAM,KACK,CACHsH,OAAQ,CACJ,CAAElX,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAA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CA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCCnBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,kJASIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCpBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,6CCnBf,I,wBCA+J,ECOhJ,IAAIvF,OAAO,CACtBnK,KAAM,4BACNgS,WAAY,CACRlD,cAAA,W,OCHJY,EAAY,Y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","file":"isotope.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 276);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","module.exports = Vue;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst SiteText_1 = require(\"../lib/SiteText\");\r\nconst siteText = vue_1.default.extend({\r\n methods: {\r\n getSiteText(siteTextKey, ...replacements) {\r\n const store = this.$store;\r\n const siteTextMap = store.getters.siteTextMap || {};\r\n const debug = store.getters.debugSiteText || false;\r\n return (0, SiteText_1.getSiteTextItem)(siteTextKey, {\r\n debug,\r\n replacements,\r\n siteTextMap,\r\n });\r\n },\r\n },\r\n});\r\nexports.default = siteText;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.siteTextFilter = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst SiteText_1 = require(\"../lib/SiteText\");\r\nconst store_1 = tslib_1.__importDefault(require(\"../store\"));\r\nfunction getSiteTextFilter(optionsFn) {\r\n return (key, replacements, debug) => {\r\n const options = optionsFn();\r\n replacements = replacements || options.replacements;\r\n if (debug === undefined) {\r\n debug = options.debug || false;\r\n }\r\n const siteTextMap = options.siteTextMap || {};\r\n return (0, SiteText_1.getSiteTextItem)(key, { debug, replacements, siteTextMap });\r\n };\r\n}\r\nexports.siteTextFilter = getSiteTextFilter(() => {\r\n return {\r\n siteTextMap: store_1.default.getters.siteTextMap,\r\n debug: store_1.default.getters.debugSiteText,\r\n };\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChallengeStatus = void 0;\r\nvar ChallengeStatus;\r\n(function (ChallengeStatus) {\r\n ChallengeStatus[\"DeviceNameAlreadyExists\"] = \"DeviceNameAlreadyExists\";\r\n ChallengeStatus[\"Disabled\"] = \"Disabled\";\r\n ChallengeStatus[\"InvalidCaptchaResponse\"] = \"InvalidCaptchaResponse\";\r\n ChallengeStatus[\"InvalidCredentials\"] = \"InvalidCredentials\";\r\n ChallengeStatus[\"InvalidOneTimeCode\"] = \"InvalidOneTimeCode\";\r\n ChallengeStatus[\"LockedOut\"] = \"LockedOut\";\r\n ChallengeStatus[\"SyncError\"] = \"SyncError\";\r\n ChallengeStatus[\"Success\"] = \"Success\";\r\n ChallengeStatus[\"Unknown\"] = \"Unknown\";\r\n ChallengeStatus[\"SessionExpired\"] = \"SessionExpired\";\r\n ChallengeStatus[\"LockedOutinExternalIdentityProvider\"] = \"LockedOutinExternalIdentityProvider\";\r\n ChallengeStatus[\"UserNotFound\"] = \"UserNotFound\";\r\n ChallengeStatus[\"MaximumAttemptsReached\"] = \"MaximumAttemptsReached\";\r\n ChallengeStatus[\"PdfCodeInvalid\"] = \"PdfCodeInvalid\";\r\n ChallengeStatus[\"OTPExpired\"] = \"OTPExpired\";\r\n ChallengeStatus[\"BotDetected\"] = \"BotDetected\";\r\n})(ChallengeStatus = exports.ChallengeStatus || (exports.ChallengeStatus = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ICustomTelemetryEvent = exports.userAction = exports.stepName = exports.stepType = exports.workflowName = exports.getWorkflowName = exports.getStepName = exports.telemetry = void 0;\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Workflow_1 = require(\"../enums/Workflow\");\r\nconst UserTelemetry_1 = require(\"../enums/UserTelemetry\");\r\nObject.defineProperty(exports, \"workflowName\", { enumerable: true, get: function () { return UserTelemetry_1.workflowName; } });\r\nObject.defineProperty(exports, \"userAction\", { enumerable: true, get: function () { return UserTelemetry_1.userAction; } });\r\nObject.defineProperty(exports, \"stepType\", { enumerable: true, get: function () { return UserTelemetry_1.stepType; } });\r\nObject.defineProperty(exports, \"stepName\", { enumerable: true, get: function () { return UserTelemetry_1.stepName; } });\r\nconst IUserTelemetry_1 = require(\"../interfaces/IUserTelemetry\");\r\nObject.defineProperty(exports, \"ICustomTelemetryEvent\", { enumerable: true, get: function () { return IUserTelemetry_1.ICustomTelemetryEvent; } });\r\nclass _userTelemetry {\r\n constructor() {\r\n this.status = {\r\n enabled: false,\r\n retries: 10,\r\n delay: 100,\r\n cachedEvents: new Array(),\r\n };\r\n this.requests = new Map();\r\n this.checkTelemetry = async () => {\r\n var _a, _b;\r\n if (((_a = window.Alkami) === null || _a === void 0 ? void 0 : _a.UserTelemetry) !== null && ((_b = window.Alkami) === null || _b === void 0 ? void 0 : _b.UserTelemetry) !== undefined) {\r\n this.status.enabled = true;\r\n // send cached events\r\n if (this.status.cachedEvents.length > 0) {\r\n for (const event of this.status.cachedEvents) {\r\n switch (event.type) {\r\n case 'page':\r\n await this.page(event.event);\r\n break;\r\n case 'custom':\r\n await this.custom(event.event);\r\n break;\r\n case 'identify':\r\n await this.identify();\r\n break;\r\n }\r\n }\r\n this.status.cachedEvents = [];\r\n }\r\n return;\r\n }\r\n // Retries exhausted - telemetry not enabled\r\n if (--this.status.retries <= 0) {\r\n this.status.cachedEvents = [];\r\n return;\r\n }\r\n setTimeout(() => { void this.checkTelemetry(); }, this.status.delay);\r\n };\r\n this.page = async (workflow) => {\r\n var _a;\r\n if (this.enabled({ type: 'page', event: workflow }) === false || this.isDupe(`${workflow}|page`))\r\n return;\r\n await ((_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.logPageEventAsync(workflow));\r\n };\r\n this.custom = async (event) => {\r\n var _a, _b;\r\n if (this.enabled({ type: 'custom', event }) === false || this.isDupe(`${event.workflowName}|custom|${event.action}`))\r\n return;\r\n event.eventProperties = (_a = event.eventProperties) !== null && _a !== void 0 ? _a : {};\r\n event.eventProperties.stepType = event.stepType;\r\n event.eventProperties.stepName = event.stepName;\r\n await ((_b = window.Alkami.UserTelemetry) === null || _b === void 0 ? void 0 : _b.logCustomEventAsync(event.workflowName, event.action, event.eventProperties));\r\n };\r\n this.identify = async () => {\r\n var _a;\r\n if (this.enabled({ type: 'identify' }) === false || this.isDupe('identify'))\r\n return;\r\n await ((_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.identifyAuthenticatedUserAsync());\r\n };\r\n this.timeout = async (ms) => {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n };\r\n this.isDupe = (event) => {\r\n const now = Date.now();\r\n const prev = this.requests.get(event);\r\n // reject duplicate events that are less than 50ms apart\r\n if (prev != null && now - prev < 50) {\r\n return true;\r\n }\r\n this.requests.set(event, now);\r\n // keep the map from getting too big\r\n if (this.requests.size > 50) {\r\n const t = new Map();\r\n this.requests.forEach((value, key) => {\r\n if (now - value < 50)\r\n t.set(key, value);\r\n });\r\n this.requests = t;\r\n }\r\n return false;\r\n };\r\n void this.checkTelemetry();\r\n }\r\n static get factory() {\r\n if (!(userTelemetryObj instanceof _userTelemetry))\r\n userTelemetryObj = new _userTelemetry();\r\n return userTelemetryObj;\r\n }\r\n get context() {\r\n var _a;\r\n return (_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.context;\r\n }\r\n enabled(event) {\r\n if (this.status.enabled === true)\r\n return true;\r\n if (this.status.retries > 0)\r\n this.status.cachedEvents.push(event);\r\n return false;\r\n }\r\n}\r\n_userTelemetry.getStepName = (workflow, challenge) => {\r\n // for now only the retail_registration workflow exists\r\n if (workflow === UserTelemetry_1.workflowName.retail_registration) {\r\n switch (challenge) {\r\n case ChallengeType_1.ChallengeType.ChooseRegistrationType:\r\n return UserTelemetry_1.stepName.registration_type;\r\n case ChallengeType_1.ChallengeType.RegistrationDisclosure:\r\n return UserTelemetry_1.stepName.disclosure;\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n return UserTelemetry_1.stepName.confirm_your_identity;\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return UserTelemetry_1.stepName.verify_your_identity;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return UserTelemetry_1.stepName.verification_code;\r\n case ChallengeType_1.ChallengeType.CreateUsername:\r\n return UserTelemetry_1.stepName.create_username;\r\n case ChallengeType_1.ChallengeType.CreateUser:\r\n return UserTelemetry_1.stepName.create_password;\r\n case ChallengeType_1.ChallengeType.UpdateBusiness:\r\n return UserTelemetry_1.stepName.business_information;\r\n }\r\n }\r\n return UserTelemetry_1.stepName.unknown;\r\n};\r\n_userTelemetry.getWorkflowName = (workflow) => {\r\n // currently only the registration workflow exists\r\n switch (workflow) {\r\n case Workflow_1.Workflow.Registration:\r\n return UserTelemetry_1.workflowName.retail_registration;\r\n }\r\n return UserTelemetry_1.workflowName.unknown;\r\n};\r\nlet userTelemetryObj;\r\nconst telemetry = _userTelemetry.factory;\r\nexports.telemetry = telemetry;\r\nconst getStepName = _userTelemetry.getStepName;\r\nexports.getStepName = getStepName;\r\nconst getWorkflowName = _userTelemetry.getWorkflowName;\r\nexports.getWorkflowName = getWorkflowName;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChallengeType = void 0;\r\nvar ChallengeType;\r\n(function (ChallengeType) {\r\n ChallengeType[\"ChangePassword\"] = \"ChangePassword\";\r\n ChallengeType[\"CheckSyncResult\"] = \"CheckSyncResult\";\r\n ChallengeType[\"ForgotUsernameChooseScenario\"] = \"ForgotUsernameChooseScenario\";\r\n ChallengeType[\"ForgotPasswordChooseScenario\"] = \"ForgotPasswordChooseScenario\";\r\n ChallengeType[\"ChooseRegistrationType\"] = \"ChooseRegistrationType\";\r\n ChallengeType[\"ForgotUsernameConfirmIdentity\"] = \"ForgotUsernameConfirmIdentity\";\r\n ChallengeType[\"CreateUsername\"] = \"CreateUsername\";\r\n ChallengeType[\"Done\"] = \"Done\";\r\n ChallengeType[\"Empty\"] = \"Empty\";\r\n ChallengeType[\"OneTimeCode\"] = \"OneTimeCode\";\r\n ChallengeType[\"OneTimeCodeDestination\"] = \"OneTimeCodeDestination\";\r\n ChallengeType[\"QuestionsAndAnswers\"] = \"QuestionsAndAnswers\";\r\n ChallengeType[\"RegistrationComplete\"] = \"RegistrationComplete\";\r\n ChallengeType[\"StartForgotPassword\"] = \"StartForgotPassword\";\r\n ChallengeType[\"StartForgotUsername\"] = \"StartForgotUsername\";\r\n ChallengeType[\"StartRegistration\"] = \"StartRegistration\";\r\n ChallengeType[\"StartSync\"] = \"StartSync\";\r\n ChallengeType[\"StepUp\"] = \"StepUp\";\r\n ChallengeType[\"TemporaryPassword\"] = \"TemporaryPassword\";\r\n ChallengeType[\"UsernameAndPassword\"] = \"UsernameAndPassword\";\r\n ChallengeType[\"UsernameRecovered\"] = \"UsernameRecovered\";\r\n ChallengeType[\"Tethered\"] = \"Tethered\";\r\n ChallengeType[\"ConvertedUser\"] = \"ConvertedUser\";\r\n ChallengeType[\"ForgotPasswordDisclosure\"] = \"ForgotPasswordDisclosure\";\r\n ChallengeType[\"ForgotPasswordConfirmIdentity\"] = \"ForgotPasswordConfirmIdentity\";\r\n ChallengeType[\"StepUpForgot\"] = \"StepUpForgot\";\r\n ChallengeType[\"OneTimeCodeForgotContainer\"] = \"OneTimeCodeForgotContainer\";\r\n ChallengeType[\"CheckSyncResultForgot\"] = \"CheckSyncResultForgot\";\r\n ChallengeType[\"RegistrationDisclosure\"] = \"RegistrationDisclosure\";\r\n ChallengeType[\"ConfirmIdentity\"] = \"ConfirmIdentity\";\r\n ChallengeType[\"CreateUser\"] = \"CreateUser\";\r\n ChallengeType[\"UpdateBusiness\"] = \"UpdateBusiness\";\r\n})(ChallengeType = exports.ChallengeType || (exports.ChallengeType = {}));\r\n","import { render, staticRenderFns } from \"./Slide.vue?vue&type=template&id=763dad63&\"\nimport script from \"./Slide.vue?vue&type=script&lang=ts&\"\nexport * from \"./Slide.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ElementIds = void 0;\r\n/**\r\n * Enum for Element IDs that are referenced by other systems or services - for analytics, security, or any other purpose.\r\n * These IDs stored here to remain constant, and should not be updated unless also updated by the consuming system or service.\r\n *\r\n * @readonly\r\n * @enum {string}\r\n */\r\nvar ElementIds;\r\n(function (ElementIds) {\r\n ElementIds[\"Username\"] = \"username\";\r\n ElementIds[\"Password\"] = \"password\";\r\n ElementIds[\"AuthenticationSubmit\"] = \"btn_submitCredentials\";\r\n ElementIds[\"DisclosureCheckbox\"] = \"acceptDisclosureCheckbox\";\r\n ElementIds[\"DisclosureContinue\"] = \"disclosureAcceptanceBtn\";\r\n ElementIds[\"UsernameChooseScenarioCard\"] = \"usernameType\";\r\n ElementIds[\"UserIdentifyingField\"] = \"UserIdentifyingField\";\r\n ElementIds[\"ConfirmIdentityContinue\"] = \"btn_submitConfirmIdentity\";\r\n ElementIds[\"StepUpCategory\"] = \"stepUpCategory\";\r\n ElementIds[\"StepUpDestination\"] = \"stepUpDestination\";\r\n ElementIds[\"StepUpContinue\"] = \"btn_chooseStepUpOptions\";\r\n ElementIds[\"OTPCodeInput\"] = \"codeInput\";\r\n ElementIds[\"OTPChangeMethod\"] = \"btn_changeMethod\";\r\n ElementIds[\"OTPResendCode\"] = \"btn_resendOTP\";\r\n ElementIds[\"OTPVerify\"] = \"btn_submitOTPCode\";\r\n ElementIds[\"CreateUsername\"] = \"btn_createUsername\";\r\n ElementIds[\"UpdateBusiness\"] = \"btn_updateBusiness\";\r\n})(ElementIds = exports.ElementIds || (exports.ElementIds = {}));\r\n","import { render, staticRenderFns } from \"./ContainerSlide.vue?vue&type=template&id=53cc26a2&scoped=true&\"\nimport script from \"./ContainerSlide.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContainerSlide.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContainerSlide.vue?vue&type=style&index=0&id=53cc26a2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53cc26a2\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SlideHeaderWithNav.vue?vue&type=template&id=6fdc3c83&scoped=true&\"\nimport script from \"./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"\nexport * from \"./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SlideHeaderWithNav.vue?vue&type=style&index=0&id=6fdc3c83&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fdc3c83\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./IsotopeHeader.vue?vue&type=template&id=e64a4382&\"\nimport script from \"./IsotopeHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./IsotopeHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthenticationFactor = void 0;\r\nvar AuthenticationFactor;\r\n(function (AuthenticationFactor) {\r\n AuthenticationFactor[\"Unknown\"] = \"Unknown\";\r\n AuthenticationFactor[\"SmsCode\"] = \"SmsCode\";\r\n AuthenticationFactor[\"EmailCode\"] = \"EmailCode\";\r\n AuthenticationFactor[\"VoiceCode\"] = \"VoiceCode\";\r\n AuthenticationFactor[\"TOTP\"] = \"TOTP\";\r\n AuthenticationFactor[\"WebAuthn\"] = \"WebAuthn\";\r\n AuthenticationFactor[\"PushNotification\"] = \"PushNotification\";\r\n AuthenticationFactor[\"VoicePrompt\"] = \"VoicePrompt\";\r\n AuthenticationFactor[\"QuestionsAndAnswers\"] = \"QuestionsAndAnswers\";\r\n AuthenticationFactor[\"Token\"] = \"Token\";\r\n AuthenticationFactor[\"Biometric\"] = \"Biometric\";\r\n})(AuthenticationFactor = exports.AuthenticationFactor || (exports.AuthenticationFactor = {}));\r\n","import { render, staticRenderFns } from \"./SlideHeader.vue?vue&type=template&id=3599c1ff&\"\nimport script from \"./SlideHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SlideHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst fromEntries_1 = tslib_1.__importDefault(require(\"../../lib/fromEntries\"));\r\nconst entries = Object.keys(ChallengeType_1.ChallengeType)\r\n .map((challengeType) => [challengeType, () => Promise.resolve().then(() => tslib_1.__importStar(require(`./${challengeType}`)))])\r\n .filter((x) => x);\r\nexports.default = (0, fromEntries_1.default)(entries);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScenarioType = void 0;\r\nvar ScenarioType;\r\n(function (ScenarioType) {\r\n ScenarioType[ScenarioType[\"Unknown\"] = 0] = \"Unknown\";\r\n ScenarioType[ScenarioType[\"Registration\"] = 1] = \"Registration\";\r\n ScenarioType[ScenarioType[\"AdminRegistration\"] = 2] = \"AdminRegistration\";\r\n ScenarioType[ScenarioType[\"ForgotPassword\"] = 3] = \"ForgotPassword\";\r\n ScenarioType[ScenarioType[\"ForgotUsername\"] = 4] = \"ForgotUsername\";\r\n ScenarioType[ScenarioType[\"UserSearch\"] = 5] = \"UserSearch\";\r\n})(ScenarioType = exports.ScenarioType || (exports.ScenarioType = {}));\r\n","import { render, staticRenderFns } from \"./ConfirmIdentity.vue?vue&type=template&id=a9a99156&scoped=true&\"\nimport script from \"./ConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmIdentity.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConfirmIdentity.vue?vue&type=style&index=0&id=a9a99156&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9a99156\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./OneTimeCodeForgot.vue?vue&type=template&id=7827f44a&scoped=true&\"\nimport script from \"./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCodeForgot.vue?vue&type=style&index=0&id=7827f44a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7827f44a\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst fromEntries_1 = tslib_1.__importDefault(require(\"../../lib/fromEntries\"));\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst entries = Object.keys(AuthenticationFactor_1.AuthenticationFactor)\r\n .map((stepupType) => [stepupType, () => Promise.resolve().then(() => tslib_1.__importStar(require(`./${stepupType}`)))]);\r\nexports.default = (0, fromEntries_1.default)(entries);\r\n","import mod from \"-!../../node_modules/ts-loader/index.js??ref--3-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/ts-loader/index.js??ref--3-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'app',\r\n computed: {\r\n currentChallengeType() {\r\n return this.$store.getters.currentChallengeType;\r\n },\r\n },\r\n watch: {\r\n currentChallengeType(currentChallengeType, previousChallengeType) {\r\n const event = new CustomEvent('challengetypechange', {\r\n bubbles: true,\r\n cancelable: false,\r\n detail: {\r\n currentChallengeType,\r\n previousChallengeType,\r\n },\r\n });\r\n this.$el.dispatchEvent(event);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'authentication',\r\n props: {},\r\n computed: {\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n currentChallengeType() {\r\n return this.$store.getters.currentChallengeType;\r\n },\r\n },\r\n watch: {\r\n authenticatedModel(newAuthenticatedModel) {\r\n if (newAuthenticatedModel && typeof newAuthenticatedModel.username == 'string' && typeof newAuthenticatedModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing && !this.authenticatedModel.username.length) {\r\n const challenge = {\r\n ...this.$store.getters.checkSyncResultChallenge,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise((r) => setTimeout(r, 1000));\r\n }\r\n },\r\n },\r\n components: {},\r\n async mounted() {\r\n var _a;\r\n void userTelemetry_1.telemetry.page(userTelemetry_1.workflowName.retail_registration);\r\n if (((_a = this.$store.getters.configuration.loginCredentials) === null || _a === void 0 ? void 0 : _a.UserName) === '') {\r\n await this.$store.dispatch('getRememberedUsername');\r\n }\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'registration',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n },\r\n watch: {\r\n authenticatedModel(newAuthenticationModel) {\r\n if (newAuthenticationModel && typeof newAuthenticationModel.username == 'string' && typeof newAuthenticationModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing) {\r\n const challenge = { ...this.$store.getters.checkSyncResultChallenge };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise(r => setTimeout(r, 1000));\r\n }\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n void userTelemetry_1.telemetry.page(userTelemetry_1.workflowName.retail_registration);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'authentication',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.StartForgotUsername,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n return ChallengeType_1.ChallengeType.StartForgotUsername;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgotpassword',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginGrouping.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginGrouping.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'logingrouping',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n var _a;\r\n let nextChallenge = { ...this.$store.state.configuration.nextRequestedChallenge };\r\n nextChallenge.ChallengeTypeValue = ChallengeType_1.ChallengeType.StepUp;\r\n this.$store.commit('currentChallenge', nextChallenge);\r\n // We had to add this so the selected step up option gets expanded properly.\r\n // Not sure why it didn't work initally, we'll have to figure this one out later.\r\n let stepUpChallenge = nextChallenge;\r\n if (stepUpChallenge) {\r\n let index = 0;\r\n let destinationIndex = 0;\r\n (_a = stepUpChallenge.StepUpCategories) === null || _a === void 0 ? void 0 : _a.forEach(function (category) {\r\n var _a;\r\n category.$id = index.toString();\r\n category.StepUpModel.$id = index.toString();\r\n (_a = category.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.forEach(function (destination) {\r\n destination.$id = destinationIndex.toString();\r\n destinationIndex++;\r\n });\r\n index++;\r\n });\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'change-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResult.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst SyncFailure_vue_1 = tslib_1.__importDefault(require(\"../SyncFailure.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'check-sync-result',\r\n props: {},\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n SyncFailure: SyncFailure_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'isotope-slide',\r\n props: {},\r\n computed: {\r\n hasHeader() {\r\n return !!this.$slots.header;\r\n },\r\n hasFooter() {\r\n return !!this.$slots.footer;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SyncFailure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SyncFailure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nconst lottie_web_1 = tslib_1.__importDefault(require(\"lottie-web\"));\r\nconst confirmation_error_64_1 = require(\"../assets/confirmation-error-64\");\r\nexports.default = vue_1.default.extend({\r\n name: 'sync-failure',\r\n props: {\r\n buttonText: {\r\n type: String,\r\n default: '',\r\n },\r\n url: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n errorMessage() {\r\n const errors = this.$store.state.errors;\r\n let errorCode = '';\r\n if (errors.length > 0) {\r\n errorCode = errors[0].CustomSubCode;\r\n }\r\n if (errorCode !== null && errorCode.startsWith('AEC')) {\r\n return this.getSiteText(`Sync.SyncError.${errorCode}`);\r\n }\r\n else {\r\n return this.getSiteText('Error.Generic');\r\n }\r\n },\r\n },\r\n components: {\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n mounted() {\r\n lottie_web_1.default.loadAnimation({\r\n container: document.querySelector('.syncAnimation.error'),\r\n renderer: 'svg',\r\n animationData: confirmation_error_64_1.ConfirmationError64,\r\n loop: false,\r\n autoplay: true,\r\n });\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeader.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'slide-header',\r\n props: {\r\n header: {\r\n type: String,\r\n default: '',\r\n },\r\n subtitle: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mounted() {\r\n if (this.header !== '')\r\n this.$refs.heading.focus();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst SyncFailure_vue_1 = tslib_1.__importDefault(require(\"../SyncFailure.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'check-sync-result',\r\n props: {},\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n url() {\r\n switch (true) {\r\n case this.$store.getters.isRegistering:\r\n return `${this.baseUrl}Registration`;\r\n case this.$store.getters.isForgotPasswordWorkflow:\r\n return `${this.baseUrl}ForgotPassword`;\r\n }\r\n return `${this.baseUrl}ForgotPassword`;\r\n },\r\n },\r\n components: {\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n SyncFailure: SyncFailure_vue_1.default,\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContainerSlide.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContainerSlide.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'container-slide',\r\n computed: {\r\n hasHeader() {\r\n return !!this.$slots.header;\r\n },\r\n hasFooter() {\r\n return !!this.$slots.footer;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst ProgressBar_vue_1 = tslib_1.__importDefault(require(\"./ProgressBar.vue\"));\r\nconst vuex_1 = require(\"vuex\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'slide-header-with-nav',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n data() {\r\n return {\r\n contentToggle: false,\r\n displayErrorMessage: false,\r\n // suppressed challenge status messaging is typically handled by their specific components\r\n suppressedChallengeStatus: [\r\n ChallengeStatus_1.ChallengeStatus.InvalidOneTimeCode,\r\n ChallengeStatus_1.ChallengeStatus.PdfCodeInvalid,\r\n ChallengeStatus_1.ChallengeStatus.SyncError,\r\n ChallengeStatus_1.ChallengeStatus.OTPExpired,\r\n ],\r\n };\r\n },\r\n props: {\r\n url: {\r\n type: String,\r\n default: '/',\r\n },\r\n workflowName: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n computed: {\r\n ...(0, vuex_1.mapGetters)(['hasSessionExpiredError', 'hasInvalidChallengeStatus', 'hasServerError', 'currentChallengeType',\r\n 'isForgotPasswordWorkflow', 'isForgotUsernameWorkflow', 'isRegistering']),\r\n ...(0, vuex_1.mapState)(['challengeStatus', 'currentChallenge', 'isCypress']),\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n errorMessage() {\r\n var _a;\r\n let errorMessage = '';\r\n if (this.hasSessionExpiredError) {\r\n errorMessage = this.getSiteText('ChallengeStatus.SessionExpired');\r\n }\r\n else if (!this.suppressedChallengeStatus.includes(this.challengeStatus)) {\r\n if (this.hasInvalidChallengeStatus) {\r\n let siteTextKey = `ChallengeStatus.${this.challengeStatus}`;\r\n if (this.workflowName.length > 0)\r\n siteTextKey = `${this.workflowName}.${siteTextKey}`;\r\n errorMessage = this.getSiteText(siteTextKey, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n }\r\n else if (this.hasServerError) {\r\n errorMessage = this.getSiteText('Error.Generic');\r\n }\r\n }\r\n this.setDisplayError(errorMessage.length > 0);\r\n return errorMessage;\r\n },\r\n closeButtonText() {\r\n if (this.isForgotPasswordWorkflow)\r\n return this.getSiteText('ForgotPassword.Close.Text');\r\n else if (this.isForgotUsernameWorkflow)\r\n return this.getSiteText('ForgotUsername.Close.Text');\r\n else if (this.isRegistering)\r\n return this.getSiteText('Registration.Close.Text');\r\n return 'Cancel';\r\n },\r\n },\r\n methods: {\r\n toggleSheet(toggleOption, event) {\r\n this.contentToggle = toggleOption;\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n },\r\n cancelConfirmText() {\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return this.getSiteText('ForgotPassword.Close.Confirm.Text');\r\n else if (this.$store.getters.isForgotUsernameWorkflow)\r\n return this.getSiteText('ForgotUsername.Close.Confirm.Text');\r\n else if (this.$store.getters.isRegistering)\r\n return this.getSiteText('Registration.Close.Confirm.Text');\r\n return '';\r\n },\r\n setDisplayError(option) {\r\n this.$nextTick(() => {\r\n this.displayErrorMessage = option;\r\n if (option) {\r\n this.$refs.slide.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n });\r\n },\r\n closeNotification() {\r\n this.displayErrorMessage = false;\r\n },\r\n clickCloseButton(event) {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: (0, userTelemetry_1.getStepName)(workflow, this.currentChallengeType),\r\n action: userTelemetry_1.userAction.cancel_clicked,\r\n });\r\n }\r\n this.toggleSheet(true, event);\r\n },\r\n async clickConfirmClose() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.yes_clicked,\r\n });\r\n }\r\n if (this.isCypress)\r\n return;\r\n document.location.href = this.url;\r\n },\r\n clickCancelClose() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.cancel_clicked,\r\n });\r\n }\r\n this.toggleSheet(false);\r\n },\r\n sheetClosed() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.sheet_closed,\r\n });\r\n }\r\n },\r\n },\r\n mounted() {\r\n var _a, _b, _c;\r\n // The following are workarounds for button elements in iris components not having a type set, thus acting as submit buttons\r\n // The red x to exit the flow\r\n (_a = document.querySelector('#closeButton button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n // The button to close notifications\r\n (_b = document.querySelector('[aria-label=\"Close notification\"]')) === null || _b === void 0 ? void 0 : _b.setAttribute('type', 'button');\r\n // The hidden close button in the side sheet\r\n (_c = document.querySelector('[aria-label=\"navigation menu\"]')) === null || _c === void 0 ? void 0 : _c.setAttribute('type', 'button');\r\n if (this.$store.getters.hasSessionExpiredError) {\r\n this.setDisplayError(true);\r\n }\r\n },\r\n components: {\r\n ProgressBar: ProgressBar_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nexports.default = vue_1.default.extend({\r\n name: 'progress-bar',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n showProgressBar() {\r\n return this.currentWorkflowMaxSteps > 0;\r\n },\r\n currentWorkflowMaxSteps() {\r\n return this.$store.getters.currentWorkflowMaxSteps;\r\n },\r\n currentWorkflowStep() {\r\n return this.$store.getters.currentWorkflowStep;\r\n },\r\n percentComplete() {\r\n const currentCompletion = this.currentWorkflowStep * 100 / this.currentWorkflowMaxSteps;\r\n return currentCompletion > 100 ? 100 : currentCompletion;\r\n },\r\n progressBarHeading() {\r\n return this.getSiteText('Forgot.Progressbar.Heading', this.currentWorkflowStep, this.currentWorkflowMaxSteps);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'choose-registration-type',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst UserLookupType_1 = require(\"../../enums/UserLookupType\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'choose-scenario',\r\n data: () => {\r\n return {\r\n selectedScenario: 0,\r\n };\r\n },\r\n props: {\r\n cardName: {\r\n type: String,\r\n required: false,\r\n validator: prop => typeof prop === 'string' || prop === null,\r\n default: null,\r\n },\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n canContinue() {\r\n return this.selectedScenario !== 0;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarios() {\r\n return this.$store.state.currentChallenge.Scenarios || [];\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n scenarioType() {\r\n const type = this.scenarios.length > 0 ? this.scenarios[0].ScenarioTypeValue : 0;\r\n return ScenarioType_1.ScenarioType[type];\r\n },\r\n async selectScenario(selectedItem) {\r\n var _a, _b;\r\n this.selectedScenario = selectedItem;\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n let lookupType = (_b = (_a = this.scenarios.find(s => s.Id === selectedItem)) === null || _a === void 0 ? void 0 : _a.UserLookupTypeValue) !== null && _b !== void 0 ? _b : UserLookupType_1.UserLookupType.None;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n action: lookupType === UserLookupType_1.UserLookupType.Business ? userTelemetry_1.userAction.business_account_clicked : userTelemetry_1.userAction.individual_account_clicked,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.registration_type,\r\n });\r\n }\r\n await this.submitForm();\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n let chosenScenario = this.selectedScenario;\r\n if (!chosenScenario) {\r\n const validationResults = [\r\n {\r\n CustomSubCode: '',\r\n ErrorCode: 0,\r\n Field: 'Choose Scenario Type',\r\n ItemIndex: 0,\r\n Message: `Unable to determine scenario Selected: ${this.selectedScenario} Allowed:${this.scenarios.join('|')}`,\r\n Origin: 'ChooseScenario (FrontEnd)',\r\n Severity: 1,\r\n SubCode: 0,\r\n },\r\n ];\r\n this.$store.commit('errors', validationResults);\r\n return;\r\n }\r\n let challenge = {\r\n ...this.currentChallenge,\r\n ChosenScenarioId: chosenScenario,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IsotopeHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IsotopeHeader.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nexports.default = vue_1.default.extend({\r\n name: 'isotope-header',\r\n props: {\r\n siteText: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n cssClasses() {\r\n let classes = ['mar-bottom--md', 'text--capitalize'];\r\n if (this.isMobile)\r\n classes.push('mar-top--xl', 'font-medium-heading');\r\n else\r\n classes.push('mar-top--2xl', 'font-small-heading');\r\n return classes;\r\n },\r\n },\r\n mounted() {\r\n this.$refs.heading.focus();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst UserIdentifyingFieldType_1 = require(\"../../enums/UserIdentifyingFieldType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst UserIdentifyingFieldGroup_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/UserIdentifyingFieldGroup.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'confirm-identity',\r\n data() {\r\n return {\r\n showNotification: false,\r\n fieldValidationStatus: new Map(),\r\n hasInvalidField: true,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.confirmIdentityChallenge,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n // filter down to just fields that have data\r\n const datapoints = challenge.Scenario.FieldGroups\r\n .reduce((acc, val) => acc.concat(val.Fields), [])\r\n .filter(x => x.Value !== null && typeof x.Value === 'string' && x.Value.trim().length > 0);\r\n let properties = {\r\n 'numDataPoints': datapoints.length,\r\n };\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n properties.error = this.$store.getters.challengeStatus;\r\n }\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.confirm_your_identity,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n eventProperties: properties,\r\n });\r\n }\r\n },\r\n notificationMessage() {\r\n return this.getSiteText(`${this.scenarioType}.ConfirmIdentity.Notification`);\r\n },\r\n validationCheck(data) {\r\n this.fieldValidationStatus.set(UserIdentifyingFieldType_1.UserIdentifyingFieldType[data.fieldType], data.isValid);\r\n let hasInvalidStatus = false;\r\n for (let value of this.fieldValidationStatus.values()) {\r\n if (!value) {\r\n hasInvalidStatus = true;\r\n break;\r\n }\r\n }\r\n this.hasInvalidField = hasInvalidStatus;\r\n },\r\n },\r\n computed: {\r\n scenarioType() {\r\n return ScenarioType_1.ScenarioType[this.confirmIdentityChallenge.Scenario.ScenarioTypeValue];\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n confirmIdentityChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n buttonDisabled() {\r\n return this.submitting || this.hasInvalidField;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mounted() {\r\n var _a;\r\n if (this.notificationMessage()) {\r\n this.showNotification = true;\r\n }\r\n // Fix an issue with the notification message close button causing the form to submit\r\n (_a = document.querySelector('[data-cy=\"notificationMessage\"] button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n UserIdentifyingFieldGroup: UserIdentifyingFieldGroup_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst UserIdentifyingField_vue_1 = tslib_1.__importDefault(require(\"./UserIdentifyingField.vue\"));\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'user-identifying-field-group',\r\n props: {\r\n index: {\r\n type: Number,\r\n default: 0,\r\n },\r\n name: {\r\n type: String,\r\n default: '',\r\n },\r\n fields: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n scenarioType: {\r\n type: Number,\r\n default: 0,\r\n },\r\n scenarioName: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n textForGroup(scenarioType, index) {\r\n const bankName = this.$store.state.configuration.bankName;\r\n return this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.UserIdentifyingFieldGroup.${index + 1}.Text`, bankName);\r\n },\r\n validationCheck(data) {\r\n this.$emit('validation-check', data);\r\n },\r\n },\r\n components: {\r\n UserIdentifyingField: UserIdentifyingField_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingField.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst UserIdentifyingFieldType_1 = require(\"../../enums/UserIdentifyingFieldType\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'user-identifying-field',\r\n props: {\r\n fieldType: {\r\n type: Number,\r\n default: UserIdentifyingFieldType_1.UserIdentifyingFieldType.MothersMaidenName,\r\n },\r\n isRequired: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isSensitive: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n value: {\r\n type: String,\r\n default: '',\r\n },\r\n scenarioType: {\r\n type: Number,\r\n default: ScenarioType_1.ScenarioType.Unknown,\r\n },\r\n scenarioName: {\r\n type: String,\r\n default: '',\r\n },\r\n regex: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n data: () => {\r\n return {\r\n states: [\r\n { label: 'AL', value: 'AL' },\r\n { label: 'AK', value: 'AK' },\r\n { label: 'AZ', value: 'AZ' },\r\n { label: 'AR', value: 'AR' },\r\n { label: 'CA', value: 'CA' },\r\n { label: 'CO', value: 'CO' },\r\n { label: 'CT', value: 'CT' },\r\n { label: 'DE', value: 'DE' },\r\n { label: 'FL', value: 'FL' },\r\n { label: 'GA', value: 'GA' },\r\n { label: 'HI', value: 'HI' },\r\n { label: 'ID', value: 'ID' },\r\n { label: 'IL', value: 'IL' },\r\n { label: 'IN', value: 'IN' },\r\n { label: 'IA', value: 'IA' },\r\n { label: 'KS', value: 'KS' },\r\n { label: 'KY', value: 'KY' },\r\n { label: 'LA', value: 'LA' },\r\n { label: 'ME', value: 'ME' },\r\n { label: 'MD', value: 'MD' },\r\n { label: 'MA', value: 'MA' },\r\n { label: 'MI', value: 'MI' },\r\n { label: 'MN', value: 'MN' },\r\n { label: 'MS', value: 'MS' },\r\n { label: 'MO', value: 'MO' },\r\n { label: 'MT', value: 'MT' },\r\n { label: 'NE', value: 'NE' },\r\n { label: 'NV', value: 'NV' },\r\n { label: 'NH', value: 'NH' },\r\n { label: 'NJ', value: 'NJ' },\r\n { label: 'NM', value: 'NM' },\r\n { label: 'NY', value: 'NY' },\r\n { label: 'NC', value: 'NC' },\r\n { label: 'ND', value: 'ND' },\r\n { label: 'OH', value: 'OH' },\r\n { label: 'OK', value: 'OK' },\r\n { label: 'OR', value: 'OR' },\r\n { label: 'PA', value: 'PA' },\r\n { label: 'RI', value: 'RI' },\r\n { label: 'SC', value: 'SC' },\r\n { label: 'SD', value: 'SD' },\r\n { label: 'TN', value: 'TN' },\r\n { label: 'TX', value: 'TX' },\r\n { label: 'UT', value: 'UT' },\r\n { label: 'VT', value: 'VT' },\r\n { label: 'VA', value: 'VA' },\r\n { label: 'WA', value: 'WA' },\r\n { label: 'WV', value: 'WV' },\r\n { label: 'WI', value: 'WI' },\r\n { label: 'WY', value: 'WY' },\r\n ],\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n inputVal: {\r\n get() {\r\n if (this.fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.IsBusiness) {\r\n if (!this.value)\r\n return false;\r\n else {\r\n if (this.value.toString() === 'True' || this.value.toString() === 'true')\r\n return true;\r\n else\r\n return false;\r\n }\r\n }\r\n return this.value;\r\n },\r\n set(val) {\r\n if (this.fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.IsBusiness) {\r\n val = val === null ? 'false' : val.toString();\r\n }\r\n this.$emit('input', val.trim());\r\n },\r\n },\r\n elementIds() {\r\n return ElementIds_1.ElementIds;\r\n },\r\n },\r\n methods: {\r\n label(fieldType, scenarioType) {\r\n var sName = this.scenarioName === '' ? '' : this.scenarioName + '.';\r\n var scenarioTypeSpecificLabel = this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.${sName}UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n if (!scenarioTypeSpecificLabel.startsWith('__Localize_Me__'))\r\n return scenarioTypeSpecificLabel;\r\n return this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n },\r\n helperText(fieldType, scenarioType) {\r\n var sName = this.scenarioName === '' ? '' : this.scenarioName + '.';\r\n var scenarioTypeSpecificHelperText = this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.${sName}UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.HelperText`);\r\n if (!scenarioTypeSpecificHelperText.startsWith('__Localize_Me__'))\r\n return scenarioTypeSpecificHelperText;\r\n return this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.HelperText`);\r\n },\r\n requiredText(fieldType, scenarioType) {\r\n return `${this.getSiteText('UserIdentifyingField.Required', this.label(fieldType, scenarioType))}`;\r\n },\r\n optionalText() {\r\n return this.getSiteText('UserIdentifyingField.Optional');\r\n },\r\n isOfFieldType(fieldType, fieldTypeName) {\r\n return fieldTypeName === UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType];\r\n },\r\n validationRules(fieldType, scenarioType) {\r\n const regex = this.validationRegex(fieldType);\r\n if (regex !== null) {\r\n return [(value) => {\r\n return value === '' || value === null || regex.test(value) || this.getSiteText('UserIdentifyingField.ErrorMessage', this.label(fieldType, scenarioType));\r\n }];\r\n }\r\n else\r\n return null;\r\n },\r\n validationRegex(fieldType) {\r\n if (this.regex != null && this.regex.length > 0) {\r\n try {\r\n return new RegExp(this.regex);\r\n }\r\n catch (ex) {\r\n // A MatchRegEx is defined on the field but cannot be parsed. Log an error and continue\r\n // eslint-disable-next-line no-console\r\n console.error(`Invalid regex for field ${this.scenarioName}: ${this.label(this.fieldType, this.scenarioType)}`);\r\n }\r\n }\r\n if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.TaxId || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.EIN) {\r\n return /^(\\d{3}-?\\d{2}-?\\d{4}|\\d{1,9}|\\d{2}-\\d{7})$/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.HomePhone || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.WorkPhone || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.CellPhone) {\r\n return /^$|^(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?$/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.Email) {\r\n return /(^$|^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$)/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.State) {\r\n return /^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$/;\r\n }\r\n return null;\r\n },\r\n validationCheck(data) {\r\n this.$emit('validation-check', {\r\n fieldType: this.fieldType,\r\n isValid: data && Object.keys(data).length === 0, // Object.keys is intentional. A blank textfield will return an empty object instead of an array\r\n });\r\n },\r\n getNameForField(fieldType) {\r\n return `${this.elementIds.UserIdentifyingField}_${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}`;\r\n },\r\n toggleHiddenText(fieldType, toggleMode) {\r\n const label = this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n const toggleText = this.getSiteText(`UserIdentifyingField.${toggleMode}`);\r\n if (!toggleText.startsWith('__Localize_Me__'))\r\n return `${toggleText} ${label}`;\r\n return `${toggleMode} ${label}`;\r\n },\r\n handleTextfieldFocus(event) {\r\n if (this.$store.getters.isMobile) {\r\n const currentScrollPosition = window.screenY || window.pageYOffset;\r\n const targetField = event.target;\r\n const textFieldPosition = targetField.getBoundingClientRect().top;\r\n window.scrollTo({\r\n top: currentScrollPosition + textFieldPosition - window.innerHeight * 0.10,\r\n behavior: 'smooth',\r\n });\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConvertedUser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConvertedUser.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'converted-user',\r\n props: {},\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {},\r\n methods: {\r\n linkForCreateNewPassword() {\r\n const link = `${this.$store.state.configuration.baseUrl}ForgotPassword`;\r\n return link;\r\n },\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n instructions() {\r\n const bankName = this.$store.state.configuration.bankName;\r\n return this.getSiteText('ConvertedUser.Text', bankName);\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUser.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'create-user',\r\n data: () => {\r\n return {\r\n password: '',\r\n confirmPassword: '',\r\n invalidPassword: false,\r\n passwordMismatch: false,\r\n submitting: false,\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n buttonDisabled() {\r\n return this.password.length === 0 || this.confirmPassword.length === 0 || this.submitting || this.invalidPassword || this.passwordMismatch;\r\n },\r\n confirmPasswordErrorMessage() {\r\n if (this.confirmPassword.length > 0 && this.passwordMismatch) {\r\n return [this.getSiteText('Registration.CreateUser.PasswordDoesNotMatch')];\r\n }\r\n return [];\r\n },\r\n showConfirmPasswordMessage() {\r\n return this.confirmPassword.length > 0 && !this.passwordMismatch;\r\n },\r\n passwordRegex() {\r\n return this.$store.state.currentChallenge.PasswordRegex;\r\n },\r\n passwordStrengthEnabled() {\r\n return this.$store.state.currentChallenge.PasswordStrengthEnabled;\r\n },\r\n passwordStrengthMinLength() {\r\n return this.$store.state.currentChallenge.PasswordStrengthMinLength;\r\n },\r\n passwordMediumStrengthRegex() {\r\n return this.$store.state.currentChallenge.PasswordMediumStrengthRegex;\r\n },\r\n passwordStrongStrengthRegex() {\r\n return this.$store.state.currentChallenge.PasswordStrongStrengthRegex;\r\n },\r\n isLoading() {\r\n return this.submitting || this.$store.getters.isSyncing || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n passwordStrengths() {\r\n return {\r\n 'weak': this.getSiteText('Registration.CreateUser.PasswordStrength.Weak'),\r\n 'fair': this.getSiteText('Registration.CreateUser.PasswordStrength.Fair'),\r\n 'strong': this.getSiteText('Registration.CreateUser.PasswordStrength.Strong'),\r\n };\r\n },\r\n checkPasswordValid(password) {\r\n const passwordRegex = new RegExp(this.passwordRegex);\r\n this.invalidPassword = !passwordRegex.test(password);\r\n let inputUserName = this.$store.getters.username;\r\n if (this.password.includes(inputUserName)) {\r\n return this.getSiteText('Registration.CreateUser.PasswordIncludesUsername');\r\n }\r\n if (!this.invalidPassword)\r\n return;\r\n return this.getSiteText('Registration.CreateUser.PasswordDoesNotMeetRequirements');\r\n },\r\n checkPasswordStrength() {\r\n if (!this.passwordStrengthEnabled || this.password.length < this.passwordStrengthMinLength) {\r\n return 'none';\r\n }\r\n const strongRegex = new RegExp(this.passwordStrongStrengthRegex);\r\n if (strongRegex.test(this.password)) {\r\n return 'strong';\r\n }\r\n const fairRegex = new RegExp(this.passwordMediumStrengthRegex);\r\n if (fairRegex.test(this.password)) {\r\n return 'fair';\r\n }\r\n return 'weak';\r\n },\r\n checkPasswordMatches() {\r\n this.passwordMismatch = this.password !== this.confirmPassword;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.submitting = true;\r\n const telemetryPromise = userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.create_password,\r\n action: userTelemetry_1.userAction.create_password_clicked,\r\n });\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n const challenge = {\r\n ...this.$store.state.currentChallenge,\r\n Password: this.password,\r\n };\r\n const createPasswordPromise = this.$store.dispatch('submitChallenge', challenge);\r\n // run async tasks in parallel\r\n await Promise.all([telemetryPromise, createPasswordPromise]);\r\n this.submitting = false;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'create-username',\r\n data: () => {\r\n return {\r\n inputValue: '',\r\n submitting: false,\r\n username: '',\r\n errors: [],\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n getSubheading() {\r\n return this.getSiteText('Registration.CreateUsername.SubHeading', this.usernameMinLength, this.usernameMaxLength);\r\n },\r\n buttonDisabled() {\r\n return this.submitting || !this.isValidUsername;\r\n },\r\n suggestedUsernames() {\r\n var _a;\r\n if (((_a = this.$store.state.currentChallenge.SuggestedUsernames) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n return this.$store.state.currentChallenge.SuggestedUsernames;\r\n return [];\r\n },\r\n showSuggestedUsernames() {\r\n return this.suggestedUsernames.length > 0;\r\n },\r\n hasExceededTries() {\r\n return this.$store.state.currentChallenge.HasExceededTries;\r\n },\r\n usernameSuggestionHeading() {\r\n if (this.hasExceededTries === true)\r\n return this.getSiteText('Registration.CreateUsername.Suggestions.Exceeded');\r\n return this.getSiteText('Registration.CreateUsername.Suggestions');\r\n },\r\n usernameRegex() {\r\n return new RegExp(this.$store.state.currentChallenge.UsernameRegex);\r\n },\r\n usernameMinLength() {\r\n return this.$store.state.currentChallenge.UsernameMinLength;\r\n },\r\n usernameMaxLength() {\r\n return this.$store.state.currentChallenge.UsernameMaxLength;\r\n },\r\n isValidUsername() {\r\n return this.username.length >= this.usernameMinLength && this.username.length <= this.usernameMaxLength\r\n && this.usernameRegex.test(this.username) && this.errors.length === 0;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n validateBlur(ev) {\r\n const input = ev.target.value;\r\n this.validateUsername(input);\r\n },\r\n validateUsername(val) {\r\n // don't validate if the input is disabled\r\n if (this.hasExceededTries)\r\n return;\r\n this.username = '';\r\n if (val.length === 0) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Required')];\r\n return;\r\n }\r\n if (val.length < this.usernameMinLength || val.length > this.usernameMaxLength) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.InvalidLength', this.usernameMinLength, this.usernameMaxLength)];\r\n return;\r\n }\r\n if (!this.usernameRegex.test(val)) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Invalid')];\r\n return;\r\n }\r\n this.username = val;\r\n this.errors = [];\r\n return true;\r\n },\r\n chooseUsername(val) {\r\n this.username = val;\r\n this.inputValue = val;\r\n this.errors = [];\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.submitting = true;\r\n // store off whether the username is generated for telemetry purposes prior to submitting the request\r\n const triesExceeded = this.hasExceededTries;\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$store.commit('setUserName', this.username);\r\n const challenge = {\r\n ...this.$store.state.currentChallenge,\r\n Username: this.username,\r\n };\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.submitting = false;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.create_username,\r\n action: userTelemetry_1.userAction.create_username_clicked,\r\n eventProperties: {\r\n 'isAvailable': this.$store.state.currentChallenge.IsAvailable === false ? false : true,\r\n 'usernameType': triesExceeded === true ? 'generated' : 'custom',\r\n },\r\n });\r\n if (this.$store.state.currentChallenge.IsAvailable === false)\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Unavailable')];\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Empty.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Empty.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'empty',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-choose-scenario',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ConfirmIdentity_vue_1 = tslib_1.__importDefault(require(\"./ConfirmIdentity.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-confirm-identity',\r\n components: {\r\n ConfirmIdentity: ConfirmIdentity_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst Disclosure_vue_1 = tslib_1.__importDefault(require(\"../Disclosure.vue\"));\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-disclosure',\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n canContinue() {\r\n return !this.disclosureAccepted;\r\n },\r\n disclosureContent() {\r\n return this.$store.state.currentChallenge.DisclosureContent || '';\r\n },\r\n disclosureID() {\r\n return this.$store.state.currentChallenge.DisclosureId || '';\r\n },\r\n doesDisclosureExists() {\r\n return this.disclosureContent !== '';\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting || !this.disclosureAccepted) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n DisclosureID: this.disclosureID,\r\n Accepted: this.disclosureAccepted,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n toggleAccepted() {\r\n this.disclosureAccepted = !this.disclosureAccepted;\r\n },\r\n },\r\n mounted() {\r\n this.$refs.heading.focus();\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n Disclosure: Disclosure_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Disclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Disclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst ElementIds_1 = require(\"../enums/ElementIds\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'disclosure',\r\n props: {\r\n content: {\r\n type: String,\r\n required: true,\r\n },\r\n checkboxLabel: {\r\n type: String,\r\n required: true,\r\n },\r\n printLinkText: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n computed: {\r\n elementIds: () => ElementIds_1.ElementIds,\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n disclosurePrintLink() {\r\n return `/Content/Disclosures/Print?name=${this.$store.state.currentChallenge.DisclosureName}`;\r\n },\r\n },\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n nearestQuarter: -1,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n methods: {\r\n toggleAccepted(val) {\r\n this.disclosureAccepted = val;\r\n this.$emit('toggleDisclosureAccepted', val);\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.agree_clicked,\r\n eventProperties: {\r\n 'value': val,\r\n },\r\n });\r\n }\r\n },\r\n printClicked() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.print_pdf_clicked,\r\n });\r\n }\r\n },\r\n scrollDisclosure(event) {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n const target = event.target;\r\n const scrollPercent = target.scrollTop / (target.scrollHeight - target.clientHeight);\r\n // rounded to nearest 25%\r\n const nearestQuarter = Math.round(Math.round(scrollPercent * 4) / 4 * 100);\r\n if (nearestQuarter > this.nearestQuarter) {\r\n this.nearestQuarter = nearestQuarter;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.disclosure_scroll,\r\n eventProperties: {\r\n 'position': `${nearestQuarter}%`,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username-choose-scenario',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n computed: {\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ConfirmIdentity_vue_1 = tslib_1.__importDefault(require(\"./ConfirmIdentity.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username-confirm-identity',\r\n components: {\r\n ConfirmIdentity: ConfirmIdentity_vue_1.default,\r\n },\r\n});\r\n","import { render, staticRenderFns } from \"./OneTimeCode.vue?vue&type=template&id=6413f83e&scoped=true&\"\nimport script from \"./OneTimeCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCode.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCode.vue?vue&type=style&index=0&id=6413f83e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6413f83e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"../SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code',\r\n data: () => {\r\n return {\r\n oneTimeCode: '',\r\n resendingCode: false,\r\n navigatingBack: false,\r\n canResendCode: true,\r\n clearError: false,\r\n };\r\n },\r\n props: {},\r\n computed: {\r\n hasError() {\r\n return (!this.$data.clearError && this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n codeSentText() {\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n let codeSentText = '';\r\n if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.EmailCode) {\r\n codeSentText = this.getSiteText('CodeStepup.Verify.Email.CodeSent', [\r\n currentChallenge.Destination.MaskedAddress.toLowerCase(),\r\n ]);\r\n }\r\n else if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.SmsCode ||\r\n currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.VoiceCode) {\r\n const lastDigits = currentChallenge.Destination.MaskedAddress.slice(-3);\r\n codeSentText = this.getSiteText('CodeStepup.Verify.Phone.CodeSent', [lastDigits]);\r\n }\r\n else if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Unknown &&\r\n currentChallenge.Destination.MaskedAddress === 'Manual') {\r\n codeSentText = this.getSiteText('CodeStepup.Verify.ManualMfa.CodeSent');\r\n }\r\n return codeSentText;\r\n },\r\n resendButtonText() {\r\n if (this.isManualMfa) {\r\n return '';\r\n }\r\n return this.canResendCode ?\r\n this.getSiteText('CodeStepup.Verify.ResendCode') :\r\n this.getSiteText('CodeStepup.Verify.CodeSent');\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n codeEntryHelperText() {\r\n if (this.isManualMfa) {\r\n return '';\r\n }\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n return this.getSiteText('StepUp.OneTimeCode.DisplayInput.HelperText', [currentChallenge.MinutesToLive]);\r\n },\r\n isManualMfa() {\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Unknown &&\r\n currentChallenge.Destination.MaskedAddress === 'Manual') {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n mounted() {\r\n this.$el.querySelector('#txt_OTP').focus();\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n oneTimeCodeUpdated(value) {\r\n this.$data.oneTimeCode = value;\r\n },\r\n onFocus() {\r\n this.$data.clearError = true;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.$data.clearError = false;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.$data.oneTimeCode,\r\n // add remember device settings\r\n RememberDevice: this.$store.getters.rememberDevice,\r\n DeviceName: this.$store.getters.deviceName,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.oneTimeCodeUpdated('');\r\n }\r\n },\r\n async navigateBack() {\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.oneTimeCode = '';\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n async resendCode() {\r\n if (this.resendingCode) {\r\n return;\r\n }\r\n this.resendingCode = true;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCodeDestination,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.resendingCode = false;\r\n // reset code after resending it, disable the resend button and create timer to enable it after 1 minute\r\n this.oneTimeCodeUpdated('');\r\n this.canResendCode = false;\r\n setTimeout(() => this.canResendCode = true, 60000);\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code',\r\n data: () => {\r\n return {\r\n resendingCode: false,\r\n canResendCode: true,\r\n };\r\n },\r\n props: {\r\n authenticationFactor: {\r\n type: String,\r\n required: true,\r\n },\r\n oneTimeCode: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n computed: {\r\n tokenLength() {\r\n if (this.authenticationFactor === AuthenticationFactor_1.AuthenticationFactor.Token)\r\n return 8;\r\n return 6;\r\n },\r\n subHeadingText() {\r\n let type = '';\r\n let replace = [];\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n type = 'Phone';\r\n replace = [this.currentChallenge.Destination.MaskedAddress];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Email';\r\n replace = [this.currentChallenge.Destination.MaskedAddress];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Unknown:\r\n type = 'Unknown';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.VerificationCode.SubHeading.${type}`, replace);\r\n },\r\n actionText() {\r\n return this.isMobile ? '' : this.getSiteText('Forgot.VerificationCode.EnterCode');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n inputHelperText() {\r\n let type = '';\r\n let replace = [];\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Expiration';\r\n replace = [this.currentChallenge.MinutesToLive.toString()];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Unknown:\r\n type = 'Unknown';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.VerificationCode.HelperText.${type}`, replace);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n displayResendCode() {\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n return true;\r\n }\r\n return false;\r\n },\r\n resendButtonText() {\r\n return this.canResendCode ?\r\n this.getSiteText('Forgot.VerificationCode.ResendCode') :\r\n this.getSiteText('Forgot.VerificationCode.CodeSent');\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n oneTimeCodeUpdated(value) {\r\n // Clear any errors when user starts typing in a new code\r\n if (this.hasError)\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$emit('code-entered', {\r\n valid: value.length === this.tokenLength,\r\n code: value,\r\n });\r\n },\r\n async resendCode() {\r\n if (this.resendingCode) {\r\n return;\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.resend_code_clicked,\r\n });\r\n }\r\n this.resendingCode = true;\r\n // update is resending OTP property\r\n this.$store.commit('setIsResendingOTP', this.resendingCode);\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCodeDestination,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.resendingCode = false;\r\n // update after code is sent\r\n this.$store.commit('setIsResendingOTP', this.resendingCode);\r\n // reset code after resending it, disable the resend button and create timer to enable it after 1 minute\r\n this.oneTimeCodeUpdated('');\r\n this.canResendCode = false;\r\n setTimeout(() => this.canResendCode = true, 60000);\r\n },\r\n changeMethod() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.change_method_clicked,\r\n });\r\n }\r\n // switch the challengeStatus to unknown to clear any OTP failed message when changing method\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$emit('change-stepup-method');\r\n },\r\n },\r\n watch: {\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing && !this.authenticatedModel.username.length) {\r\n const challenge = {\r\n ...this.$store.getters.checkSyncResultChallenge,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise((r) => setTimeout(r, 1000));\r\n }\r\n },\r\n authenticatedModel(newAuthenticatedModel) {\r\n if (newAuthenticatedModel && typeof newAuthenticatedModel.username == 'string' && typeof newAuthenticatedModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst OneTimeCodeForgot_vue_1 = tslib_1.__importDefault(require(\"./OneTimeCodeForgot.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code-container',\r\n data: () => {\r\n return {\r\n oneTimeCode: '',\r\n valid: false,\r\n isSubmitting: false,\r\n navigatingBack: false,\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n actionText() {\r\n return this.getSiteText('Forgot.VerificationCode.EnterCode');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n buttonText() {\r\n var _a;\r\n return (_a = this.$options.filters) === null || _a === void 0 ? void 0 : _a.sitetext('Forgot.VerificationCode.Verify');\r\n },\r\n buttonDisabled() {\r\n return !this.valid;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarioType() {\r\n if (this.$store.getters.isForgotUsernameWorkflow)\r\n return 'ForgotUsername';\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return 'ForgotPassword';\r\n return 'Registration';\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n isLoading() {\r\n return this.isSubmitting || this.isSyncing || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async submitForm() {\r\n if (this.isSubmitting || !this.valid) {\r\n return;\r\n }\r\n let challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.oneTimeCode,\r\n };\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.isSubmitting = true;\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.isSubmitting = false;\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.oneTimeCode = '';\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n let event = {\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n };\r\n if (this.hasError) {\r\n event.eventProperties = {\r\n 'error': this.$store.state.challengeStatus,\r\n };\r\n }\r\n void userTelemetry_1.telemetry.custom(event);\r\n }\r\n },\r\n async changeStepupMethod() {\r\n // Switching back from OTP input to method selection\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.oneTimeCode = '';\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n otpCodeEntered({ valid, code }) {\r\n this.valid = valid;\r\n this.oneTimeCode = code;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n OneTimeCode: OneTimeCodeForgot_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'questions-and-answers',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst Disclosure_vue_1 = tslib_1.__importDefault(require(\"../Disclosure.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'registration-disclosure',\r\n props: {},\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n userPdfCode: '',\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n canContinue() {\r\n // we can continue once the disclosure is accepted and the pdf code is entered (or if the pdf is disabled)\r\n return this.disclosureAccepted && (this.userPdfCode !== '' || !this.pdfEnabled);\r\n },\r\n disclosureContent() {\r\n return this.$store.state.currentChallenge.DisclosureContent || '';\r\n },\r\n disclosureID() {\r\n return this.$store.state.currentChallenge.DisclosureId || '';\r\n },\r\n doesDisclosureExists() {\r\n return this.disclosureContent !== '';\r\n },\r\n htmlBeforeDisclosure() {\r\n const bankName = this.$store.state.configuration.bankName;\r\n const isBusiness = this.$store.state.currentChallenge.IsBusiness;\r\n const siteTextName = `Registration.Disclosure.HtmlBefore${isBusiness ? 'Business' : ''}RegistrationDisclosure`;\r\n return this.getSiteText(siteTextName, bankName);\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n pdfUrl() {\r\n return this.$store.state.configuration.pdfDisclosureLocation;\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n pdfCodeErrorMessages() {\r\n const errors = this.$store.state.errors;\r\n if (errors.some(er => er.CustomSubCode === 'BAD_CODE')) {\r\n return [this.getSiteText('Registration.PDF.Error')];\r\n }\r\n return [];\r\n },\r\n pdfEnabled() {\r\n return this.$store.state.currentChallenge.ShouldCheckPdf && !!this.$store.state.configuration.pdfDisclosureLocation;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting || !this.disclosureAccepted) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n DisclosureID: this.disclosureID,\r\n Accepted: this.disclosureAccepted,\r\n UserSubmittedPdfCode: this.userPdfCode,\r\n };\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n toggleAccepted(val) {\r\n this.disclosureAccepted = val;\r\n },\r\n handleTextfieldFocus(event) {\r\n if (this.isMobile) {\r\n const currentScrollPosition = window.screenY || window.pageYOffset;\r\n const targetField = event.target;\r\n const textFieldPosition = targetField.getBoundingClientRect().top;\r\n window.scrollTo({\r\n top: currentScrollPosition + textFieldPosition,\r\n behavior: 'smooth',\r\n });\r\n }\r\n },\r\n PDFOpen() {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.open_pdf_clicked,\r\n });\r\n if (this.isCypress)\r\n return;\r\n window.open(this.pdfUrl, '_blank');\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n Disclosure: Disclosure_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'reset-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-forget-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-forgot-username',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartRegistration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartRegistration.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-registration',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUp.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst stepup_1 = tslib_1.__importDefault(require(\"../stepup\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"../SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up',\r\n props: {},\r\n data: () => {\r\n return {\r\n selectedStepUpCategoryId: null,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpCategories() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const displayCategories = categories\r\n .filter(category => category.StepUpModel.AuthenticationFactorValue !== 'Unknown');\r\n return displayCategories;\r\n },\r\n selectedStepUpCategory: {\r\n get() {\r\n const id = this.selectedStepUpCategoryId;\r\n return this.stepUpCategories.find((category) => category.$id === id) || this.stepUpCategories[0];\r\n },\r\n set(category) {\r\n this.selectedStepUpCategoryId = category.$id;\r\n },\r\n },\r\n authenticationFactorMetaData() {\r\n const getMetaData = (type) => {\r\n switch (type) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n return {\r\n icon: 'mobile-sms',\r\n label: this.getSiteText('Stepup.Icon.Label.SMS'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n return {\r\n icon: 'email-alt',\r\n label: this.getSiteText('Stepup.Icon.Label.EmailCode'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n return {\r\n icon: 'receive-call',\r\n label: this.getSiteText('Stepup.Icon.Label.VoiceCode'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n return {\r\n icon: 'phone2',\r\n label: this.getSiteText('Stepup.Icon.Label.TOTP'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n return {\r\n icon: 'lock',\r\n label: this.getSiteText('Stepup.Icon.Label.Token'),\r\n };\r\n default:\r\n return {\r\n icon: 'cut-out',\r\n label: this.getSiteText('Stepup.Icon.Label.Unknown'),\r\n };\r\n }\r\n };\r\n const metadata = {};\r\n this.stepUpCategories.forEach((category) => {\r\n metadata[category.StepUpModel.AuthenticationFactorValue] = getMetaData(category.StepUpModel.AuthenticationFactorValue);\r\n });\r\n return metadata;\r\n },\r\n manualMfaEnabled() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const manualDestination = selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual');\r\n if (manualDestination !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n methods: {\r\n categoryChanged(selectedCategory) {\r\n this.selectedStepUpCategory = selectedCategory;\r\n this.$store.commit('setRememberDevice', false);\r\n this.$store.commit('setDeviceName', '');\r\n },\r\n async submitManualMfa() {\r\n if (this.manualMfaEnabled) {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const challenge = {\r\n ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.NextChallenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n };\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...challenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n });\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.selectedStepUpCategory = this.stepUpCategories[0];\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n ...stepup_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Biometric.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Biometric.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'biometric',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'email-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeStepup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeStepup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"./Slide.vue\"));\r\nconst RememberDevice_vue_1 = tslib_1.__importDefault(require(\"./RememberDevice.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'code-stepup',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n selectedDestinationId: null,\r\n navigatingBack: false,\r\n header: '',\r\n subtitle: '',\r\n isSubmitting: false,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n destinations() {\r\n return this.stepUpCategory.StepUpModel.Destinations;\r\n },\r\n selectedDestination: {\r\n get() {\r\n const id = this.selectedDestinationId;\r\n return this.destinations.find((destination) => destination.$id === id) || this.destinations[0];\r\n },\r\n set(destination) {\r\n this.selectedDestinationId = destination.$id;\r\n },\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n hasServerError() {\r\n return this.$store.state.errors.length > 0;\r\n },\r\n ariaDescriptionId() {\r\n return `destinationDescription${this.stepUpCategory.StepUpModel.AuthenticationFactorValue}`;\r\n },\r\n },\r\n methods: {\r\n async sendCode() {\r\n if (this.isSubmitting) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...this.stepUpCategory.NextChallenge,\r\n Destination: { ...this.selectedDestination },\r\n });\r\n this.isSubmitting = false;\r\n },\r\n async navigateBack() {\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.selectedDestinationId = null;\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n changeDestinationSelection(newDestinationId) {\r\n this.selectedDestinationId = newDestinationId;\r\n },\r\n },\r\n mounted() {\r\n if (this.destinations.length > 0) {\r\n this.selectedDestination = this.destinations[0];\r\n }\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n RememberDevice: RememberDevice_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RememberDevice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RememberDevice.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nexports.default = vue_1.default.extend({\r\n name: 'remember-device',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n toggleRememberStatus() {\r\n this.rememberDevice = !this.rememberDevice;\r\n },\r\n },\r\n computed: {\r\n hasError() {\r\n return this.$store.getters.challengeStatus === ChallengeStatus_1.ChallengeStatus.DeviceNameAlreadyExists ? true : false;\r\n },\r\n errorText() {\r\n return this.$store.getters.challengeStatus === ChallengeStatus_1.ChallengeStatus.DeviceNameAlreadyExists ? this.getSiteText('RDM.DeviceAlreadyExists') : '';\r\n },\r\n canRememberDevice() {\r\n return this.$store.getters.canRememberDevice;\r\n },\r\n rememberDevice: {\r\n get() {\r\n return this.$store.getters.rememberDevice;\r\n },\r\n set(newValue) {\r\n this.$store.commit('setRememberDevice', newValue);\r\n },\r\n },\r\n deviceName: {\r\n get() {\r\n return this.$store.getters.deviceName;\r\n },\r\n set(newValue) {\r\n this.$store.commit('setDeviceName', newValue);\r\n },\r\n },\r\n showMandatory2faMessage() {\r\n return !this.$store.getters.canRememberDevice && this.$store.getters.isStepUpMandatory;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushNotification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushNotification.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'push-notification',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'questions-and-answers',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmsCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmsCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'sms-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpOption.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpOption.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up-option',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n isSelectedCategory: {\r\n type: Boolean,\r\n required: true,\r\n default: false,\r\n },\r\n },\r\n data: () => {\r\n return {\r\n internalSelectedDestination: null,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpType() {\r\n return this.stepUpCategory.StepUpModel.AuthenticationFactorValue;\r\n },\r\n showDropdown() {\r\n var _a;\r\n return this.isSelectedCategory && ((_a = this.stepUpCategory.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.length) > 0;\r\n },\r\n getStrings() {\r\n return {\r\n label: this.getText('Dropdown.Label'),\r\n };\r\n },\r\n getItems() {\r\n let items = [];\r\n this.stepUpCategory.StepUpModel.Destinations.forEach((destination) => {\r\n items.push({\r\n label: destination.MaskedAddress,\r\n value: destination.$id,\r\n });\r\n });\r\n return items;\r\n },\r\n selectedDestination: {\r\n get() {\r\n var _a;\r\n const id = (_a = this.internalSelectedDestination) === null || _a === void 0 ? void 0 : _a.$id;\r\n if (!id)\r\n return [];\r\n const destination = this.stepUpCategory.StepUpModel.Destinations.find(dest => dest.$id === id);\r\n if (!destination)\r\n return [];\r\n return [destination.$id];\r\n },\r\n set(destinationId) {\r\n const destination = this.stepUpCategory.StepUpModel.Destinations.find(dest => dest.$id === destinationId[0]);\r\n this.internalSelectedDestination = destination ? destination : null;\r\n this.$emit('stepup-destination-selected', this.internalSelectedDestination);\r\n },\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n methods: {\r\n buttonChanged() {\r\n this.$emit('stepup-option-selected', this.stepUpCategory);\r\n this.$emit('stepup-destination-selected', this.internalSelectedDestination);\r\n },\r\n getText(resource) {\r\n let type = '';\r\n switch (this.stepUpCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n type = 'SMS';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Email';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n type = 'VoiceCall';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.${type}.${resource}`);\r\n },\r\n },\r\n mounted() {\r\n var _a;\r\n if (((_a = this.stepUpCategory.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.length) > 0) {\r\n this.internalSelectedDestination = this.stepUpCategory.StepUpModel.Destinations[0];\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TOTP.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TOTP.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst TokenStepup_vue_1 = tslib_1.__importDefault(require(\"../TokenStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'totp',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n TokenStepup: TokenStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenStepup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenStepup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"./Slide.vue\"));\r\nconst RememberDevice_vue_1 = tslib_1.__importDefault(require(\"./RememberDevice.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst AuthenticationFactor_1 = require(\"../enums/AuthenticationFactor\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'token-stepup',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n tokenLength: {\r\n type: Number,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n tokenCode: '',\r\n isNavigatingBack: false,\r\n header: '',\r\n subtitle: '',\r\n clearError: false,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n hasError() {\r\n return (!this.$data.clearError && this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n inputHelperText() {\r\n const currentAuthenticationFactorValue = this.stepUpCategory.StepUpModel.AuthenticationFactorValue;\r\n let helperText = '';\r\n if (currentAuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.TOTP) {\r\n helperText = this.getSiteText('StepUp.TOTP.DisplayInput.HelperText');\r\n }\r\n else if (currentAuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Token) {\r\n helperText = this.getSiteText('StepUp.Token.DisplayInput.HelperText');\r\n }\r\n return helperText;\r\n },\r\n isTOTP() {\r\n return this.stepUpCategory.StepUpModel.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.TOTP;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n elementId() {\r\n return this.isTOTP ? 'txt_TOTP' : 'txt_Token';\r\n },\r\n hasServerError() {\r\n return this.$store.state.errors.length > 0;\r\n },\r\n },\r\n methods: {\r\n tokenCodeUpdated(value) {\r\n this.$data.tokenCode = value;\r\n },\r\n onFocus() {\r\n this.$data.clearError = true;\r\n },\r\n async navigateBack() {\r\n if (this.isNavigatingBack) {\r\n return;\r\n }\r\n this.isNavigatingBack = true;\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.isNavigatingBack = false;\r\n },\r\n async verifyCode() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.$data.clearError = false;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.$data.tokenCode,\r\n AuthenticationFactorValue: this.isTOTP ? AuthenticationFactor_1.AuthenticationFactor.TOTP : AuthenticationFactor_1.AuthenticationFactor.Token,\r\n // add remember device settings\r\n RememberDevice: this.$store.getters.rememberDevice,\r\n DeviceName: this.$store.getters.deviceName,\r\n };\r\n challenge.ProviderId = this.stepUpCategory.NextChallenge.ProviderId;\r\n challenge.ChallengeTypeValue = ChallengeType_1.ChallengeType.OneTimeCode;\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n // clear the code if error\r\n if (this.hasError) {\r\n this.tokenCodeUpdated('');\r\n }\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n RememberDevice: RememberDevice_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst TokenStepup_vue_1 = tslib_1.__importDefault(require(\"../TokenStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'token',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n TokenStepup: TokenStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Unknown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Unknown.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'unknown-stepup',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoiceCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoiceCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'voice-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoicePrompt.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoicePrompt.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'voice-prompt',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebAuthn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebAuthn.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'web-authn',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst OneTimeCodeForgot_vue_1 = tslib_1.__importDefault(require(\"./OneTimeCodeForgot.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst StepUpOption_vue_1 = tslib_1.__importDefault(require(\"../stepup/StepUpOption.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up',\r\n props: {},\r\n data: () => {\r\n return {\r\n selectedCategory: null,\r\n selectedDestination: null,\r\n isSubmitting: false,\r\n tokenTOTP: {\r\n show: false,\r\n valid: false,\r\n code: '',\r\n },\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarioType() {\r\n if (this.$store.getters.isForgotUsernameWorkflow)\r\n return 'ForgotUsername';\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return 'ForgotPassword';\r\n return 'Registration';\r\n },\r\n headerText() {\r\n let siteTextKey = !this.tokenTOTP.show ? `${this.scenarioType}.StepUp.Heading` : `${this.scenarioType}.VerificationCode.Heading`;\r\n return siteTextKey;\r\n },\r\n stepUpCategories() {\r\n const categories = this.stepUpChallenge.StepUpCategories || [];\r\n const displayCategories = categories\r\n .filter(category => category.StepUpModel.AuthenticationFactorValue !== 'Unknown');\r\n return displayCategories;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n buttonDisabled() {\r\n if (this.isSubmitting || !this.selectedCategory)\r\n return true;\r\n if (!this.tokenTOTP.show) {\r\n switch (this.selectedCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n return false;\r\n }\r\n if (this.selectedDestination === null)\r\n return true;\r\n }\r\n else {\r\n // Code to disable the continue button on the TOTP/Token screen\r\n return !this.tokenTOTP.valid;\r\n }\r\n return false;\r\n },\r\n buttonText() {\r\n var _a, _b;\r\n if (!this.tokenTOTP.show) {\r\n return (_a = this.$options.filters) === null || _a === void 0 ? void 0 : _a.sitetext('ForgotWorkflow.ActionButtonText');\r\n }\r\n return (_b = this.$options.filters) === null || _b === void 0 ? void 0 : _b.sitetext('Forgot.VerificationCode.Verify');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n isRedirecting() {\r\n const authModel = this.$store.getters.authenticatedModel;\r\n if (!authModel || authModel.username.length === 0 || authModel.nonce.length === 0)\r\n return false;\r\n return true;\r\n },\r\n isLoading() {\r\n return this.isSubmitting || this.isSyncing || this.isRedirecting;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n buttonID() {\r\n if (!this.tokenTOTP.show) {\r\n return this.elementIds.StepUpContinue;\r\n }\r\n return this.elementIds.OTPVerify;\r\n },\r\n showManualGeneratedMFA() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const manualDestination = selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual');\r\n if (manualDestination !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isSelectedCategory(id) {\r\n if (!this.selectedCategory || this.selectedCategory.$id !== id)\r\n return false;\r\n return true;\r\n },\r\n stepupCategorySelected(category) {\r\n this.selectedCategory = category;\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n const verificationType = category.StepUpModel.AuthenticationFactorValue.toLowerCase().replace('code', '');\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verify_your_identity,\r\n action: userTelemetry_1.userAction.verification_type_chosen,\r\n eventProperties: {\r\n verificationType,\r\n },\r\n });\r\n }\r\n },\r\n stepupDestinationSelected(destination) {\r\n this.selectedDestination = destination;\r\n },\r\n async submitForm() {\r\n if (this.isSubmitting || !this.selectedCategory) {\r\n return;\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verify_your_identity,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n }\r\n let challenge;\r\n switch (this.selectedCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n if (!this.tokenTOTP.show) {\r\n // update steps\r\n if (this.$store.getters.currentWorkflowMaxSteps > 0 &&\r\n this.$store.getters.currentWorkflowStep < this.$store.getters.currentWorkflowMaxSteps) {\r\n const nextStepNum = this.$store.getters.currentWorkflowStep;\r\n this.$store.commit('setCurrentWorkflowStep', nextStepNum + 1);\r\n }\r\n // switch to show the token/totp code input\r\n this.tokenTOTP.show = true;\r\n // Focus the updated heading for accessibility\r\n this.$refs.heading.focus();\r\n return;\r\n }\r\n // submit the token/totp challenge\r\n challenge = {\r\n ...this.stepUpChallenge,\r\n ValidationKey: this.tokenTOTP.code,\r\n AuthenticationFactorValue: this.selectedCategory.StepUpModel.AuthenticationFactorValue,\r\n ProviderId: this.selectedCategory.NextChallenge.ProviderId,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCode,\r\n };\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n break;\r\n default:\r\n challenge = {\r\n ...this.selectedCategory.NextChallenge,\r\n Destination: { ...this.selectedDestination },\r\n };\r\n break;\r\n }\r\n // Everything else sends to the backend to send the OTP code\r\n this.isSubmitting = true;\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.isSubmitting = false;\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.tokenTOTP.code = '';\r\n }\r\n },\r\n changeStepupMethod() {\r\n // Update the steps\r\n if (this.$store.getters.currentWorkflowMaxSteps > 0) {\r\n const previousStepNum = this.$store.getters.currentWorkflowStep - 1;\r\n this.$store.commit('setCurrentWorkflowStep', previousStepNum);\r\n }\r\n // Switching back from TOTP/Token input to method selection\r\n this.tokenTOTP = {\r\n show: false,\r\n valid: false,\r\n code: '',\r\n };\r\n // Focus the heading for accessibility\r\n this.$refs.heading.focus();\r\n },\r\n otpCodeEntered({ valid, code }) {\r\n this.tokenTOTP.valid = valid;\r\n this.tokenTOTP.code = code;\r\n },\r\n async submitManualMfa() {\r\n if (this.isSubmitting) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const challenge = {\r\n ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.NextChallenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n };\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...challenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n });\r\n this.isSubmitting = false;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n StepUpOption: StepUpOption_vue_1.default,\r\n OneTimeCode: OneTimeCodeForgot_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemporaryPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemporaryPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'temporary-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tethered.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tethered.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst circle_indeterminate_40_json_1 = tslib_1.__importDefault(require(\"../../assets/circle-indeterminate-40.json\"));\r\nconst Turnstile_vue_1 = tslib_1.__importDefault(require(\"../Turnstile.vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nvar turnstileValidationStatus;\r\n(function (turnstileValidationStatus) {\r\n turnstileValidationStatus[\"NotApplicable\"] = \"NotApplicable\";\r\n turnstileValidationStatus[\"InProgress\"] = \"InProgress\";\r\n turnstileValidationStatus[\"Succeeded\"] = \"Succeeded\";\r\n turnstileValidationStatus[\"Failed\"] = \"Fails\";\r\n})(turnstileValidationStatus || (turnstileValidationStatus = {}));\r\nexports.default = vue_1.default.extend({\r\n name: 'tethered',\r\n data: () => {\r\n return {\r\n turnstileToken: '',\r\n turnstileError: '',\r\n turnstileValidationStatus: turnstileValidationStatus.NotApplicable,\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n currentChallengeStatus() {\r\n return this.$store.state.challengeStatus;\r\n },\r\n getAnimationJSON() {\r\n return circle_indeterminate_40_json_1.default;\r\n },\r\n turnstileEnabled() {\r\n return this.$store.state.configuration.turnstileEnabled;\r\n },\r\n turnstileSiteKey() {\r\n return this.$store.state.configuration.turnstileSitekey;\r\n },\r\n errorMessage() {\r\n var _a;\r\n if (this.turnstileValidationStatus === turnstileValidationStatus.Failed)\r\n return this.getSiteText(`ChallengeStatus.${this.currentChallengeStatus}`, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n return this.getSiteText('UsernameAndPassword.Error.WithReference', this.turnstileError);\r\n },\r\n displayError() {\r\n return this.turnstileError !== '' || this.turnstileValidationStatus === turnstileValidationStatus.Failed;\r\n },\r\n showTurnstile() {\r\n return this.turnstileValidationStatus === turnstileValidationStatus.InProgress || this.turnstileValidationStatus === turnstileValidationStatus.Failed;\r\n },\r\n showLoadingAnimation() {\r\n return this.turnstileValidationStatus === turnstileValidationStatus.NotApplicable || this.turnstileValidationStatus === turnstileValidationStatus.Succeeded;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async setTurnstileToken(token) {\r\n // Don't update token and submit form if we received a server-side rejection\r\n if (this.turnstileValidationStatus === turnstileValidationStatus.Failed)\r\n return;\r\n this.turnstileError = '';\r\n this.turnstileToken = token;\r\n await this.submitForm();\r\n },\r\n setTurnstileError(err) {\r\n this.turnstileError = err;\r\n },\r\n disableTurnstile() {\r\n // Turnstile has hit an unrecoverable problem. Disable to not block login attempts\r\n this.$store.commit('setTurnstileEnableState', false);\r\n },\r\n turnstileTokenExpired() {\r\n this.turnstileError = '';\r\n this.turnstileToken = '';\r\n },\r\n async submitForm() {\r\n const loginCredentials = this.$store.getters.loginCredentials;\r\n if (this.turnstileEnabled) {\r\n this.$store.commit('setTurnstileToken', this.turnstileToken);\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n Username: decodeURIComponent(loginCredentials.UserName),\r\n Password: decodeURIComponent(loginCredentials.Password),\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n if (this.currentChallengeStatus === ChallengeStatus_1.ChallengeStatus.BotDetected) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.Failed;\r\n }\r\n else if (this.turnstileEnabled) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.Succeeded;\r\n }\r\n this.$store.commit('clearLoginCredentials');\r\n },\r\n },\r\n components: {\r\n Turnstile: Turnstile_vue_1.default,\r\n },\r\n mounted() {\r\n if (this.turnstileEnabled) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.InProgress;\r\n return;\r\n }\r\n void this.submitForm();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Turnstile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Turnstile.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nvar filterAction;\r\n(function (filterAction) {\r\n filterAction[filterAction[\"retry\"] = 0] = \"retry\";\r\n filterAction[filterAction[\"disable\"] = 1] = \"disable\";\r\n})(filterAction || (filterAction = {}));\r\nexports.default = vue_1.default.extend({\r\n name: 'turnstile',\r\n props: {\r\n sitekey: {\r\n type: String,\r\n required: true,\r\n },\r\n language: {\r\n type: String,\r\n required: false,\r\n default: null,\r\n },\r\n action: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data: () => {\r\n return {\r\n src: 'https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit',\r\n widgetId: undefined,\r\n filteredErrors: [\r\n { error: 'invalid_sitekey', action: filterAction.disable },\r\n ],\r\n retries: 0,\r\n };\r\n },\r\n methods: {\r\n render() {\r\n var _a;\r\n const renderOptions = {\r\n action: this.action,\r\n sitekey: this.sitekey,\r\n language: this.language || 'en',\r\n theme: 'light',\r\n callback: (token) => this.response(token),\r\n 'error-callback': (err) => this.error(err),\r\n 'expired-callback': () => this.expired(),\r\n retry: 'never',\r\n };\r\n this.widgetId = (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.render(this.$refs.turnstileContainer, renderOptions);\r\n },\r\n response(response) {\r\n this.$emit('response', response);\r\n },\r\n reset() {\r\n var _a;\r\n (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.reset(this.widgetId);\r\n },\r\n disable() {\r\n var _a;\r\n (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.remove(this.widgetId);\r\n this.$emit('disable');\r\n },\r\n error(err) {\r\n const filteredError = this.filteredErrors.find(x => x.error === err);\r\n if (filteredError !== undefined) {\r\n switch (filteredError.action) {\r\n case filterAction.disable:\r\n this.disable();\r\n // eslint-disable-next-line no-console\r\n console.error(`Turnstile disabled due to error ${filteredError.error}`);\r\n return true;\r\n case filterAction.retry:\r\n if (this.retries < 3) {\r\n this.retries++;\r\n this.reset();\r\n return true;\r\n }\r\n break;\r\n }\r\n }\r\n this.$emit('error', err);\r\n return true;\r\n },\r\n expired() {\r\n this.$emit('expired');\r\n },\r\n },\r\n mounted() {\r\n if (window.turnstile === null || !window.turnstile) {\r\n const script = document.createElement('script');\r\n script.src = this.src;\r\n script.addEventListener('load', () => this.render());\r\n script.addEventListener('error', () => this.disable());\r\n document.head.appendChild(script);\r\n return;\r\n }\r\n this.render();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateBusiness.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateBusiness.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nfunction formatPhoneNumber(phone) {\r\n var _a;\r\n const phoneNumber = (_a = phone === null || phone === void 0 ? void 0 : phone.replace(/\\D/g, '')) !== null && _a !== void 0 ? _a : '';\r\n if (phoneNumber.length > 10)\r\n return phoneNumber;\r\n var x = /(\\d{0,3})(\\d{0,3})(\\d{0,4})/.exec(phoneNumber);\r\n if (!x)\r\n return phone;\r\n return !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n}\r\nexports.default = vue_1.default.extend({\r\n name: 'update-business',\r\n data() {\r\n var _a;\r\n let challenge = this.$store.state.currentChallenge;\r\n return {\r\n businessName: challenge.BusinessName,\r\n businessPhone: formatPhoneNumber(challenge.BusinessPhoneNumber),\r\n businessPhoneType: [(_a = challenge.BusinessPhoneType) !== null && _a !== void 0 ? _a : 'Work'],\r\n businessAddressLine1: challenge.BusinessAddressLine1,\r\n businessAddressLine2: challenge.BusinessAddressLine2,\r\n businessCity: challenge.BusinessCity,\r\n businessState: challenge.BusinessState,\r\n businessZip: challenge.BusinessPostalCode,\r\n businessEin: challenge.BusinessEin,\r\n hasPhoneError: false,\r\n hasZipError: false,\r\n hasEinError: false,\r\n phoneTypes: [\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Home'), value: 'Home' },\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Mobile'), value: 'Mobile' },\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Work'), value: 'Work' },\r\n ],\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.business_information,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n const challenge = {\r\n ...this.updateBusinessChallenge,\r\n BusinessName: this.businessName,\r\n BusinessPhoneNumber: this.businessPhone.replace(/\\D/g, ''),\r\n BusinessPhoneType: this.businessPhoneType[0],\r\n BusinessAddressLine1: this.businessAddressLine1,\r\n BusinessAddressLine2: this.businessAddressLine2,\r\n BusinessCity: this.businessCity,\r\n BusinessState: this.businessState,\r\n BusinessPostalCode: this.businessZip,\r\n BusinessEin: this.businessEin.replace(/\\D/g, ''),\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n validatePhone() {\r\n let formattedPhone = formatPhoneNumber(this.businessPhone);\r\n this.businessPhone = formattedPhone !== null && formattedPhone !== void 0 ? formattedPhone : this.businessPhone;\r\n this.hasPhoneError = !(formattedPhone.replace(/\\D/g, '').length >= 10);\r\n },\r\n validateZip() {\r\n this.hasZipError = this.zipCodeRegex().exec(this.businessZip) === null;\r\n },\r\n validateEin() {\r\n var _a;\r\n this.hasEinError = ((_a = this.businessEin) !== null && _a !== void 0 ? _a : '').replace(/\\D/g, '').length !== 9;\r\n },\r\n zipCodeRegex() {\r\n return /^\\d{5}([-]|\\s*)?(\\d{4})?$/;\r\n },\r\n getCustomErrorMessage(val) {\r\n return this.getSiteText('UserIdentifyingField.Required', this.getSiteText(`UserIdentifyingField.${val}.Label`));\r\n },\r\n },\r\n computed: {\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n getSubheading() {\r\n return this.getSiteText('Registration.UpdateBusiness.Subheading');\r\n },\r\n getPhoneTypeSiteText() {\r\n return { 'label': this.getSiteText('Registration.UpdateBusiness.Input.BusinessPhoneType') };\r\n },\r\n buttonDisabled() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n const isValidState = ((_b = (_a = this.businessName) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0\r\n && ((_d = (_c = this.businessAddressLine1) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0\r\n && ((_f = (_e = this.businessCity) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0) > 0\r\n && this.businessState\r\n && this.zipCodeRegex().exec(this.businessZip) !== null\r\n && ((_h = (_g = this.businessPhone) === null || _g === void 0 ? void 0 : _g.replace(/\\D/g, '').length) !== null && _h !== void 0 ? _h : 0) >= 10\r\n && this.businessPhoneType;\r\n return !isValidState;\r\n },\r\n updateBusinessChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n zipHasErrorCheck() {\r\n return this.hasZipError;\r\n },\r\n einHasErrorCheck() {\r\n return this.hasEinError;\r\n },\r\n phoneHasErrorCheck() {\r\n return this.hasPhoneError;\r\n },\r\n getZipErrorMessage() {\r\n return this.hasZipError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Zip')] : [];\r\n },\r\n getPhoneErrorMessage() {\r\n return this.hasPhoneError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Phone')] : [];\r\n },\r\n getEinErrorMessage() {\r\n return this.hasEinError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Ein')] : [];\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameAndPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameAndPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst Turnstile_vue_1 = tslib_1.__importDefault(require(\"../Turnstile.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nconst ForgotLinks_vue_1 = tslib_1.__importDefault(require(\"../ForgotLinks.vue\"));\r\nconst api_1 = require(\"../../api\");\r\nconst IFDICResponse_1 = require(\"../../interfaces/IFDICResponse\");\r\nexports.default = vue_1.default.extend({\r\n name: 'username-and-password',\r\n props: {},\r\n data: () => {\r\n return {\r\n username: null,\r\n password: null,\r\n rememberUsername: false,\r\n mobileInfoPanel: null,\r\n showSheet: false,\r\n hasResetError: false,\r\n hasInvalidChallengeStatus: false,\r\n hasServerError: false,\r\n FUFPToggle: false,\r\n logoPath: '',\r\n widgetConfig: {\r\n background: [],\r\n },\r\n turnstileToken: '',\r\n turnstileError: '',\r\n fdic: new IFDICResponse_1.FDICResponse(),\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n registrationRedirectUrl() {\r\n const redirect = `${this.$store.state.configuration.baseUrl}Registration`;\r\n return redirect;\r\n },\r\n openAccountRedirectUrl() {\r\n return this.getSiteText('DigitalAccountOpening.DisplayLink.URL');\r\n },\r\n showForgotPasswordLink() {\r\n return this.$store.getters.displayForgotPasswordLink;\r\n },\r\n showAccountOpeningLink() {\r\n return this.$store.getters.displayAccountOpeningLink;\r\n },\r\n showForgotUsernameLink() {\r\n return this.$store.getters.displayForgotUsernameLink;\r\n },\r\n ellipsisConfig() {\r\n return this.$store.getters.ellipsisConfig;\r\n },\r\n mobileInfoPanelClass() {\r\n var hiddenDesktop = 'isotope-hidden--desktop';\r\n var additionalStyling = this.showSheet ? 'info-sheet' : 'info-sheet hidden';\r\n return `${hiddenDesktop} ${additionalStyling}`;\r\n },\r\n wrongCredentials() {\r\n return this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials;\r\n },\r\n shouldHideRegistration() {\r\n if (this.isMobile && this.$store.state.configuration.mobileRegistrationEnabled !== 'True') {\r\n return true;\r\n }\r\n if (this.$store.getters.disableDesktopRegistration) {\r\n return true;\r\n }\r\n if (!this.$store.getters.isNativeApplication && this.isOauthRedirect()) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n errorMessage() {\r\n var _a;\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n return this.getSiteText(`ChallengeStatus.${this.currentChallengeStatus}`, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n }\r\n return '';\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n bankName() {\r\n return this.$store.state.configuration.bankName;\r\n },\r\n desktopLoginLayers() {\r\n let layers = [];\r\n if (this.widgetConfig && this.widgetConfig.background.length > 0) {\r\n layers = this.widgetConfig.background;\r\n }\r\n return layers;\r\n },\r\n turnstileEnabled() {\r\n return this.$store.state.configuration.turnstileEnabled;\r\n },\r\n turnstileSiteKey() {\r\n return this.$store.state.configuration.turnstileSitekey;\r\n },\r\n submitDisabled() {\r\n return this.submitting || this.turnstileEnabled && this.turnstileToken === '';\r\n },\r\n displayServerError() {\r\n return this.hasServerError || this.turnstileEnabled && this.turnstileError !== '';\r\n },\r\n serverErrorMessage() {\r\n if (this.turnstileEnabled && this.turnstileError !== '')\r\n return this.getSiteText('UsernameAndPassword.Error.WithReference', this.turnstileError);\r\n return this.getSiteText('Error.Generic');\r\n },\r\n currentChallengeStatus() {\r\n return this.$store.state.challengeStatus;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n enableRememberMe() {\r\n return this.$store.getters.enableRememberMe;\r\n },\r\n showFDIC() {\r\n return this.isMobile && this.fdic.mobile.login.isEnabled === true;\r\n },\r\n FDICTheme() {\r\n const signColor = this.fdic.mobile.login.signColor.toLowerCase();\r\n // if the signColor is set to WHITE, admin is configured for FDIC to be white on a dark background\r\n // this means the theme of the fdic-notice element should be dark.\r\n return signColor === 'white' ? 'dark' : 'light';\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.hasServerError = false;\r\n await this.$store.dispatch('resetErrorStatus');\r\n if (this.turnstileEnabled) {\r\n this.$store.commit('setTurnstileToken', this.turnstileToken);\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n Username: this.$data.username,\r\n Password: this.$data.password,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n this.hasInvalidChallengeStatus = true;\r\n if (this.turnstileEnabled && this.currentChallengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials) {\r\n // Turnstile tokens are only good once, so if authentication fails, reset the turnstile widget to generate a new token\r\n this.turnstileToken = '';\r\n this.$refs.turnstile.reset();\r\n }\r\n }\r\n if (this.$store.getters.hasServerError) {\r\n this.hasServerError = true;\r\n }\r\n },\r\n getIconClassFromSiteText(siteTextKey) {\r\n const icon = this.getSiteText(siteTextKey);\r\n return `font-icon-${icon}`;\r\n },\r\n async toggleRememberMe(enabled) {\r\n this.rememberUsername = enabled;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.remember_me_checked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n eventProperties: {\r\n 'value': enabled,\r\n },\r\n });\r\n await this.$store.dispatch('setRememberUsername', this.rememberUsername);\r\n },\r\n toggleSheet(showSheetNewValue) {\r\n this.showSheet = showSheetNewValue;\r\n },\r\n contentToggled() {\r\n if (this.showSheet === false) {\r\n var bottomSheet = this.$refs.bottomSheetRef.$el;\r\n var element = bottomSheet.querySelector('.irisv-sheet__content--opened');\r\n if (element != null) {\r\n element.classList.remove('irisv-sheet__content--opened');\r\n }\r\n }\r\n },\r\n rememberMeDesktopText() {\r\n return this.getSiteText('UsernameAndPassword.RememberUsername.Desktop.Message');\r\n },\r\n resetValidationError(changingUsername) {\r\n const skipReset = this.$store.getters.challengeHistory[this.$store.getters.challengeHistory.length - 2].ChallengeTypeValue === ChallengeType_1.ChallengeType.Tethered && !this.hasResetError;\r\n this.hasResetError = true;\r\n if (!skipReset && (this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials ||\r\n this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.LockedOut && changingUsername)) {\r\n this.hasInvalidChallengeStatus = false;\r\n }\r\n },\r\n ellipsisItemSelected({ selectedMenuItem: item }) {\r\n if (this.mobileInfoPanel !== null &&\r\n item.iconName === this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.IconName') &&\r\n item.label === this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.Label') &&\r\n item.href === '#') {\r\n this.toggleSheet(true);\r\n }\r\n },\r\n getReturnUrl() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n return urlParams.get('ReturnUrl');\r\n },\r\n getOAuthRedirectUri() {\r\n const returnUrl = this.getReturnUrl();\r\n if (returnUrl) {\r\n const internalUrlParams = new URLSearchParams(returnUrl);\r\n const redirect_uri = Array.from(internalUrlParams.keys()).find(x => x.toLowerCase() === 'redirect_uri' || x.toLowerCase().endsWith('?redirect_uri'));\r\n if (redirect_uri)\r\n return internalUrlParams.get(redirect_uri);\r\n }\r\n return null;\r\n },\r\n isOauthRedirect() {\r\n const returnUrl = this.getReturnUrl();\r\n if (returnUrl) {\r\n const re = /^(?:(?:\\/)?mobile)?(?:\\/)?oauth\\/authorize/;\r\n return re.test(returnUrl);\r\n }\r\n return false;\r\n },\r\n async setupThemeBuilderItems() {\r\n const alkamiThemesRef = window.Alkami.Themes;\r\n const baseAssetUrl = alkamiThemesRef.baseAssetUrl || `${alkamiThemesRef.baseUrl}/assets`;\r\n const themeConfigFromServer = await alkamiThemesRef.Config;\r\n const logoFileName = themeConfigFromServer.brandLogos.wide.fileName;\r\n if (logoFileName !== null && logoFileName !== undefined && logoFileName !== '') {\r\n this.logoPath = `${baseAssetUrl}/${logoFileName}`;\r\n }\r\n const widgetName = 'alkami.webapps.isotope';\r\n let widgetConfigFromServer;\r\n try {\r\n widgetConfigFromServer = await alkamiThemesRef.getWidgetConfig(widgetName);\r\n }\r\n catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.log('This FI may not have configued the Login Page Brand Image in Theme Builder.', error);\r\n return;\r\n }\r\n if (widgetConfigFromServer && widgetConfigFromServer.background && widgetConfigFromServer.background.length === 2) {\r\n const loginPage = this.$refs.loginPage;\r\n this.widgetConfig = { ...widgetConfigFromServer };\r\n loginPage.style.setProperty('--widgetIsotopeColorBgLayer0', `${this.widgetConfig.background[0].color.bgColor}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageAttachmentLayer1', `${this.widgetConfig.background[1].image.attachment}`);\r\n if (this.widgetConfig.background[1].image.fileName !== '') { // No need to set this css var if there is no file name and just causes a console error\r\n loginPage.style.setProperty('--widgetIsotopeImageLayer1', `url(${alkamiThemesRef.baseWidgetUrl}/${widgetName}/assets/${this.widgetConfig.background[1].image.fileName})`);\r\n }\r\n loginPage.style.setProperty('--widgetIsotopeImagePositionXLayer1', `${this.widgetConfig.background[1].image.positionX}`);\r\n loginPage.style.setProperty('--widgetIsotopeImagePositionYLayer1', `${this.widgetConfig.background[1].image.positionY}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageRepeatLayer1', `${this.widgetConfig.background[1].image.repeat}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageSizeLayer1', `${this.widgetConfig.background[1].image.size}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageOpacityLayer1', `${this.widgetConfig.background[1].image.opacity}`);\r\n }\r\n },\r\n setTurnstileToken(token) {\r\n this.turnstileError = '';\r\n this.turnstileToken = token;\r\n },\r\n setTurnstileError(err) {\r\n this.turnstileError = err;\r\n },\r\n disableTurnstile() {\r\n // Turnstile has hit an unrecoverable problem. Disable to not block login attempts\r\n this.$store.commit('setTurnstileEnableState', false);\r\n },\r\n turnstileTokenExpired() {\r\n this.turnstileError = '';\r\n this.turnstileToken = '';\r\n },\r\n ellipsisToggled(open) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.overflow_menu_clicked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n eventProperties: {\r\n 'value': open === true ? 'open' : 'close',\r\n },\r\n });\r\n },\r\n async goToRegistration() {\r\n try {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.register_account_clicked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n });\r\n }\r\n catch {\r\n // ignoring any exceptions\r\n }\r\n if (this.isCypress) {\r\n return;\r\n }\r\n document.location = this.registrationRedirectUrl;\r\n },\r\n async FDIC() {\r\n var _a;\r\n try {\r\n const response = await (0, api_1.GetFDICConfiguration)();\r\n this.fdic.update(response);\r\n }\r\n catch (ex) {\r\n // eslint-disable-next-line no-console\r\n console.warn('Error getting FDIC configuration. Defaulting to off.', ex);\r\n }\r\n if (!this.isMobile)\r\n (_a = document.querySelector('.header iris-fdic-notice')) === null || _a === void 0 ? void 0 : _a.toggleAttribute('hidden', !this.fdic.desktop.login.isEnabled);\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n Turnstile: Turnstile_vue_1.default,\r\n ForgotLinks: ForgotLinks_vue_1.default,\r\n },\r\n async mounted() {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (this.currentChallenge.Username && this.currentChallenge.Username.length) {\r\n this.username = this.currentChallenge.Username;\r\n }\r\n if (((_a = this.$store.getters.configuration.loginCredentials) === null || _a === void 0 ? void 0 : _a.UserName) !== '') {\r\n this.username = (_b = this.$store.getters.configuration.loginCredentials) === null || _b === void 0 ? void 0 : _b.UserName;\r\n }\r\n // set remembered username\r\n const rememberedUsername = this.$store.state.rememberedUsername;\r\n // make sure rememberedUsername doesn't have falsy value, set the checkbox\r\n if (rememberedUsername) {\r\n this.rememberUsername = true;\r\n this.username = rememberedUsername;\r\n this.$store.commit('setRememberUsername', true);\r\n }\r\n /*\r\n Lots of hacking going on to load the Info sheet on the page\r\n 1) First need to check if the element is loaded by the theme or not\r\n -> The div id is expected to always be \"mobile_info_panel\"\r\n 2) If it is present, then add the info to the ellipsis dropdown\r\n 3) Set the info button to trigger event to open sheet (done in click handler, method ellipsisItemSelected)\r\n */\r\n // check to see if FI has configured mobile info panel, if yes, add info sidesheet button\r\n var mobileInfoPanelElement = document.getElementById('mobile_info_panel');\r\n if (mobileInfoPanelElement) {\r\n this.mobileInfoPanel = mobileInfoPanelElement.innerHTML;\r\n const mobileInfoEllipsisConfig = {\r\n iconName: this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.IconName'),\r\n label: this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.Label'),\r\n href: '#',\r\n target: '_self',\r\n };\r\n // get ellipsis config from state\r\n var ellipsisConfig = this.$store.getters.ellipsisConfig;\r\n // add the info panel\r\n ellipsisConfig.push(mobileInfoEllipsisConfig);\r\n // update the state with new list\r\n this.$store.commit('updateEllipsisConfig', ellipsisConfig);\r\n }\r\n var helpLi = document.querySelector('a[href=\"/Content/Help/ShowVisitorContent?name=VisitorHelp\"]');\r\n if (helpLi) {\r\n const event = new CustomEvent('helpLinkLoaded', {\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n this.$el.dispatchEvent(event);\r\n }\r\n let loadedEvent = new CustomEvent('UsernameAndPasswordUIInitialized', {\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n this.$el.dispatchEvent(loadedEvent);\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n this.hasInvalidChallengeStatus = true;\r\n }\r\n if (this.$store.getters.hasServerError) {\r\n this.hasServerError = true;\r\n }\r\n // Workaround for iris-menu-dropdown not setting a type on the button. A setTimeout is needed since this iris-vue component loads another iris-vue component and a nextTick will also not work here\r\n // Make a point to remove this once UX-Dev fixes a bug where quick action buttons should have a settable type.\r\n setTimeout(() => {\r\n var _a;\r\n (_a = document.querySelector('#ellipsis_menu button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n }, 0);\r\n // Workaround for the iris-switch not setting a type on its internal button - DEV-107201\r\n (_c = document.querySelector('#rememberMeCheckBox button')) === null || _c === void 0 ? void 0 : _c.setAttribute('type', 'button');\r\n // Workaround for iris-textfield-password not handling passthrough attributes\r\n (_d = document.querySelector('#password')) === null || _d === void 0 ? void 0 : _d.setAttribute('autocomplete', 'current-password');\r\n // Fixes for accessibility issues\r\n (_e = document.querySelector('body.Authentication h1#widget_title')) === null || _e === void 0 ? void 0 : _e.setAttribute('aria-hidden', 'true');\r\n (_f = document.querySelector('body.Authentication ul#widget_nav')) === null || _f === void 0 ? void 0 : _f.setAttribute('aria-hidden', 'true');\r\n // Fetch wide logo for theme builder themes\r\n let themeBuilderTheme = document.querySelector('body.theme--theme-builder');\r\n if (themeBuilderTheme) {\r\n await this.setupThemeBuilderItems();\r\n }\r\n // retrieve FDIC configuration and display logo if appropriate\r\n void this.FDIC();\r\n },\r\n beforeCreate() {\r\n document.body.classList.add('username-and-password');\r\n },\r\n beforeDestroy() {\r\n document.body.classList.remove('username-and-password');\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotLinks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotLinks.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-links',\r\n mixins: [siteText_1.default],\r\n data: () => {\r\n return {\r\n FUFPToggle: false,\r\n };\r\n },\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n showForgotPasswordLink() {\r\n return this.$store.getters.displayForgotPasswordLink;\r\n },\r\n forgotUsernameUrl() {\r\n return `${this.$store.state.configuration.baseUrl}ForgotUsername`;\r\n },\r\n showForgotUsernameLink() {\r\n return this.$store.getters.displayForgotUsernameLink;\r\n },\r\n forgotPasswordUrl() {\r\n return `${this.$store.state.configuration.baseUrl}ForgotPassword`;\r\n },\r\n useIrisSheetForFUFP() {\r\n return this.isMobile && this.showForgotUsernameLink && this.showForgotPasswordLink;\r\n },\r\n FUFPText() {\r\n let linkText = '';\r\n switch (true) {\r\n case this.showForgotUsernameLink && this.showForgotPasswordLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.UsernameAndPassword');\r\n break;\r\n case this.showForgotUsernameLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.Username');\r\n break;\r\n case this.showForgotPasswordLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.Password');\r\n break;\r\n }\r\n if (this.isMobile) {\r\n let href = '';\r\n switch (true) {\r\n case this.useIrisSheetForFUFP:\r\n href = ' tabindex=\"0\"';\r\n break;\r\n case this.showForgotUsernameLink:\r\n href = ` href=\"${this.forgotUsernameUrl}\"`;\r\n break;\r\n case this.showForgotPasswordLink:\r\n href = ` href=\"${this.forgotPasswordUrl}\"`;\r\n break;\r\n }\r\n linkText = `${linkText.replace(/{linku}|{linkp}/ig, '')}`;\r\n }\r\n else {\r\n let uCount = 0;\r\n let pCount = 0;\r\n linkText = linkText.replace(/{linku}|{linkp}/ig, (match) => {\r\n let count;\r\n if (match.toLowerCase() === '{linku}')\r\n count = ++uCount;\r\n else\r\n count = ++pCount;\r\n if (count % 2 === 0)\r\n return '';\r\n return ``;\r\n });\r\n }\r\n return linkText;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n },\r\n methods: {\r\n mobileForgotUsernameOrPassword() {\r\n this.FUFPToggle = true;\r\n // Workaround for the iris-sheet close button not setting a type on the button\r\n // Unfortunately, the button isn't rendered until after mounted() has finished, so have to do it here\r\n let irisSheetCloseButton = document.querySelector('.forgotLinks [aria-label=\"close\"]');\r\n if (irisSheetCloseButton) {\r\n irisSheetCloseButton.setAttribute('type', 'button');\r\n }\r\n },\r\n async handleClick(event) {\r\n const href = event.target.getAttribute('href');\r\n if (href === null)\r\n return;\r\n if (href === this.forgotUsernameUrl) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n action: userTelemetry_1.userAction.forgot_username_clicked,\r\n });\r\n }\r\n else if (href === this.forgotPasswordUrl) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n action: userTelemetry_1.userAction.forgot_password_clicked,\r\n });\r\n }\r\n if (this.isCypress)\r\n return;\r\n document.location.href = href;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameRecovered.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameRecovered.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'username-recovered',\r\n props: {},\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n recoveredUsername() {\r\n var usernameRecoveredChallenge = this.$store.state.currentChallenge;\r\n return usernameRecoveredChallenge.RecoveredUsername || '';\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n mounted() {\r\n this.$refs.usernameRecovered.focus();\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n },\r\n});\r\n","import { render, staticRenderFns } from \"./ChooseScenario.vue?vue&type=template&id=9c7e7f4a&scoped=true&\"\nimport script from \"./ChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChooseScenario.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChooseScenario.vue?vue&type=style&index=0&id=9c7e7f4a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c7e7f4a\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CodeStepup.vue?vue&type=template&id=e4373eda&\"\nimport script from \"./CodeStepup.vue?vue&type=script&lang=ts&\"\nexport * from \"./CodeStepup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CodeStepup.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUpOption.vue?vue&type=template&id=cd485526&scoped=true&\"\nimport script from \"./StepUpOption.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUpOption.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUpOption.vue?vue&type=style&index=0&id=cd485526&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cd485526\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-app\",class:_vm.$route.name,attrs:{\"id\":\"app\"}},[_c('router-view',{staticClass:\"isotope-page\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-page--authentication\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"}),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-page--registration\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"}),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"authentication_page\"},[_c(_vm.currentChallengeType,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"forgotPassword_page forgotpassword-component--container\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c(_vm.currentChallengeType,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--change-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--check-sync-result\"},[_c('isotope-slide',{staticClass:\"check-sync-result\"},[_c('sync-failure',{attrs:{\"buttonText\":\"Sync.SyncError.Button.Back\",\"url\":_vm.baseUrl}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--check-sync-result\"},[_c('container-slide',{staticClass:\"check-sync-result\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('sync-failure',{attrs:{\"buttonText\":\"ForgotPassword.SyncError.Button.Back\",\"url\":_vm.url}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--confirm-identity\"},[_c('container-slide',{staticClass:\"confirm-identity\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl(),\"workflowName\":_vm.scenarioType}})],1),_c('IsotopeHeader',{attrs:{\"siteText\":(_vm.scenarioType + \".ConfirmIdentity.Heading\")}}),_c('div',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"notificationMessage\"}},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"kind\":\"inline\",\"messageType\":\"info-light\",\"message\":_vm.notificationMessage(),\"showCloseIcon\":false,\"show\":_vm.showNotification,\"closeAriaLabel\":\"Close\"},on:{\"update:show\":function($event){_vm.showNotification=$event}}})],1),_vm._l((_vm.confirmIdentityChallenge.Scenario.FieldGroups),function(group,index){return _c('user-identifying-field-group',{key:group.Id,attrs:{\"index\":index,\"name\":group.Name,\"fields\":group.Fields,\"scenarioType\":_vm.confirmIdentityChallenge.Scenario.ScenarioTypeValue,\"scenarioName\":_vm.confirmIdentityChallenge.Scenario.Name},on:{\"validation-check\":_vm.validationCheck}})}),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"id\":_vm.elementIds.ConfirmIdentityContinue,\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.ActionButtonText'),\"isLoading\":_vm.submitting,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--converted-user\"},[_c('isotope-slide',{staticClass:\"text--center\"},[_c('iris-avatar',{staticClass:\"pad-bottom--base\",attrs:{\"mainIconName\":\"lock-token\",\"isStatic\":\"true\",\"backgroundColor\":\"transparent\",\"size\":\"large\",\"letterIconColor\":\"#0267C1\",\"ariaLabel\":\"security\"}}),_c('h2',{staticClass:\"font-small-heading mar-bottom--small mar-top--0\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ConvertedUser.Header'))+\"\\n \")]),_c('div',{staticClass:\"mar-bottom--big\",attrs:{\"id\":\"converted_user_instructions\"}},[_vm._v(\"\\n \"+_vm._s(_vm.instructions())+\"\\n \")]),_c('iris-button',{staticClass:\"mar-right--tiny\",attrs:{\"text\":_vm._f(\"sitetext\")('ConvertedUser.Button.Primary'),\"fullWidth\":false,\"kind\":\"highEmphasis\",\"href\":_vm.linkForCreateNewPassword()}}),_c('iris-button',{staticClass:\"mar-left--tiny\",attrs:{\"text\":_vm._f(\"sitetext\")('ConvertedUser.Button.Secondary'),\"fullWidth\":false,\"href\":_vm.baseUrl(),\"kind\":\"lowEmphasis\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--create-user\"},[_c('container-slide',{staticClass:\"create-user\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.CreateUser.Heading\"}}),_c('div',{staticClass:\"subHeading mar-bottom--big\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ]},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.CreateUser.Subheading'))+\"\\n \")]),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"passwordInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUser.TextField.Password.Label'),\"passwordStrengthLabel\":_vm.passwordStrengths(),\"passwordStrength\":_vm.checkPasswordStrength(),\"validationRules\":[_vm.checkPasswordValid]},on:{\"textfield-input\":function($event){return _vm.checkPasswordMatches()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"confirmPasswordInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUser.TextField.ConfirmPassword.Label'),\"hasError\":_vm.passwordMismatch,\"errorMessages\":_vm.confirmPasswordErrorMessage},on:{\"textfield-input\":function($event){return _vm.checkPasswordMatches()}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}}),(_vm.showConfirmPasswordMessage)?_c('div',{staticClass:\"irisv-textfield__messages\",attrs:{\"data-cy\":\"confirmPasswordMatchLabel\"}},[_c('div',{staticClass:\"irisv-textfield__messages-help-text font-caption\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.CreateUser.PasswordMatches'))+\"\\n \")])]):_vm._e(),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"data-cy\":\"createPasswordButton\",\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.CreateUser.ButtonText'),\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--create-username\"},[_c('container-slide',{staticClass:\"create-username\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":\"Registration.CreateUsername.Heading\"}}),_c('div',{staticClass:\"subHeading mar-bottom--xl\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ],attrs:{\"data-cy\":\"createUsernameSubHeading\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getSubheading)+\"\\n \")]),_c('iris-textfield',{attrs:{\"data-cy\":\"usernameInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUsername.Input.Label'),\"hasError\":_vm.errors.length > 0,\"errorMessages\":_vm.errors,\"isDisabled\":_vm.hasExceededTries,\"value\":_vm.inputValue,\"requiredValidationErrorMessaging\":\"\"},on:{\"textfield-input\":_vm.validateUsername,\"textfield-blur\":_vm.validateBlur}}),(_vm.showSuggestedUsernames)?_c('div',{staticClass:\"showSuggestedUsernames\"},[_c('div',{attrs:{\"data-cy\":\"suggestedUsernames\"}},[_vm._v(\"\\n \"+_vm._s(_vm.usernameSuggestionHeading)+\"\\n \")]),_c('div',{staticClass:\"suggestions\"},_vm._l((_vm.suggestedUsernames),function(suggestion,index){return _c('iris-radio-button',{key:index,attrs:{\"label\":suggestion,\"value\":suggestion,\"name\":\"chooseUsername\"},on:{\"radio-button-change\":_vm.chooseUsername}})}),1)]):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"id\":_vm.elementIds.CreateUsername,\"data-cy\":\"create-username-button\",\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.ButtonText.CreateUsername'),\"isLoading\":_vm.submitting,\"loadingText\":_vm._f(\"sitetext\")('Registration.ButtonText.CreateUsername'),\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--empty\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm-identity',{attrs:{\"requiresUsername\":true}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-password-disclosure\"},[_c('container-slide',{staticClass:\"forgot-password-disclosure\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}}),_c('div',{ref:\"heading\",attrs:{\"tabindex\":\"-1\"}},[(_vm.isMobile)?_c('div',{staticClass:\"font-medium-heading mar-top--xl mar-bottom--md\",attrs:{\"role\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotWorkflow.Disclosure.Mobile.Heading'))+\"\\n \")]):_vm._e()])],1),_c('Disclosure',{attrs:{\"content\":_vm.disclosureContent,\"checkboxLabel\":_vm._f(\"sitetext\")('ForgotWorkflow.Disclosure.AcceptCheckbox.Label'),\"printLinkText\":_vm._f(\"sitetext\")('Disclosure.PrintLinkText')},on:{\"toggleDisclosureAccepted\":_vm.toggleAccepted}}),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"forgot-password-disclosure--footer\",class:{ 'disclosure-footer': !_vm.isMobile }},[_c('iris-button',{class:{ 'disclosure-button--mobile': _vm.isMobile },attrs:{\"id\":_vm.elementIds.DisclosureContinue,\"data-cy\":\"accept-disclosure-button\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.ActionButtonText'),\"fullWidth\":_vm.isMobile,\"type\":\"submit\",\"isDisabled\":_vm.canContinue,\"isLoading\":_vm.submitting,\"kind\":\"highEmphasis\"}})],1)])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-username\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario',{attrs:{\"cardName\":_vm.elementIds.UsernameChooseScenarioCard}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm-identity')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--one-time-code\"},[_c('isotope-slide',{staticClass:\"one-time-code\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('slide-header',{attrs:{\"header\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.Header'),\"subtitle\":_vm.codeSentText}})],1),_c('div',{staticClass:\"isotope-actions\",attrs:{\"role\":\"heading\",\"tabindex\":\"-1\"}},[_c('iris-display-input-field-specified',{attrs:{\"elementId\":\"txt_OTP\",\"actiontext\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.DisplayInput.ActionText'),\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.codeEntryHelperText,\"maxlength\":6,\"minlength\":6,\"keyboardType\":\"numeric\"},on:{\"display-input-field-input\":_vm.oneTimeCodeUpdated,\"display-input-field-focus\":_vm.onFocus},model:{value:(_vm.$data.oneTimeCode),callback:function ($$v) {_vm.$set(_vm.$data, \"oneTimeCode\", $$v)},expression:\"$data.oneTimeCode\"}})],1),_c('div',{staticClass:\"isotope-actions isotope-actions--row mar-top--base\"},[(!_vm.isManualMfa)?_c('iris-button',{attrs:{\"id\":\"btn_resendOTP\",\"kind\":\"compact\",\"text\":_vm.resendButtonText,\"isDisabled\":!_vm.canResendCode},on:{\"button-click\":function($event){return _vm.resendCode()}}}):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"id\":\"btn_submitOTP\",\"isLoading\":_vm.submitting,\"isDisabled\":_vm.navigatingBack || _vm.submitting,\"text\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.Button.Verify'),\"type\":\"submit\"}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back'),\"disabled\":_vm.navigatingBack || _vm.submitting,\"isLoading\":_vm.navigatingBack},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"codeInput\"},[_c('div',{staticClass:\"subHeading mar-bottom--big\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ]},[_vm._v(\"\\n \"+_vm._s(_vm.subHeadingText)+\"\\n \")]),_c('iris-display-input-field-specified',{staticClass:\"codeInputField\",attrs:{\"value\":_vm.oneTimeCode,\"elementId\":_vm.elementIds.OTPCodeInput,\"actiontext\":_vm.actionText,\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.inputHelperText,\"keyboardType\":\"numeric\",\"maxlength\":_vm.tokenLength,\"minlength\":_vm.tokenLength},on:{\"display-input-field-input\":_vm.oneTimeCodeUpdated}}),_c('div',{staticClass:\"optionButtons mar-top--md\"},[(_vm.displayResendCode)?_c('iris-button',{staticClass:\"width--Button pad-x--0\",attrs:{\"id\":_vm.elementIds.OTPResendCode,\"kind\":\"compact\",\"text\":_vm.resendButtonText,\"isDisabled\":!_vm.canResendCode},on:{\"button-click\":function($event){return _vm.resendCode()}}}):_vm._e(),(_vm.displayResendCode)?_c('span',{staticClass:\"verificationCodeOr\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Forgot.VerificationCode.Or'))+\"\\n \")]):_vm._e(),_c('iris-button',{staticClass:\"width--Button pad-x--0\",attrs:{\"id\":_vm.elementIds.OTPChangeMethod,\"kind\":\"compact\",\"text\":_vm.getSiteText('Forgot.VerificationCode.ChangeMethod')},on:{\"button-click\":function($event){return _vm.changeMethod()}}})],1),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--otp-code\"},[_c('container-slide',{staticClass:\"forgot-otp\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl,\"workflowName\":_vm.$store.getters.workflow}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":(_vm.scenarioType + \".VerificationCode.Heading\")}}),_c('one-time-code',{attrs:{\"authenticationFactor\":_vm.currentChallenge.AuthenticationFactorValue,\"oneTimeCode\":_vm.oneTimeCode},on:{\"change-stepup-method\":_vm.changeStepupMethod,\"code-entered\":_vm.otpCodeEntered}})],1),_c('template',{slot:\"footer\"},[_c('iris-button',{attrs:{\"id\":_vm.elementIds.OTPVerify,\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm.buttonText,\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--questions-and-answers\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--registration-disclosure\"},[_c('container-slide',{staticClass:\"registration-disclosure\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.Disclosure.Heading\"}}),_c('div',{staticClass:\"font-body-2\",domProps:{\"innerHTML\":_vm._s(_vm.htmlBeforeDisclosure)}}),_c('Disclosure',{attrs:{\"content\":_vm.disclosureContent,\"checkboxLabel\":_vm._f(\"sitetext\")('Global.Disclosures.Registration.LabelFor.AgreementCheckbox'),\"printLinkText\":_vm._f(\"sitetext\")('Disclosure.PrintLinkText')},on:{\"toggleDisclosureAccepted\":_vm.toggleAccepted}}),(_vm.disclosureAccepted && _vm.pdfEnabled)?_c('div',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"PDFAccessConfirmation\"}},[_c('div',{staticClass:\"font-mar--tiny\"},[_c('div',{staticClass:\"font-subtitle-2\",attrs:{\"data-cy\":\"PDFHeading\",\"role\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.Heading'))+\"\\n \")]),_c('div',{staticClass:\"font-caption mar-y--small\",attrs:{\"data-cy\":\"PDFInstructions\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.Instructions'))+\"\\n \")]),_c('ol',{staticClass:\"pdf-steps\",attrs:{\"type\":\"1\"}},[_c('li',{staticClass:\"font-caption\"},[_c('a',{attrs:{\"data-cy\":\"PDFOpen\",\"href\":_vm.pdfUrl,\"target\":\"_blank\"},on:{\"click\":function($event){$event.preventDefault();return _vm.PDFOpen.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.OpenPDF'))+\"\\n \")])]),_c('li',{staticClass:\"font-caption\",attrs:{\"data-cy\":\"PDFVerifyCode\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.VerifyCode'))+\"\\n \")])]),_c('iris-textfield',{staticClass:\"mar-bottom--small\",attrs:{\"data-cy\":\"PDFCodeInput\",\"label\":_vm._f(\"sitetext\")('Registration.PDF.AccessCodeLabel'),\"hasError\":_vm.pdfCodeErrorMessages.length > 0,\"errorMessages\":_vm.pdfCodeErrorMessages},on:{\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.userPdfCode),callback:function ($$v) {_vm.userPdfCode=$$v},expression:\"userPdfCode\"}})],1)]):_vm._e(),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--xl\",attrs:{\"data-cy\":\"accept-disclosure-button\",\"text\":_vm._f(\"sitetext\")('Registration.ButtonText.Continue'),\"fullWidth\":_vm.isMobile,\"type\":\"submit\",\"isDisabled\":!_vm.canContinue,\"isLoading\":_vm.submitting,\"kind\":\"highEmphasis\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--reset-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-forgot-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-forgot-username\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-registration\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--step-up\"},[(_vm.stepUpCategories.length)?_c('isotope-slide',{staticClass:\"isotope-slide--squash isotope-slide--stepupOptions\"},[_c('template',{slot:\"header\"},[_c('slide-header',{attrs:{\"header\":_vm._f(\"sitetext\")('StepUp.Verification.Header'),\"subtitle\":_vm._f(\"sitetext\")('StepUp.Verification.HelperText')}}),(_vm.manualMfaEnabled)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfa'))+\"\\n \"),_c('a',{attrs:{\"data-cy\":\"manualMfa\"},on:{\"click\":function($event){return _vm.submitManualMfa()}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfaLink'))+\"\\n \")])]):_vm._e()],1),_c('div',{staticClass:\"isotope-selectable-category-list\"},_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c('iris-selectable-tile',{key:stepUpCategory.$id,staticClass:\"mar-right--tiny mar-bottom--tiny isotope-selectable-category-item\",attrs:{\"iconName\":_vm.authenticationFactorMetaData[stepUpCategory.StepUpModel.AuthenticationFactorValue].icon,\"isChecked\":stepUpCategory.$id === _vm.selectedStepUpCategoryId,\"label\":_vm.authenticationFactorMetaData[stepUpCategory.StepUpModel.AuthenticationFactorValue].label,\"isSingleSelection\":\"\",\"name\":\"group1\",\"value\":stepUpCategory.$id},on:{\"selectable-tile-change\":function($event){return _vm.categoryChanged(stepUpCategory)}}})}),1)],2):_vm._e(),_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c(stepUpCategory.StepUpModel.AuthenticationFactorValue,{directives:[{name:\"show\",rawName:\"v-show\",value:(stepUpCategory.$id === _vm.selectedStepUpCategoryId),expression:\"stepUpCategory.$id === selectedStepUpCategoryId\"}],key:stepUpCategory.$id,tag:\"component\",staticClass:\"isotope-step-up-category\",attrs:{\"stepUpCategory\":stepUpCategory}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--step-up\"},[_c('container-slide',{staticClass:\"forgot-stepup\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl(),\"workflowName\":_vm.$store.getters.workflow}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":_vm.headerText}}),(_vm.showManualGeneratedMFA)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfa'))+\"\\n \"),_c('a',{attrs:{\"data-cy\":\"manualMfa\"},on:{\"click\":function($event){return _vm.submitManualMfa()}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfaLink'))+\"\\n \")])]):_vm._e(),(!_vm.tokenTOTP.show)?_c('div',{staticClass:\"stepUpOptions\"},_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c('step-up-option',{key:stepUpCategory.$id,attrs:{\"stepUpCategory\":stepUpCategory,\"isSelectedCategory\":_vm.isSelectedCategory(stepUpCategory.$id)},on:{\"stepup-option-selected\":_vm.stepupCategorySelected,\"stepup-destination-selected\":_vm.stepupDestinationSelected}})}),1):_c('div',[_c('one-time-code',{attrs:{\"authenticationFactor\":_vm.selectedCategory.StepUpModel.AuthenticationFactorValue,\"oneTimeCode\":_vm.tokenTOTP.code},on:{\"change-stepup-method\":_vm.changeStepupMethod,\"code-entered\":_vm.otpCodeEntered}})],1)],1),_c('template',{slot:\"footer\"},[_c('iris-button',{attrs:{\"id\":_vm.buttonID,\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm.buttonText,\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--temporary-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--tethered\"},[(_vm.showTurnstile)?_c('div',{staticClass:\"turnstile\"},[_c('turnstile',{ref:\"turnstile\",attrs:{\"sitekey\":_vm.turnstileSiteKey,\"language\":_vm.getSiteText('Turnstile.Language'),\"action\":\"tetheredLogin\"},on:{\"response\":_vm.setTurnstileToken,\"expired\":_vm.turnstileTokenExpired,\"error\":_vm.setTurnstileError,\"disable\":_vm.disableTurnstile}}),_c('iris-notification',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base'],attrs:{\"kind\":\"inline\",\"roleType\":\"alertdialog\",\"messageType\":\"error\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.displayError,\"data-cy\":\"tetheredError\",\"closeAriaLabel\":\"Close notification\"}}),(_vm.displayError)?_c('iris-button',{staticClass:\"mar-top--base\",attrs:{\"data-cy\":\"returnToLoginButton\",\"type\":\"button\",\"text\":_vm._f(\"sitetext\")('Tethered.Loading.Button.Back'),\"href\":_vm.baseUrl}}):_vm._e()],1):_vm._e(),(_vm.showLoadingAnimation)?_c('div',{staticClass:\"animationContainer\"},[_c('iris-lottie-animation',{attrs:{\"alt\":_vm.getSiteText('Tethered.Loading.AnimationAlt'),\"isLooping\":true,\"animationJSON\":_vm.getAnimationJSON,\"isAriaHidden\":true,\"width\":64,\"data-cy\":\"loadingAnimation\"}}),_c('h2',{staticClass:\"font-content-heading--activity\",attrs:{\"data-cy\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Tethered.Loading'))+\"\\n \")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--update-business\"},[_c('container-slide',{staticClass:\"update-business\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.UpdateBusiness.Heading\"}}),_c('div',{staticClass:\"subHeading mar-top--small mar-bottom--xl\",attrs:{\"data-cy\":\"updateBusinessSubHeading\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getSubheading)+\"\\n \")]),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessNameInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessName'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('BusinessName')},model:{value:(_vm.businessName),callback:function ($$v) {_vm.businessName=$$v},expression:\"businessName\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessPhoneInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessPhone'),\"hasError\":_vm.phoneHasErrorCheck,\"errorMessages\":_vm.getPhoneErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validatePhone,\"textfield-blur\":_vm.validatePhone},model:{value:(_vm.businessPhone),callback:function ($$v) {_vm.businessPhone=$$v},expression:\"businessPhone\"}}),_c('iris-select-dropdown',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessPhoneTypeInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessPhoneType'),\"items\":_vm.phoneTypes,\"strings\":_vm.getPhoneTypeSiteText,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('Registration.Input.Required')},model:{value:(_vm.businessPhoneType),callback:function ($$v) {_vm.businessPhoneType=$$v},expression:\"businessPhoneType\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessAddressLine1Input\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessAddressLine1'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('Address')},model:{value:(_vm.businessAddressLine1),callback:function ($$v) {_vm.businessAddressLine1=$$v},expression:\"businessAddressLine1\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessAddressLine2Input\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessAddressLine2'),\"isOptional\":true},model:{value:(_vm.businessAddressLine2),callback:function ($$v) {_vm.businessAddressLine2=$$v},expression:\"businessAddressLine2\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessCityInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessCity'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('City')},model:{value:(_vm.businessCity),callback:function ($$v) {_vm.businessCity=$$v},expression:\"businessCity\"}}),_c('div',{staticClass:\"row\"},[_c('iris-textfield',{staticClass:\"mar-child-bottom--small column\",attrs:{\"data-cy\":\"businessStateInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessState'),\"minlength\":2,\"maxlength\":2,\"minLengthValidationErrorMessage\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Errors.State'),\"maxLengthValidationErrorMessage\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Errors.State')},model:{value:(_vm.businessState),callback:function ($$v) {_vm.businessState=$$v},expression:\"businessState\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small column\",attrs:{\"data-cy\":\"businessZipInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessZip'),\"hasError\":_vm.zipHasErrorCheck,\"errorMessages\":_vm.getZipErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validateZip,\"textfield-blur\":_vm.validateZip},model:{value:(_vm.businessZip),callback:function ($$v) {_vm.businessZip=$$v},expression:\"businessZip\"}})],1),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessEinInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessEin'),\"hasError\":_vm.einHasErrorCheck,\"errorMessages\":_vm.getEinErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validateEin,\"textfield-blur\":_vm.validateEin},model:{value:(_vm.businessEin),callback:function ($$v) {_vm.businessEin=$$v},expression:\"businessEin\"}}),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--xl\",attrs:{\"id\":_vm.elementIds.UpdateBusiness,\"data-cy\":\"update-business-button\",\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.ActionButtonText'),\"isLoading\":_vm.submitting,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"loginPage\",staticClass:\"isotope-challenge-type--username-and-password\"},[_c('iris-sheet',{ref:\"bottomSheetRef\",class:_vm.mobileInfoPanelClass,attrs:{\"kind\":\"partial\",\"contentToggle\":_vm.showSheet,\"showScrim\":true,\"showCompactButton\":false,\"irisSheetHeader\":true,\"irisSheetHeaderText\":_vm._f(\"sitetext\")('UsernameAndPassword.InfoPanel.Header.Label'),\"suppressed\":true,\"data-cy\":\"mobileInfoPanel\"},on:{\"update:contentToggle\":function($event){_vm.showSheet=$event},\"update:content-toggle\":function($event){_vm.showSheet=$event},\"sheet:closing\":function($event){return _vm.toggleSheet(false)},\"sheet:content-toggle-request\":_vm.contentToggled},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('div',{attrs:{\"id\":\"mobile-info-panel\"},domProps:{\"innerHTML\":_vm._s(_vm.mobileInfoPanel)}})]},proxy:true}])}),_c('div',{staticClass:\"login-image-container\"},[_c('isotope-slide',{class:[\n 'usernameAndPasswordForm',\n _vm.desktopLoginLayers.length > 0 ? 'usernameAndPasswordForm--graphic-present' : '' ],on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_c('div',{staticClass:\"topArea\",class:_vm.showFDIC? 'fdic': null},[(_vm.showFDIC)?_c('iris-fdic-notice',{staticClass:\"fdic\",attrs:{\"data-cy\":\"fdic\",\"theme\":_vm.FDICTheme}}):_vm._e(),_c('div',{staticClass:\"ellipsis\"},[_c('iris-menu-dropdown',{attrs:{\"id\":\"ellipsis_menu\",\"kind\":\"action\",\"menuAlignment\":\"right\",\"triggerType\":\"quickactionbutton\",\"items\":_vm.ellipsisConfig,\"quickActionButtonProps\":{\n kind: 'mediumEmphasis',\n variation: 'embedded',\n }},on:{\"menu-dropdown-item-selected\":_vm.ellipsisItemSelected,\"menu-dropdown-opened\":function($event){return _vm.ellipsisToggled(true)},\"menu-dropdown-closed\":function($event){return _vm.ellipsisToggled(false)}}})],1)],1),(_vm.logoPath)?_c('div',{staticClass:\"logo isotope-hidden--mobile\"},[_c('img',{attrs:{\"src\":_vm.logoPath}})]):_vm._e(),_c('div',{staticClass:\"mar-top--small isotope-hidden--desktop\"}),_c('iris-textfield',{attrs:{\"elementId\":_vm.elementIds.Username,\"label\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Username.Label'),\"isOptional\":false,\"kind\":\"underline\",\"isClearable\":false,\"hasError\":_vm.wrongCredentials,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Username.Required'),\"autocomplete\":\"username\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},on:{\"textfield-input\":function($event){return _vm.resetValidationError(true)}},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"autocomplete\":\"current-password\",\"elementId\":_vm.elementIds.Password,\"label\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Password.Label'),\"kind\":\"underline\",\"isOptional\":false,\"hasError\":_vm.wrongCredentials,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Password.Required')},on:{\"textfield-input\":function($event){return _vm.resetValidationError(false)}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),(_vm.enableRememberMe)?_c('div',{staticClass:\"rememberMe\"},[_c('iris-switch',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.isMobile ? null : _vm.rememberMeDesktopText()),expression:\"isMobile ? null : rememberMeDesktopText()\"}],attrs:{\"id\":\"rememberMeCheckBox\",\"ariaLabel\":_vm.getSiteText('UsernameAndPassword.RememberUsername.Label'),\"isSelected\":_vm.rememberUsername},on:{\"switch-change\":_vm.toggleRememberMe}}),_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.RememberUsername.Label'))+\"\\n \")],1):_vm._e(),(_vm.turnstileEnabled)?_c('div',{staticClass:\"turnstile\",class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('turnstile',{ref:\"turnstile\",attrs:{\"sitekey\":_vm.turnstileSiteKey,\"language\":_vm.getSiteText('Turnstile.Language'),\"action\":\"login\"},on:{\"response\":_vm.setTurnstileToken,\"expired\":_vm.turnstileTokenExpired,\"error\":_vm.setTurnstileError,\"disable\":_vm.disableTurnstile}})],1):_vm._e(),_c('div',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error-light\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasInvalidChallengeStatus,\"data-cy\":\"invalidChallenge\",\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm.serverErrorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.displayServerError,\"data-cy\":\"serverError\",\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{class:['isotope-actions', _vm.isMobile? 'mar-top--small' : 'mar-top--base']},[_c('iris-button',{attrs:{\"id\":_vm.elementIds.AuthenticationSubmit,\"fullWidth\":true,\"isDisabled\":_vm.submitDisabled,\"text\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Login'),\"isLoading\":_vm.submitting,\"loadingText\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Login.Loading'),\"type\":\"submit\"}}),(_vm.showForgotUsernameLink || _vm.showForgotPasswordLink)?_c('forgot-links',{class:['forgotLinks', !_vm.isMobile ? 'mar-bottom--sm' : '']}):_vm._e(),(!_vm.isMobile && !_vm.shouldHideRegistration)?_c('iris-button',{class:['registration', !_vm.showAccountOpeningLink ? 'mar-top--base' : ''],attrs:{\"kind\":\"lowEmphasis\",\"fullWidth\":true,\"text\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Register')},on:{\"button-click\":_vm.goToRegistration}}):_vm._e(),(_vm.isMobile && !_vm.shouldHideRegistration)?_c('a',{staticClass:\"registration mar-top--sm\",on:{\"click\":_vm.goToRegistration}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Button.Register'))+\"\\n \")]):_vm._e(),(_vm.showAccountOpeningLink)?_c('div',{class:['openAccountDiv', !_vm.isMobile? '' : 'mar-top--small']},[_c('a',{staticClass:\"openAccount\",attrs:{\"href\":_vm.openAccountRedirectUrl}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('DigitalAccountOpening.DisplayLink.Label'))+\"\\n \")])]):_vm._e()],1)],1),(_vm.desktopLoginLayers.length > 0)?_c('div',{staticClass:\"graphicPanelContainer isotope-hidden--mobile\"},_vm._l((_vm.desktopLoginLayers),function(item,index){return _c('div',{key:(\"layer_\" + index),class:['graphicPanelContainer__layer', (\"graphicPanelContainer__layer\" + index + \"--\" + (item.type))]})}),0):_vm._e(),_c('div',{staticClass:\"mar-bottom--small isotope-hidden--desktop\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--username-recovered\"},[_c('container-slide',{staticClass:\"username-recovered\"},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('div',{staticClass:\"username-recovered-center\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--2xl' ]},[_c('div',{staticClass:\"username-recovered-container\"},[_c('div',{ref:\"usernameRecovered\",staticClass:\"username-recovered-content\",attrs:{\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"username-recovered-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotUsername.Complete.Heading'))+\"\\n \")]),_c('div',{staticClass:\"username-recovered-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.recoveredUsername())+\"\\n \")])]),_c('div',{staticClass:\"username-recovered-footer\"},[_c('iris-button',{attrs:{\"id\":\"loginBtn\",\"text\":_vm._f(\"sitetext\")('ForgotUsername.Complete.Button.Text'),\"fullWidth\":false,\"href\":_vm.baseUrl(),\"kind\":\"highEmphasis\"}})],1)])])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"isotope-slide\",attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('submit', $event)}}},[(_vm.hasHeader)?_c('div',{staticClass:\"isotope-slide__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{staticClass:\"isotope-slide__content\"},[_vm._t(\"default\")],2),(_vm.hasFooter)?_c('div',{staticClass:\"isotope-slide__footer\"},[_vm._t(\"footer\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"syncFailure\"},[_c('div',{staticClass:\"syncAnimation error\"}),_c('div',{staticClass:\"mar-top--base\"},[_c('div',[_c('slide-header',{attrs:{\"data-cy\":\"header\",\"header\":_vm._f(\"sitetext\")('Sync.SyncError.Header'),\"subtitle\":_vm.errorMessage}}),_c('iris-button',{staticClass:\"mar-top--big\",attrs:{\"data-cy\":\"button\",\"type\":\"button\",\"text\":_vm._f(\"sitetext\")(_vm.buttonText),\"href\":_vm.url}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',{ref:\"heading\",staticClass:\"font-medium-heading\",attrs:{\"tabindex\":\"-1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.header)+\"\\n \")]),_c('p',{staticClass:\"mar-top--small font-body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.subtitle)+\"\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"container-slide container-slide--content\",class:{ 'container-slide--mobile': _vm.isMobile },attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('submit', $event)}}},[_c('div',{staticClass:\"slide__header\"},[_vm._t(\"header\")],2),_c('div',{staticClass:\"slide__content\"},[_vm._t(\"default\")],2),(_vm.hasFooter)?_c('div',{staticClass:\"slide__footer\",class:{ 'container-slide-footer--mobile': _vm.isMobile }},[_vm._t(\"footer\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"slide\",staticClass:\"slide-header-with-nav\"},[_c('div',{staticClass:\"slide-header-close\",class:{ 'slide-header-close--mobile': _vm.isMobile }},[_c('iris-quick-action-button',{attrs:{\"id\":\"closeButton\",\"kind\":\"mediumEmphasis\",\"avatarProps\":{\n mainIconName: 'cancel-x',\n size: 'small'\n },\"label\":_vm.closeButtonText},on:{\"quick-action-button-click\":function($event){return _vm.clickCloseButton($event)}}})],1),_c('ProgressBar',{staticClass:\"progress\"}),_c('iris-notification',{staticClass:\"slide-header-notification\",attrs:{\"data-cy\":\"slideHeaderNotification\",\"roleType\":\"alert\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error-light\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"closeError\",\"show\":_vm.displayErrorMessage,\"closeAriaLabel\":\"Close notification\"},on:{\"update:show\":function($event){_vm.displayErrorMessage=$event},\"notification-close\":_vm.closeNotification}}),_c('iris-sheet',{attrs:{\"contentToggle\":_vm.contentToggle,\"irisSheetHeader\":false,\"irisSheetFooter\":true,\"kind\":\"partial\",\"suppressed\":true,\"showCloseButton\":false},on:{\"update:contentToggle\":function($event){_vm.contentToggle=$event},\"update:content-toggle\":function($event){_vm.contentToggle=$event},\"sheet:closed\":_vm.sheetClosed},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('div',{staticClass:\"close-confirm-heading text--center mar-top--xl mar-bottom--md\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotWorkflow.Close.Confirm.Header'))+\"\\n \")]),_c('div',{staticClass:\"text--center close-confirm-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.cancelConfirmText())+\"\\n \")])]},proxy:true},{key:\"irisSheetFooter\",fn:function(){return [_c('iris-button',{attrs:{\"id\":\"btn_confirmClose\",\"kind\":\"highEmphasis\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.Close.Confirm.Button.Text'),\"fullWidth\":true},on:{\"button-click\":function($event){return _vm.clickConfirmClose()}}}),_c('iris-button',{attrs:{\"id\":\"btn_cancelClose\",\"kind\":\"lowEmphasis\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.Close.Cancel.Button.Text'),\"fullWidth\":true},on:{\"button-click\":function($event){return _vm.clickCancelClose()}}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--choose-scenario\"},[_c('container-slide',{staticClass:\"choose-scenario--container-slide\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":_vm.scenarioType() + '.ChooseScenario.Heading'}}),_c('div',{staticClass:\"choose-scenario--container\"},_vm._l((_vm.scenarios),function(scenario){return _c('span',{key:scenario.Id,attrs:{\"role\":\"button\",\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.selectScenario(scenario.Id)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectScenario(scenario.Id)}}},[_c('iris-card',{staticClass:\"choose-scenario--card\",attrs:{\"name\":_vm.cardName,\"hasHoverState\":true,\"hasActiveState\":true,\"cardCursorPointer\":\"pointer\"}},[_c('h2',{staticClass:\"font-content-heading--activity-description choose-scenario--text mar--0 font-size--sm\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.scenarioType() + '.ChooseScenario.' + scenario.Name + '.Text'))+\"\\n \")]),_c('div',{staticClass:\"font-content-heading--activity-description-label choose-scenario--description mar--0 font-size--xs\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.scenarioType() + '.ChooseScenario.' + scenario.Name + '.Description'))+\"\\n \")])])],1)}),0)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"heading\",class:_vm.cssClasses,attrs:{\"tabindex\":\"-1\",\"role\":\"heading\",\"data-cy\":\"isotope-header\",\"aria-level\":\"1\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.siteText))+\"\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"field-group\"},[_c('div',{staticClass:\"mar-child-bottom--small\"},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.textForGroup(_vm.scenarioType,_vm.index))+\"\\n \")])]),_vm._l((_vm.fields),function(field){return _c('user-identifying-field',{key:field.Id,staticClass:\"mar-child-bottom--small\",attrs:{\"id\":field.Id,\"fieldType\":field.IdentifyingFieldType,\"isRequired\":field.IsRequired,\"isSensitive\":field.IsSensitive,\"scenarioType\":_vm.scenarioType,\"scenarioName\":_vm.scenarioName,\"regex\":field.MatchRegEx},on:{\"validation-check\":_vm.validationCheck},model:{value:(field.Value),callback:function ($$v) {_vm.$set(field, \"Value\", $$v)},expression:\"field.Value\"}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"disclosure\",attrs:{\"data-cy\":\"disclosure-text\"},domProps:{\"innerHTML\":_vm._s(_vm.content)},on:{\"scroll\":_vm.scrollDisclosure}}),_c('div',{attrs:{\"id\":\"accept-disclosure-wrapper\"}},[_c('iris-checkbox',{staticClass:\"accept-disclosure-checkbox\",class:{ 'disclosure-checkbox--mobile': _vm.isMobile },attrs:{\"id\":_vm.elementIds.DisclosureCheckbox,\"data-cy\":\"accept-disclosure-checkbox\",\"label\":_vm.checkboxLabel,\"isLowEmphasis\":false},on:{\"checkbox-change\":_vm.toggleAccepted}}),_c('iris-quick-action-button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.printLinkText),expression:\"printLinkText\"}],staticClass:\"disclosure-print\",class:{ 'hidden': _vm.isMobile },attrs:{\"data-cy\":\"disclosure-print\",\"label\":_vm.printLinkText,\"kind\":\"mediumEmphasis\",\"variation\":\"embedded\",\"alignment\":\"left\",\"avatar-props\":{ mainIconName: 'print', size: 'small' },\"target\":\"_blank\",\"href\":_vm.disclosurePrintLink},on:{\"quick-action-button-click\":_vm.printClicked}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"stepUpOption\"},[_c('iris-radio-button',{attrs:{\"label\":_vm.getText('Label'),\"value\":_vm.stepUpType,\"name\":_vm.elementIds.StepUpCategory},on:{\"radio-button-change\":_vm.buttonChanged}}),_c('div',{staticClass:\"stepUpDetails\"},[_c('div',{staticClass:\"stepUpDescription\"},[_vm._v(\"\\n \"+_vm._s(_vm.getText('Description'))+\"\\n \")]),(_vm.showDropdown)?_c('iris-select-dropdown',{staticClass:\"stepUpDestinations\",attrs:{\"name\":_vm.elementIds.StepUpDestination,\"strings\":_vm.getStrings,\"items\":_vm.getItems,\"showListDividers\":true},model:{value:(_vm.selectedDestination),callback:function ($$v) {_vm.selectedDestination=$$v},expression:\"selectedDestination\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"turnstileContainer\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',_vm._g({class:{'font-caption': !_vm.isMobile},attrs:{\"data-cy\":\"FUFPText\"},domProps:{\"innerHTML\":_vm._s(_vm.FUFPText)},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},_vm.useIrisSheetForFUFP ? { click: _vm.mobileForgotUsernameOrPassword } : {})),(_vm.useIrisSheetForFUFP)?_c('iris-sheet',{attrs:{\"kind\":\"partial\",\"irisSheetHeader\":false,\"showScrim\":true,\"suppressed\":true,\"contentToggle\":_vm.FUFPToggle,\"data-cy\":\"FUFPSheet\"},on:{\"update:contentToggle\":function($event){_vm.FUFPToggle=$event},\"update:content-toggle\":function($event){_vm.FUFPToggle=$event}},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('a',{staticClass:\"FUFPLink\",attrs:{\"data-cy\":\"username\",\"href\":_vm.forgotUsernameUrl},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Link.ForgotUsername'))+\"\\n \"),_c('iris-avatar',{attrs:{\"mainIconName\":\"angle\",\"letterIconColor\":\"rgb(var(--colorBrandedAffordanceAccessible))\"}})],1),_c('hr',{staticClass:\"irisv-divider\"}),_c('a',{staticClass:\"FUFPLink\",attrs:{\"data-cy\":\"password\",\"href\":_vm.forgotPasswordUrl},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Link.ForgotPassword'))+\"\\n \"),_c('iris-avatar',{attrs:{\"mainIconName\":\"angle\",\"letterIconColor\":\"rgb(var(--colorBrandedAffordanceAccessible))\"}})],1)]},proxy:true}],null,false,1202909185)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-biometric\"},[_vm._v(\"\\n Biometric\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--email-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-push-notification\"},[_vm._v(\"\\n Push Notification\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-questions-and-answers\"},[_vm._v(\"\\n Questions And Answers\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--sms-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('token-stepup',{staticClass:\"isotope-step-up-category--totp\",attrs:{\"stepUpCategory\":_vm.stepUpCategory,\"tokenLength\":6}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('token-stepup',{staticClass:\"isotope-step-up-category--token\",attrs:{\"stepUpCategory\":_vm.stepUpCategory,\"tokenLength\":8}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-unknown\"},[_vm._v(\"\\n Unknown MFA Option\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--voice-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-voice-prompt\"},[_vm._v(\"\\n Voice Prompt\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-web-authn\"},[_vm._v(\"\\n Web Authn\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showProgressBar)?_c('div',{staticClass:\"progressBarContainer\"},[_c('div',{staticClass:\"progressBarHeading\"},[_vm._v(\"\\n \"+_vm._s(_vm.progressBarHeading)+\"\\n \")]),_c('div',{staticClass:\"progressBarBackground\"},[_c('div',{staticClass:\"progressBar\",style:({ width: _vm.percentComplete + '%' })})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isOfFieldType(_vm.fieldType,'IsBusiness'))?_c('iris-checkbox',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType)},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isOfFieldType(_vm.fieldType,'State'))?_c('iris-textfield-dropdown',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"items\":_vm.states,\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isOfFieldType(_vm.fieldType,'DateOfBirth'))?_c('iris-textfield-date',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"optionalText\":_vm.optionalText(),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isSensitive && _vm.validationRules(_vm.fieldType)!==null)?_c('iris-textfield-password',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType),\"hidePasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Hide'),\"showPasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Show')},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isSensitive && _vm.validationRules(_vm.fieldType)===null)?_c('iris-textfield-password',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"hidePasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Hide'),\"showPasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Show')},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(!_vm.isSensitive && _vm.validationRules(_vm.fieldType)!==null)?_c('iris-textfield',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):_c('iris-textfield',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"code-stepup\",on:{\"submit\":function($event){$event.preventDefault();return _vm.sendCode()}}},[_c('div',{staticClass:\"isotope-hidden--mobile\"},[_c('slide-header',{attrs:{\"header\":_vm.header,\"subtitle\":_vm.subtitle}}),_c('div',{staticClass:\"mar-bottom--gigantic\"})],1),_c('div',{staticClass:\"mar-bottom--small\"},[_c('div',{staticClass:\"mar-top--small stepup-error\"},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm._f(\"sitetext\")('Error.Generic'),\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasServerError,\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{attrs:{\"id\":_vm.ariaDescriptionId}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")((\"StepUp.OneTimeCode.Destination.\" + (_vm.stepUpCategory.StepUpModel.AuthenticationFactorValue) + \".Description\")))+\"\\n \")]),(_vm.destinations.length)?_c('fieldset',{staticClass:\"select-destination isotope-actions\",attrs:{\"aria-describedby\":_vm.ariaDescriptionId}},_vm._l((_vm.destinations),function(destination){return _c('iris-cloaked-checkmark',{key:destination.$id,staticClass:\"code-stepup--row-destinations no-title\",attrs:{\"name\":\"destinations\",\"isSingleSelection\":\"\",\"isChecked\":_vm.selectedDestinationId === destination.$id,\"label\":destination.MaskedAddress.toLowerCase(),\"value\":destination.$id,\"hasRightAlignCheckmark\":\"\"},on:{\"cloaked-checkmark-change\":function($event){return _vm.changeDestinationSelection(destination.$id)}}})}),1):_vm._e()]),_c('div',{staticClass:\"isotope-actions\"},[_c('remember-device')],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"data-cy\":\"sendCode\",\"type\":\"submit\",\"isDisabled\":_vm.isSubmitting || _vm.navigatingBack,\"isLoading\":_vm.isSubmitting,\"text\":_vm._f(\"sitetext\")('CodeStepup.Button.SendCode')}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"disabled\":_vm.isSubmitting || _vm.navigatingBack,\"isLoading\":_vm.navigatingBack,\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back')},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"isotope-step-up-category--token\",on:{\"submit\":function($event){$event.preventDefault();return _vm.verifyCode()}}},[_c('div',{staticClass:\"isotope-hidden--mobile\"},[_c('slide-header',{attrs:{\"header\":_vm.header,\"subtitle\":_vm.subtitle}}),_c('div',{staticClass:\"mar-bottom--gigantic\"})],1),_c('div',{staticClass:\"isotope-actions mar-bottom--big\"},[_c('div',{staticClass:\"mar-top--small stepup-error\"},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm._f(\"sitetext\")('Error.Generic'),\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasServerError,\"closeAriaLabel\":\"Close notification\"}})],1),_c('iris-display-input-field-specified',{attrs:{\"elementId\":_vm.elementId,\"actiontext\":_vm._f(\"sitetext\")('StepUp.Token.DisplayInput.ActionText'),\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.inputHelperText,\"keyboardType\":\"numeric\",\"maxlength\":_vm.tokenLength,\"minlength\":_vm.tokenLength},on:{\"display-input-field-input\":_vm.tokenCodeUpdated,\"display-input-field-focus\":_vm.onFocus},model:{value:(_vm.$data.tokenCode),callback:function ($$v) {_vm.$set(_vm.$data, \"tokenCode\", $$v)},expression:\"$data.tokenCode\"}})],1),_c('div',{staticClass:\"isotope-actions\"},[_c('remember-device')],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"id\":\"btn_SubmitTOTP\",\"isLoading\":_vm.submitting,\"isDisabled\":_vm.submitting || !_vm.tokenCode,\"type\":\"submit\",\"text\":_vm._f(\"sitetext\")('StepUp.Token.Button.Verify')}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"disabled\":_vm.isNavigatingBack || _vm.submitting,\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back'),\"isLoading\":_vm.isNavigatingBack},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.canRememberDevice)?_c('div',[_c('div',{staticClass:\"remember-device--checkbox mar-bottom--small\"},[_c('iris-checkbox',{key:\"rememberDevice\",attrs:{\"id\":\"rememberDeviceCheckBox\",\"value\":_vm.rememberDevice,\"isChecked\":_vm.rememberDevice,\"label\":_vm._f(\"sitetext\")('RememberDevice.RememberThisDevice')},on:{\"checkbox-change\":_vm.toggleRememberStatus}})],1),(_vm.rememberDevice)?_c('div',[_c('iris-textfield',{staticClass:\"mar-bottom--small\",attrs:{\"label\":_vm._f(\"sitetext\")('RememberDevice.DeviceName'),\"hasError\":_vm.hasError,\"errorMessages\":_vm.errorText,\"kind\":\"underline\"},model:{value:(_vm.deviceName),callback:function ($$v) {_vm.deviceName=$$v},expression:\"deviceName\"}})],1):_vm._e(),(!_vm.rememberDevice)?_c('div',{staticClass:\"deviceName-placeholder isotope-hidden--mobile\"}):_vm._e()]):_vm._e(),(_vm.showMandatory2faMessage)?_c('div',{staticClass:\"mandatory2fa mar-bottom--small\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('RememberDevice.Unavailable.Mandatory2fa'))+\"\\n \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Workflow = void 0;\r\nvar Workflow;\r\n(function (Workflow) {\r\n Workflow[\"Authentication\"] = \"Authentication\";\r\n Workflow[\"ForgotUsername\"] = \"ForgotUsername\";\r\n Workflow[\"ForgotPassword\"] = \"ForgotPassword\";\r\n Workflow[\"Registration\"] = \"Registration\";\r\n})(Workflow = exports.Workflow || (exports.Workflow = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst vuex_1 = tslib_1.__importDefault(require(\"vuex\"));\r\nconst api_1 = require(\"../api\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Workflow_1 = require(\"../enums/Workflow\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nvue_1.default.use(vuex_1.default);\r\nexports.default = new vuex_1.default.Store({\r\n state: {\r\n challengeStatus: ChallengeStatus_1.ChallengeStatus.Unknown,\r\n currentChallenge: { ChallengeTypeValue: ChallengeType_1.ChallengeType.Empty },\r\n challengeHistory: [{ ChallengeTypeValue: ChallengeType_1.ChallengeType.Empty }],\r\n configuration: {},\r\n errors: [],\r\n machineSecretProvider: {},\r\n nonce: null,\r\n progression: [ChallengeType_1.ChallengeType.Empty],\r\n isSubmittingChallenge: false,\r\n rememberDevice: false,\r\n deviceName: '',\r\n remainOnStepUpScreenOnFailure: false,\r\n rememberUsername: false,\r\n rememberedUsername: '',\r\n hasRememberedUsername: false,\r\n authenticatedModel: { username: '', nonce: '' },\r\n isSyncing: false,\r\n checkSyncResultChallenge: { ChallengeTypeValue: ChallengeType_1.ChallengeType.CheckSyncResult },\r\n showRememberDevice: false,\r\n isStepUpMandatory: false,\r\n currentWorkflowMaxSteps: 0,\r\n currentWorkflowStep: 0,\r\n isResendingOTP: false,\r\n isSubmittingAuthenticatedModel: false,\r\n turnstileToken: '',\r\n isCypress: false,\r\n username: '',\r\n },\r\n getters: {\r\n currentChallengeType: (state) => {\r\n return state.currentChallenge.ChallengeTypeValue;\r\n },\r\n currentChallenge: (state) => {\r\n return state.currentChallenge;\r\n },\r\n siteTextMap: (state) => {\r\n return state.configuration.siteTextMap;\r\n },\r\n debugSiteText: (state) => {\r\n return state.configuration.debugSiteText || false;\r\n },\r\n loginCredentials: (state) => {\r\n return state.configuration.loginCredentials;\r\n },\r\n rememberDevice: (state) => {\r\n return state.rememberDevice;\r\n },\r\n deviceName: (state) => {\r\n return state.deviceName;\r\n },\r\n remainOnStepUpScreenOnFailure: (state) => {\r\n return state.remainOnStepUpScreenOnFailure;\r\n },\r\n canRememberDevice: (state) => {\r\n const currentMachineSecretProvider = state.configuration.machineSecretProvider;\r\n return state.showRememberDevice && (currentMachineSecretProvider !== null && currentMachineSecretProvider !== '');\r\n },\r\n challengeStatus: (state) => {\r\n return state.challengeStatus;\r\n },\r\n rememberUsername: (state) => {\r\n return state.rememberUsername;\r\n },\r\n ellipsisConfig: (state) => {\r\n return JSON.parse(JSON.stringify(state.configuration.ellipsisConfig));\r\n },\r\n hasServerError: (state) => {\r\n return state.errors.length > 0;\r\n },\r\n hasInvalidChallengeStatus: (state) => {\r\n return state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown;\r\n },\r\n hasSessionExpiredError: (state) => {\r\n return state.challengeStatus === ChallengeStatus_1.ChallengeStatus.SessionExpired;\r\n },\r\n isSubmittingChallenge: (state) => {\r\n return state.isSubmittingChallenge;\r\n },\r\n authenticatedModel: (state) => {\r\n return state.authenticatedModel;\r\n },\r\n isSyncing: (state) => {\r\n return state.isSyncing;\r\n },\r\n checkSyncResultChallenge: (state) => {\r\n return state.checkSyncResultChallenge;\r\n },\r\n configuration: (state) => {\r\n return state.configuration;\r\n },\r\n challengeHistory: (state) => {\r\n return state.challengeHistory;\r\n },\r\n showRememberDevice: (state) => {\r\n return state.showRememberDevice;\r\n },\r\n isStepUpMandatory: (state) => {\r\n return state.isStepUpMandatory;\r\n },\r\n isMobile: (state) => {\r\n if (state.configuration.baseUrl)\r\n return state.configuration.baseUrl.toLowerCase().includes('mobile');\r\n return false;\r\n },\r\n isNativeApplication: (state) => {\r\n return state.configuration.isNativeApplication.toLowerCase() === 'true';\r\n },\r\n isForgotPasswordWorkflow: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartForgotPassword);\r\n }\r\n return false;\r\n },\r\n isForgotUsernameWorkflow: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartForgotUsername);\r\n }\r\n return false;\r\n },\r\n isRegistering: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartRegistration);\r\n }\r\n return false;\r\n },\r\n workflow: (state, getters) => {\r\n if (getters.isForgotPasswordWorkflow)\r\n return Workflow_1.Workflow.ForgotPassword;\r\n else if (getters.isForgotUsernameWorkflow)\r\n return Workflow_1.Workflow.ForgotUsername;\r\n else if (getters.isRegistering)\r\n return Workflow_1.Workflow.Registration;\r\n return Workflow_1.Workflow.Authentication;\r\n },\r\n currentWorkflowMaxSteps: (state) => {\r\n return state.currentWorkflowMaxSteps;\r\n },\r\n currentWorkflowStep: (state) => {\r\n return state.currentWorkflowStep;\r\n },\r\n isResendingOTP: (state) => {\r\n return state.isResendingOTP;\r\n },\r\n isSubmittingAuthenticatedModel: (state) => {\r\n return state.isSubmittingAuthenticatedModel;\r\n },\r\n displayAccountOpeningLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayAccountOpeningLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n displayForgotPasswordLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayForgotPasswordLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n displayForgotUsernameLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayForgotUsernameLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n enableAppStoreNavigationPrompt: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.enableAppStoreNavigationPrompt) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n disableDesktopRegistration: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.disableDesktopRegistration) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'true';\r\n },\r\n enableRememberMe: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.enableRememberMe) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'true';\r\n },\r\n initialChallengeType: (state) => {\r\n return state.configuration.initialChallengeType;\r\n },\r\n username: (state) => {\r\n return state.username;\r\n },\r\n },\r\n mutations: {\r\n configuration: (state, configuration) => {\r\n state.configuration = configuration;\r\n },\r\n errors: (state, errors) => {\r\n state.errors = errors;\r\n },\r\n machineSecretProvider: (state, provider) => {\r\n state.machineSecretProvider = provider;\r\n },\r\n currentChallenge: (state, challengeType) => {\r\n state.currentChallenge = challengeType;\r\n state.challengeHistory.push(challengeType);\r\n },\r\n challengeStatus: (state, status) => {\r\n state.challengeStatus = status;\r\n },\r\n isSubmittingChallenge: (state, bool) => {\r\n state.isSubmittingChallenge = bool;\r\n },\r\n clearLoginCredentials: (state) => {\r\n state.configuration.loginCredentials = undefined;\r\n },\r\n setRememberDevice: (state, bool) => {\r\n state.rememberDevice = bool;\r\n },\r\n setDeviceName: (state, name) => {\r\n state.deviceName = name;\r\n },\r\n setRemainOnStepUpScreenOnFailure: (state, bool) => {\r\n state.remainOnStepUpScreenOnFailure = bool;\r\n },\r\n setRememberUsername: (state, rememberUsername) => {\r\n state.rememberUsername = rememberUsername;\r\n },\r\n updateEllipsisConfig: (state, ellipsisConfig) => {\r\n state.configuration.ellipsisConfig = ellipsisConfig;\r\n },\r\n setRememberedUsername: (state, rememberedUsername) => {\r\n state.rememberedUsername = rememberedUsername;\r\n },\r\n hasRememberedUsername: (state, hasRememberedUsername) => {\r\n state.hasRememberedUsername = hasRememberedUsername;\r\n },\r\n authenticatedModel: (state, authenticatedModel) => {\r\n state.authenticatedModel = authenticatedModel;\r\n },\r\n isSyncing: (state, isSyncing) => {\r\n state.isSyncing = isSyncing;\r\n },\r\n setShowRememberDevice: (state, showRememberDevice) => {\r\n state.showRememberDevice = showRememberDevice;\r\n },\r\n setIsStepUpMandatory: (state, isStepUpMandatory) => {\r\n state.isStepUpMandatory = isStepUpMandatory;\r\n },\r\n setCurrentWorkflowMaxSteps: (state, currentWorkflowMaxSteps) => {\r\n state.currentWorkflowMaxSteps = currentWorkflowMaxSteps;\r\n },\r\n setCurrentWorkflowStep: (state, currentWorkflowStep) => {\r\n state.currentWorkflowStep = currentWorkflowStep;\r\n },\r\n setIsResendingOTP: (state, resendingOTP) => {\r\n state.isResendingOTP = resendingOTP;\r\n },\r\n setIsSubmittingAuthenticatedModel: (state, submitting) => {\r\n state.isSubmittingAuthenticatedModel = submitting;\r\n },\r\n setTurnstileToken: (state, token) => {\r\n state.turnstileToken = token;\r\n },\r\n setTurnstileEnableState: (state, enabled) => {\r\n state.configuration.turnstileEnabled = enabled;\r\n },\r\n isCypress: (state, isCypress) => {\r\n state.isCypress = isCypress;\r\n },\r\n setUserName: (state, name) => {\r\n state.username = name;\r\n },\r\n },\r\n actions: {\r\n debug: (context, bool) => {\r\n context.commit('configuration', {\r\n ...context.state.configuration,\r\n debugSiteText: bool,\r\n });\r\n return;\r\n },\r\n initializeIsotope: async (context, payload) => {\r\n const configuration = payload.configuration;\r\n context.commit('configuration', configuration);\r\n return context.dispatch('submitChallenge', {});\r\n },\r\n submitChallenge: async (context, challenge) => {\r\n const challengeProcessor = new api_1.ChallengeProcessor(context, challenge);\r\n let response = null;\r\n try {\r\n response = await challengeProcessor.submitChallenge();\r\n }\r\n catch (error) {\r\n if (typeof error.json == 'function') {\r\n try {\r\n response = await error.json();\r\n }\r\n catch (ex) {\r\n // Do nothing\r\n }\r\n }\r\n else\r\n response = error;\r\n }\r\n if (response == null || response.ChallengeStatusValue == null && response.ValidationResults == null) {\r\n context.commit('errors', [\r\n {\r\n CustomSubCode: '',\r\n ErrorCode: 0,\r\n Field: '',\r\n ItemIndex: 0,\r\n Message: 'An unknown error occurred.',\r\n Origin: challenge.ChallengeTypeValue,\r\n Severity: 1,\r\n SubCode: 0,\r\n },\r\n ]);\r\n context.commit('isSubmittingChallenge', false);\r\n return response;\r\n }\r\n return challengeProcessor.postSubmitChallenge(response);\r\n },\r\n goToPreviousChallenge: (context) => {\r\n const currentChallenge = context.state.challengeHistory.pop();\r\n let previousChallenge = context.state.challengeHistory.pop();\r\n while (currentChallenge.ChallengeTypeValue === previousChallenge.ChallengeTypeValue) {\r\n previousChallenge = context.state.challengeHistory.pop();\r\n }\r\n if (!currentChallenge ||\r\n currentChallenge.ChallengeTypeValue === ChallengeType_1.ChallengeType.Empty ||\r\n !previousChallenge ||\r\n previousChallenge.ChallengeTypeValue === ChallengeType_1.ChallengeType.Empty) {\r\n return;\r\n }\r\n const challenge = {\r\n ...currentChallenge,\r\n ...previousChallenge,\r\n Nonce: currentChallenge.Nonce,\r\n Progression: currentChallenge.Progression,\r\n };\r\n if (context.state.currentWorkflowMaxSteps > 0) {\r\n const previousStep = context.state.currentWorkflowStep - 1;\r\n context.commit('setCurrentWorkflowStep', previousStep);\r\n }\r\n context.commit('currentChallenge', challenge);\r\n },\r\n resetErrorStatus: (context) => {\r\n context.commit('errors', []);\r\n context.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n getRememberedUsername: async (context) => {\r\n try {\r\n const configuration = context.state.configuration;\r\n if (configuration.initialChallengeType !== ChallengeType_1.ChallengeType.Tethered) {\r\n const rememberedUsername = await (0, api_1.GetRememberedUsername)(configuration);\r\n if (rememberedUsername !== '')\r\n context.commit('hasRememberedUsername', true);\r\n context.commit('setRememberedUsername', rememberedUsername);\r\n }\r\n }\r\n catch (ex) {\r\n //\r\n }\r\n },\r\n setChallengeStatus: (context, status) => {\r\n context.commit('challengeStatus', status);\r\n return;\r\n },\r\n setRememberUsername: async (context, remember) => {\r\n var _a;\r\n context.commit('setRememberUsername', remember);\r\n // for native applications, call the remember me switch channel\r\n if (window.Alkami.Helpers.isNativeApplication() === true\r\n && typeof ((_a = window.f_rememberMeSwitch) === null || _a === void 0 ? void 0 : _a.postMessage) === 'function') {\r\n window.f_rememberMeSwitch.postMessage(JSON.stringify({ rememberMe: remember }));\r\n }\r\n if (!remember && context.state.hasRememberedUsername === true) {\r\n try {\r\n context.commit('hasRememberedUsername', false);\r\n const configuration = context.state.configuration;\r\n await (0, api_1.RemoveRememberedUsername)(configuration);\r\n }\r\n catch (ex) {\r\n // eslint-disable-next-line no-console\r\n console.error('Error unsetting remember username', ex);\r\n context.commit('hasRememberedUsername', true);\r\n }\r\n }\r\n },\r\n }, // Asynchronous actions that ultimately end in mutating state.\r\n});\r\n","module.exports = Vuex;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GetFDICConfiguration = exports.ChallengeProcessor = exports.RemoveRememberedUsername = exports.GetRememberedUsername = exports.getChallenges = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Validations_1 = require(\"../enums/Validations\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst MachineSecretManager_1 = tslib_1.__importDefault(require(\"../lib/MachineSecretManager\"));\r\nasync function getChallenges() {\r\n const response = await fetch('/Authentication/Challenges');\r\n if (!response.ok) {\r\n throw new Error(await response.text());\r\n }\r\n const data = (await response.json());\r\n return data;\r\n}\r\nexports.getChallenges = getChallenges;\r\nasync function GetRememberedUsername(configuration) {\r\n const response = await fetch(`${configuration.rootUrl}API/Isotope/GetRememberedUsername`, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'BankIdentifier': configuration.clientKey,\r\n 'BankUri': configuration.bankUri,\r\n },\r\n method: 'GET',\r\n });\r\n if (!response.ok) {\r\n return '';\r\n }\r\n return (await response.json());\r\n}\r\nexports.GetRememberedUsername = GetRememberedUsername;\r\nasync function RemoveRememberedUsername(configuration) {\r\n await fetch(`${configuration.rootUrl}API/Isotope/RememberedUsername`, {\r\n method: 'DELETE',\r\n });\r\n}\r\nexports.RemoveRememberedUsername = RemoveRememberedUsername;\r\nclass ChallengeProcessor {\r\n constructor(context, request) {\r\n this.context = context;\r\n this.request = request;\r\n this.response = null;\r\n this.preSubmitChallenge();\r\n }\r\n // Any logic needed prior to sending the request\r\n preSubmitChallenge() {\r\n // Remove any server errors when submitting a new challenge\r\n this.context.state.errors = [];\r\n if (this.request.ChallengeTypeValue === ChallengeType_1.ChallengeType.Tethered) {\r\n this.request.ChallengeTypeValue = ChallengeType_1.ChallengeType.UsernameAndPassword;\r\n }\r\n // CheckSyncResult uses state.checkSyncResultChallenge instead of state.currentChallenge\r\n if (this.request.ChallengeTypeValue !== ChallengeType_1.ChallengeType.CheckSyncResult) {\r\n this.context.commit('isSubmittingChallenge', true);\r\n // Update the challenge being submitted with the correct nonce and progression the webapp sent last\r\n const lastSentResponse = this.context.state.currentChallenge;\r\n if (lastSentResponse.Nonce && lastSentResponse.Progression.length) {\r\n this.request.Nonce = lastSentResponse.Nonce;\r\n this.request.Progression = lastSentResponse.Progression;\r\n }\r\n }\r\n }\r\n async submitChallenge() {\r\n const username = this.request.Username;\r\n const challengeType = this.request.ChallengeTypeValue;\r\n if (challengeType === ChallengeType_1.ChallengeType.UsernameAndPassword) {\r\n MachineSecretManager_1.default.machineSecretProvider.initialize(username);\r\n }\r\n const configuration = this.context.state.configuration;\r\n const rememberUsername = this.context.state.rememberUsername;\r\n const sessionInfo = {\r\n AdditionalParameters: {\r\n isMobile: configuration.baseUrl != null && configuration.baseUrl.toLowerCase().includes('mobile')\r\n ? 'true'\r\n : 'false',\r\n rememberUserName: rememberUsername ? 'true' : 'false',\r\n persistentSessionIdentifier: typeof Global_PersistentSessionIdentifier === 'string' ? Global_PersistentSessionIdentifier : '',\r\n isTetheredLogin: configuration.initialChallengeType === ChallengeType_1.ChallengeType.Tethered ? 'true' : 'false',\r\n },\r\n Id: configuration.sessionId,\r\n MachineInfo: MachineSecretManager_1.default.machineSecretProvider.read(),\r\n };\r\n if (configuration.turnstileEnabled && challengeType === ChallengeType_1.ChallengeType.UsernameAndPassword) {\r\n sessionInfo.AdditionalParameters.token = this.context.state.turnstileToken;\r\n }\r\n const submittedChallenge = {\r\n ...this.request,\r\n SessionInfo: sessionInfo,\r\n UserAgentString: navigator.userAgent,\r\n };\r\n const request = {\r\n BankIdentifier: configuration.clientKey,\r\n BankUri: configuration.bankUri,\r\n SubmittedChallenge: submittedChallenge,\r\n };\r\n const model = {\r\n Request: request,\r\n RedirectUrl: configuration.redirectUrl,\r\n };\r\n const url = this.getChallengeUrl(submittedChallenge, configuration.rootUrl);\r\n const response = await fetch(url, {\r\n body: JSON.stringify(model),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n });\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n return (await response.json());\r\n }\r\n getChallengeUrl(challenge, rootUrl) {\r\n let url;\r\n switch (challenge.ChallengeTypeValue) {\r\n case ChallengeType_1.ChallengeType.StartRegistration:\r\n case ChallengeType_1.ChallengeType.ChooseRegistrationType:\r\n case ChallengeType_1.ChallengeType.RegistrationDisclosure:\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.UpdateBusiness:\r\n case ChallengeType_1.ChallengeType.CreateUsername:\r\n case ChallengeType_1.ChallengeType.CreateUser:\r\n url = `${rootUrl}API/Registration/${challenge.ChallengeTypeValue}`;\r\n break;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n url = `${rootUrl}API/Isotope/Credentials`;\r\n break;\r\n case ChallengeType_1.ChallengeType.StartForgotPassword:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordDisclosure:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordChooseScenario:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordConfirmIdentity:\r\n url = `${rootUrl}API/ForgotPassword/${challenge.ChallengeTypeValue}`;\r\n break;\r\n case ChallengeType_1.ChallengeType.StartForgotUsername:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameChooseScenario:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameConfirmIdentity:\r\n url = `${rootUrl}API/ForgotUsername/${challenge.ChallengeTypeValue}`;\r\n break;\r\n default:\r\n url = `${rootUrl}API/Isotope`;\r\n break;\r\n }\r\n return url;\r\n }\r\n // Logic after receiving the response\r\n postSubmitChallenge(response) {\r\n this.response = response;\r\n // If session has expired, redirect to the first page of the workflow. Set session cache with session expired key.\r\n // Delete it from session cache after reload\r\n if (response.ChallengeStatusValue === ChallengeStatus_1.ChallengeStatus.SessionExpired) {\r\n sessionStorage.setItem(ChallengeStatus_1.ChallengeStatus.SessionExpired, 'true');\r\n window.location.reload();\r\n return response;\r\n }\r\n if (response.NextRequestedChallenge) {\r\n // Used for remember device\r\n this.updateMachineInfo();\r\n // Used by FUFP for step progress\r\n this.getNumberOfSteps();\r\n this.updateCurrentStep();\r\n // Handle if the user account gets locked out\r\n if (this.handleLockout())\r\n return response;\r\n // Prepare the next challenge\r\n let nextChallenge = { ...response.NextRequestedChallenge };\r\n // Handle challenge-specific processing\r\n switch (response.NextRequestedChallenge.ChallengeTypeValue) {\r\n case ChallengeType_1.ChallengeType.Done:\r\n // If Done challenge is issued, redirect the user directly\r\n this.handleDoneChallenge();\r\n return response;\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n this.handleStepUpChallenge();\r\n break;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n if (this.handleCheckSyncResultChallenge())\r\n return response;\r\n break;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n // Remain on the StepUp page for failed validations for specific types\r\n // The webapp returns the challenge time at OTP which will load the One Time Code template.\r\n // We want to prevent this for some cases\r\n if (this.context.state.remainOnStepUpScreenOnFailure)\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n break;\r\n case ChallengeType_1.ChallengeType.OneTimeCodeDestination:\r\n // HasError = true means there was an issue sending stepup, so re-display the stepup challenge\r\n if (response.HasError)\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n break;\r\n case ChallengeType_1.ChallengeType.ForgotPasswordConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n if (nextChallenge.Scenario == null && this.request.ChallengeTypeValue === nextChallenge.ChallengeTypeValue) {\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n }\r\n break;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n if (response.ChallengeStatusValue === ChallengeStatus_1.ChallengeStatus.BotDetected && this.context.getters.initialChallengeType === ChallengeType_1.ChallengeType.Tethered) {\r\n // Tethered login that failed the bot test. Remain on the tethered screen.\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n }\r\n break;\r\n }\r\n this.context.commit('currentChallenge', nextChallenge);\r\n // reset the state to block transition\r\n this.context.commit('setRemainOnStepUpScreenOnFailure', false);\r\n }\r\n this.handleValidationErrors();\r\n // In some cases we can get a response with a body but no ChallengeStatusValue.\r\n // This check makes sure we don't commit an undefined challenge status.\r\n if (response.ChallengeStatusValue)\r\n this.context.commit('challengeStatus', response.ChallengeStatusValue);\r\n this.context.commit('isSubmittingChallenge', false);\r\n return response;\r\n }\r\n updateMachineInfo() {\r\n var _a, _b, _c, _d;\r\n if (((_d = (_c = (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge) === null || _b === void 0 ? void 0 : _b.SessionInfo) === null || _c === void 0 ? void 0 : _c.AdditionalParameters) === null || _d === void 0 ? void 0 : _d.UpdateMachineInfo) === 'True') {\r\n MachineSecretManager_1.default.machineSecretProvider.write(this.response.NextRequestedChallenge.SessionInfo.MachineInfo);\r\n }\r\n }\r\n getNumberOfSteps() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n // Unfortunately I have to do this null check for the linter's sake, even though parseInt would handle a null just fine\r\n const numSteps = (_d = (_c = (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge) === null || _b === void 0 ? void 0 : _b.SessionInfo) === null || _c === void 0 ? void 0 : _c.AdditionalParameters) === null || _d === void 0 ? void 0 : _d.NumberOfStepsRequired;\r\n if (numSteps == null)\r\n return;\r\n const maxSteps = parseInt(numSteps, 10);\r\n if (!isNaN(maxSteps) && maxSteps > 0) {\r\n this.context.commit('setCurrentWorkflowMaxSteps', maxSteps);\r\n // Since we only get the max step in the first step of the workflow, reset it back to 0 if we get it again\r\n // This might happen due to session expiration\r\n if (this.request.ChallengeTypeValue !== ((_e = this.response) === null || _e === void 0 ? void 0 : _e.NextRequestedChallenge.ChallengeTypeValue)) {\r\n this.context.commit('setCurrentWorkflowStep', 0);\r\n }\r\n // set the max steps in body back to 0 to prevent it from being sent back\r\n if (((_j = (_h = (_g = (_f = this.response) === null || _f === void 0 ? void 0 : _f.NextRequestedChallenge) === null || _g === void 0 ? void 0 : _g.SessionInfo) === null || _h === void 0 ? void 0 : _h.AdditionalParameters) === null || _j === void 0 ? void 0 : _j.NumberOfStepsRequired) != null)\r\n this.response.NextRequestedChallenge.SessionInfo.AdditionalParameters.NumberOfStepsRequired = '0';\r\n }\r\n }\r\n updateCurrentStep() {\r\n var _a;\r\n if (this.context.state.currentWorkflowMaxSteps > 0\r\n && this.context.state.currentWorkflowStep < this.context.state.currentWorkflowMaxSteps\r\n && this.request.ChallengeTypeValue !== ((_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge.ChallengeTypeValue)) {\r\n if (!this.context.state.isResendingOTP) {\r\n const currentStep = this.context.state.currentWorkflowStep + 1;\r\n this.context.commit('setCurrentWorkflowStep', currentStep);\r\n }\r\n }\r\n }\r\n handleLockout() {\r\n var _a, _b;\r\n // If the challenge is not username and password (implying that the user is on the MFA page)\r\n // and the status is locked out redirect user to the locked out page\r\n if (((_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge.ChallengeTypeValue) !== ChallengeType_1.ChallengeType.UsernameAndPassword &&\r\n ((_b = this.response) === null || _b === void 0 ? void 0 : _b.ChallengeStatusValue) === ChallengeStatus_1.ChallengeStatus.LockedOut) {\r\n // baseUrl is only set if using mobile site, if it's null, we'll need to redirect to desktop site\r\n const redirect = this.context.state.configuration.baseUrl ? `${this.context.state.configuration.bankUri}${this.context.state.configuration.baseUrl}\\\\Authentication\\\\LockedOut`\r\n : `${this.context.state.configuration.bankUri}\\\\Authentication\\\\LockedOut`;\r\n window.location.href = redirect;\r\n return true;\r\n }\r\n return false;\r\n }\r\n handleDoneChallenge() {\r\n var _a;\r\n const doneChallenge = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge;\r\n this.context.commit('isSyncing', false);\r\n this.context.commit('authenticatedModel', { username: doneChallenge.Username, nonce: doneChallenge.Grant });\r\n }\r\n handleStepUpChallenge() {\r\n var _a;\r\n const stepupChallenge = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge;\r\n this.context.commit('setShowRememberDevice', stepupChallenge.IsRememberDeviceOptionSupported);\r\n this.context.commit('setIsStepUpMandatory', stepupChallenge.IsStepUpMandatory);\r\n }\r\n handleCheckSyncResultChallenge() {\r\n var _a, _b;\r\n switch ((_a = this.response) === null || _a === void 0 ? void 0 : _a.ChallengeStatusValue) {\r\n // account sync is still in progress\r\n case ChallengeStatus_1.ChallengeStatus.Success:\r\n this.context.commit('isSyncing', true);\r\n this.context.state.checkSyncResultChallenge = { ...(_b = this.response) === null || _b === void 0 ? void 0 : _b.NextRequestedChallenge };\r\n return true;\r\n case ChallengeStatus_1.ChallengeStatus.SyncError:\r\n this.context.commit('isSyncing', false);\r\n break;\r\n }\r\n return false;\r\n }\r\n handleValidationErrors() {\r\n var _a;\r\n if (((_a = this.response) === null || _a === void 0 ? void 0 : _a.ValidationResults) && this.response.ValidationResults instanceof Array) {\r\n const errors = this.response.ValidationResults.filter((error) => {\r\n return error.Severity === Validations_1.Severity.Error || error.Severity === Validations_1.Severity.Fatal;\r\n });\r\n this.context.commit('errors', errors);\r\n }\r\n }\r\n repeatStep(nextChallenge) {\r\n const currentChallenge = this.context.state.challengeHistory.pop();\r\n if (currentChallenge && this.response) {\r\n nextChallenge = {\r\n ...currentChallenge,\r\n ...this.response.NextRequestedChallenge,\r\n ChallengeTypeValue: currentChallenge.ChallengeTypeValue,\r\n };\r\n }\r\n return nextChallenge;\r\n }\r\n}\r\nexports.ChallengeProcessor = ChallengeProcessor;\r\nasync function GetFDICConfiguration() {\r\n const FDICUrl = '/afx/v2/compliance/fdic-configuration';\r\n const response = await fetch(FDICUrl, { method: 'GET' });\r\n return await response.json();\r\n}\r\nexports.GetFDICConfiguration = GetFDICConfiguration;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst MachineSecretProviderType_1 = require(\"../enums/MachineSecretProviderType\");\r\nconst EntrustMachineSecretProvider_1 = require(\"./EntrustMachineSecretProvider\");\r\nconst DefaultMachineSecretProvider_1 = require(\"./DefaultMachineSecretProvider\");\r\nclass MachineSecretProviderManager {\r\n constructor() {\r\n this.provider = new DefaultMachineSecretProvider_1.DefaultMachineSecretProvider();\r\n }\r\n createProvider(machineSecretProviderType) {\r\n let machineSecretProvider;\r\n switch (machineSecretProviderType) {\r\n case MachineSecretProviderType_1.MachineSecretProviderType.EntrustRememberedDevicesProvider:\r\n machineSecretProvider = new EntrustMachineSecretProvider_1.EntrustMachineSecretProvider();\r\n break;\r\n default:\r\n machineSecretProvider = new DefaultMachineSecretProvider_1.DefaultMachineSecretProvider();\r\n }\r\n this.provider = machineSecretProvider;\r\n return machineSecretProvider;\r\n }\r\n get machineSecretProvider() {\r\n return this.provider;\r\n }\r\n}\r\nexports.default = new MachineSecretProviderManager();\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction fromEntries(iterable) {\r\n return Array.from(iterable).reduce((obj, entry) => {\r\n const key = entry[0];\r\n const val = entry[1];\r\n obj[key] = val;\r\n return obj;\r\n }, {});\r\n}\r\nexports.default = fromEntries;\r\n","import { render, staticRenderFns } from \"./ChangePassword.vue?vue&type=template&id=4e7c4e8c&\"\nimport script from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CheckSyncResult.vue?vue&type=template&id=7c4541be&\"\nimport script from \"./CheckSyncResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckSyncResult.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckSyncResult.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SyncFailure.vue?vue&type=template&id=ee18a92c&scoped=true&\"\nimport script from \"./SyncFailure.vue?vue&type=script&lang=ts&\"\nexport * from \"./SyncFailure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SyncFailure.vue?vue&type=style&index=0&id=ee18a92c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee18a92c\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSiteTextItem = void 0;\r\nfunction getSiteTextItem(key, options = {}) {\r\n const { debug = false, replacements = [], siteTextMap = {} } = options;\r\n let value = siteTextMap[key];\r\n if (debug) {\r\n if (value === null || value === undefined) {\r\n key = `__Localize_Me__${key}`;\r\n }\r\n return [key, ...replacements].join(' ');\r\n }\r\n if (value === null || value === undefined) {\r\n return `__Localize_Me__${key}`;\r\n }\r\n if (replacements.length > 0) {\r\n value = value.replace(/{(\\d+)}/g, (match, index) => {\r\n if (typeof replacements[index] !== 'undefined') {\r\n return replacements[index].toString();\r\n }\r\n return match;\r\n });\r\n }\r\n return value;\r\n}\r\nexports.getSiteTextItem = getSiteTextItem;\r\n","import { render, staticRenderFns } from \"./CheckSyncResultForgot.vue?vue&type=template&id=7cb37c0b&scoped=true&\"\nimport script from \"./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckSyncResultForgot.vue?vue&type=style&index=0&id=7cb37c0b&lang=scss&scoped=true&\"\nimport style1 from \"./CheckSyncResultForgot.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cb37c0b\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ChooseRegistrationType.vue?vue&type=template&id=7b0f66f6&\"\nimport script from \"./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserIdentifyingFieldType = void 0;\r\nvar UserIdentifyingFieldType;\r\n(function (UserIdentifyingFieldType) {\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"FirstName\"] = 0] = \"FirstName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"LastName\"] = 1] = \"LastName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"TaxId\"] = 4] = \"TaxId\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"HomePhone\"] = 5] = \"HomePhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"WorkPhone\"] = 6] = \"WorkPhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CellPhone\"] = 7] = \"CellPhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Address\"] = 8] = \"Address\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"City\"] = 9] = \"City\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"State\"] = 10] = \"State\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ZipCode\"] = 11] = \"ZipCode\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DateOfBirth\"] = 12] = \"DateOfBirth\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"MothersMaidenName\"] = 14] = \"MothersMaidenName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"AccountNumber\"] = 15] = \"AccountNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"IsBusiness\"] = 17] = \"IsBusiness\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessName\"] = 18] = \"BusinessName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Password\"] = 19] = \"Password\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"MemberNumber\"] = 21] = \"MemberNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Email\"] = 22] = \"Email\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DriversLicenseNumber\"] = 23] = \"DriversLicenseNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CustomField\"] = 24] = \"CustomField\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DebitCardNumber\"] = 25] = \"DebitCardNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CreditCardNumber\"] = 26] = \"CreditCardNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"AccountHolderNumber\"] = 27] = \"AccountHolderNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Codeword\"] = 28] = \"Codeword\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"PIN\"] = 29] = \"PIN\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"EIN\"] = 30] = \"EIN\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Username\"] = 31] = \"Username\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessFirstName\"] = 32] = \"BusinessFirstName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessLastName\"] = 33] = \"BusinessLastName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ConfigurableField1\"] = 34] = \"ConfigurableField1\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ConfigurableField2\"] = 35] = \"ConfigurableField2\";\r\n})(UserIdentifyingFieldType = exports.UserIdentifyingFieldType || (exports.UserIdentifyingFieldType = {}));\r\n","import { render, staticRenderFns } from \"./ConvertedUser.vue?vue&type=template&id=6a23d81e&\"\nimport script from \"./ConvertedUser.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConvertedUser.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CreateUser.vue?vue&type=template&id=beefd568&scoped=true&\"\nimport script from \"./CreateUser.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateUser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateUser.vue?vue&type=style&index=0&id=beefd568&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"beefd568\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CreateUsername.vue?vue&type=template&id=7cc8a3fc&scoped=true&\"\nimport script from \"./CreateUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateUsername.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateUsername.vue?vue&type=style&index=0&id=7cc8a3fc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cc8a3fc\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Empty.vue?vue&type=template&id=05e69a30&\"\nimport script from \"./Empty.vue?vue&type=script&lang=ts&\"\nexport * from \"./Empty.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=594d4619&\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordChooseScenario.vue?vue&type=template&id=6e2cbf3e&\"\nimport script from \"./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordConfirmIdentity.vue?vue&type=template&id=c0616538&\"\nimport script from \"./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordDisclosure.vue?vue&type=template&id=1a6ea58d&scoped=true&\"\nimport script from \"./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgotPasswordDisclosure.vue?vue&type=style&index=0&id=1a6ea58d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a6ea58d\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Disclosure.vue?vue&type=template&id=3b1a05f1&scoped=true&\"\nimport script from \"./Disclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./Disclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Disclosure.vue?vue&type=style&index=0&id=3b1a05f1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b1a05f1\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsername.vue?vue&type=template&id=66974d1e&\"\nimport script from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsernameChooseScenario.vue?vue&type=template&id=0a3c2e47&\"\nimport script from \"./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsernameConfirmIdentity.vue?vue&type=template&id=6dc6d087&\"\nimport script from \"./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./OneTimeCodeForgotContainer.vue?vue&type=template&id=0d06e3c4&scoped=true&\"\nimport script from \"./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCodeForgotContainer.vue?vue&type=style&index=0&id=0d06e3c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d06e3c4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./QuestionsAndAnswers.vue?vue&type=template&id=8d5ff01c&\"\nimport script from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./RegistrationDisclosure.vue?vue&type=template&id=8c1853a8&scoped=true&\"\nimport script from \"./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegistrationDisclosure.vue?vue&type=style&index=0&id=8c1853a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c1853a8\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=646ae2db&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartForgotPassword.vue?vue&type=template&id=11730be7&\"\nimport script from \"./StartForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartForgotPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartForgotUsername.vue?vue&type=template&id=08590462&\"\nimport script from \"./StartForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartRegistration.vue?vue&type=template&id=b8f2a698&\"\nimport script from \"./StartRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartRegistration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUp.vue?vue&type=template&id=776f7154&scoped=true&\"\nimport script from \"./StepUp.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUp.vue?vue&type=style&index=0&id=776f7154&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"776f7154\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Biometric.vue?vue&type=template&id=3288c4c1&\"\nimport script from \"./Biometric.vue?vue&type=script&lang=ts&\"\nexport * from \"./Biometric.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./EmailCode.vue?vue&type=template&id=9defb5a8&\"\nimport script from \"./EmailCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./RememberDevice.vue?vue&type=template&id=740f5c3d&\"\nimport script from \"./RememberDevice.vue?vue&type=script&lang=ts&\"\nexport * from \"./RememberDevice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RememberDevice.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./PushNotification.vue?vue&type=template&id=76cb7caa&\"\nimport script from \"./PushNotification.vue?vue&type=script&lang=ts&\"\nexport * from \"./PushNotification.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./QuestionsAndAnswers.vue?vue&type=template&id=3c07a7c3&\"\nimport script from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SmsCode.vue?vue&type=template&id=60ad0862&\"\nimport script from \"./SmsCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmsCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TOTP.vue?vue&type=template&id=a0706818&\"\nimport script from \"./TOTP.vue?vue&type=script&lang=ts&\"\nexport * from \"./TOTP.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TokenStepup.vue?vue&type=template&id=2a8ec210&\"\nimport script from \"./TokenStepup.vue?vue&type=script&lang=ts&\"\nexport * from \"./TokenStepup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Token.vue?vue&type=template&id=81859b34&\"\nimport script from \"./Token.vue?vue&type=script&lang=ts&\"\nexport * from \"./Token.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Unknown.vue?vue&type=template&id=31b23688&\"\nimport script from \"./Unknown.vue?vue&type=script&lang=ts&\"\nexport * from \"./Unknown.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VoiceCode.vue?vue&type=template&id=66594df0&\"\nimport script from \"./VoiceCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./VoiceCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VoicePrompt.vue?vue&type=template&id=14a4fbda&\"\nimport script from \"./VoicePrompt.vue?vue&type=script&lang=ts&\"\nexport * from \"./VoicePrompt.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./WebAuthn.vue?vue&type=template&id=5ebc067f&\"\nimport script from \"./WebAuthn.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebAuthn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUpForgot.vue?vue&type=template&id=5750e5a7&scoped=true&\"\nimport script from \"./StepUpForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUpForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUpForgot.vue?vue&type=style&index=0&id=5750e5a7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5750e5a7\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TemporaryPassword.vue?vue&type=template&id=5929379d&\"\nimport script from \"./TemporaryPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./TemporaryPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Tethered.vue?vue&type=template&id=6031e1e4&scoped=true&\"\nimport script from \"./Tethered.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tethered.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tethered.vue?vue&type=style&index=0&id=6031e1e4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6031e1e4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Turnstile.vue?vue&type=template&id=ee916bb4&scoped=true&\"\nimport script from \"./Turnstile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Turnstile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Turnstile.vue?vue&type=style&index=0&id=ee916bb4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee916bb4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UpdateBusiness.vue?vue&type=template&id=39135195&scoped=true&\"\nimport script from \"./UpdateBusiness.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpdateBusiness.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpdateBusiness.vue?vue&type=style&index=0&id=39135195&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39135195\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UsernameAndPassword.vue?vue&type=template&id=fb62b124&scoped=true&\"\nimport script from \"./UsernameAndPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsernameAndPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsernameAndPassword.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./UsernameAndPassword.vue?vue&type=style&index=1&id=fb62b124&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fb62b124\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UsernameRecovered.vue?vue&type=template&id=d33611bc&scoped=true&\"\nimport script from \"./UsernameRecovered.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsernameRecovered.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsernameRecovered.vue?vue&type=style&index=0&id=d33611bc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d33611bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('one-time-code')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./OneTimeCodeDestination.vue?vue&type=template&id=5e892f4c&\"\nimport script from \"./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"\nexport * from \"./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.init = exports.reset = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst App_vue_1 = tslib_1.__importDefault(require(\"./App.vue\"));\r\nconst router_1 = tslib_1.__importDefault(require(\"./router\"));\r\nconst store_1 = tslib_1.__importDefault(require(\"./store\"));\r\nconst MachineSecretManager_1 = tslib_1.__importDefault(require(\"./lib/MachineSecretManager\"));\r\nconst challenges_1 = tslib_1.__importDefault(require(\"./components/challenges\"));\r\nconst ChallengeType_1 = require(\"./enums/ChallengeType\");\r\nconst setup_1 = tslib_1.__importDefault(require(\"../tests/e2e/setup\"));\r\nconst ChallengeStatus_1 = require(\"./enums/ChallengeStatus\");\r\nlet mockPromise = null;\r\nif (process.env.ALBUS_LOCAL_DEV === 'cypress') {\r\n mockPromise = (0, setup_1.default)();\r\n}\r\nif (process.env.NODE_ENV === 'development') {\r\n vue_1.default.config.devtools = true;\r\n}\r\n// ignore FDIC web component\r\nvue_1.default.config.ignoredElements = ['iris-fdic-notice'];\r\nlet vm;\r\nlet config;\r\nfunction reset() {\r\n if (vm) {\r\n vm.$destroy();\r\n }\r\n}\r\nexports.reset = reset;\r\nfunction init(providedConfig) {\r\n if (vm) {\r\n reset();\r\n }\r\n config = providedConfig;\r\n // Let's do some validation checks\r\n if (!config.clientKey) {\r\n throw new Error('You must specify a clientKey as a Guid');\r\n }\r\n if (!config.redirectUrl) {\r\n throw new Error('A redirectUrl was not specified.');\r\n }\r\n if (!config.sessionId) {\r\n throw new Error('A sessionId was not specified.');\r\n }\r\n if (!config.elementId || !document.getElementById(config.elementId)) {\r\n throw new Error('A valid elementId must be provided');\r\n }\r\n const componentOverrides = {};\r\n const challengeTypes = Object.keys(ChallengeType_1.ChallengeType);\r\n // Sanitize list so extra components don't get added.\r\n // We don't want someone inserting components in the global scope willy nilly.\r\n const configuredComponentOverrides = config.componentOverrides || {};\r\n if (configuredComponentOverrides) {\r\n const keys = Object.keys(configuredComponentOverrides);\r\n keys.forEach((key) => {\r\n if (challengeTypes.includes(key)) {\r\n componentOverrides[key] = configuredComponentOverrides[key];\r\n }\r\n });\r\n }\r\n // make sure we do not have a ellipsis config with info href as we are replacing it\r\n if (config.ellipsisConfig) {\r\n const index = config.ellipsisConfig.findIndex((obj) => obj.href === '/Mobile/Info');\r\n if (index >= 0) {\r\n config.ellipsisConfig.splice(index, 1);\r\n }\r\n }\r\n const globalComponents = { ...challenges_1.default, ...componentOverrides };\r\n Object.entries(globalComponents).forEach((entry) => {\r\n vue_1.default.component(entry[0], entry[1]);\r\n });\r\n vm = new vue_1.default({\r\n router: (0, router_1.default)(config),\r\n store: store_1.default,\r\n created() {\r\n MachineSecretManager_1.default.createProvider(config.machineSecretProvider);\r\n this.$store.commit('configuration', config);\r\n if (sessionStorage.getItem(ChallengeStatus_1.ChallengeStatus.SessionExpired) === 'true') {\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.SessionExpired);\r\n sessionStorage.removeItem(ChallengeStatus_1.ChallengeStatus.SessionExpired);\r\n }\r\n if (process.env.ALBUS_LOCAL_DEV === 'cypress') {\r\n this.$store.commit('isCypress', true);\r\n }\r\n },\r\n render: (h) => h(App_vue_1.default), // This will render the App.vue component imported above\r\n }).$mount('#' + config.elementId); // This will search for an element in the DOM with an ID of \"app\"\r\n}\r\nexports.init = init;\r\nconst global = window;\r\nglobal.Alkami = global.Alkami || {};\r\nglobal.Alkami.Isotope = {\r\n init,\r\n};\r\nif (mockPromise) {\r\n void mockPromise.then(() => fetch('/Isotope/Configuration')\r\n .then(response => response.json())\r\n .then((data) => {\r\n var _a;\r\n // add some CSS classes that get lost in Cypress\r\n if ((_a = data.baseUrl) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('mobile')) {\r\n document.body.classList.add('isotope-mobile');\r\n }\r\n switch (data.initialChallengeType) {\r\n case 'UsernameAndPassword':\r\n document.body.classList.add('Authentication');\r\n break;\r\n case 'StartForgotPassword':\r\n document.body.classList.add('ForgotPassword');\r\n break;\r\n case 'StartForgotUsername':\r\n document.body.classList.add('ForgotUsername');\r\n break;\r\n }\r\n init(data);\r\n }));\r\n}\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=57f45051&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst vue_router_1 = tslib_1.__importDefault(require(\"vue-router\"));\r\n// ONLY the entry point or global views should be imported in this way.\r\nconst Authentication_vue_1 = tslib_1.__importDefault(require(\"./views/Authentication.vue\"));\r\nconst Registration_vue_1 = tslib_1.__importDefault(require(\"./views/Registration.vue\"));\r\nconst ForgotUsername_vue_1 = tslib_1.__importDefault(require(\"./views/ForgotUsername.vue\"));\r\nconst ForgotPassword_vue_1 = tslib_1.__importDefault(require(\"./views/ForgotPassword.vue\"));\r\nconst LoginGrouping_vue_1 = tslib_1.__importDefault(require(\"./views/LoginGrouping.vue\"));\r\nvue_1.default.use(vue_router_1.default); // Call a use statement to tell Vue to use the router\r\nfunction getRouter(config) {\r\n return new vue_router_1.default({\r\n mode: 'history',\r\n base: config.baseUrl || '/',\r\n routes: [\r\n {\r\n path: '/Authentication',\r\n component: Authentication_vue_1.default,\r\n },\r\n {\r\n path: '/Registration',\r\n component: Registration_vue_1.default,\r\n },\r\n {\r\n path: '/ForgotUsername',\r\n component: ForgotUsername_vue_1.default,\r\n },\r\n {\r\n path: '/ForgotPassword',\r\n component: ForgotPassword_vue_1.default,\r\n },\r\n {\r\n path: '/Authentication/LoginGrouping',\r\n component: LoginGrouping_vue_1.default,\r\n },\r\n {\r\n path: '*',\r\n redirect: '/Authentication',\r\n },\r\n ],\r\n });\r\n}\r\nexports.default = getRouter;\r\n","module.exports = VueRouter;","import { render, staticRenderFns } from \"./Authentication.vue?vue&type=template&id=2bf6665a&\"\nimport script from \"./Authentication.vue?vue&type=script&lang=ts&\"\nexport * from \"./Authentication.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Authentication.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.userAction = exports.stepName = exports.stepType = exports.workflowName = void 0;\r\nvar workflowName;\r\n(function (workflowName) {\r\n workflowName[\"unknown\"] = \"unknown\";\r\n workflowName[\"retail_registration\"] = \"retail_registration\";\r\n})(workflowName = exports.workflowName || (exports.workflowName = {}));\r\nvar stepType;\r\n(function (stepType) {\r\n stepType[\"unknown\"] = \"unknown\";\r\n stepType[\"entry\"] = \"entry\";\r\n stepType[\"progression\"] = \"progression\";\r\n stepType[\"cancellation\"] = \"cancellation\";\r\n})(stepType = exports.stepType || (exports.stepType = {}));\r\nvar stepName;\r\n(function (stepName) {\r\n stepName[\"unknown\"] = \"unknown\";\r\n stepName[\"login\"] = \"login\";\r\n stepName[\"registration_type\"] = \"registration_type\";\r\n stepName[\"disclosure\"] = \"disclosure\";\r\n stepName[\"confirm_your_identity\"] = \"confirm_your_identity\";\r\n stepName[\"verify_your_identity\"] = \"verify_your_identity\";\r\n stepName[\"verification_code\"] = \"verification_code\";\r\n stepName[\"business_information\"] = \"business_information\";\r\n stepName[\"create_username\"] = \"create_username\";\r\n stepName[\"create_password\"] = \"create_password\";\r\n stepName[\"confirm_contact\"] = \"confirm_contact\";\r\n stepName[\"quit_confirmation\"] = \"quit_confirmation\";\r\n})(stepName = exports.stepName || (exports.stepName = {}));\r\nvar userAction;\r\n(function (userAction) {\r\n userAction[\"unknown\"] = \"unknown\";\r\n userAction[\"overflow_menu_clicked\"] = \"overflow_menu_clicked\";\r\n userAction[\"password_show_toggled\"] = \"password_show_toggled\";\r\n userAction[\"remember_me_checked\"] = \"remember_me_checked\";\r\n userAction[\"forgot_username_clicked\"] = \"forgot_username_clicked\";\r\n userAction[\"forgot_password_clicked\"] = \"forgot_password_clicked\";\r\n userAction[\"register_account_clicked\"] = \"register_account_clicked\";\r\n userAction[\"cancel_clicked\"] = \"cancel_clicked\";\r\n userAction[\"individual_account_clicked\"] = \"individual_account_clicked\";\r\n userAction[\"business_account_clicked\"] = \"business_account_clicked\";\r\n userAction[\"new_account_selected\"] = \"new_account_selected\";\r\n userAction[\"continue_clicked\"] = \"continue_clicked\";\r\n userAction[\"agree_clicked\"] = \"agree_clicked\";\r\n userAction[\"open_pdf_clicked\"] = \"open_pdf_clicked\";\r\n userAction[\"print_pdf_clicked\"] = \"print_pdf_clicked\";\r\n userAction[\"disclosure_scroll\"] = \"disclosure_scroll\";\r\n userAction[\"verification_type_chosen\"] = \"verification_type_chosen\";\r\n userAction[\"resend_code_clicked\"] = \"resend_code_clicked\";\r\n userAction[\"change_method_clicked\"] = \"change_method_clicked\";\r\n userAction[\"create_username_clicked\"] = \"create_username_clicked\";\r\n userAction[\"create_password_clicked\"] = \"create_password_clicked\";\r\n userAction[\"confirm_clicked\"] = \"confirm_clicked\";\r\n userAction[\"estatements_accept_checked\"] = \"estatements_accept_checked\";\r\n userAction[\"email_preferences_checked\"] = \"email_preferences_checked\";\r\n userAction[\"subscribe_pfm_clicked\"] = \"subscribe_pfm_clicked\";\r\n userAction[\"yes_clicked\"] = \"yes_clicked\";\r\n userAction[\"sheet_closed\"] = \"sheet_closed\";\r\n})(userAction = exports.userAction || (exports.userAction = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","import { render, staticRenderFns } from \"./Registration.vue?vue&type=template&id=4c71b976&\"\nimport script from \"./Registration.vue?vue&type=script&lang=ts&\"\nexport * from \"./Registration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsername.vue?vue&type=template&id=1e29e738&scoped=true&\"\nimport script from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e29e738\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=2f7bc142&\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgotPassword.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./LoginGrouping.vue?vue&type=template&id=28829a29&\"\nimport script from \"./LoginGrouping.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginGrouping.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginGrouping.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SubCode = exports.Severity = exports.ErrorCode = void 0;\r\nvar ErrorCode;\r\n(function (ErrorCode) {\r\n ErrorCode[ErrorCode[\"Unknown\"] = 0] = \"Unknown\";\r\n ErrorCode[ErrorCode[\"Informational\"] = 100] = \"Informational\";\r\n ErrorCode[ErrorCode[\"ValidationError\"] = 200] = \"ValidationError\";\r\n ErrorCode[ErrorCode[\"DataRequestError\"] = 300] = \"DataRequestError\";\r\n ErrorCode[ErrorCode[\"UnsupportedError\"] = 310] = \"UnsupportedError\";\r\n ErrorCode[ErrorCode[\"PermissionError\"] = 320] = \"PermissionError\";\r\n ErrorCode[ErrorCode[\"SystemNonFatalError\"] = 400] = \"SystemNonFatalError\";\r\n ErrorCode[ErrorCode[\"SystemFatalError\"] = 500] = \"SystemFatalError\";\r\n})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));\r\nvar Severity;\r\n(function (Severity) {\r\n Severity[Severity[\"Warning\"] = 0] = \"Warning\";\r\n Severity[Severity[\"Error\"] = 1] = \"Error\";\r\n Severity[Severity[\"Fatal\"] = 2] = \"Fatal\";\r\n})(Severity = exports.Severity || (exports.Severity = {}));\r\nvar SubCode;\r\n(function (SubCode) {\r\n SubCode[SubCode[\"None\"] = 0] = \"None\";\r\n SubCode[SubCode[\"Custom\"] = 1] = \"Custom\";\r\n SubCode[SubCode[\"NoDataInRequest\"] = 300] = \"NoDataInRequest\";\r\n SubCode[SubCode[\"NoRecordsFound\"] = 302] = \"NoRecordsFound\";\r\n SubCode[SubCode[\"BadRequest\"] = 400] = \"BadRequest\";\r\n SubCode[SubCode[\"LoginInvalid\"] = 401] = \"LoginInvalid\";\r\n SubCode[SubCode[\"SessionTokenExpired\"] = 402] = \"SessionTokenExpired\";\r\n SubCode[SubCode[\"UserTokenExpired\"] = 403] = \"UserTokenExpired\";\r\n SubCode[SubCode[\"SubCode409\"] = 409] = \"SubCode409\";\r\n SubCode[SubCode[\"IncompleteRequest\"] = 411] = \"IncompleteRequest\";\r\n SubCode[SubCode[\"PreviousRequestRequired\"] = 412] = \"PreviousRequestRequired\";\r\n SubCode[SubCode[\"ValueOutOfRange\"] = 413] = \"ValueOutOfRange\";\r\n SubCode[SubCode[\"ValueUnsupported\"] = 415] = \"ValueUnsupported\";\r\n SubCode[SubCode[\"UnprocessableEntity\"] = 422] = \"UnprocessableEntity\";\r\n SubCode[SubCode[\"AccountLocked\"] = 423] = \"AccountLocked\";\r\n SubCode[SubCode[\"MfaLoginFailed\"] = 424] = \"MfaLoginFailed\";\r\n SubCode[SubCode[\"MacInvalid\"] = 425] = \"MacInvalid\";\r\n SubCode[SubCode[\"EncryptionError\"] = 426] = \"EncryptionError\";\r\n SubCode[SubCode[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\r\n SubCode[SubCode[\"InvalidLanguage\"] = 430] = \"InvalidLanguage\";\r\n SubCode[SubCode[\"InvalidEmailFormat\"] = 431] = \"InvalidEmailFormat\";\r\n SubCode[SubCode[\"InvalidPhoneFormat\"] = 432] = \"InvalidPhoneFormat\";\r\n SubCode[SubCode[\"InvalidDataSourceId\"] = 433] = \"InvalidDataSourceId\";\r\n SubCode[SubCode[\"InvalidFinancialInstitutionId\"] = 434] = \"InvalidFinancialInstitutionId\";\r\n SubCode[SubCode[\"MalformedRequest\"] = 435] = \"MalformedRequest\";\r\n SubCode[SubCode[\"AccessDenied\"] = 436] = \"AccessDenied\";\r\n SubCode[SubCode[\"ArtifactNotFound\"] = 437] = \"ArtifactNotFound\";\r\n SubCode[SubCode[\"UpdateToFieldNotAllowed\"] = 438] = \"UpdateToFieldNotAllowed\";\r\n SubCode[SubCode[\"ArtifactCannotBeDecompressed\"] = 439] = \"ArtifactCannotBeDecompressed\";\r\n SubCode[SubCode[\"MimeTypeNotSupported\"] = 440] = \"MimeTypeNotSupported\";\r\n SubCode[SubCode[\"ArtifactArchived\"] = 441] = \"ArtifactArchived\";\r\n SubCode[SubCode[\"ArtifactTooLarge\"] = 442] = \"ArtifactTooLarge\";\r\n SubCode[SubCode[\"ArtifactTooSmall\"] = 443] = \"ArtifactTooSmall\";\r\n SubCode[SubCode[\"ArtifactRejected\"] = 444] = \"ArtifactRejected\";\r\n SubCode[SubCode[\"InvalidDataLength\"] = 445] = \"InvalidDataLength\";\r\n SubCode[SubCode[\"InvalidFormat\"] = 475] = \"InvalidFormat\";\r\n SubCode[SubCode[\"InvalidEnvironment\"] = 476] = \"InvalidEnvironment\";\r\n SubCode[SubCode[\"DatesOutOfOrder\"] = 497] = \"DatesOutOfOrder\";\r\n SubCode[SubCode[\"DateRangeTooLarge\"] = 498] = \"DateRangeTooLarge\";\r\n SubCode[SubCode[\"GeneralError\"] = 499] = \"GeneralError\";\r\n SubCode[SubCode[\"ServiceTemporarilyUnavailable\"] = 503] = \"ServiceTemporarilyUnavailable\";\r\n})(SubCode = exports.SubCode || (exports.SubCode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MachineSecretProviderType = void 0;\r\nvar MachineSecretProviderType;\r\n(function (MachineSecretProviderType) {\r\n MachineSecretProviderType[\"DefaultProvider\"] = \"Default Provider\";\r\n MachineSecretProviderType[\"EntrustRememberedDevicesProvider\"] = \"Entrust Remembered Devices Provider\";\r\n})(MachineSecretProviderType = exports.MachineSecretProviderType || (exports.MachineSecretProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EntrustMachineSecretProvider = void 0;\r\nclass EntrustMachineSecretProvider {\r\n initialize(username) {\r\n machineSecret\r\n .setDebugOn(false)\r\n .setStorageTypeExclusions('flash')\r\n .setMachineNonceName(this.getMachineNonceName(username))\r\n .setSequenceNonceName(this.getSequenceNonceName(username));\r\n }\r\n read() {\r\n const map = {};\r\n map.MachineNonce = machineSecret.fetchMachineNonce();\r\n map.SequenceNonce = machineSecret.fetchSequenceNonce();\r\n map.DeviceFingerprint = this.cleanUpFingerprint(machineSecret.getDeviceFingerprint());\r\n return map;\r\n }\r\n write(map) {\r\n machineSecret.storeMachineNonce(map.MachineNonce);\r\n machineSecret.storeSequenceNonce(map.SequenceNonce);\r\n }\r\n getRealm() {\r\n return 'https://' + window.location.hostname + '/';\r\n }\r\n getMachineNonceName(username) {\r\n const prefix = 'ob_mn';\r\n return this.getHash(this.getRealm(), username, prefix);\r\n }\r\n getSequenceNonceName(username) {\r\n const prefix = 'ob_sn';\r\n return this.getHash(this.getRealm(), username, prefix);\r\n }\r\n getHash(url, username, prefix) {\r\n const input = prefix + username.toLowerCase();\r\n const keyArray = CryptoJS.enc.Utf8.parse(url);\r\n const inputArray = CryptoJS.enc.Utf8.parse(input);\r\n const hash = CryptoJS.HmacSHA1(inputArray, keyArray);\r\n const hashInHex = CryptoJS.enc.Hex.stringify(hash);\r\n return hashInHex.toUpperCase();\r\n }\r\n cleanUpFingerprint(fingerPrintStr) {\r\n /* tslint:disable */\r\n // Here is a sample fingerprint string from Android: {\"platform\":\"web\",\"version\":\"2.0.0\",\"attributes\":{\"browserName\":\"Chrome\",\"browserVersion\":\"74.0.3729.112\",\"osName\":\"Android\",\"osVersion\":\"5.1.1\",\"plugins\":[],\"platform\":\"Linux aarch64\",\"appVersion\":\"5.0 (Linux; Android 5.1.1; SAMSUNG-SM-G920A Build/LMY47X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.112 Mobile Safari/537.36 NATIVEAPP NATIVEMENU NATIVEPIN\",\"cssVendorPrefix\":\"webkit\",\"cookiesEnabled\":true,\"javaEnabled\":false,\"flashEnabled\":false,\"flashVersion\":\"0.0.0\",\"language\":\"en-US\",\"doNotTrack\":\"unknown\",\"timezoneOffset\":-240,\"width\":360,\"height\":640,\"availWidth\":360,\"availHeight\":640,\"colorDepth\":24,\"localStorage\":true,\"sessionStorage\":true,\"indexedDB\":true,\"fonts\":[25,43,48,63,64,65,72,127,128,148,198,199,200,229,236,324,326,369,447,455,456,471,476,488,489],\"canvas\":\"a27f593234a369488586c2b56655c33bbf9fbc37a22e697f884a13c7e176e576\",\"webGL\":[\"b1b8461e148f9d45a438852f32b732093ff4c1d95535cf92b72811d13fc22e08\",\"ANGLE_instanced_arrays;EXT_blend_minmax;EXT_sRGB;OES_element_index_uint;OES_standard_derivatives;OES_vertex_array_object;WEBGL_compressed_texture_astc;WEBGL_compressed_texture_etc1;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBKIT_WEBGL_depth_texture;WEBGL_lose_context;WEBKIT_WEBGL_lose_context\",\"(1 x 4095.9375)\",\"(1 x 1024)\",8,true,8,24,8,null,48,4096,1024,8192,16,4096,15,16,16,1024,\"(8192 x 8192)\",8,\"WebKit WebGL\",\"WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)\",0,\"WebKit\",\"WebGL 1.0 (OpenGL ES 2.0 Chromium)\"],\"ioBlackbox\":null}}\r\n // Here is a sample fingerprint string from IOS: {\"platform\":\"web\",\"version\":\"2.0.0\",\"attributes\":{\"browserName\":\"WebKit\",\"browserVersion\":\"605.1.15\",\"osName\":\"iOS\",\"osVersion\":\"12.1.2\",\"plugins\":[],\"platform\":\"iPhone\",\"appVersion\":\"3000.7.5 (com.alkamitech.iccuqa1; build:10743) Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 NATIVEAPP ORB NATIVEMENU\",\"cssVendorPrefix\":\"webkit\",\"cookiesEnabled\":true,\"javaEnabled\":false,\"flashEnabled\":false,\"flashVersion\":\"0.0.0\",\"language\":\"en-US\",\"doNotTrack\":\"unknown\",\"timezoneOffset\":-300,\"width\":375,\"height\":667,\"availWidth\":375,\"availHeight\":667,\"colorDepth\":32,\"localStorage\":true,\"sessionStorage\":true,\"indexedDB\":true,\"fonts\":[1,11,21,22,25,27,30,37,40,43,48,63,64,65,72,74,99,100,110,117,127,128,134,137,139,148,158,183,193,198,199,200,202,216,221,226,227,229,230,233,234,235,236,258,261,293,297,298,306,324,356,364,365,369,371,373,394,401,427,432,444,448,451,454,455,456,461,471,476,488,489,493],\"canvas\":\"68ba9359e54939a9f42afd911348455624170828a4417834d4d058f4a5140cc3\",\"webGL\":[\"a1208499aca2742879fdb9fc517a4686ff899142d43b23785c36e50791630ed3\",\"EXT_blend_minmax;EXT_sRGB;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_standard_derivatives;EXT_shader_texture_lod;EXT_texture_filter_anisotropic;OES_vertex_array_object;OES_element_index_uint;WEBGL_lose_context;WEBKIT_WEBGL_compressed_texture_pvrtc;WEBGL_depth_texture;ANGLE_instanced_arrays;WEBGL_debug_renderer_info\",\"(1 x 16)\",\"(1 x 511)\",8,true,8,24,8,16,8,4096,64,4096,8,4096,8,16,8,128,\"(4096 x 4096)\",8,\"WebKit WebGL\",\"WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.00)\",0,\"WebKit\",\"WebGL 1.0 (OpenGL ES 2.0 Metal - 58.4)\"],\"ioBlackbox\":null}}\r\n /* tslint:enable */\r\n const fingerPrintObj = JSON.parse(fingerPrintStr);\r\n const webGL = fingerPrintObj.attributes.webGL;\r\n const intIndexes = [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 24];\r\n for (let i = 0; i < webGL.length; i++) {\r\n if (webGL[i] == null && intIndexes.indexOf(i) > -1) {\r\n webGL[i] = 0;\r\n }\r\n }\r\n return JSON.stringify(fingerPrintObj);\r\n }\r\n}\r\nexports.EntrustMachineSecretProvider = EntrustMachineSecretProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultMachineSecretProvider = void 0;\r\nclass DefaultMachineSecretProvider {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n initialize() { }\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n write(map) { }\r\n read() {\r\n const map = {};\r\n map.director = this.hasPlugin('Shockwave');\r\n map.mimeTypes = this.getMimeTypes();\r\n map.mimeTypesCount = navigator.mimeTypes.length;\r\n map.plugins = this.getPlugins();\r\n map.pluginsCount = navigator.plugins.length;\r\n map.quickTime = this.hasPlugin('QuickTime');\r\n map.realPlayer = this.hasPlugin('RealPlayer');\r\n map.windowsMediaPlayer = this.hasPlugin('WindowsMediaPlayer');\r\n map.accrobatReader = this.hasPlugin('AdobeReader');\r\n map.svgViewer = false;\r\n map.clearType = false;\r\n map.screenColorDepth = screen.colorDepth;\r\n map.screenHeight = screen.height;\r\n map.screenPixelDepth = screen.pixelDepth;\r\n map.screenWidth = screen.width;\r\n map.screenAvailHeigth = screen.availHeight;\r\n map.screenAvailWidth = screen.availWidth;\r\n // map[\"screenBufferDepth\"] = screen.bufferDepth;\r\n map.appName = navigator.appName;\r\n map.appVersion = navigator.appVersion;\r\n map.appMinorVersion = navigator.appMinorVersion;\r\n map.cookieEnabled = navigator.cookieEnabled;\r\n map.cpuClass = navigator.cpuClass;\r\n map.systemLanguage = navigator.systemLanguage;\r\n map.userAgent = navigator.userAgent;\r\n map.userLanguage = navigator.userLanguage;\r\n map.javaEnabled = navigator.javaEnabled();\r\n map.platform = navigator.platform;\r\n map.appCodeName = navigator.appCodeName;\r\n map.language = navigator.language;\r\n map.oscpu = navigator.oscpu;\r\n map.vendor = navigator.vendor;\r\n map.vendorSub = navigator.vendorSub;\r\n map.product = navigator.product;\r\n map.productSub = navigator.productSub;\r\n if (typeof navigator.taintEnabled !== 'undefined') {\r\n map.taintEnabled = navigator.taintEnabled();\r\n }\r\n return map;\r\n }\r\n getMimeTypes() {\r\n if (navigator.mimeTypes && navigator.mimeTypes.length) {\r\n return Array.from(navigator.mimeTypes)\r\n .map((mimeType) => mimeType.type)\r\n .join(',');\r\n }\r\n return '';\r\n }\r\n getPlugins() {\r\n if (navigator.plugins && navigator.plugins.length) {\r\n return Array.from(navigator.plugins)\r\n .map((plugin) => plugin.name.replace(/&/g, ''))\r\n .join(',');\r\n }\r\n return '';\r\n }\r\n hasPlugin(pluginName) {\r\n const PluginDetect = window.PluginDetect;\r\n if (PluginDetect) {\r\n return PluginDetect.getVersion(pluginName) !== null;\r\n }\r\n return false;\r\n }\r\n}\r\nexports.DefaultMachineSecretProvider = DefaultMachineSecretProvider;\r\n","var map = {\n\t\"./\": 15,\n\t\"./ChangePassword\": 228,\n\t\"./ChangePassword.vue\": 228,\n\t\"./CheckSyncResult\": 229,\n\t\"./CheckSyncResult.vue\": 229,\n\t\"./CheckSyncResultForgot\": 232,\n\t\"./CheckSyncResultForgot.vue\": 232,\n\t\"./ChooseRegistrationType\": 233,\n\t\"./ChooseRegistrationType.vue\": 233,\n\t\"./ConfirmIdentity\": 17,\n\t\"./ConfirmIdentity.vue\": 17,\n\t\"./ConvertedUser\": 235,\n\t\"./ConvertedUser.vue\": 235,\n\t\"./CreateUser\": 236,\n\t\"./CreateUser.vue\": 236,\n\t\"./CreateUsername\": 237,\n\t\"./CreateUsername.vue\": 237,\n\t\"./Empty\": 238,\n\t\"./Empty.vue\": 238,\n\t\"./ForgotPassword\": 239,\n\t\"./ForgotPassword.vue\": 239,\n\t\"./ForgotPasswordChooseScenario\": 240,\n\t\"./ForgotPasswordChooseScenario.vue\": 240,\n\t\"./ForgotPasswordConfirmIdentity\": 241,\n\t\"./ForgotPasswordConfirmIdentity.vue\": 241,\n\t\"./ForgotPasswordDisclosure\": 242,\n\t\"./ForgotPasswordDisclosure.vue\": 242,\n\t\"./ForgotUsername\": 244,\n\t\"./ForgotUsername.vue\": 244,\n\t\"./ForgotUsernameChooseScenario\": 245,\n\t\"./ForgotUsernameChooseScenario.vue\": 245,\n\t\"./ForgotUsernameConfirmIdentity\": 246,\n\t\"./ForgotUsernameConfirmIdentity.vue\": 246,\n\t\"./OneTimeCode\": 86,\n\t\"./OneTimeCode.vue\": 86,\n\t\"./OneTimeCodeDestination\": 275,\n\t\"./OneTimeCodeDestination.vue\": 275,\n\t\"./OneTimeCodeForgot\": 18,\n\t\"./OneTimeCodeForgot.vue\": 18,\n\t\"./OneTimeCodeForgotContainer\": 247,\n\t\"./OneTimeCodeForgotContainer.vue\": 247,\n\t\"./QuestionsAndAnswers\": 248,\n\t\"./QuestionsAndAnswers.vue\": 248,\n\t\"./RegistrationDisclosure\": 249,\n\t\"./RegistrationDisclosure.vue\": 249,\n\t\"./ResetPassword\": 250,\n\t\"./ResetPassword.vue\": 250,\n\t\"./StartForgotPassword\": 251,\n\t\"./StartForgotPassword.vue\": 251,\n\t\"./StartForgotUsername\": 252,\n\t\"./StartForgotUsername.vue\": 252,\n\t\"./StartRegistration\": 253,\n\t\"./StartRegistration.vue\": 253,\n\t\"./StepUp\": 254,\n\t\"./StepUp.vue\": 254,\n\t\"./StepUpForgot\": 268,\n\t\"./StepUpForgot.vue\": 268,\n\t\"./TemporaryPassword\": 269,\n\t\"./TemporaryPassword.vue\": 269,\n\t\"./Tethered\": 270,\n\t\"./Tethered.vue\": 270,\n\t\"./UpdateBusiness\": 272,\n\t\"./UpdateBusiness.vue\": 272,\n\t\"./UsernameAndPassword\": 273,\n\t\"./UsernameAndPassword.vue\": 273,\n\t\"./UsernameRecovered\": 274,\n\t\"./UsernameRecovered.vue\": 274,\n\t\"./index\": 15,\n\t\"./index.ts\": 15\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 291;","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i]\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n case 'drawnFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.1';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString;\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(def, fontData) {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n var fontProps = getFontProperties(fontData);\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n var tCanvasHelper = createTag('canvas').getContext('2d');\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n return tHelper;\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(defs, fontArr[i]);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper; // Canvas version\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\n // SVG version\n // console.log(tHelper.getBBox().width)\n\n if (_char2 === ' ') {\n tHelper.textContent = '|' + _char2 + '|';\n var doubleSize = tHelper.getComputedTextLength();\n tHelper.textContent = '||';\n var singleSize = tHelper.getComputedTextLength();\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n tHelper.textContent = _char2;\n fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this.audio.volume(volumeValue);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n function SVGTintFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'f2');\n feMerge.appendChild(feMergeNode);\n }\n }\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(elem, filterManager) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n feComponentTransfer = createNS('feComponentTransfer');\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', 'drop_shadow_1');\n feOffset.setAttribute('result', 'drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', 'drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', 'drop_shadow_3');\n feComposite.setAttribute('in2', 'drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', 'drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n this.feMergeNode = feMergeNode;\n this.feMerge = feMerge;\n this.originalNodeAdded = false;\n feMerge.appendChild(feMergeNode);\n }\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\n\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n var registeredEffects = {};\n\n function SVGEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem);\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (elem.data.ef[i].ty === 20) {\n count += 1;\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 21) {\n count += 1;\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 22) {\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 23) {\n count += 1;\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 24) {\n count += 1;\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 25) {\n count += 1;\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 28) {\n // count += 1;\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n } else if (elem.data.ef[i].ty === 29) {\n count += 1;\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = charData.data;\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConfirmationError64 = void 0;\r\n/* eslint-disable id-denylist */\r\nexports.ConfirmationError64 = {\r\n v: '5.6.10',\r\n fr: 60,\r\n ip: 0,\r\n op: 91,\r\n w: 64,\r\n h: 64,\r\n nm: 'Error 40',\r\n ddd: 0,\r\n assets: [],\r\n layers: [\r\n {\r\n ddd: 0,\r\n ind: 1,\r\n ty: 3,\r\n nm: 'Controller',\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 0, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [32.438, 31.125, 0], ix: 2 },\r\n a: { a: 0, k: [60, 60, 0], ix: 1 },\r\n s: {\r\n a: 1,\r\n k: [\r\n {\r\n i: { x: [0.593, 0.593, 0.2], y: [1, 1, 1] },\r\n o: { x: [0.998, 0.998, 0.5], y: [0, 0, 0] },\r\n t: 30,\r\n s: [100, 100, 100],\r\n },\r\n {\r\n i: { x: [0.2, 0.2, 0.2], y: [1, 1, 1] },\r\n o: { x: [0.719, 0.719, 0.5], y: [0, 0, 0] },\r\n t: 49,\r\n s: [112, 112, 100],\r\n },\r\n { t: 63, s: [100, 100, 100] },\r\n ],\r\n ix: 6,\r\n },\r\n },\r\n ao: 0,\r\n ip: 30,\r\n op: 210,\r\n st: -90,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 2,\r\n ty: 4,\r\n nm: 'Dot',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [59.562, 69.875, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n ty: 'rc',\r\n d: 1,\r\n s: {\r\n a: 1,\r\n k: [\r\n {\r\n i: { x: [0.2, 0.2], y: [1, 1] },\r\n o: { x: [0.5, 0.5], y: [0, 0] },\r\n t: 41,\r\n s: [0, 0],\r\n },\r\n { t: 48, s: [4, 4] },\r\n ],\r\n ix: 2,\r\n },\r\n p: { a: 0, k: [0, 0], ix: 3 },\r\n r: { a: 0, k: 0, ix: 4 },\r\n nm: 'Rectangle Path 1',\r\n mn: 'ADBE Vector Shape - Rect',\r\n hd: false,\r\n },\r\n {\r\n ty: 'fl',\r\n c: { a: 0, k: [0.75686275959, 0.0941176489, 0.149019613862, 1], ix: 4 },\r\n o: { a: 0, k: 100, ix: 5 },\r\n r: 1,\r\n bm: 0,\r\n nm: '.colorBrandedErrorFill',\r\n mn: 'ADBE Vector Graphic - Fill',\r\n hd: false,\r\n cl: 'colorBrandedErrorFill',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Rectangle 1',\r\n np: 2,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 41,\r\n op: 180,\r\n st: 11,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 3,\r\n ty: 4,\r\n nm: 'Bar',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: {\r\n s: true,\r\n x: { a: 0, k: 59.533, ix: 3 },\r\n y: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.34], y: [1] }, o: { x: [0.88], y: [0] }, t: 30, s: [52.875] },\r\n { i: { x: [0], y: [1] }, o: { x: [0.172], y: [0] }, t: 48, s: [57.875] },\r\n { i: { x: [0.697], y: [0.724] }, o: { x: [0.157], y: [0] }, t: 55, s: [56.875] },\r\n { i: { x: [0.778], y: [1] }, o: { x: [0.428], y: [0.618] }, t: 67, s: [56.792] },\r\n { t: 69, s: [56.783] },\r\n ],\r\n ix: 4,\r\n },\r\n },\r\n a: { a: 0, k: [0.13, -5.083, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n ind: 0,\r\n ty: 'sh',\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n o: [\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n v: [\r\n [0.132, -12.666],\r\n [0.152, 1.963],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: 'Path 1',\r\n mn: 'ADBE Vector Shape - Group',\r\n hd: false,\r\n },\r\n {\r\n ty: 'tm',\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 30, s: [0] },\r\n { t: 50, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: 0, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: 'Trim Paths 1',\r\n mn: 'ADBE Vector Filter - Trim',\r\n hd: false,\r\n },\r\n {\r\n ty: 'st',\r\n c: { a: 0, k: [0.756862745098, 0.094117647059, 0.149019607843, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 4, ix: 5 },\r\n lc: 1,\r\n lj: 1,\r\n ml: 4,\r\n bm: 0,\r\n nm: '.colorBrandedErrorStroke',\r\n mn: 'ADBE Vector Graphic - Stroke',\r\n hd: false,\r\n cl: 'colorBrandedErrorStroke',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Shape 1',\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 30,\r\n op: 180,\r\n st: 0,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 4,\r\n ty: 4,\r\n nm: 'Fill circle',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.833], y: [0.833] }, o: { x: [0.167], y: [0.167] }, t: 0, s: [0] },\r\n { t: 90, s: [418] },\r\n ],\r\n ix: 10,\r\n },\r\n p: { a: 0, k: [59.562, 60.875, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n d: 1,\r\n ty: 'el',\r\n s: { a: 0, k: [40, 40], ix: 2 },\r\n p: { a: 0, k: [0, 0], ix: 3 },\r\n nm: 'Ellipse Path 1',\r\n mn: 'ADBE Vector Shape - Ellipse',\r\n hd: false,\r\n },\r\n {\r\n ty: 'tm',\r\n s: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 0, s: [0] },\r\n { t: 30, s: [0] },\r\n ],\r\n ix: 1,\r\n },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 0, s: [16] },\r\n { t: 30, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: 0, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: 'Trim Paths 1',\r\n mn: 'ADBE Vector Filter - Trim',\r\n hd: false,\r\n },\r\n {\r\n ty: 'st',\r\n c: { a: 0, k: [0.756862745098, 0.094117647059, 0.149019607843, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 4, ix: 5 },\r\n lc: 1,\r\n lj: 1,\r\n ml: 4,\r\n bm: 0,\r\n nm: '.colorBrandedErrorStroke',\r\n mn: 'ADBE Vector Graphic - Stroke',\r\n hd: false,\r\n cl: 'colorBrandedErrorStroke',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Ellipse 1',\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 0,\r\n op: 180,\r\n st: -90,\r\n bm: 0,\r\n },\r\n ],\r\n markers: [],\r\n};\r\n","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=7d3e7582&scoped=true&\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=7d3e7582&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d3e7582\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserLookupType = void 0;\r\nvar UserLookupType;\r\n(function (UserLookupType) {\r\n UserLookupType[UserLookupType[\"None\"] = 0] = \"None\";\r\n UserLookupType[UserLookupType[\"Retail\"] = 1] = \"Retail\";\r\n UserLookupType[UserLookupType[\"Business\"] = 2] = \"Business\";\r\n})(UserLookupType = exports.UserLookupType || (exports.UserLookupType = {}));\r\n","import { render, staticRenderFns } from \"./UserIdentifyingFieldGroup.vue?vue&type=template&id=b1f66e40&scoped=true&\"\nimport script from \"./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserIdentifyingFieldGroup.vue?vue&type=style&index=0&id=b1f66e40&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b1f66e40\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UserIdentifyingField.vue?vue&type=template&id=c778b9ec&scoped=true&\"\nimport script from \"./UserIdentifyingField.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserIdentifyingField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c778b9ec\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./\": 19,\n\t\"./Biometric\": 255,\n\t\"./Biometric.vue\": 255,\n\t\"./EmailCode\": 256,\n\t\"./EmailCode.vue\": 256,\n\t\"./PushNotification\": 258,\n\t\"./PushNotification.vue\": 258,\n\t\"./QuestionsAndAnswers\": 259,\n\t\"./QuestionsAndAnswers.vue\": 259,\n\t\"./SmsCode\": 260,\n\t\"./SmsCode.vue\": 260,\n\t\"./StepUpOption\": 155,\n\t\"./StepUpOption.vue\": 155,\n\t\"./TOTP\": 261,\n\t\"./TOTP.vue\": 261,\n\t\"./Token\": 263,\n\t\"./Token.vue\": 263,\n\t\"./Unknown\": 264,\n\t\"./Unknown.vue\": 264,\n\t\"./VoiceCode\": 265,\n\t\"./VoiceCode.vue\": 265,\n\t\"./VoicePrompt\": 266,\n\t\"./VoicePrompt.vue\": 266,\n\t\"./WebAuthn\": 267,\n\t\"./WebAuthn.vue\": 267,\n\t\"./index\": 19,\n\t\"./index.ts\": 19\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 299;","import { render, staticRenderFns } from \"./ForgotLinks.vue?vue&type=template&id=c5cc61ec&\"\nimport script from \"./ForgotLinks.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotLinks.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FDICResponse = void 0;\r\nclass FDICResponse {\r\n constructor() {\r\n this.desktop = {\r\n footer: { isEnabled: false },\r\n header: { isEnabled: false },\r\n login: { isEnabled: false },\r\n };\r\n this.mobile = {\r\n footer: { isEnabled: false },\r\n login: {\r\n isEnabled: false,\r\n signColor: 'DEFAULT',\r\n },\r\n };\r\n this.pages = { isEnabled: false };\r\n }\r\n update(config) {\r\n var _a, _b, _c;\r\n this.desktop = (_a = config.desktop) !== null && _a !== void 0 ? _a : this.desktop;\r\n this.mobile = (_b = config.mobile) !== null && _b !== void 0 ? _b : this.mobile;\r\n this.pages = (_c = config.pages) !== null && _c !== void 0 ? _c : this.pages;\r\n }\r\n}\r\nexports.FDICResponse = FDICResponse;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst injectResources_1 = require(\"./injectResources\");\r\nconst setupSiteText_1 = require(\"./setupSiteText\");\r\nconst cssToInject = [\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-components.shim.desktop.min.css',\r\n 'https://iris.alkamitech.com/cdn/iris-foundation/latest/iris-foundation.min.css',\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-components.min.css',\r\n];\r\nconst jsToInject = [\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-vue.umd.min.js',\r\n];\r\nasync function default_1() {\r\n if (window.Cypress) {\r\n (0, setupSiteText_1.setupSiteText)();\r\n await (0, injectResources_1.injectResources)({ jsToInject, cssToInject, injectLottie: true });\r\n }\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.injectResources = void 0;\r\nfunction createLinkElement(href) {\r\n const linkElement = document.createElement('link');\r\n linkElement.rel = 'stylesheet';\r\n linkElement.type = 'text/css';\r\n linkElement.href = href;\r\n return linkElement;\r\n}\r\nfunction createScriptElement(src) {\r\n const scriptElement = document.createElement('script');\r\n scriptElement.type = 'text/javascript';\r\n scriptElement.src = src;\r\n return scriptElement;\r\n}\r\nfunction onResourceLoad(element) {\r\n return new Promise((resolve, reject) => {\r\n element.addEventListener('load', () => {\r\n resolve();\r\n });\r\n element.addEventListener('error', () => {\r\n reject(new Error('Unable to load resource.'));\r\n });\r\n });\r\n}\r\nasync function injectResources(options) {\r\n const promises = [];\r\n if (options.jsToInject) {\r\n promises.push(options.jsToInject.reduce(async (_promise, src) => {\r\n const scriptElement = createScriptElement(src);\r\n const loadPromise = onResourceLoad(scriptElement);\r\n document.body.appendChild(scriptElement);\r\n return await loadPromise;\r\n }, Promise.resolve()));\r\n }\r\n if (options.cssToInject) {\r\n promises.push(options.cssToInject.reduce(async (_promise, src) => {\r\n const linkElement = createLinkElement(src);\r\n const loadPromise = onResourceLoad(linkElement);\r\n document.head.appendChild(linkElement);\r\n return await loadPromise;\r\n }, Promise.resolve()));\r\n }\r\n if (options.injectLottie) {\r\n window.lottie = {\r\n loadAnimation: (config) => {\r\n config.container.innerHTML = '
A Fake lottie animation
';\r\n return {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setSpeed: (speed) => {\r\n // this is just a mock so the iris-lottie-animation component won't throw an exception\r\n },\r\n };\r\n },\r\n };\r\n }\r\n await Promise.all(promises);\r\n}\r\nexports.injectResources = injectResources;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.setupSiteText = exports.mockSiteTextMap = void 0;\r\n/* eslint-disable @typescript-eslint/quotes */\r\nconst mockSiteTextMap = {\r\n \"UsernameAndPassword.Header\": \"Welcome to Online Banking!\",\r\n \"UsernameAndPassword.TextField.Username.Label\": \"Username\",\r\n \"UsernameAndPassword.TextField.Username.Required\": \"Username is required\",\r\n \"UsernameAndPassword.TextField.Password.Label\": \"Password\",\r\n \"UsernameAndPassword.TextField.Password.Required\": \"Password is required\",\r\n \"UsernameAndPassword.Link.Forgot\": \"Forgot Username or Password?\",\r\n \"UsernameAndPassword.Link.Forgot.UsernameAndPassword\": \"Forgot {linku}Username{linku} or {linkp}Password{linkp}?\",\r\n \"UsernameAndPassword.Link.Forgot.Username\": \"{linku}Forgot Username{linku}?\",\r\n \"UsernameAndPassword.Link.Forgot.Password\": \"{linkp}Forgot Password{linkp}?\",\r\n \"UsernameAndPassword.Link.Forgot.Forgot\": \"Forgot\",\r\n \"UsernameAndPassword.Link.Forgot.Or\": \"or\",\r\n \"UsernameAndPassword.Link.Forgot.QuestionMark\": \"?\",\r\n \"UsernameAndPassword.Link.ForgotUsername\": \"Forgot Username\",\r\n \"UsernameAndPassword.Link.ForgotPassword\": \"Forgot Password\",\r\n \"UsernameAndPassword.Button.Login\": \"Login\",\r\n \"UsernameAndPassword.Button.Register\": \"Register a New Account\",\r\n \"DigitalAccountOpening.DisplayLink.Label\": \"Become a Member\",\r\n \"DigitalAccountOpening.DisplayLink.URL\": \"http://www.google.com\",\r\n \"UsernameAndPassword.Desktop.SideBar.Header\": \"On a mobile device?\",\r\n \"UsernameAndPassword.Desktop.SideBar.Text\": \"Download the app for convenient and secure access to your accounts.\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Icon\": \"touchid\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Header\": \"Biometric Login\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Text\": \"Use your device hardware\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Icon\": \"atm\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Header\": \"Nearby ATMs\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Text\": \"Enable location services\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Icon\": \"phone2\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Header\": \"Snapshot\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Text\": \"Preview accounts without login\",\r\n \"UsernameAndPassword.Desktop.SideBar.Link.ToMobile\": \"Go to mobile site\",\r\n \"StepUp.OneTimeCode.Header\": \"Enter Code\",\r\n \"StepUp.OneTimeCode.DisplayInput.ActionText\": \"Enter Code\",\r\n \"StepUp.OneTimeCode.DisplayInput.HelperText\": \"Code will expire in {0} minutes\",\r\n \"StepUp.OneTimeCode.Button.Verify\": \"Verify\",\r\n \"StepUp.Verification.Header\": \"Verification needed\",\r\n \"StepUp.Verification.HelperText\": \"Choose a verification method\",\r\n \"CodeStepup.Button.SendCode\": \"Send code\",\r\n \"MFA.Button.Navigate.Back\": \"Back\",\r\n \"RememberDevice.RememberThisDevice\": \"Remember this device\",\r\n \"RememberDevice.DeviceName\": \"Device name\",\r\n \"StepUp.Token.Button.Verify\": \"Verify\",\r\n \"StepUp.Token.DisplayInput.ActionText\": \"Enter code\",\r\n \"StepUp.TOTP.DisplayInput.HelperText\": \"Enter code shown in your two-factor authentication app\",\r\n \"StepUp.Token.DisplayInput.HelperText\": \"Enter code shown in your Entrust Token App\",\r\n \"CodeStepup.Destination.SendCodeTo\": \"Send code to\",\r\n \"CodeStepup.Verify.ResendCode\": \"Resend code\",\r\n \"CodeStepup.Verify.CodeSent\": \"Code sent\",\r\n \"CodeStepup.Verify.Phone.CodeSent\": \"A 6-digit code has been sent to your phone number ending in {0}\",\r\n \"CodeStepup.Verify.Email.CodeSent\": \"A 6-digit code has been sent to your email {0}\",\r\n \"Stepup.Icon.Label.SMS\": \"SMS\",\r\n \"Stepup.Icon.Label.EmailCode\": \"Email\",\r\n \"Stepup.Icon.Label.VoiceCode\": \"Call\",\r\n \"Stepup.Icon.Label.TOTP\": \"2FA\",\r\n \"Stepup.Icon.Label.Token\": \"Token\",\r\n \"Stepup.Icon.Label.Unknown\": \"Unknown\",\r\n \"ChallengeStatus.InvalidCredentials\": \"Invalid Credentials!\",\r\n \"ChallengeStatus.LockedOut\": \"Your account is locked. To reset it, click forgot password.\",\r\n \"ChallengeStatus.LockedOutinExternalIdentityProvider\": \"Your account is locked. Call the call-center for assistance with your account.\",\r\n \"ChallengeStatus.InvalidOneTimeCode\": \"Invalid code\",\r\n \"ChallengeStatus.InvalidCaptchaResponse\": \"Invalid CAPTCHA response\",\r\n \"ChallengeStatus.OTPExpired\": \"Your code has expired. Please request a new one.\",\r\n \"ChallengeStatus.DeclinedByRisk\": \"Your request has been declined.\",\r\n \"ChallengeStatus.SessionExpired\": \"Your session has expired.\",\r\n \"ChallengeStatus.TemporaryPasswordExpired\": \"Your temporary password has expired. To reset it, click forgot password.\",\r\n \"Error.Generic\": \"An unexpected error has occurred. Please try again later.\",\r\n \"AppStore.Link\": \"/appStore\",\r\n \"GooglePlay.Link\": \"/playStore\",\r\n \"Sync.Header\": \"Loading your accounts\",\r\n \"Sync.SyncError.Header\": \"Sync failed\",\r\n \"Sync.SyncError.Button.Back\": \"Login Sync Error Button\",\r\n \"ForgotPassword.SyncError.Button.Back\": \"ForgotPassword Sync Error Button\",\r\n \"Sync.SyncError.AEC.Unknown\": \"AEC.Unknown encountered\",\r\n \"Sync.SyncError.AEC.ProviderError\": \"AEC.ProviderError encountered\",\r\n \"Sync.SyncError.AEC.UnhandledProviderException\": \"AEC.UnhandledProviderException encountered\",\r\n \"Sync.SyncError.AEC.AccountTypeNotFound\": \"AEC.AccountTypeNotFound encountered\",\r\n \"Sync.SyncError.AEC.TimeOut\": \"AEC.TimeOut encountered\",\r\n \"Sync.SyncError.AEC.MemberIsNotEligibleToLogin\": \"AEC.MemberIsNotEligibleToLogin encountered\",\r\n \"Sync.SyncError.AEC.CacheExpired\": \"AEC.CacheExpired encountered\",\r\n \"Tethered.Loading\": \"Redirecting you to online banking...\",\r\n \"UsernameAndPassword.RememberUsername.Label\": \"Remember Me\",\r\n \"UsernameAndPassword.RememberUsername.Desktop.Message\": \"Do not select if you are using a public computer.\",\r\n \"UsernameAndPassword.InfoPanel.Ellipsis.IconName\": \"info\",\r\n \"UsernameAndPassword.InfoPanel.Ellipsis.Label\": \"Ellipsis Info Link\",\r\n \"UsernameAndPassword.InfoPanel.Header.Label\": \"Info Panel Header Label\",\r\n \"RememberDevice.Unavailable.Mandatory2fa\": \"Mandatory Two Factor Authentication has been enabled.\",\r\n \"ForgotWorkflow.Close.Confirm.Header\": \"Are you sure you want to quit?\",\r\n \"ForgotPassword.Close.Confirm.Text\": \"You will need to go through the forgot password flow again to reset password.\",\r\n \"ForgotPassword.Close.Text\": \"Cancel forgot password recovery\",\r\n \"ForgotUsername.Close.Confirm.Text\": \"You will need to go through the forgot username flow again to recover your username.\",\r\n \"ForgotUsername.Close.Text\": \"Cancel forgot username recovery\",\r\n \"ForgotWorkflow.Close.Confirm.Button.Text\": \"Yes\",\r\n \"ForgotWorkflow.Close.Cancel.Button.Text\": \"Cancel\",\r\n \"ForgotWorkflow.Disclosure.AcceptCheckbox.Label\": \"I Accept\",\r\n \"ForgotWorkflow.ActionButtonText\": \"Continue\",\r\n \"ForgotWorkflow.Disclosure.Mobile.Heading\": \"Please accept the disclosure\",\r\n \"ForgotUsername.ChooseScenario.Heading\": \"I want to\",\r\n \"ForgotUsername.ChooseScenario.Retail Forgot Username.Text\": \"Find My Personal Username\",\r\n \"ForgotUsername.ChooseScenario.Retail Forgot Username.Description\": \"Choose this if you are an individual and you forgot your username\",\r\n \"ForgotUsername.ChooseScenario.Business Forgot Username.Text\": \"Find My Business Username\",\r\n \"ForgotUsername.ChooseScenario.Business Forgot Username.Description\": \"Choose this if you are a business and you forgot your username\",\r\n \"ForgotUsername.Complete.Heading\": \"Your username is\",\r\n \"ForgotUsername.Complete.Button.Text\": \"Login\",\r\n \"ForgotPassword.ChooseScenario.Heading\": \"I want to\",\r\n \"ForgotPassword.ChooseScenario.Forgot Password.Text\": \"Reset My Password\",\r\n \"ForgotPassword.ChooseScenario.Forgot Password.Description\": \"Choose this if you're an individual or a business and forgot your password\",\r\n \"ForgotPassword.ChooseScenario.Business Sub User Forgot Password.Text\": \"Reset My Business Sub User Password\",\r\n \"ForgotPassword.ChooseScenario.Business Sub User Forgot Password.Description\": \"Choose this if you are a business sub user and you forgot your password\",\r\n \"ForgotUsername.Challenge.Heading\": \"Forgot Username\",\r\n \"ForgotUsername.ConfirmIdentity.Heading\": \"Verify your identity\",\r\n \"ForgotUsername.ConfirmIdentity.Notification\": \"\",\r\n \"ForgotUsername.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with us and that you are the owner of the account. We match your answers against our records.\",\r\n \"ForgotUsername.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"ForgotPassword.Challenge.Heading\": \"Forgot Password\",\r\n \"ForgotPassword.ConfirmIdentity.Heading\": \"Verify your identity\",\r\n \"ForgotPassword.ConfirmIdentity.Notification\": \"\",\r\n \"ForgotPassword.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with us and that you are the owner of the account. We match your answers against our records.\",\r\n \"ForgotPassword.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"UserIdentifyingField.Required\": \"Input is required\",\r\n \"UserIdentifyingField.ErrorMessage\": \"Invalid input\",\r\n \"UserIdentifyingField.Optional\": \"(Optional)\",\r\n \"UserIdentifyingField.LastName.Label\": \"Last Name\",\r\n \"UserIdentifyingField.LastName.HelperText\": \"\",\r\n \"UserIdentifyingField.EIN.Label\": \"EIN\",\r\n \"UserIdentifyingField.EIN.HelperText\": \"\",\r\n \"UserIdentifyingField.EIN.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.AccountNumber.Label\": \"Account Number\",\r\n \"UserIdentifyingField.AccountNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.DebitCardNumber.Label\": \"Debit Card Number\",\r\n \"UserIdentifyingField.DebitCardNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.DebitCardNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.CreditCardNumber.Label\": \"Credit Card Number\",\r\n \"UserIdentifyingField.CreditCardNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.CreditCardNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.Username.Label\": \"Confirm Username\",\r\n \"UserIdentifyingField.Username.HelperText\": \"\",\r\n \"UserIdentifyingField.TaxId.Label\": \"Social Security Number\",\r\n \"UserIdentifyingField.TaxId.HelperText\": \"\",\r\n \"UserIdentifyingField.TaxId.ErrorMessage\": \"Invalid {0}\",\r\n \"UserIdentifyingField.DateOfBirth.Label\": \"Date of Birth\",\r\n \"UserIdentifyingField.DateOfBirth.HelperText\": \"\",\r\n \"UserIdentifyingField.DateOfBirth.ErrorMessage\": \"Invalid {0}\",\r\n \"UserIdentifyingField.FirstName.Label\": \"First Name\",\r\n \"UserIdentifyingField.FirstName.HelperText\": \"\",\r\n \"UserIdentifyingField.MiddleName.Label\": \"Middle Name\",\r\n \"UserIdentifyingField.MiddleName.HelperText\": \"\",\r\n \"UserIdentifyingField.Suffix.Label\": \"Suffix\",\r\n \"UserIdentifyingField.Suffix.HelperText\": \"\",\r\n \"UserIdentifyingField.HomePhone.Label\": \"Home Phone\",\r\n \"UserIdentifyingField.HomePhone.HelperText\": \"\",\r\n \"UserIdentifyingField.WorkPhone.Label\": \"Work Phone\",\r\n \"UserIdentifyingField.WorkPhone.HelperText\": \"\",\r\n \"UserIdentifyingField.CellPhone.Label\": \"Cell Phone\",\r\n \"UserIdentifyingField.CellPhone.HelperText\": \"\",\r\n \"UserIdentifyingField.Address.Label\": \"Address\",\r\n \"UserIdentifyingField.Address.HelperText\": \"\",\r\n \"UserIdentifyingField.City.Label\": \"City\",\r\n \"UserIdentifyingField.City.HelperText\": \"\",\r\n \"UserIdentifyingField.State.Label\": \"State\",\r\n \"UserIdentifyingField.State.HelperText\": \"\",\r\n \"UserIdentifyingField.ZipCode.Label\": \"ZipCode\",\r\n \"UserIdentifyingField.ZipCode.HelperText\": \"\",\r\n \"UserIdentifyingField.PlaceOfBirth.Label\": \"Place of Birth\",\r\n \"UserIdentifyingField.PlaceOfBirth.HelperText\": \"\",\r\n \"UserIdentifyingField.MothersMaidenName.Label\": \"Mother's Maiden Name\",\r\n \"UserIdentifyingField.MothersMaidenName.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountType.Label\": \"Account Type\",\r\n \"UserIdentifyingField.AccountType.HelperText\": \"\",\r\n \"UserIdentifyingField.IsBusiness.Label\": \"Is Business\",\r\n \"UserIdentifyingField.IsBusiness.HelperText\": \"\",\r\n \"UserIdentifyingField.Password.Label\": \"Password\",\r\n \"UserIdentifyingField.Password.HelperText\": \"\",\r\n \"UserIdentifyingField.None.Label\": \"None\",\r\n \"UserIdentifyingField.None.HelperText\": \"\",\r\n \"UserIdentifyingField.MemberNumber.Label\": \"Member Number\",\r\n \"UserIdentifyingField.MemberNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.Email.Label\": \"Email\",\r\n \"UserIdentifyingField.Email.HelperText\": \"\",\r\n \"UserIdentifyingField.DriversLicenseNumber.Label\": \"Drivers License Number\",\r\n \"UserIdentifyingField.DriversLicenseNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.CustomField.Label\": \"Custom Field\",\r\n \"UserIdentifyingField.CustomField.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountHolderNumber.Label\": \"Account Holder Number\",\r\n \"UserIdentifyingField.AccountHolderNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.Codeword.Label\": \"Codeword\",\r\n \"UserIdentifyingField.Codeword.HelperText\": \"\",\r\n \"UserIdentifyingField.PIN.Label\": \"PIN\",\r\n \"UserIdentifyingField.PIN.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessFirstName.Label\": \"Business First Name\",\r\n \"UserIdentifyingField.BusinessFirstName.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessLastName.Label\": \"Business Last Name\",\r\n \"UserIdentifyingField.BusinessLastName.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessName.Label\": \"Business Name\",\r\n \"UserIdentifyingField.BusinessName.HelperText\": \"\",\r\n \"ForgotPassword.StepUp.Heading\": \"Password reset method\",\r\n \"ForgotUsername.StepUp.Heading\": \"Username recovery method\",\r\n \"Forgot.SMS.Label\": \"SMS Text\",\r\n \"Forgot.SMS.Description\": \"A one-time code will be sent to your mobile phone.\",\r\n \"Forgot.SMS.Dropdown.Label\": \"Select Phone Number\",\r\n \"Forgot.Token.Label\": \"Token\",\r\n \"Forgot.Token.Description\": \"A one-time code generated through Entrust.\",\r\n \"Forgot.VoiceCall.Label\": \"Voice Call\",\r\n \"Forgot.VoiceCall.Description\": \"You will get a call that reads a one-time code to you.\",\r\n \"Forgot.VoiceCall.Dropdown.Label\": \"Select Phone Number\",\r\n \"Forgot.TOTP.Label\": \"Time-Based One Time Passcode\",\r\n \"Forgot.TOTP.Description\": \"A one-time passcode generated on your security application.\",\r\n \"Forgot.Email.Label\": \"Email\",\r\n \"Forgot.Email.Description\": \"A one-time code will be sent to your email address.\",\r\n \"Forgot.Email.Dropdown.Label\": \"Select Email\",\r\n \"ForgotPassword.VerificationCode.Heading\": \"Verification Code\",\r\n \"ForgotUsername.VerificationCode.Heading\": \"Verification Code\",\r\n \"Forgot.VerificationCode.SubHeading.Email\": \"A 6-digit code has been sent to your email.\",\r\n \"Forgot.VerificationCode.SubHeading.Token\": \"Enter the 8 digit code for your Token.\",\r\n \"Forgot.VerificationCode.SubHeading.Phone\": \"A 6-digit code has been sent to your phone number.\",\r\n \"Forgot.VerificationCode.SubHeading.TOTP\": \"Enter the 6 digit time-based one time passcode from your security application.\",\r\n \"Forgot.VerificationCode.EnterCode\": \"Enter Code\",\r\n \"Forgot.VerificationCode.HelperText.Expiration\": \"Code will expire in 5 minutes\",\r\n \"Forgot.VerificationCode.HelperText.Token\": \"Enter code shown in your Entrust token app\",\r\n \"Forgot.VerificationCode.HelperText.TOTP\": \"Enter code shown in your two - factor authentication app\",\r\n \"Forgot.VerificationCode.ResendCode\": \"Resend code\",\r\n \"Forgot.VerificationCode.CodeSent\": \"Code sent\",\r\n \"Forgot.VerificationCode.Or\": \"or\",\r\n \"Forgot.VerificationCode.ChangeMethod\": \"Change method\",\r\n \"Forgot.VerificationCode.Verify\": \"Verify\",\r\n \"Forgot.Progressbar.Heading\": \"Step {0} of {1}\",\r\n \"ForgotUsername.ChallengeStatus.UnableToLocateUser\": \"Unable to locate user, forgot username flow. Reference Code: 12345\",\r\n \"ForgotPassword.ChallengeStatus.UnableToLocateUser\": \"Unable to locate user, forgot password flow. Reference Code: 12345\",\r\n \"ForgotUsername.ChallengeStatus.MaximumAttemptsReached\": \"Username - Maximum number of lookup attempts reached.\",\r\n \"ForgotPassword.ChallengeStatus.MaximumAttemptsReached\": \"Password - Maximum number of lookup attempts reached.\",\r\n \"Registration.ChallengeStatus.MaximumAttemptsReached\": \"Registration - Maximum number of lookup attempts reached.\",\r\n \"Registration.ChooseScenario.Heading\": \"I want to\",\r\n \"Registration.ChooseScenario.Retail Registration.Text\": \"Register to my individual account\",\r\n \"Registration.ChooseScenario.Retail Registration.Description\": \"Select this if you have a personal account\",\r\n \"Registration.ChooseScenario.Business Registration.Text\": \"Register to my business account\",\r\n \"Registration.ChooseScenario.Business Registration.Description\": \"Select this if you have a business account\",\r\n \"Registration.ActionButtonText\": \"Next\",\r\n \"Registration.Disclosure.AcceptCheckbox.Label\": \"I agree\",\r\n \"Registration.ConfirmIdentity.Heading\": \"Confirm Your Identity\",\r\n \"Registration.ConfirmIdentity.Notification\": \"\",\r\n \"Registration.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with FI Central and that you are the owner of the account. We match your answers against our records.\",\r\n \"Registration.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"Registration.Close.Confirm.Text\": \"You will need to go through the registration flow again to register your account\",\r\n \"Registration.Close.Text\": \"Cancel registration\",\r\n \"Registration.StepUp.Heading\": \"Verify Your Identity\",\r\n \"Registration.Progressbar.Heading\": \"Step {0} of {1}\",\r\n \"Registration.VerificationCode.Heading\": \"Verification Code\",\r\n \"Registration.ChallengeStatus.UnableToLocateUser\": \"We are unable to locate your account. The information you provided does not match out records. Please try again. Reference Code: 12345\",\r\n \"Registration.Disclosure.Heading\": \"Disclosure\",\r\n \"Registration.PDF.Heading\": \"PDF access confirmation\",\r\n \"Registration.PDF.Instructions\": \"Before you proceed, we need to make sure you can open PDF documents.\",\r\n \"Registration.PDF.OpenPDF\": \"Open PDF\",\r\n \"Registration.PDF.VerifyCode\": \"Copy the 5 character code into the text below.\",\r\n \"Registration.PDF.AccessCodeLabel\": \"Access Code\",\r\n \"Registration.PDF.Error\": \"We are unable to verify your PDF confirmation. Please use the Open PDF link to open the PDF and copy the provided code.\",\r\n \"Registration.Disclosure.HtmlBeforeRegistrationDisclosure\": \"\",\r\n \"Registration.Disclosure.HtmlBeforeBusinessRegistrationDisclosure\": \"\",\r\n \"Global.Disclosures.Registration.LabelFor.AgreementCheckbox\": \"I agree\",\r\n \"Registration.ButtonText.Continue\": \"Continue\",\r\n \"ChallengeStatus.Error\": \"An unexpected error has occurred. Please try again later.\",\r\n \"Registration.CreateUsername.Heading\": \"Create Username\",\r\n \"Registration.CreateUsername.SubHeading\": \"Create a unique, alphanumeric username between 6 and 10 characters in length.\",\r\n \"Registration.CreateUsername.Input.Label\": \"Username\",\r\n \"Registration.CreateUsername.Input.Unavailable\": \"Username unavailable\",\r\n \"Registration.CreateUsername.Input.Required\": \"This input field is required (English)\",\r\n \"Registration.CreateUsername.Input.Invalid\": \"Username is invalid\",\r\n \"Registration.CreateUsername.Input.InvalidLength\": \"Username must be between 6 and 30 characters in length.\",\r\n \"Registration.CreateUsername.Input.Available\": \"Username available\",\r\n \"Registration.CreateUsername.Suggestions\": \"Enter a new username or choose from the following options:\",\r\n \"Registration.CreateUsername.Suggestions.Exceeded\": \"You have exceeded your limit attempts. Choose a username from the following:\",\r\n \"Registration.ButtonText.CreateUsername\": \"Create Username\",\r\n \"Registration.ChallengeStatus.GenericError\": \"An unexpected error has occurred. Please try again later. Reference code: {0}\",\r\n \"Registration.ChallengeStatus.InsufficientContactInformation\": \"To log in to your account your contact information needs to be on file with your financial institution. Call the call-center to add your contact information.\",\r\n \"Registration.CreateUser.Heading\": \"Create Password\",\r\n \"Registration.CreateUser.Subheading\": \"Your password must be at least 8 characters long and contain at least one uppercase letter and one number.\",\r\n \"Registration.CreateUser.PasswordStrength.Weak\": \"Password strength is Weak\",\r\n \"Registration.CreateUser.PasswordStrength.Fair\": \"Password strength is Fair\",\r\n \"Registration.CreateUser.PasswordStrength.Strong\": \"Password strength is Strong\",\r\n \"Registration.CreateUser.PasswordMatches\": \"Password matches\",\r\n \"Registration.CreateUser.PasswordDoesNotMatch\": \"Password does not match\",\r\n \"Registration.CreateUser.InvalidPassword\": \"Password does not meet the requirements\",\r\n \"Registration.CreateUser.PasswordIncludesUsername\": \"Username can not be used in password\",\r\n \"Registration.CreateUser.ButtonText\": \"Create Password\",\r\n \"Registration.CreateUser.TextField.Password.Label\": \"Password\",\r\n \"Registration.CreateUser.TextField.ConfirmPassword.Label\": \"Confirm password\",\r\n \"Registration.CreateUser.PasswordDoesNotMeetRequirements\": \"The password does not meet the requirements\",\r\n \"Registration.Input.Required\": \"This input field is required\",\r\n \"Registration.UpdateBusiness.Heading\": \"Business Information\",\r\n \"Registration.UpdateBusiness.Subheading\": \"Enter your business information to register your business account for online banking.\",\r\n \"Registration.UpdateBusiness.Input.BusinessName\": \"Business Name\",\r\n \"Registration.UpdateBusiness.Input.BusinessPhone\": \"Business Phone\",\r\n \"Registration.UpdateBusiness.Input.BusinessPhoneType\": \"Type of Number\",\r\n \"Registration.UpdateBusiness.Input.BusinessAddressLine1\": \"Business Address 1\",\r\n \"Registration.UpdateBusiness.Input.BusinessAddressLine2\": \"Business Address 2\",\r\n \"Registration.UpdateBusiness.Input.BusinessCity\": \"City\",\r\n \"Registration.UpdateBusiness.Input.BusinessState\": \"State\",\r\n \"Registration.UpdateBusiness.Input.BusinessZip\": \"Zip\",\r\n \"Registration.UpdateBusiness.Input.BusinessEin\": \"EIN\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Home\": \"Home\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Mobile\": \"Mobile\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Work\": \"Work\",\r\n \"Registration.UpdateBusiness.Errors.Phone\": \"Enter a valid phone number with an area code.\",\r\n \"Registration.UpdateBusiness.Errors.Zip\": \"Enter a valid 5 digit or 9 digit zip code.\",\r\n \"Registration.UpdateBusiness.Errors.State\": \"Enter a 2 letter state code.\",\r\n \"Registration.UpdateBusiness.Errors.Ein\": \"Enter a valid 9 digit number.\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Title\": \"You are now leaving the Alpha Financial website\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Content\": \"The website you are accessing is not operated by Alpha Financial and we are not responsible for any content or information posted on this external website. Please review their Terms, Privacy and Security policies to see how they apply to you.\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Continue\": \"Continue\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Cancel\": \"Cancel\",\r\n \"ConvertedUser.Header\": \"Secure your account\",\r\n \"ConvertedUser.Text\": \"{0} requires you to create a new password before you log in.\",\r\n \"ConvertedUser.Button.Primary\": \"Create new password\",\r\n \"ConvertedUser.Button.Secondary\": \"Return to login\",\r\n \"ChallengeStatus.MaximumAttemptsReached\": \"Login maximum attempts reached\",\r\n \"StepUp.OneTimeCode.Destination.SmsCode.Description\": \"Choose a phone number to verify.\",\r\n \"StepUp.OneTimeCode.Destination.VoiceCode.Description\": \"Choose a phone number to verify.\",\r\n \"StepUp.OneTimeCode.Destination.EmailCode.Description\": \"Choose an email to verify.\",\r\n \"UsernameAndPassword.Turnstile.Language\": \"tlh\",\r\n \"UsernameAndPassword.Error.WithReference\": \"An error has occurred. Reference code: {0}\",\r\n \"ChallengeStatus.BotDetected\": \"Bot detected: {0}\",\r\n \"Tethered.Loading.AnimationAlt\": \"Alternative site text for the tethered loading animation\",\r\n \"Tethered.Loading.Button.Back\": \"Back to login\",\r\n};\r\nexports.mockSiteTextMap = mockSiteTextMap;\r\nfunction setupSiteText() {\r\n window.Alkami.Localization.SiteText.get = (key, params) => {\r\n let result = mockSiteTextMap[key];\r\n if (params && params.length > 0 && result) {\r\n for (let i = 0; i < params.length; i++) {\r\n result = result.replace('{' + i.toString() + '}', params[i]);\r\n }\r\n }\r\n if (result === undefined) {\r\n result = `__LOCALIZE_ME__${key}`;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.setupSiteText = setupSiteText;\r\n"],"sourceRoot":""}